Phase 2 · Sales dashboard live
We built the second dashboard — Sales — on the exact same foundation. It reads the same ledger, so its numbers can never disagree with the Leadership view. This recap teaches you how the sales funnel is measured, how reps are held to fair numbers, and why "one database" is the quiet superpower.
The quiet superpower
In most companies the sales team's spreadsheet and the leadership deck quietly drift — different totals, endless "which number is right?" arguments. We designed that problem out of existence. The Sales dashboard and the Leadership dashboard both compute from the same ledger, so the same fact shows the same value everywhere.
When you're building a company to sell, an acquirer's diligence team will try to break your numbers. "One fact, computed once" means every dashboard tells the same story under scrutiny — because there's only ever one story in the ledger.
The core of the dashboard
Every lead flows through four gates. Each gate has a conversion rate, and each rate is a lever you can coach. The funnel makes the leaks obvious.
How to read it: the two gates you control most are show rate (did they turn up — a setter/SDR job, target ≥75%) and close rate (did the closer close — target ≥20%). We're at 80% and 22% — both on target. Move either one and revenue moves with it, no extra ad spend required.
Phase 2 — live
A screenshot of the running app at #sales. Every figure is computed by the views — nothing is typed into the page.
Fairness by design
A leaderboard is only motivating if it's fair. So we split it by role:
This mirrors the repo's rule: hold individuals to output and conversion (the metrics they own), and keep blended efficiency (ROAS/CAC) at the team level and above, where it's honest. No arbitrary splitting of ad spend across closers.
The linchpin
The "Leads by source" panel shows leads and the deals each source actually closed. That's only possible because a tag rides with every record from the first touch all the way to the payment:
Without that thread, source data dies at the door and you're guessing which channel to scale. With it, you
can say "Paid media brought 1,680 leads and 71 wins" — and fund accordingly. It's why the foundation
insists every row carries its source_funnel
and utm_* tags from day one.
-- Leads AND wins per source, joined on the tag that rode all the way through: select source_funnel, count(*) as leads, count(*) filter (where won_at is not null) as won from the ledger group by source_funnel;
Decision-first, as always
If a number doesn't answer one of these three questions, it isn't on the screen. That discipline is what keeps the dashboard a decision tool, not a wall of vanity metrics.
Where we are
Phase 0 (the foundation) and now two Phase 1–2 dashboards — Leadership and Sales — are live and reading the same ledger. Next we build the Marketing dashboard (channel ROAS, cost per lead, hook/hold on creative, cost per booked call) to complete the acquisition picture, then Client Success and Program Delivery for churn defense.
Build the Marketing dashboard on the same foundation. Then Chris points the app at the cloud Supabase and swaps the sample data for real ingestion — no app changes, the views are the contract.