Skip to content
Back to the journal

Field guide

141

Measurement & Growth

10 min read

141 / 141

Product Analytics Event Governance: Keep the Data Contract Trustworthy

Change an analytics event without breaking meaning, dashboards, cohorts, privacy controls, ownership, or historical comparison.

Topics Analytics Metrics Growth

Share this field guide

Renaming an analytics event can change a product metric without changing a single user’s behaviour.

One client sends the old name. Another sends the new one. A dashboard counts only one. Conversion appears to fall, a team investigates the product, and the real change happened in instrumentation.

Event governance exists to prevent that category error.

It is not a committee that approves punctuation. It is the set of contracts, owners, tests, and migration rules that keep behavioural evidence interpretable as products and code change.

An event is a claim about behaviour

An event name alone says very little.

checkout_started could mean a page loaded, a person clicked a button, a server created a session, or a valid basket entered payment. Those moments answer different questions.

Treat every event as a contract with at least these fields:

Contract fieldQuestion it answers
MeaningWhat user or system behaviour does this event represent?
ActorWho or what performed it?
TriggerWhat exact condition emits it?
Observation pointWhich client or service records it?
PropertiesWhich dimensions are allowed, required, and defined?
IdentityHow is the actor or session linked, merged, or left anonymous?
PurposeWhich product decision, metric, or control uses it?
OwnerWho resolves ambiguity and approves change?
Privacy classWhat data is permitted, restricted, or prohibited?
LifecycleWhich version is active, deprecated, or retired?

Amplitude’s documentation defines a tracking plan as every event and property collected, why each is collected, and which source emits it.

That is a useful minimum. The plan should be close enough to implementation that code and analysis can be checked against it.

Govern meaning before naming

A naming convention can make a catalogue tidy while two teams still use the same event differently.

Begin a new event proposal with the decision it serves.

For example:

We need to know where eligible buyers abandon checkout after seeing the full price, so we can decide whether to change payment choice or fee disclosure.

Now define the event boundary. If checkout starts when the page renders, failed loads disappear. If it starts after a button click, the population differs. If bots and internal tests remain, the denominator shifts again.

Connect the event to the product metrics practice. A metric contract depends on raw behavioural contracts but should not be confused with them.

One event can support several metrics. One metric may require several events, identity rules, exclusions, and time windows.

The harmless rename that broke conversion

Consider a fictional marketplace with web and mobile clients.

Its established funnel uses:

  • product_viewed;
  • checkout_started;
  • order_completed.

A mobile team prefers verb-first names and changes checkout_started to begin_checkout. The payload and user experience are intended to remain the same.

The web client still emits the old event. Mobile version 8.4 emits the new one. The main dashboard continues to count only checkout_started.

Within days, the apparent mobile checkout-start rate falls. Completed orders do not fall by the same amount.

The mismatch is a clue, not proof. The analytics team traces event volume by app version and finds the new name.

The rename created two histories for one claimed behaviour. Any cohort, experiment, alert, attribution rule, or audience using only the old name now sees a different population.

The team has three options.

Keep both names indefinitely

This protects code compatibility but leaves every analyst to remember a union. Definitions drift and double counting becomes likely if a client emits both.

Replace the old name everywhere immediately

This promises a clean future but breaks older app versions and historical queries. Mobile clients may remain in use long after the release.

Restore the wire contract and govern the display name

Because the meaning did not change, the team chooses the third option. Mobile restores checkout_started in its next patch.

The catalogue may display a clearer business label without changing the emitted identifier. Naming neatness is not worth splitting the evidence.

For the affected window, the team creates one canonical transformation that unions both identifiers and deduplicates by a stable event ID. It records the exact start and end versions of the incident.

Dashboards and cohorts move to that governed view. Analysts do not each invent a repair.

This migration preserves historical comparison as far as the available IDs and timestamps allow. If duplicate IDs are missing, the team must disclose possible overcounting rather than claim a perfect backfill.

When a new version is justified

Sometimes meaning really changes.

Suppose checkout previously started when the page rendered, but the new product wants to measure a buyer’s explicit intent after reviewing price. Reusing the old event would merge different behaviours under one name.

Create a new contract. A versioned event or property should state:

  • what semantic change occurred;
  • which clients and versions can emit it;
  • how old and new events relate;
  • whether historical comparison is valid;
  • which metrics migrate and when;
  • when the old contract stops accepting new producers.

Do not use a version suffix for every property addition. Version when the meaning, identity, trigger, or interpretation changes in a way consumers cannot safely absorb.

OpenTelemetry’s stability specification is instructive here. Telemetry and semantic conventions behave like contracts because breaking changes can damage downstream consumers and analysis.

