Who creates and owns a data contract?
This should be a short discussion because the answer is fairly obvious. The data owners create and maintain the data contract because the data owners are the only ones who know everything about their data. They know how to check the quality of data and they know the availability of their sources to justify the service-level contract.
While the data contract is created by the owners, the responsibility of keeping it up to date is divided between the data owners and the pipeline builders/developers. Typically, any data made available at a storage location is brought there by some program or pipeline. Every time this program or pipeline runs, as a last step, it should update the contract fields such as Last updated. Similarly, every time data owners see a change in the source systems or need to change the data format or structure, they should communicate this to the developers. The developers should then develop a new schema and update the Schema...