The Rockhop logo in the navigation bar
The Rockhop logo in the navigation bar
October 21, 2026
Article | 
Power BI, Fabric

Medallion Architecture: Bronze, Silver, Gold, and How to Implement It

Overview

Medallion Architecture organizes lakehouse data into three layers. Bronze holds raw source data. Silver holds cleaned, validated records. Gold holds business-ready, aggregated datasets. Some builds add a fourth Raw tier in front of Bronze for messy, multi-format sources.

Every few weeks someone on r/dataengineering asks if anyone is actually moving away from Medallion. I build these on Databricks and Fabric, and I inherit plenty that teams built themselves first, so here’s my honest answer. 

Most Medallion builds are run as a project, scoped and shipped and walked away from, when they need to be built like a product that keeps working as the systems feeding it change.

Contents

What Medallion Architecture is, and why the layers exist

The three layers are Bronze, Silver, and Gold. About 3/4 of the teams I see use exactly this shape. The naming gets misused constantly, so start with what each layer is actually for, not just what it holds.

None of this is new. Data teams were running staging, cleansing, and a presentation layer decades before anyone called it Bronze, Silver, and Gold. Inmon’s staging and enterprise warehouse, the old ODS-to-semantic-model flow, hub-and-spoke. The names are recent. 

Maturing data through stages is not. That is a point in the pattern’s favor, not against it. It has survived 30 years of renaming because the underlying idea holds.

Bronze is Your Source Data, As-Is

People assume Bronze is just a dumping ground, but it has a specific job. If a source system fails or breaks tomorrow, Bronze is the point you can restart your warehouse from. You stay independent. You don’t break because someone upstream broke. That is the reason it exists, and it is why skipping it to save time is a false economy.

Silver is A Cleaned Copy

The data moves from Bronze to Silver, and on the way you fix it. Remove the noise, correct the bad values, handle the fields the source stored badly. Silver is intermediate. It is not where reporting happens, and most business users will never touch it. What you get at the end is data you can actually rely on.

The validation we almost always have to add here is quarantine. In-house builds tend to drop records that fail a rule, silently, so a row that doesn’t parse just disappears. We route failed records to a quarantine table instead, so the failure is visible and auditable rather than a number that doesn’t add up three months later.

Gold is Where the Business Looks

This is where the shift happens that data people describe as OLTP to OLAP: from transactional records to an analytical model built for fast reading. 

You aggregate. You denormalize. Ten tables in Silver might collapse to 3 or 4 in Gold. You pre-calculate the numbers the business asks for over and over, so gross profit or net income is already sitting in the table when someone opens the report, not recalculated on the fly every time.

The Gold problem we see most is a governance one. 

Every team builds its own Gold table for its own version of a metric, and you end up with five definitions of “active customer” in five tables, none of which agree. The fix is shared metric definitions governed at the Gold layer. Piling on more tables just deepens the mess. The inconsistency it creates is what erodes trust in the data.

Storage is cheap now. Compute is not. So you accept duplicating data into Gold, because paying for a bit more storage is cheaper than paying for the compute every time a slow report runs.

The 4th layer: Raw tier

Not every setup stops at three layers. When a client is pulling in messy, varied inputs, I often add a Raw tier in front of Bronze. 

Think about what a large enterprise actually ingests. Structured data from Oracle, Teradata, SQL Server. Semi-structured CSV and Excel exports. Raw JSON and XML files. Clickstream and analytics feeds that arrive as flat streams of whatever the source felt like sending. That variety is the problem Raw solves.

Bronze holds the same records as the source, but shaped into a structured, tabular form. Raw goes one step further back. It keeps the data and its original format exactly as they arrived. A JSON stays a JSON. Same number of records, same data types, nothing touched.

Say a source like Google Analytics stops sending data, because the subscription ended or the API changed. Your data is still sitting in your system in its original source format. You can restart the whole pipeline from Raw without depending on that third party at all. 

Bronze gives you independence from source downtime. Raw gives you independence from the source existing.

Raw pays off when you’re consolidating messy, multi-format data from many sources or APIs. On a clean single-source pipeline it is mostly duplicated data and extra pipelines to maintain, and some very good engineers will tell you it is not worth it there. They’re right for that case. Add the tier for the problem it solves, not because four sounds more thorough than three.

Is Your Data Foundation Ready to Scale?