Product analytics stacks differ, but the compatibility lesson holds: producers do not own the event alone. Dashboards, models, audiences, experiments, and privacy processes are consumers.

Review change across the lineage

Before approving an event change, find its downstream uses.

The lineage review should cover:

  1. client and server producers;
  2. collection and validation rules;
  3. transformations and identity stitching;
  4. warehouse models and semantic layers;
  5. dashboards, funnels, and cohorts;
  6. experiment exposure and outcome definitions;
  7. activation audiences and messaging;
  8. retention, deletion, and consent controls;
  9. alerts, forecasts, and machine-learning features.

This is where analytics infrastructure matters. Governance follows meaning through the evidence path rather than treating the tracking SDK as the whole system.

Unknown lineage is itself a migration risk. If the team cannot identify consumers, deprecation should be slower and monitoring stronger.

Validate the contract at several boundaries

Seeing an event in a debug console proves only that something arrived.

Use layered validation.

Schema validation

Check allowed event names, required properties, types, enumerations, and prohibited fields before malformed data spreads.

Semantic validation

Test that the documented trigger matches product behaviour. A valid payload emitted twice or at the wrong moment is still wrong.

Identity validation

Check anonymous-to-known transitions, device changes, shared accounts, and deletion behaviour. Identity rules can alter user counts without changing event volume.

Distribution validation

Compare volume, property completeness, duplicates, and client versions against an expected range. Treat an anomaly as an investigation prompt, not automatic evidence of a defect.

Decision validation

Run the metric or cohort that motivated the event. Confirm that stakeholders interpret it consistently and that known edge cases are visible.

Google Analytics distinguishes automatically collected, enhanced, recommended, and custom events. Its recommended events use defined names and parameters for supported reporting.

That platform taxonomy should not be copied blindly into another tool. It does show why a documented contract can keep downstream behaviour consistent where an arbitrary custom name will not.

Privacy is part of the schema

An event property can quietly become a new personal-data collection surface.

Do not allow free-form text because it might be useful later. It can capture names, messages, health details, credentials, or other information nobody intended to analyse.

For every property, record purpose, allowed values, retention, access, and the applicable collection condition established by the organisation’s privacy process.

Validate prohibited properties at collection where possible. Documentation alone cannot stop an email address entering a field called search_term.

Changing consent state or identity treatment can alter historical comparability. The event governance record should mark that discontinuity instead of smoothing it away.

Deprecation is a product change

Deleting an event from the catalogue does not stop old clients from sending it or old dashboards from querying it.

Use an explicit deprecation path:

  1. announce the replacement and semantic difference;
  2. stop new producers from adopting the old contract;
  3. instrument the replacement behind validation;
  4. run both only when a safe comparison and deduplication plan exists;
  5. migrate named consumers and verify their outputs;
  6. monitor old-event volume by producer version;
  7. close ingestion only after the support window and exceptions are understood;
  8. retain historical definitions with effective dates.

Dual emission is not automatically safe. If both events represent the same action, a naïve funnel may count two starts. Prefer shadow validation or a canonical deduplicated view when possible.

This is similar to conversion tracking: the denominator, identity rule, and observation window must survive implementation changes.

Give governance a fast path

Teams route around governance when every small addition needs a meeting. Use risk-based paths.

An optional, non-sensitive property with no semantic change may need automated schema checks and owner review.

A changed trigger, identity rule, free-text field, or event used in executive reporting needs lineage review and a migration plan.

Maintain a small group of accountable owners, not a large audience of passive approvers. Product explains the decision, engineering owns emission, analytics owns interpretability, and privacy or security joins where the data demands it.

Use data-platform understanding to make ownership across producers, pipelines, models, and consumers explicit.

The event-change record

A practical request can fit on one page:

  • current contract and owner;
  • proposed semantic or schema change;
  • product decision served;
  • affected producers and consumers;
  • identity and privacy impact;
  • compatibility and history impact;
  • validation evidence;
  • migration and rollback steps;
  • deprecation date and exception policy;
  • known limits in restored or comparable data.

For the fictional rename, the decision record would show that no semantic change justified a new wire identifier. The repair keeps one contract, one governed historical view, and one disclosed period of uncertainty.

Good event governance does not guarantee that a metric represents the right product outcome. It guarantees something more basic and indispensable: when the team debates the outcome, it is using evidence with a known meaning.

Sources

Related books

If you want to go further on this topic, these are two good places to start.

01

communication

The Pyramid Principle

by Barbara Minto

The foundational framework for structured communication, teaching how to present ideas in a clear, logical hierarchy that makes complex information accessible.

Some outbound links are affiliate links and support independent bookstores.