Data / Completed
Unified Campaign Warehouse
A small warehouse pattern for combining platform exports into one queryable model — one definition of spend, one definition of a conversion.
Started 2023-03-04 / Updated 2025-05-19
Every ad platform is confident about its own numbers and indifferent to everyone else's. The warehouse exists to make those numbers comparable rather than to make them agree.
The pattern is deliberately small: it fits in a single database and can be understood by one person in an afternoon.
The three-layer model
Raw, conformed, reporting — and nothing skips a layer.
- Raw: platform exports stored exactly as received, immutable.
- Conformed: shared dimensions for date, channel, campaign and market, with platform quirks resolved explicitly.
- Reporting: the views the business queries, with metric definitions documented in the same repository.
Naming is the hard part
The technical work is a week. Agreeing what a campaign, a market and a conversion actually mean across teams is the rest of the project — and it is the part that decides whether anyone trusts the output.
What it enabled
Once spend and conversions were conformed, cross-channel questions stopped being spreadsheet exercises. It also made the agentic reporting experiment possible, because there was finally a clean structured input to give a model.
Setup
- Domain
- Data
- Layers
- Raw / Conformed / Reporting
- Definitions
- Versioned alongside the SQL
- Status
- Completed, in use
Want the detail behind this experiment?
If this overlaps with something you're building, I'm happy to share what worked and what didn't.