Data Lineage: How Data Teams Trace Where a Number Came From and What Breaks When It Changes

Last updated: June 2026

It is the Monday before a board meeting, and the CFO has one question about the revenue slide: where does this number come from? She is not asking in the abstract. She wants to know which source system, which transformations, and which assumptions produced the figure she is about to defend. The analyst who built the slide knows it came from the finance mart. The finance mart was built by someone who left in March. Three hours later, two engineers are reading dbt models line by line, grepping for a column name, and rebuilding a chain of joins nobody has looked at since it was written. The number turns out to be correct. Proving it took most of a day.

That is the everyday version of the problem data lineage exists to solve, and it shows up in two directions. Looking backward, lineage answers where a number came from and what happened to it on the way. Looking forward, it answers what will break if you change something upstream. Most data teams have some version of this knowledge today, scattered across tribal memory, half-current diagrams, and the one engineer who remembers how the billing pipeline actually works. The argument for treating lineage as real infrastructure is that those informal sources fail at exactly the moment you need them most: during an incident, before a migration, or in front of an auditor.

This guide covers what lineage actually is at the level of detail that matters, why it has stopped being a documentation side project, what the numbers say it is worth, and where it quietly fails even when teams have it.

The two questions lineage is built to answer

Every use of lineage reduces to one of two questions, and they run in opposite directions.

The backward question is provenance. A number looks wrong, or a stakeholder wants it justified, and you need to trace it from the dashboard back through every transformation to the raw source. WhereScape frames this as the track-back view, and pairs it with a track-forward view for the opposite case, noting that each solves a different operational problem. Track-back is the one that ends arguments about whose number is right, because it replaces opinion with a path you can point at.

The forward question is impact. You are about to rename a column, deprecate a table, or change a business rule, and you need to know what depends on the thing you are touching before you touch it. This is the question that turns a five-minute change into a postmortem when it goes unanswered. Microsoft’s own definition, cited in that same WhereScape piece, describes lineage as the lifecycle of a dataset across the data estate, supporting troubleshooting, quality analysis, compliance, and impact analysis. The phrasing is dry. The consequences are not.

Both questions sound simple until you try to answer them in a stack with a dozen sources, a transformation layer, and three BI tools, where the path from a raw event to a board metric passes through systems owned by four different teams.

Table-level versus column-level, and why the resolution decides everything

Lineage comes at different resolutions, and the resolution is what determines whether it is useful or merely decorative.

Table-level lineage tells you that the revenue_daily table feeds the exec_summary table. That is enough to sketch how data moves and to give a new hire a mental model of the stack. It is not enough to debug a wrong number, because a table can have a hundred columns and the failure is usually in one of them. Column-level lineage tells you that the net_revenue field in exec_summary is computed from gross_amount minus refund_amount in revenue_daily, which itself came from a specific column in a specific source. Databricks notes that modern lakehouse platforms capture this column-level detail automatically, and that the granular audit trail it produces is what makes debugging fast rather than archaeological.

The difference is not academic. When a manufacturer’s quality dashboard suddenly doubled its defect rate, engineers used column-level lineage to trace backward through three transformation layers to a single sensor calibration error introduced during maintenance, then reprocessed only the affected batches. Without that resolution, the same investigation is a guessing game across the whole pipeline. IBM’s overview makes the related point that the granular audit trail is also what satisfies regulators under regimes like GDPR and CCPA, where you have to show not just what a number is but how it was produced and who handled it along the way.

There is a second axis worth naming. Technical lineage describes columns and transformations for engineers. Business lineage links those technical assets to the metrics and definitions that non-technical stakeholders actually ask about. A serious lineage practice needs both, because the engineer debugging a join and the analyst defending a KPI are looking at the same flow through different lenses.

Why lineage stopped being a documentation project

For years, lineage meant a diagram. Someone drew the data flow in a wiki, it was accurate for about a quarter, and then reality drifted away from it. The fatal weakness of manual lineage is that it lags the system it describes, which means the one time you reach for it in an emergency is the time it is most likely to be wrong.

What changed is that lineage is now generated rather than drawn. Platforms parse SQL, read query logs, and pull metadata from transformation tools to construct the graph automatically and keep it current as the code changes. The other shift is standardization. OpenLineage, now an open standard under the LF AI and Data Foundation, defines a common format for emitting lineage metadata so that a pipeline, a warehouse, and a BI tool can all contribute to one graph instead of each vendor keeping its own private map. This matters more than it sounds, because the most common failure of lineage in practice is not that a team lacks it but that they have three partial versions of it trapped in three tools that do not talk to each other.

The practical upshot is that the question has moved from whether you can produce lineage to whether you can keep it complete and trustworthy at the boundaries between systems, which is where it tends to thin out.

What the numbers say it is worth

The case for lineage used to rest on anecdotes. It now has measurement behind it.

In a 2026 IDC study of its cloud customers, DataHub reported that interviewed organizations moved 119 percent more machine learning models into production and saw a 24 percent lower project failure rate, with one customer going from no lineage at all to roughly 90 percent coverage. The interesting detail in that writeup is the insistence that none of the numbers come from lineage in isolation. They come from lineage living in the same graph as quality signals, ownership, and discovery, so that a broken node tells you not just what failed but who owns it and what sits downstream.

