From the KPI decision this session: 3 non-redundant metrics per department (volume / efficiency / outcome). Daily huddle surfaces the volume/leading slots; the weekly scorecard settles efficiency/outcome. Daily rows sum into weekly — nothing tracked twice.
| Dept | 🔵 Daily (auto) | 🟢 Weekly (roll-up) | Owner | Primary source |
|---|---|---|---|---|
| North Star | — | MRR · Net New · Churned | Sean | Stripe / kpi_snapshot |
| Client Base | New deals today | Live · New · Churned | Jason | GHL / brain |
| Marketing | Creatives launched · QBCs today | CPQBC | Jean / JM | Meta MCP + GHL |
| Setter | Calls on calendar · Live calls · Show-ups | SUR · No-Show Recovery | Jason | GHL / Calendly |
| Sales | Closes · Cash collected today | Close Rate · LTGP/Call | Jason / Sean | Stripe / GHL |
| Client Delivery | New Convos · Booked Appts | % Clients on Guarantee Pace | Jean | GHL + Leads Transferred |
| Client Experience | At-risk flags · Errors | Satisfaction / response time | Regina | brain / manual |
Meta-metric: Time-to-KPI per new hire (days to first hit their number).
Brain is the source of truth. A composer job pulls each metric from its source into brain.scorecard_daily; a SQL view rolls daily→weekly with RAG bands; the huddle agenda renders as a live dashboard. The Google Sheet is retained only for manual-only cells (targets, RAG notes, satisfaction).
| Option | Huddle agenda is… | Trade-off |
|---|---|---|
| A — Automate the Google Sheet | a filtered tab | Builder already knows it; lowest lift; but polling/entry-prone |
| B — Live Cloudflare dashboard | a bookmarkable URL | Real-time, matches your other dashboards; new build |
| Hybrid (recommended) | CF dashboard, brain-backed | Composer writes brain → dashboard + Sheet; single source of truth, owners still edit the Sheet |
Reuse existing rails: brain.ad_metrics, the cf-dashboard-creator skill for the huddle view, GHL/Meta/Stripe integrations already in the stack.
≤$150, not <$50); confirm CL/CF/FR/CS niche split is required; confirm CPL = spend ÷ leads_transferred.✔ Gate: build does NOT start until every metric has {owner, target, source}. This is the hard gate.
brain.scorecard_daily (idempotent, dedup-safe).✔ Accept: all daily metrics populate for one test week and reconcile against manual numbers within tolerance.
✔ Accept: Friday scorecard matches hand-computed numbers for one full week.
✔ Accept: a full huddle runs end-to-end off the view with zero manual data entry.
✔ Accept: 2 consecutive weeks run on the system; Friday requires no data entry.
sp_launch_room_jobs table is a separate SP-side item.AGENTS.md. Scorecard state lives in Postgres brain — no markdown memory, no one-off scripts as the source of truth.