The problem
Compliance reporting depended on brittle spreadsheets and ad hoc warehouse queries with no shared lineage story.
Every audit became a forensic exercise in how a number had been produced.
What we built
We introduced contract-tested dbt models, documented metric ownership, and a semantic layer readable by both analysts and auditors.
Column-level lineage was made visible so questions could be answered without theatre.
The hand-over
The internal data team inherited a repo with tests, release discipline and runbooks rather than a puzzle box.
The next audit landed with no remediation actions on the reporting layer.