A data contract is an explicit agreement between Data Producers and Data Consumers that clearly defines the following for the data provided:
- expectations;
- schema;
- format;
- quality requirements;
- frequency;
- ownership; and
- rules
In other words, a data contract answers these critical questions:
- What data is being provided?
- Who owns and is responsible for maintaining the data?
- How frequently and when will the data be refreshed?
- What schema or format is expected (fields, data types, structure)?
- What are the quality expectations (accuracy, completeness, consistency)?
- How are schema or data changes communicated and handled?
- Where and how is the data accessed?
Example
| Aspect | Example Contract Specification |
|---|---|
| Data Owner | Marketing Team (responsible for Excel files in SharePoint) |
| Data Consumer | Analytics Team (ingesting to Snowflake via Matillion) |
| Format/Schema | Excel files following a predefined standard column layout and naming conventions. |
| Refresh Frequency | Monthly, by the 27th of each month |
| Quality Expectation | No null values in critical fields; dates must follow consistent format (YYYY-MM-DD) |
| Change Notification | 7-day advance notification before changing schema structure, formats, or delivery schedule |