Prompt
How do I build a single source of truth for BI dashboards?
Latest observation
A good “single source of truth” for BI dashboards is usually not one dashboard—it’s a governed semantic layer + trusted data model + metric definitions that all dashboards draw from.
Here’s a practical way to build it.
1) Start with the business questions, not the tools
Identify the core metrics everyone argues about:
- Revenue
- Active users
- Conversion rate
- Churn
- CAC / LTV
- Pipeline, ARR, margin, etc.
For each metric, define:
- Exact formula
- Time window
- Inclusion/exclusion rules
- Grain
- Owner
- Refresh cadence
Example:
- Revenue = sum of paid invoice line items, excluding refunds, recognized on invoice date
- Active user = unique user with at least one qualifying event in the last 30 days
If definitions differ by team, your “single source” will fail.
2) Choose a canonical data layer
Build a central analytics layer where curated data lives:
- Data warehouse/lakehouse: Snowflake, BigQuery, Redshift, Databricks, etc.
- Ingest from source systems: CRM, product events, billing, marketing, support
- Transform into clean, modeled tables
A common architecture:
- Raw layer — untouched source data
- Staging layer — cleaned and standardized
- Core/conformed layer — shared entities like customer, account, order, product
- Mart layer — BI-ready tables for domains like sales, finance, product
Use tools like dbt, SQL, Airflow/Fivetran/Matillion, etc.
3) Build a semantic layer or metric layer
This is the key to consistency.
A semantic layer defines:
- Metrics
- Dimensions
- Joins
- Business logic
- Time handling
- Row-level security
Examples:
- Looker semantic model
- dbt Semantic Layer / MetricFlow
- Cube
- Power BI model / tabular model
- Tableau data source + governed extracts
Why it matters:
- Dashboards query the same definitions
- Users can slice data without rewriting logic
- You avoid duplicated formulas in dozens of reports
4) Centralize metric definitions
Do not let each dashboard calculate metrics independently.
Instead:
- Create metric definitions in one place
- Reuse them across dashboards
- Version control them in Git if possible
Good practice:
- One metric = one definition
- One canonical owner per metric
- Change management process for modifications
If you have “Revenue” in five dashboards, all five should point to the same metric definition.
5) Model data around shared dimensions
Make sure dimensions are consistent:
- Customer
- Account
- Date
- Region
- Product
- Sales rep
This means:
- One customer ID standard
- One date calendar
- One region mapping
- One product taxonomy
If every dashboard uses different dimension logic, trust breaks quickly.
6) Establish data governance
Single source of truth needs rules:
- Data owners
- Stewards
- Approval process for metric changes
- Documentation
- Access controls
- Audit trail
Minimum governance artifacts:
- Metric catalog
- Data dictionary
- Source-to-target lineage
- Dashboard inventory
- Ownership map
7) Add data quality tests
Trust comes from verification.
Automate checks for:
- Row count anomalies
- Nulls in key fields
- Duplicate records
- Freshness SLAs
- Reconciliation against source systems
- Metric threshold drift
Tools:
- dbt tests
- Great Expectations
- Monte Carlo / Bigeye / Soda
- Custom SQL checks
Example:
- “Total invoiced revenue in warehouse must match finance system within 1%”
- “Daily events must arrive by 8 AM UTC”
8) Reduce logic in dashboards
Dashboards should be the presentation layer, not the business logic layer.
Keep dashboards focused on:
- Visuals
- Filters
- Comparisons
- Alerts
- Drill-downs
Avoid:
- Complex SQL in charts
- Hardcoded business logic
- Unique calculations per dashboard
If logic lives in dashboards, it becomes impossible to govern.
9) Create a certified dataset process
Not every table should be usable by everyone.
Create:
- Certified datasets for trusted reporting
- Sandbox/exploratory datasets for analysts
- Clear labels like “gold,” “certified,” or “approved”
Only certified datasets should feed executive dashboards.
10) Document everything in one place
Your source of truth also needs a source of truth for definitions:
- Metric catalog
- Dashboard catalog
- Glossary
- Owner contact
- Refresh schedule
- Known limitations
If users can’t find definitions, they’ll make their own.
11) Implement a change control workflow
When metric logic changes:
- Log the change
- Review impact
- Update tests
- Communicate to stakeholders
- Version the definition
This prevents “silent changes” that break trust.
12) Build dashboards from the same governed layer
Once your canonical layer exists:
- Point every BI tool to the same modeled data/semantic layer
- Disable ad hoc metric duplication where possible
- Use identical definitions in all key dashboards
If you have multiple BI tools, the semantic layer becomes even more important.
A simple recommended architecture
Sources → CRM, product events, billing, support, marketing
Ingestion → ELT/ETL into warehouse
Warehouse → raw, staging, core, marts
Semantic layer → metric definitions, joins, governance
BI tools → dashboards, alerts, self-service exploration
Common mistakes to avoid
- Trying to make one dashboard the source of truth
- Letting every analyst define metrics differently
- Skipping data governance
- No ownership for metrics
- No quality tests
- Building dashboards directly off raw tables
- Mixing operational reporting with analytical reporting without a model
Best-practice shortcut
If you want a fast path:
- Pick 10 critical metrics
- Define them formally
- Build a curated warehouse mart
- Put a semantic layer on top
- Certify those metrics and dashboards
- Add automated tests and ownership
That gets you 80% of the value quickly.
Rule of thumb
The source of truth should be the combination of:
- governed data model
- canonical metric definitions
- semantic layer
- quality controls
- documented ownership
Not a single dashboard file.
If you want, I can also give you:
- a step-by-step implementation plan,
- a reference architecture, or
- a template for metric definitions and governance.