Find the gaps across your data architecture, governance, and readiness before they become bigger problems. Get a clear view of where you stand and what to tackle first.
explore the ai data readiness assessment

Design Decisions Inside Each Layer

The three-layer definition is the easy part. The decisions the definition leaves open are where implementations succeed or fail.
Swipe to view
Decision Bronze Silver Gold
Schema Enforcement Minimal.
Accept the data as it comes
Strict.
Validate and quarantine bad records
Strict.
Enforce the consumption-ready structure
Data Retention Full history, append-only Validated records, keep reprocessing history Current and historical aggregates as needed
Who can see it Data engineering only Data engineering, data science, analytics engineering All authenticated business users
Transformation depth None beyond metadata Cleansing, deduplication, validation Aggregation, modeling, metric calculation
Write pattern Append-only Merge or upsert to deduplicate Full rebuild or incremental
Primary consumers Pipelines, audit, reprocessing Data scientists, ML pipelines, analytics engineers BI tools, analysts, AI systems, executives
Failure handling Accept and log, never fail on bad data Quarantine invalid records and alert Fail loudly, the quality gate has to hold
Two points on that table.

First, exposure. In a traditional warehouse you don’t expose Bronze or Silver. Both are transient, the place where data matures from a mess into something trustworthy. Only Gold goes to the business. That rule is changing, and I will come back to why in the AI section.

Second, ETL has flipped to ELT. You load into the warehouse first, then transform inside Silver. A real change, but common knowledge, not an angle in itself.

Where Medallion Breaks in Production

The most common failure I inherit is schema drift, and it is the clearest example of the project-versus-product problem.

You’re ingesting 25 columns from a source. Tomorrow the source sends 23. Next month it sends 27. In a normal build, that break stops the pipeline, and someone has to go back and manually fix the code that was expecting 25. Every team I have worked with has this problem. 

A lot of the time, a project-built pipeline assumes the source stays still. It never does. So the pipeline becomes a standing liability: someone has to watch the source and patch the pipeline every time it shifts.

The product way of thinking asks a different question. How do you build this so the source can change and nothing downstream even notices? The direction I push teams toward is a gate between the source and Bronze. A mapping layer that commits to a fixed structure. If the source sends 23 fields or 27, the gate holds its agreed set and keeps the data flowing in a stable shape. Everything past the gate is insulated from the churn. I will be honest that this is a design principle more than a finished product. I have seen it half-built, and I have seen the cost of not having it. The teams moving in this direction have far fewer pipeline breaks.

In the real world, drift still needs someone watching for it, and that is a genuine choice a client has to make. At Rockhop we handle it one of two ways. Either we run it as a managed service, here our team catches and fixes breaks within set monthly hours, or we hand over a runbook so their own team owns it. We run the managed side under SOC 2, because for most of these clients the pipeline is touching data they are audited on. Neither option is glamorous. Both are the difference between a system that keeps running and one that quietly rots.

The Other Mistakes We Clean Up

Schema drift is the one we see most, but it is not the only failure that shows up when we take over someone else’s build.

Aggregating in Silver

Silver is meant to hold clean, record-level data: one row per order, per customer, per transaction. Totals belong in Gold.

When a team adds summary tables to Silver because it’s convenient, say monthly revenue by region, Silver stops being a clean copy of the business and starts serving one report. Then the business changes how it calculates revenue, because it always does. Those Silver tables have to be rebuilt, and every Gold table built on top of them breaks too.

Keep Silver at record level and aggregate in Gold. Fixing this after the fact means untangling months of downstream dependencies, which is why I push on it early.
Read More

Skipping Bronze to Save Time

Teams ingest straight into Silver to move faster, and they lose the ability to reprocess from source when the transformation logic turns out wrong.

The storage cost of keeping Bronze is lower than the cost of re-ingesting from source systems that may not have kept the history. You find that out the day you need to reprocess and the source is gone.

Building Gold before Silver is stable

Elaborate Gold models on top of a Silver layer that is not properly cleaned yet just move the data quality problem downstream, where it is harder to see. The sequence is not optional. Bronze stability, then Silver quality, then Gold.

Databricks or Microsoft Fabric: How to Actually Choose

Any consultant who tells you one platform is objectively correct is selling something. 

Medallion runs the same way on both. It also runs on Snowflake, on AWS, on Google. The layers are a pattern, not a product.

