Next best action — your queue
One ranked list across the entire pipeline — the OS's recommended move for every open prospect, highest-leverage first. Click a row for the full profile; click a tile to filter. Drafts are prepared in Gmail for your one-click approval — nothing sends automatically.
Live alerts — high-value events
Fires the instant a quoted prospect replies, a call books, a payment/close lands, a no-show is detected, or a new /apply arrives — caught by the apply-webhook (instant) and the alert engine (3×/day business hours). Last 48h expanded; older collapse below. New events are drafted into one digest email for your review; nothing sends automatically. Click a row for the profile.
Follow-up queue — the watchdog
The Follow-up Watchdog scans this every morning and drafts the chase emails for your one-click approval. Click a tile for the records behind it — nothing sends automatically.
Calls — upcoming & no-shows
Synced from GoHighLevel 3×/day; "showed" is verified against Fireflies. No-shows feed the watchdog's re-book drafts. Click a row for the full profile — the pre-call brief, call notes, quote pack and every other doc for that person live right there under Docs & prep; "brief ✓" means the prep is already built.
Forecast to goal — weighted pipeline
| Open stage | Deals | Weighted $ | |
|---|
At-risk radar — deals going cold
Money-stage deals with no real contact beyond the safe window (quoted >7d, showed >14d, booked >10d) — same real-touch rule as the watchdog. Ranked by weighted $ at risk: the deals to save this week. Click a row to open the profile.
Predictive pipeline — win probability
Win probability blends stage (using your Fireflies-verified show→quote and quote→close), recency of real contact, engagement, and source — referrals close, YouTube fills. Value uses the quote when set, else the open-quote average (italic). Click a row for the full profile.
Show → quote — where every held call is stuck
GHL auto-advances every form fill to "Discovery Call Held", so the card lies. This panel classifies on evidence — Fireflies-verified meeting, calendar event, /apply survey — not on the GHL stage. Only 14 of 29 so-called "held" calls actually happened — this step, not lead volume, is what caps quote issuance. Every held call that hasn't been quoted gets its specific blocker named here rather than the same generic "invite them" for all. Click a tile for everyone stuck on that blocker; click a name for the full profile.
Show → Quote — the Q3 number
—
held calls → quotes (measured)
held (grey) vs quoted (green)
The conversion the whole autopilot exists to lift. Weekly bars come from the nightly metrics rollup; Q3 is the planning-season push the rescue + showed-pool waves are built to move.
Cohort funnel — where each month's leads leaked
Each row = everyone whose first lead arrived that month, measured on the same clock — booked within 30 days of the lead, held (Fireflies-verified) within 45, quoted within 75, won within 105 — so young and old cohorts compare fairly. Dimmed cells mean the cohort hasn't aged past that window yet — still maturing, not a real zero. Booked/held windows before May 2026 read low because meeting history starts in May. The Data Steward compares mature cohorts nightly and raises a Funnel drift alert when a rate falls below 60% of the trailing baseline. Click a row for that cohort's people with their actual dates.
Delivery capacity — Mark's side of the machine
| Month | Disc held | Opp-rpts | Disc→OR med d | Packs | Signed | $ |
|---|
The constraint that binds at ~5 deals/month. Instrumented: Fireflies-verified discovery holds, opp-report calls held, quote packs built (median days from the discovery), signings. Not instrumented: TaxDome onboarding turnaround — no API (Zapier only); it appears here the day it gets a webhook, and is labeled missing rather than faked until then. A red opp-report count = a full month of discovery calls produced zero opp-report calls; the Data Steward alarms on it.
Signatures — closed-won feed
Live from TaxDome via Zapier once wired (see outputs/taxdome-zapier-setup.md) — each signature/payment writes a deal and moves the gap counter. Green = counts toward the goal.
Referrals & reviews — the compounding engine
| Referred | Status | Revenue | Referrer |
|---|
Referral is the #1 true source. The Referral & Review engine (weekdays 10am) drafts the referral ask at 60 days post-signature (one per client, ever), Google-review asks post-close, and referrer thank-yous — every draft waits for your approval in Gmail. ✓ = referrer thanked. Renewals bill automatically and need nothing.
Funnel — current pipeline snapshot
Snapshot of where opportunities sit right now. Stage transitions record from now on.
Pipeline detail — GHL stages
Reverse funnel — what the gap demands
Avg fee, show→quote and quote→close prefill from your real data; the grey-zone rates are editable estimates until new-funnel data accrues.
Prospect intelligence — the outbound bench
Trigger hotlist — tax pain is acute now
Triggers are mined from real employment data (new roles = fresh equity grants / comp jumps / ownership changes). These are the personalization hooks for outreach — nothing sends without your approval.
Marketing — campaign performance
Click any campaign to open its audience — non-won rows are your retarget list. Outbound campaigns are fully measured now (activity→funnel); per-video ROAS/spend light up once Google Ads access + the /apply UTM fix land. The Marketing Analyst agent posts weekly scale / cut / retarget calls in the strip above.
Attribution — true source (how they heard)
| Source | Prospects | Won | Revenue |
|---|
From the /apply survey "how did you hear about us" — the real channel, not the form name. Referrals close; YouTube fills. Click a source to see who. The outbound bench shows as "not captured" (never filled a survey).
Attribution — first-touch source
UTM-level attribution unlocks when the /apply redirect fix lands (Mark / site agency).
Channel & ad intelligence
Spend → applications → closed $ per channel lights up once ad spend is loaded (Google Ads access pending). The 5 YouTube CTAs are UTM'd (outputs/youtube-cta-copy.md) so each video maps to its applications here after the /apply redirect fix.
Outbound — status Sending blocked
| Warm-up week | Sends / mailbox / day | |
|---|
Send queue — next cold touch
One person per company (highest ICP), verified email, not suppressed, no company touched in 30 days — the exact order the send agent will work once domains go live. Click a segment tile to filter, a row for the profile. Nothing sends automatically.
Sequences — per-segment templates
First touch + 3 follow-ups per segment, all driving to /apply. Merge fields {{first_name}} {{company}} {{sender_name}} fill at send time; the sending platform appends the physical address + one-click unsubscribe (CAN-SPAM). Edit copy in Supabase sequence_steps.
Activity health — outreach engine
Nothing sends yet. This panel lights up in Phase 4: sends, reply rate, positive-reply rate, and deliverability warnings per inbox/domain — fed by the cold-email platform into the activities table. Prerequisite in motion: sending domains + 3-week warmup.
Autopilot — routines
Every automation that keeps the OS current, in one pane. Each writes a heartbeat when it runs (last run + status). Manage or "Run now" from the Scheduled sidebar — this shows what actually fired and whether it succeeded.
Data trust — self-healing
The Data Steward runs nightly: it auto-quarantines unambiguous test/spam/internal records (reversible — suppress + not-qualified) and flags the rest for you. Nothing real is ever auto-deleted. Click a row to open the record. "Unverified" = un-triaged, not necessarily bad — many resolve once the /apply survey syncs.