CS-15 // Dossier
Ads & sales reporting dashboard
A custom ad-performance reporting dashboard live on the client’s own domain — hourly sync from the ad platform into a dedicated Postgres warehouse, thirteen purpose-built screens, and a CRM sales layer syncing beside the spend so cost-per-enrollment becomes a join, not an integration project.
Exhibit // CS-15
R-02 · interface redrawn from the live build — zero client pixels
- Client
- R-01SEALED UNDER NDA. SPECIFICS WALK THROUGH LIVE. → BOOK
- Industry
- High-ticket education business · sibling of CS-03
- System
- Ads & sales reporting dashboard
- Stack
- Next.js · Supabase · Meta Marketing API · GoHighLevel · Anthropic API
- Trigger
- “Which spend produced which enrollment?” — and numbers nobody trusted
- Metrics
- System scope
01 // The problem
Ad performance lived in the ad platform’s reporting while sales lived in the CRM, with no surface joining them — and investigation proved the platform’s lead-by-state figures were materially undercounted: reliable for delivery geography, wrong for conversions.
02 // The system
Redrawn — no client data
The system
03 // The delta
Before and after go-live
Before
- Ads in one tool, sales in another, no join between them
- Attribution broken upstream — empty pixel, dead token
- A second, competing version of the truth in a third party’s draft dashboard
- Lead geography built on a provably undercounted metric
With the system
- One warehouse: ad spend and CRM sales in the same query surface
- Thirteen screens from a one-minute decision queue to an AI weekly report
- Reports that cannot state what the evidence doesn’t support
- Lead geography rebuilt from the CRM, placed and unplaced counts stated
04 // What got done
6 entries
- B-01Deployed single-tenant — its own database, hosting, token and domain — so no client’s data can ever reach another’s
- B-02Six scheduled edge functions with lease/lock, retry and audit rails, so an outage leaves a recoverable gap instead of a permanent hole
- B-03Enforced data honesty in code: a judgement floor before any ad is flagged, a refusal to total non-additive metrics, a freshness signal for the re-attribution window
- B-04Removed a provably-wrong metric instead of caveating it — deleted the platform’s lead-by-state figure from the product and rebuilt lead geography from the CRM at county level
- B-05AI weekly analysis with a code-enforced evidence guard: a report that makes an unsupported claim is rejected and regenerated
- B-06Access as a build gate: per-user logins, database-level row security, and tests that fail the build if a route ships without an access policy
05 // Outcome
System scope — capability metrics, honestly labeled
- → Scope
automated tests behind the dashboard - 0,034
- → Scope
scheduled edge functions with lease, retry & audit rails - 0
- → Scope
CRM sales records synced beside the ad spend - 0k+
06 // The result
From the build log
- Live on the client’s domain and in daily use
- A provably-wrong metric was deleted, not caveated
- The CRM sales layer built and tested, gated off until the client flips it on
Want a system like this one?
Free · 30 min · leave with a rough scope either way