Zedric.Book
← All filesStatus: delivered · live

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

Redrawn exhibit — warehouse dashboard: a campaign spend bar chart with one bar flagged for review, a decision queue, a 1,034-automated-tests stat, and an evidence-guard badge
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

AD PLATFORM APIHOURLY SYNCPOSTGRES WAREHOUSE+ CRM SALES SYNCHONESTY GATESFLOORS · FRESHNESSAI WEEKLY REPORTEVIDENCE-GUARDED13 SCREENSDECISION QUEUE → MAPS

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

  1. B-01Deployed single-tenant — its own database, hosting, token and domain — so no client’s data can ever reach another’s
  2. B-02Six scheduled edge functions with lease/lock, retry and audit rails, so an outage leaves a recoverable gap instead of a permanent hole
  3. 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
  4. 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
  5. B-05AI weekly analysis with a code-enforced evidence guard: a report that makes an unsupported claim is rejected and regenerated
  6. 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

Book the intro call