From conflicting reports to one source of truth

Sales, inventory, and customer data lived in systems that never agreed, and a planned AI project was blocked because the data wasn't usable. We built a unified platform with automated pipelines into a modeled warehouse, tested transformations, real-time dashboards, and governance. It became the foundation for everything next.

92%
Less manual reporting
1
Source of truth
Unblocked
AI roadmap

What they came with

Revenue came out of three systems and the three did not agree. Every meeting opened by working out which figure to trust, and the first part of the week went on reconciling exports by hand instead of acting on them. Numbers that did get published were read as a rough guide rather than a record, so decisions waited for someone to go back to the source.

What the engagement covered

  • Automated pipelines from every system into one warehouse
  • Tested, version-controlled transformations and lineage
  • Real-time dashboards the whole org could trust

Technical detail

One definition per metric

Each metric is defined once in a dbt model with lineage from raw source through to the reporting mart, and Looker reads only the marts. A definition cannot be forked inside a dashboard, so changing it changes it everywhere at once.

Tests gate the build

Uniqueness, not-null and referential integrity tests run as part of every build, and a failure stops the models downstream of it. The reporting layer keeps yesterday's good table rather than publishing a broken one that still renders.

Incremental loads with a lookback

Airflow runs the daily loads, with models built incrementally on an updated-at watermark and a bounded lookback window to pick up rows that arrive late. Source freshness is checked before the run starts, so a stale upstream feed surfaces as an alert instead of a quiet gap in the numbers.

Snapshots for changing hierarchies

Store and product attributes are snapshotted, so a report run against last quarter reflects the hierarchy as it stood then. Restructuring the hierarchy no longer rewrites history in reports that were already signed off.

The stack

Warehouse

SnowflakeS3

Transformation

dbtSQLJinja

Orchestration

Apache AirflowPythonDocker

Reporting

LookerLookML
Practice
Unified Data Platform
Sector
Retail
Shape
Client engagement
Stack
Snowflake, dbt, Airflow