All posts
Building something data-heavy

The layer you never query
is the one that saves you

By Woodfrog · 6 min read · Accurate as of

Medallion architecture is easy to dismiss as three copies of the same data with extra steps. The argument for it only becomes obvious at the moment something goes wrong, which is also the moment it is too late to adopt.

What each layer is for

Bronze is what arrived, unmodified, including the parts that were wrong. Silver is cleaned, typed, deduplicated and conformed. Gold is shaped for consumption: the aggregates and models that reports and metrics read.

The discipline that matters is that bronze is never edited. It is an append-only record of what the source actually sent, timestamps included.

The day it pays for itself

Six months in, somebody discovers that a transformation has been subtly wrong since it was written. A currency conversion applied at the wrong point, a join that silently dropped rows without a match, a filter that excluded a category nobody thought about.

With bronze intact, this is a bad week: fix the logic, reprocess from raw, and the corrected history appears. Without it, the wrong values are the only values you have, and the honest answer to what the number should have been is that nobody can reconstruct it.

Why this matters more for a product than for reporting

If the data is behind an internal dashboard, a gap in history is embarrassing. If it is behind a feature your customers use, or a figure you have reported externally, it is a different category of problem.

Products also change shape more often than reporting does. The gold layer for a feature will be rebuilt several times as the feature evolves, and each rebuild wants the full history recomputed under the new logic.

The objection about storage

Keeping raw data costs storage, and storage is the cheapest thing in the stack by a wide margin. The comparison is not storage against savings, it is storage against the cost of not being able to answer a question about your own history.

The one case where this genuinely needs thought is data you are not permitted to retain. That is a real constraint, and it is handled with retention rules on bronze rather than by not having bronze.

On these comparisons. Billing models are stable and publicly documented, and that is what is described here. Specific list prices are not, because they move and because real contracts are commonly well below list at volume, so ask any vendor what they would actually quote you. Reviewed August 2026, next review February 2027.
Next step

See it on your own data.

Thirty minutes on the half you came for. Bring the report that breaks every month, or the decision you never settled.