So the real question is not which is better. It is which fits you. Here is the decision I walk clients through.
Swipe to view
What Drives the Choice Points to Databricks Points to Fabric
Existing stack and licensing Already invested in Databricks, team trained on it A Microsoft shop, existing Fabric or Azure licensing
Team skills Spark and notebook-heavy engineering teams Teams centered on Power BI and the Microsoft toolset
Where you’re heading Modernizing hard toward AI and ML Standardizing on one Microsoft ecosystem
The one place I do weigh in on the technology itself is AI. If a client is serious about modernizing toward AI, Databricks is generally seen as the more mature stack for AI and ML tooling right now. That is a reason to lean, not a reason to rip out a working Microsoft estate.

What Our Fabric Build Looks Like

Here’s the setup we use on client engagements, the large US retailer included, when the client runs on Fabric.

Swipe to view →
Layer Fabric Tools What We Do There
Bronze Fabric pipelines, Dataflows Gen2,
OneLake shortcuts
Land source data in OneLake as-is. Keep ingestion timestamps and source identifiers on every record, lock down access and hold source history to the client’s retention rules.
Silver Notebooks, SQL, Dataflows Gen2,
Delta tables in a lakehouse
Standardize formats, remove duplicates, handle missing values and apply shared business rules. Manage schema changes and quarantine invalid records for review.
Gold Lakehouse or warehouse, Power BI
semantic models
Publish fact and dimension models and the aggregations the business asks for. Define metrics once and apply row- and object-level security so each team sees only the data it should.

When Medallion is More Than You Need

The best answer I ever read in one of those “moving away from Medallion” threads was that the job of an architect is to pick the pattern that fits the problem, and that the worst architects know one way of doing things and force it onto everything.

Three governed layers on every pipeline, no matter the data, is that mistake. So here is where I tell clients not to reach for the full pattern.

Start with the question everyone actually asks: is three layers overkill, can I simplify?

Usually the honest answer is that three is the floor, not the ceiling. Going below it tends to cost more than it saves. The real simplification lever is not how many layers you have, it is how much each one does.

  • Bronze can be close to pass-through when upstream data already arrives clean and well modeled.
  • Gold can be views or materialized views over Silver rather than a full set of physical tables, when query performance allows it.
  • A heavy intermediate step can be dropped when it is not reshaping or reusing anything.

There is one simplification that backfires almost every time: cutting Silver. A team decides full Medallion is too much, drops the middle, and loses its model of the business. What is left is a pile of reporting tables with duplicated logic that slowly drifts out of sync, because nothing is genuinely reusable. Simplify what the layers do. Don’t delete the layer that holds your definition of the business together.

If we look at your setup and three governed layers is more than the problem needs, we say so. If we don’t see a clear return in building it, we don’t take the engagement. That is easier to say up front than to walk back later.

Medallion and AI Readiness

Remember the rule that you never expose Bronze or Silver. That is shifting, and it is worth understanding why, because it changes how you should design today.

Traditional consumers only ever wanted Gold: clean, aggregated, ready to chart. Data scientists and the teams building on LLMs want the opposite. They don’t want your cleansed and denormalized data. They want the raw information, so they can find their own patterns and run their own inference on the source as it actually was. The cleansing that makes Silver good for reporting throws away signal they need. We already see data scientists asking for Bronze access directly for exactly this reason.

So a Medallion build meant to serve AI has to do two jobs at once. Govern Gold tightly for the business, and keep a clean path back to raw Bronze and Silver for the data science and AI work. This is also where Raw-layer retention earns its place. A model that has to be retrained on years of history needs source data going back further than most analytics ever asks for, and it needs it in its original form. Design for that now and you avoid rebuilding the whole thing the day someone asks for it.

Where To Start

If you’re running Medallion already and any of the schema-drift symptoms sounded familiar, start with a diagnostic. Find out where your current pipelines actually stand, and whether drift is breaking things you have not caught yet, before anyone talks about a build.
If you know you want help, talk to a rocker. We build Medallion architectures on both Databricks and Fabric, and just as often we come in to fix ones that were built as a project and never made it as a product.

You have a vision. 
Our experts will help you achieve it.

Microsoft Power Platform Logo
Microsoft Power BI logo
Microsoft Copilot Logo
Power Apps logo
Microsoft Dataverse Logo
Microsoft Power Automate Logo
talk to a rocker
crosschevron-upchevron-downarrow-right