Pipeline to Dashboardnihalsulaiman.com

Week 6 · Deliver BI people trust › Day 42

Day 42. Proof 6: chain-dashboards, BI people can trust

⏱ 4h · build 150m · README 60m · review 30m🏷 restaurants + hotels (+ marketing page optional)Before: Days 36 to 41

By the end of today you can

  • Ship a Power BI report (PBIP), an open-source twin, and an automated daily email
  • Show RLS, freshness and reconciliation evidence
  • Present it so a non-technical manager understands it in a minute

1. What you're shipping

chain-dashboards: on the marts from Proofs 3–5:

  • Power BI (PBIP in git): QSR ops page, hotel revenue page, drill-through, 25 documented measures, RLS roles, freshness banner.
  • Open-source twin in Metabase (or Superset/Evidence) on Postgres.
  • Daily email report from Dagster: HTML + CSV, partial-data banner, idempotent.
  • Reconciliation: the R104 bridge and a daily control-total check.

Acceptance criteria

# Requirement Proof
1 PBIP committed; measures have descriptions and folders repo
2 5 measures cross-checked against SQL docs/measure-tests.md
3 RLS roles tested with View as screenshots
4 "Data as of" from the audit table; missing-source banner screenshot on a day with a missing source
5 Metabase twin + costed tool comparison docs/bi-comparison.md
6 Email report with sent-guard and test mode Dagster run + received email screenshot
7 Reconciliation doc + waterfall docs/reconciliation/
8 Design notes: audiences, questions, what was left out README

2. Making it viewable for reviewers

Reviewers won't install Power BI. Give them: screenshots (PNG at the top of the README), a 60–90 second video, the PBIP for anyone who wants to open it, and optionally a public Metabase/Evidence version deployed with synthetic data only. Power BI's Publish to web creates a public link but is often disabled by tenant admins and must never be used with real company data; with synthetic data on your own tenant it's acceptable if allowed.

Maths and principle

Principle: a report's credibility is the product of its links: correct data, correct measures, correct presentation, on time. One weak link drops the whole.

Equation: \(P(\text{trusted}) \approx P(\text{data}) \cdot P(\text{measures}) \cdot P(\text{fresh}) \cdot P(\text{clear})\). Four links at 95% each give \(P = 0.95^4 \approx 81\%\). Raising the weakest link improves the product most.

Analogy: a chain of detectors in coincidence: overall efficiency is the product. Where it breaks: links aren't independent (a late file affects both freshness and correctness), but the lesson holds: find the weakest link.

Try it: data 99%, measures 90%, fresh 97%, clear 95%. Which improvement to 99% helps most? (Measures: product rises from ≈ 0.82 to ≈ 0.90.)

Your story

"I delivered the same restaurant and hotel marts through Power BI and Metabase. The Power BI model is in git as PBIP with 25 documented measures cross-checked against SQL, RLS by region and brand, and a 'data as of' label from the pipeline's audit table, so a late hotel file shows as a banner rather than a fake drop in occupancy. A store challenged one month's sales; my bridge explained the gap as tax, business-day timing and refunds, with a $150 residual traced to two quarantined receipts. That's why there's now a daily control-total check."

Build checklist

  1. Tidy pages; consistent colours; mobile layout for KPI page.
  2. Screenshots + video; README with design notes.
  3. Ensure all data in PBIX/PBIP is synthetic; no credentials in connection metadata (parameters only).
  4. Final run: generate fresh data, run Dagster end to end, refresh, email; record times in the README.

Check yourself

1. Reviewers don't have Power BI. What's the best way to show your report?

2. Which link usually breaks trust most often in BI?

My notes