On this page
A revenue dashboard can show one number while the path behind it has already changed. The input was refreshed. A join key was remapped. A filter moved from the query into a manually maintained sheet. The number still has a label, but another analyst cannot tell whether it is the same object as last month.
Data lineage is the trace from a declared output or decision back through the input versions, transformations, joins, filters, aggregations, and downstream uses that produced it. It is a reconstruction boundary, not a badge of truth.
The revenue event-schema article owns the design of immutable commercial events. The evidence-review article owns the question of what evidence deserves to survive a decision. This page owns the path between a data object and the result that consumes it.
What does data lineage mean?
The word lineage is often used for a catalog of tables, a list of upstream systems, a warehouse feature, or a diagram on a wall. Those can be useful representations. They are not yet a reproducible trace unless the objects, versions, operations, and output use are identified.
The World Wide Web Consortium’s PROV-DM model gives a useful general vocabulary. It represents provenance through entities, activities, and agents, and includes relations such as usage, generation, derivation, association, and attribution (World Wide Web Consortium, 2013). The standard gives us a way to describe what participated in producing an object. It does not certify that a source or transformation was correct.
The practical distinction is:
| Object | Question it answers | Minimum record |
|---|---|---|
| Provenance | Which entities, activities, and agents were involved? | Entity, activity, agent, relation, time |
| Data lineage | Which path and operation produced this field or result? | Input and output version, operation, key, timestamp, owner |
| Data quality | Does the resulting field fit the declared decision? | Rule, observed state, evidence, exception, disposition |
| Event history | Which business events occurred, and when? | Immutable event, subject, type, effective time, ingestion time |
Table 1What does data lineage mean?
Source: Table from this essay. Sources and interpretation are given in the article.
Provenance is the broader context. Lineage is the applied path. Data quality is the fitness judgment. Event history is an observation record. One does not substitute for the others.
Which fields make a lineage trace reproducible?
Start with the result, not the diagram. Write down the unit and decision first, then preserve the objects that connect the result to its inputs:
- Output: the field, table, metric, or decision object being explained.
- Input: each source object, its owner, and its exact version or snapshot timestamp.
- Operation: the filter, standardization, join, aggregation, calculation, or manual edit.
- Key: the field or compound key used to connect records, including its uniqueness test.
- Clock: event time, ingestion time, processing time, and the reporting cutoff where they differ.
- Validation: the check that the operation produced the expected row count, grain, or boundary.
- Use: the dashboard, report, model, or decision that consumes the output.
- Exception: late data, failed check, changed rule, manual override, or unresolved mismatch.
The output needs a version too. A current table is not a stable object merely because its name stayed the same. A time-stamped snapshot can be compared with another snapshot. An event stream can answer a different question about what happened between them.
What does a lineage graph look like?
The following six rows are synthetic. They show the level of detail needed to reconstruct a small result. They are not warehouse records, customer records, or a current company’s data.
| ID | Input object and version | Transformation | Key or grain | Output object | Validation and use |
|---|---|---|---|---|---|
| L-01 | Event snapshot E-2026-08-31 | Filter event_type = qualified | One event ID; unique check passed | Eligible-event table V1 | Row count reconciled to snapshot; routing report |
| L-02 | CRM account snapshot A-2026-08-31 | Normalize country and segment | Account ID; duplicate check pending | Account-segment table V2 | Held until duplicate review; territory view |
| L-03 | Invoice lines I-2026-08-31 | Join to product map P-17 | Product key; many-to-one expected | Revenue-by-line table V3 | Join cardinality passed; PVM bridge |
| L-04 | Usage events U-2026-08-31 | Aggregate by account and 14-day window | Account ID and window end | Activation cohort V1 | Window cutoff recorded; activation analysis |
| L-05 | Manual exception sheet X-2026-09-01 | Add approved exclusion | Account ID; manual owner named | Admitted-cohort V2 | Rule change logged; dashboard refresh |
| L-06 | Late event file E-late-09-02 | Backfill prior snapshot | Event ID; version supersedes V1 | Reissued result V2 | Prior result invalidated; review reopened |
Figure 1The synthetic lineage reconstruction table
The rows are illustrative. Each output keeps its input version, operation, key, validation state, and downstream use visible.
Source: Author's synthetic table grounded in World Wide Web Consortium (2013) PROV-DM; all rows and dispositions are illustrative.
The table does not claim that the output is right. It makes the claim inspectable. L-02 is held because the expected key relationship has not yet passed. L-05 records a manual operation rather than hiding it in a notebook. L-06 shows that a late input can invalidate a previously issued result and reopen the decision.
Where can data lineage fail?
The common failures are structural:
- Snapshot substitution: a current table is compared with a prior event population without a shared cutoff.
- Join multiplication: a many-to-many join creates extra rows while the metric keeps the old denominator.
- Key drift: a renamed account, product, or territory breaks the path between versions.
- Late-arriving data: backfill changes a historical result but no invalidation or reissue is recorded.
- Hidden manual work: a spreadsheet correction changes the output without an owner, rule, or version.
- Unobserved filter: a query or dashboard applies a filter that the metric definition does not mention.
A lineage graph can expose each break. It cannot repair a bad source, decide whether a proxy measures the intended construct, or turn a descriptive result into a causal effect.
How should a team review a reported result?
Ask the owner to replay one result from the output backward:
- Name the output, unit, reporting cutoff, and decision.
- Resolve every input to a held version or timestamped snapshot.
- Write each operation in order, including manual edits and exclusions.
- Test every join key for expected grain and cardinality.
- Reconcile input and output counts, totals, and boundary changes.
- Mark late data, failed tests, superseded versions, and unresolved edges.
- State whether the result is reproducible, held, reissued, or not reconstructable.
If the path cannot be replayed, narrow the result to the portion that can. If it can be replayed, keep the source-quality, measurement, causal, and transfer questions separate. Lineage answers how a result was produced. It does not answer whether the result is true or what caused it.
References
- World Wide Web Consortium. (2013). PROV-DM: The PROV Data Model. W3C Recommendation. Source page