All engineering notes
Platform engineering

CRM to data warehouse: getting numbers your board will trust

Published 21 April 2026Updated 19 August 20269 min read

Short answer

Land CRM data raw and immutable, model it separately, and keep one owning definition per executive metric. Add freshness monitors and column-level lineage from day one: the reason boards distrust dashboards is almost never the SQL, it is undetected staleness and duplicate metric definitions.

Land raw, model later

Extract CRM objects into an immutable raw layer with ingestion timestamps, then transform in a separate modelling layer. When a definition changes — and it will — you can rebuild history instead of apologising for it.

History matters more than you expect

CRM records mutate in place: an owner changes, a stage moves, a value is corrected. If you only ever hold the current row, questions about pipeline movement become unanswerable. Capture change history as slowly changing dimensions so 'what did the pipeline look like on the first of last month' is a query, not an archaeology project.

One definition per metric

  • Register each executive metric with an owner and a single canonical definition.
  • Detect drift when a second definition of the same name appears in another model.
  • Publish the definition next to the number in the dashboard.

Freshness and lineage

Monitor expected load windows and row volumes per model; a silently stalled load is the most common cause of a wrong board number. Column-level lineage answers the two questions that determine whether people trust the dashboard: where did this come from, and what breaks if it changes.

Frequently asked questions

How often should CRM data sync to a warehouse?

Hourly is sufficient for most commercial reporting; near-real-time is worth the cost only when an operational decision depends on it. What matters more than frequency is knowing when a load has not run.

Should we transform data before loading it into the warehouse?

No. Land it raw and immutable, then transform inside the warehouse. Pre-transformation destroys the ability to rebuild history when a definition changes.

Why do executives stop trusting dashboards?

Almost always undetected staleness or two conflicting definitions of the same metric — not incorrect SQL. Freshness monitoring and a metric registry address both.