Hesitating to merge your PR? Explore data profiling with Recce
A simple change that seems harmless can unexpectedly break production data. You want to do your job well, but you don’t want to overthink a one-line change. We get it.
Take this simple change in the customers
model (PR#1) to adjust how customer lifetime value is calculated.
It’s just one line of code. What could go wrong?
But this model feeds into downstream logic like customer_segment
, where customers are labeled as High Value, Medium Value, or Low Value.
If the change accidentally lowers lifetime values, “High Value” customers might now show up as “Medium” or “Low.”
That’s where profiling comes in.
Profiling helps you:
- See the shape and summary of each model (nulls, distributions, value ranges)
- Spot unexpected changes before they hit production
- Understand the real impact on downstream models — especially segmentation logic like above
With Recce’s data profile, you can:
- See the value distribution of
customer_lifetime_value
- Check min, max, average values before and after the change
- Spot if there’s a drop in overall customer value
See your data profile in Recce with just 2 commands:
pip intall Recce
recce server
This launches Recce locally with your dbt project and gives you:
- A lineage graph
- One-click data profiling for each model
- Run history to compare changes over time
You can run profile in Recce and eyeball differences between runs using history.
We know spotting subtle changes takes an eagle-eye 🦅👁️, focus, and patience.
There’s a better way! Configure two environments to unlock profile diff like this:
Start Recce with the dbt project you’re working on, with just 2️⃣ commands to prevent a bad merge into production.