Almost every analytics team I've worked with hits the same failure modes. A property gets renamed without warning. An event stops firing after a deploy. A new teammate adds an untracked event that pollutes downstream dashboards. The root cause is always the same — there's no enforceable agreement about what events should look like, who owns them, and what happens when they break.
Event data contracts are how you fix that. Here's what they actually are.
So what is an event data contract?
An event data contract is a formal specification that defines the structure, semantics and quality expectations for a behavioural event. It answers five questions:
- What is the event called? A canonical name like
checkout_startedorfeature_activated. - What properties does it carry? Each with a name, type, description, and whether it's required.
- Who owns it? The team or individual responsible for the event's accuracy.
- Where is it enforced? The CDPs, schema registries or pipelines that validate it at ingestion.
- What happens when it breaks? The SLA, alerting rules and escalation path for violations.
Unlike a tracking plan spreadsheet, a data contract is machine-readable and enforceable. It lives in a system that can validate events in real time, block non-conforming data, and alert the right people when something's wrong.
Why spreadsheet tracking plans fail
Most teams I've talked to start with a Google Sheet or Confluence page listing their events. That works fine for 20 events. It falls apart at 200.
Here's what I keep seeing:
- Nothing enforces it. The spreadsheet describes what events should look like. It can't stop a developer from shipping
checkoutStartedinstead ofcheckout_started. By the time anyone notices, the bad naming has been in production for weeks. - There's no versioning. When someone updates the sheet, there's no diff, no approval, no audit trail. You can't answer "who changed this event and when?" without archaeology.
- It's all manual. Engineers translate the spreadsheet into tracking code by hand. Every translation is a chance for error — mistyped properties, skipped events, implementation drift.
- It has no link to reality. The spreadsheet has no connection to your warehouse. You can't tell whether
checkout_startedis actually firing, at what volume, or whether its properties match the spec.
How data contracts work in practice
A working event data contract system covers four stages.
Define
Events are defined with property-level detail: name, type, description, required/optional, enum values, format constraints. Each event has an owner and a status — draft, active, deprecated, retired.
AI can accelerate this step a lot. Describe a feature ("we're launching a new checkout flow") and the system drafts a typed schema with sensible property names, types and categories. You review and edit; you don't start from a blank file.
Enforce
The contract is pushed to a schema registry — Segment Protocols, RudderStack Tracking Plans, or Snowplow Iglu. When an event arrives at the CDP, it's validated against the contract. Non-conforming events can be blocked, flagged, or routed to a dead-letter queue.
This is the critical difference from monitoring-only tools: enforcement happens before bad data reaches your warehouse.
Monitor
Even with enforcement at the source, you still need continuous monitoring. Volume anomalies (a 50% drop in checkout_started after a deploy), type drift (a property switching from string to number), SLA breaches (no events in the last hour) — all of these show up, and the right person gets paged.
Resolve
When a violation is detected, the system correlates it with recent deploys, identifies the likely cause, and can auto-generate a fix — a GitHub PR with the corrected tracking code. The loop closes in hours instead of weeks.
Data contracts vs. related concepts
A few distinctions worth making, because the vocabulary gets tangled.
Data contracts vs. tracking plans. A tracking plan is a human-readable document. A data contract is a machine-enforceable specification. A tracking plan says "we should have a checkout_started event". A data contract makes sure checkout_started has exactly the right properties in the right types, and blocks anything that doesn't.
Data contracts vs. schema registries. A schema registry (Segment Protocols, Snowplow Iglu) is the enforcement mechanism. A data contract is the specification that gets pushed to the registry. You need both: the contract defines the rules, the registry enforces them.
Data contracts vs. general data quality tools. Tools like Soda and Great Expectations monitor all data assets — tables, pipelines, datasets. Event data contracts are purpose-built for behavioural events: the analytics, product and CDP layer.
When do you actually need this?
You need event data contracts when any of these feels familiar:
- More than one team ships tracking code. Without contracts, naming conventions diverge, properties drift, and events get duplicated across teams.
- You use a CDP (Segment, RudderStack, Snowplow). Contracts let you enforce at the CDP layer, catching bad data before it lands.
- Your dashboards have unexplained gaps. Silently broken conversion funnels are almost always missing events.
- You need an audit trail. Regulated industries need proof of what data you collect and who approved changes.
- You're scaling your analytics team. Manual coordination falls apart. Contracts give you the automation that scales.
Getting started
The fastest way in:
- Audit your existing events. Connect to your warehouse and discover what events actually exist — not what the spreadsheet says should exist.
- Start with your highest-value funnel. Don't try to contract every event at once. Pick checkout, activation, or subscription lifecycle.
- Define contracts with property-level rules. Every property gets a type, a description and a required flag.
- Push to your schema registry. Connect to Segment Protocols or RudderStack for enforcement at ingestion.
- Turn on alerting. Get paged when volumes drop, unplanned events appear, or SLAs are breached.
If your business depends on what users do — and for most product, growth and marketing teams, it does — the events describing those actions deserve more rigour than a spreadsheet nobody trusts. Contracts are how you get there.
If you want to see what they look like against your own data, come take a look at suky. I'd be happy to walk you through it.
— Kevin