Accord formel entre producteurs et consommateurs de données précisant la structure, les normes de qualité, la fréquence de mise à jour et les conditions d'un flux ou d'un jeu de données.
Un contrat de données rend explicites les attentes implicites. Il définit quels champs les données contiendront, quels types de données ils utiliseront, quelles normes de qualité s'appliquent, à quelle fréquence les données seront mises à jour et ce qui se passe si le producteur modifie la structure des données. Les contrats de données sont de plus en plus utilisés en ingénierie des données pour éviter que les changements de rupture ne perturbent les consommateurs en aval.
Exemple : L'autorité de transport en commun d'une ville fournit un flux de localisation des véhicules en temps réel aux développeurs d'applications tierces. Le contrat de données précise : le flux contiendra l'identifiant du véhicule, le trajet, la latitude, la longitude et l'horodatage; la latitude et la longitude seront toujours présentes et valides; le flux sera mis à jour toutes les 30 secondes; et le producteur donnera un préavis de 90 jours avant de modifier la structure des champs. Les développeurs peuvent créer des applications fiables en sachant que le flux se comportera comme spécifié.