Recce · 2025–2026

Recce: showing data engineers the impact of pipeline changes

A change to one upstream table can ripple through dozens of others; we made the ripple visible.

Client
Recce, a change-review tool for dbt projects
Year
2025–2026
The users
Data engineers reviewing changes to a dbt pipeline
What I did
Data visualization and user experience design
Recce's lineage graph with modified models in brown and impacted models in yellow
Recce's lineage: modified models in brown, the models they affect in yellow.
1Who were the users?

Data engineers changing one model in a project of hundreds, or thousands.

dbt is the language of data transformation. Each model is expressed as a series of queries and operations on the ones upstream of it. Before they merge a change, they want to know whether there is unexpected downstream impact.

A dbt project's lineage: raw tables feeding staging models feeding downstream models
A demo dbt project in Recce. Two staging models changed; everything built on them is marked yellow.
2What was the challenge?

A small change can quietly touch columns many models away.

A small upstream change can have a huge downstream impact. A small change to a string operation, for example, might affect downstream JOIN and GROUP BY operations.

Changes can affect both the structure of the graph – which tables depend on which others – or the semantics of the data itself.

Recce's sidebar for a downstream model, with its STATUS column flagged
A downstream model, flagged because its STATUS column is affected by an upstream change.
3What did we learn?

Watching users work with Recce.

We started by watching user telemetry, conducting interviews, and looking at server-side data. We learned about how many different tables could be impacted by the typical changes that our customers were making, and how far downstream those changes rippled.

We found that cascading changes were common: that it was common to make a small tweak that could touch hundreds of models – and that users felt responsible for ensuring data quality before merging.

4What did we build?

Impact on the lineage graph, and a before-and-after histogram for every changed column.

We made a series of changes that were all meant to help show what had changed in a model. The lineage overview clearly labeled each impacted model. When an analyst looked at a single model, we showed precisely which columns were impacted, and drew a small paired histogram to compare the previous and current versions.

We had to carefully balance which features were on by default: there was additional computational cost of computing the histograms and the lineage impact.

A Distribution column of paired histograms in the schema view
Added a Distribution column in the schema view.
5What was the outcome?

Recce with superpowered impact analysis.

The new lineage experience and the inline distributions landed in Recce, and were rolled out gradually to users.

Other projects