Raw events to revenue
Every other page on this site is one floor of the same building. This is the whole structure: the architecture that carries raw source data all the way to ad platforms bidding on modeled value. It is shown here as one process run at two very different scales, an SMB service company and a global enterprise.
The tower
Each floor depends on the one below it. Raw lands untouched, staging cleans and conforms, Kimball marts make it queryable, then identity, machine learning, and attribution make it mean something, and activation sends modeled value back out to bid. Numbers shown are from the enterprise build.
One process, two scales
This is one architecture run at two very different sizes. The floors are identical; only the volume changes. Each chart below is labeled with the build it comes from, an SMB gain or an enterprise gain, so the same pattern is legible whether it runs on 20 million rows or 200 million.
The SMB is a regional home-services company whose systems shared no common key. The enterprise is a global company whose raw stage spans roughly 200 million rows and hundreds of dimensions. Both climb the same floors in the same order.
Land everything, lose nothing
The bedrock rule is that raw tables are exact, append-only replicas of each source. Nothing is edited or “fixed” on the way in. The reason is durability: a source can change its schema, restate its history, or break, and the warehouse still holds the original record to rebuild from. Cleaning happens one floor up, never here.
Depending on the business, this means joining anywhere from 10 to 30 sources into one place: CRMs, ad platforms, GA4 exports, web events, call tracking, form software, Search Console, YouTube Studio, account-enrichment tools such as Demandbase and later 6sense, and third-party market intelligence.
The same floor plan, 20M to 200M rows
Log scale. The architecture does not change with size. It has run on roughly 20 million rows of marketing and sales data for an SMB and over 200 million for a global enterprise, each within a 12-month window.
The discipline floor
Bulk APIs re-send everything on every run, so raw layers fill with duplicates by design. Staging is where that noise is removed: deduplicate on business keys, normalize phone numbers and emails, cast types, and quarantine anything malformed. The example beside this is the SMB contractor's CRM, where 9.4 million raw contact rows resolve to 67,500 clean ones. Every join above this floor is only as reliable as this step.
Raw vs. staged row counts
Log scale. The gap between the raw and staged bars is the duplication the rest of the warehouse never has to see.
What Kimball modeling is, and why it matters
The production layer follows Kimball dimensional modeling, the standard method for shaping a warehouse around analysis rather than around transactions. Instead of the highly normalized tables an application uses, the data is reorganized into a small set of shapes that answer business questions directly.
A fact table records events at a declared grain, for example one row per order line or one row per touchpoint, and holds the measures you add up. Dimension tables hold the descriptive context you filter and group by, such as customer, product, campaign, and date. A dimension is conformed when the same table is shared across every fact, so “customer” means the same thing in a revenue query and a support query.
Bridge tables handle the cases where a relationship is genuinely many-to-many, such as one web session mapping to several identities, without corrupting the grain of the fact. Surrogate keys, the simple integer keys the warehouse assigns, replace unstable source IDs, so a record survives a system migration or a re-used natural key and its history stays intact. One fact surrounded by its conformed dimensions forms a star schema, the shape most BI tools and query engines expect.
The benefits compound. Reporting gets simpler, because analysts join a fact to a few dimensions instead of tracing a web of application tables. Queries get cheaper and faster, because BigQuery prunes and scans predictable, denormalized stars. The model tolerates change: when a source system or a business definition shifts, the change is absorbed in staging and the dimension, not in every downstream report. And because the tables are named and shaped around business concepts, both analysts and language models reading the warehouse interpret it correctly, which matters more as querying moves through AI.
“The dimensional model is the only viable technique for achieving both user understandability and high query performance in the face of ever-changing user questions”
The star at the heart of every mart
One fact at one grain, dimensions conformed so 'customer' and 'campaign' mean the same thing in every query, including the identity bridge that ties anonymous behavior to known people.
The identity graph is the first floor that makes the data mean something. For the SMB it unified 48,117 identities from phone-first systems that shared no key. For the enterprise it layered deterministic and probabilistic matching across the full raw stage, reconnecting the majority of opportunity pipeline value that deterministic matching alone left dark.
BQML models run where the data lives: SQL in, predictions out, no pipelines to maintain and no MLOps tax. The enterprise lead model separates its top decile from its bottom by 33x on conversion rate, so every lead carries a probability before sales ever sees it.
Data-driven attribution fit a model per funnel stage, up to opportunity creation, and re-priced every channel's credit against the linear baseline across 3.1 million reconnected touchpoints. For the SMB it took paid attribution from 8.8% to 26.5% of won revenue.
The crown sends modeled value back to the ad platforms: offline conversions with click IDs, enhanced conversions, and value rules. For the SMB, cleaner conversion imports lifted the value signal to Google 454%. For the enterprise, Smart Bidding gets a price tag per lead instead of a lead count.
Why value-based bidding is the point of the build
Value-based bidding only works if the conversions you send back carry their full context. An ad platform optimizes toward whatever you report to it, so a conversion imported as a flat, unweighted event teaches it that every lead is equal. Importing conversions with modeled value, recovered click IDs, and the downstream outcome attached lets the platform bid toward revenue instead.
The effect is measurable. When the SMB's warehouse fixed its conversion imports in March, booked revenue rose 38.4% on a monthly basis against the pre-fix period, with no increase in ad budget.
“On average, advertisers that switch from a Target CPA to a Target ROAS bid strategy can see 14% more conversion value at a similar return on ad spend”
What the building is for
A warehouse is not the deliverable. The point is the decision at the top. For the SMB service company, the build recovered attribution its CRM had stopped recording and lifted booked revenue 38.4% by feeding cleaner conversions to Google. For the global enterprise, it reconnected the pipeline that anonymous research had hidden and re-ranked the target market by modeled value. Each outcome is a query against a floor below, and each has its own page.