The incident-resolution side shows the same pattern. Monte Carlo’s lineage guide describes a data team that paired lineage with observability to cut incidents by about 90 percent, and it captures the impact case in one concrete image: rename a column in a source table, and lineage shows you the dozens of reports that will fail if you do not update them too. That visibility is the difference between learning about a break from your own tooling and learning about it from an angry email.

The honest framing is that the return depends on resolution and placement. Table-level lineage stuck in a silo saves some time on tracing within one tool. Column-level lineage wired into the workflows where people actually make changes is what produces the compounding numbers.

Impact analysis: moving the check before the deploy

The highest-leverage use of lineage is the one that happens before anything breaks.

The pattern gaining ground in 2026 is putting the impact check inside the code review. Atlan describes surfacing a blast-radius view directly in GitHub and GitLab pull requests, so that before a dbt model change merges, the engineer already sees which reports, models, and teams it will affect. This converts impact analysis from something you do after a stakeholder complains into something you do while you still have the option not to ship the change. It is the same shift-left instinct behind data contracts, and the two reinforce each other: a contract states the agreement, and lineage shows you who is relying on it.

This is also where lineage closes part of the gap that lets pipelines fail silently. A renamed column that arrives empty does not throw an error, but a lineage-aware impact check at the moment of the rename would have flagged every downstream consumer before the change ever reached production. Lineage does not catch the failure. It removes the conditions that let the failure stay quiet.

When AI is the one asking, lineage becomes the receipt

A new pressure on lineage arrived with conversational analytics. Once an AI assistant can answer questions over the warehouse, someone is going to act on an answer that no human wrote and no analyst reviewed, and the first question a serious organization asks is how to trust it.

Lineage is the mechanism that makes an AI answer auditable. If the assistant says revenue grew 12 percent, lineage is what lets you trace that figure back through the metric definition, the transformations, and the source, rather than taking the model’s word for it. The same logic that makes a governed conversational layer like QuantumLayers’ QL-Agent trustworthy applies here. An agent is only as reliable as its ability to ground an answer in data whose origin can be traced, and an answer you cannot trace is a liability dressed up as an insight. This connects directly to the governance work that MCP and the semantic layer are pushing teams toward, where the protocol moves the data and lineage proves where it came from.

Regulation is sharpening the point. As AI starts to influence decisions in finance, healthcare, and operations, frameworks like the EU AI Act expect organizations to show how a model’s inputs were produced, which is a lineage question wearing a compliance label.

Where lineage quietly fails

Lineage has failure modes of its own, and teams that adopt it without naming them tend to be disappointed.

The first is noise. A large stack has thousands of tables and millions of columns, and a lineage graph that renders every possible connection becomes a firehose nobody can read. Monte Carlo’s guide is blunt that lineage without filtering and focus becomes unusable, because engineers need the path relevant to one specific question, not a map of the entire universe. Coverage that is technically complete but practically unreadable is its own kind of failure.

The second is boundary gaps. On-premise databases connect to cloud warehouses through custom scripts, managed services transform data in ways you cannot inspect, and third-party vendors hide their logic behind APIs. Each boundary is a place where the lineage graph can break, and chasing complete coverage across every combination is the kind of endless task most teams cannot sustain. This is exactly the problem OpenLineage is meant to ease, and it is the reason coverage at the edges, not the center, is the real test of a lineage deployment.

The third is staleness. Automated lineage solves this for systems it can parse, but any manually maintained piece drifts the moment someone forgets to update it. As WhereScape puts it, the goal is lineage that is actionable rather than decorative, and decoration is what you get when the map stops matching the territory.

What to instrument first if you are starting from zero

If your team has no real lineage today, resist the urge to buy a platform and try to map everything. Sequence it instead.

Start with the data flows that would cause the loudest meeting if they were wrong, which usually means the metrics that go to leadership or into regulatory reporting. Document those end to end, at column level, even if you have to do some of it by hand at first. Second, wire the lineage you build into a workflow people already use, whether that is impact checks in pull requests or a lineage view inside your catalog, because lineage that lives in a separate tab nobody opens delivers almost none of its value. Third, pick a number to watch so you can prove it worked: incident resolution time and audit response speed are the two that move first and are easy to measure.

The goal of the first quarter is not coverage. It is to change the answer to where does this number come from from a half-day investigation into a question you can answer while the person is still on the call. Even a partial version of that shift changes how much the rest of the organization trusts the data team.

The bottom line

Lineage stopped being a diagram and became infrastructure for a simple reason: the questions it answers are the ones that arrive under pressure. Where did this number come from, and what breaks if I change it, are not abstract governance concerns. They are the questions behind every incident, every migration, and every board slide that has to hold up.

The teams getting value from lineage in 2026 are not the ones with the most complete graph. They are the ones whose lineage is column-level where it counts, current because it is generated rather than drawn, connected across tools instead of trapped in three of them, and placed inside the workflows where people make changes. Get that right on your highest-stakes data first, and the next time someone asks where a number came from, the answer takes minutes instead of a day.


Lurika is an independent publication covering data analytics. We are not owned by any analytics vendor.