Executive Dashboard
Live business pulse
—

Revenue & Cash

—
—

Revenue Trend

revenue after refunds · last 12 months

Closers & Setters

Ranked by cash collected after refunds · this period · bar length = size vs. the top performer
Closers
  1. —

Sales Call Health

last 30 days
—

Hot Pipeline

live open leads not yet closed · freshest first · ⚠️ = Redzone > 21 days
Loading…

Today's Calls

Loading…

EOD Confirmation

last 14 days · confirmed vs unconfirmed closer-days
—
Loading…
—

Lead Sources

—

Where this period's leads came from — count and share of total leads.

Loading…

Recent Leads

—
Name Source First Source Last Source Created (CT)
Slice by
—

Show Rate by Funnel

—

Each bar is one lead source. Longer / greener = more of its booked calls actually show up. Green = 65%+ show up, yellow = 40–65%, red = under 40%.

Loading…

Show Rate Trend

Loading…

Does Confirming Work?

—
Loading…

Show Rate by Booking Lead Time

—
Loading…

The longer the gap between booking and the call, the fewer show. Book them close.

Show Rate by Closer

—
Loading…

Decided calls only, minimum 10 per closer. “% logged” = share of that closer’s appointments ever dispositioned — a low number means the rate rests on a partial sample.

Closer Roster vs Other Calendars

Loading…

Closer roster = calls on the active closers’ calendars (the Dashboard’s Today’s Calls panel). Other calendars = every other in-scope calendar. The two rows add up to the Booked and Showed tiles above.

Show Rate by Day of Week

—
Loading…

Show Rate by Hour

—
Loading…

Does Rescheduling Hurt?

—
Loading…

How Solid Is This Number?

—
Loading…

Show Rate by Date

—
Loading…

Loading…
Show rate
—
Showed
—
No-shows
—
Closed
—

By closer

Click a closer to filter the list
CloserShowedNo-showShow rateClosedCash
Loading…

By day

Click a day to filter the list
DayShowedNo-showShow ratePendingClosed
Loading…

By hour of the call (CT)

Click an hour to filter the list
HourShowedNo-showShow rate (per call)Rep-hoursRep-hours filledDouble-bookedPendingClosed
Loading…

Show rate (per call) counts every call: two people booked with one rep at 4 PM and one shows = 50%. Rep-hours filled counts the rep’s time: that same hour had someone show, so it is 100% filled. A rep-hour is one rep, one day, one clock hour; Double-booked = rep-hours with more than one call. These match the Show Rate by Hour chart on the charts tab. Calls with no start time are left out of the hours, and faded bars mean fewer than 5 calls, too few to read much into.

Every call

Loading…

Show rate = Showed ÷ (Showed + No-show). Only calls with a result count. A no-show is left out when the same person showed up to a later call (Rebooked, showed later). Pending calls are waiting on the closer’s survey, and cancelled calls never count. Closed = a payment of $500 or more from this lead, credited to a closer, within 14 days of the call. Click any call for the details behind its result.

—

Rebook Outcomes

Of everyone who cancelled — how many we got back on the calendar, how many actually showed up, how many we lost.
Loading…

Cancels by Calendar

Share of each calendar's cancels we got rebooked — longer green bar is better.
Loading…

Recent Cancels We Haven't Won Back (cancelled 24+ hours ago, still no new booking)

Cancelled Name Phone Calendar Days Since

Serial Cancellers how much of our cancel problem is the same people

Cancels caused by people who've cancelled before (higher = more of the problem is a small group)
--
If 30% or more of cancels come from people who've cancelled 3+ times, it's worth auto-blocking those repeat cancellers from re-booking. Under 10%, it's not worth the effort.
% of total cancels
Loading…
Name Phone Cancels Total Bookings Last Cancel
—

Rebook Outcomes

Of everyone who no-showed — how many we got back on the calendar, how many actually showed up, how many we lost.
Loading…

No-Shows by Calendar

Share of each calendar's no-shows we got rebooked — longer green bar is better.
Loading…

Recent No-Shows We Haven't Won Back (no-showed 24+ hours ago, still no new booking)

No-Showed Name Phone Calendar Days Since

No-Show-ers how much of our no-show problem is the same people

No-shows caused by people who've no-showed before (higher = more of the problem is a small group)
--
If 30% or more of no-shows come from people who've no-showed 3+ times, it's worth auto-blocking those repeat no-showers from re-booking. Under 10%, it's not worth the effort.
% of total no-shows
Loading…
Name Phone No-Shows Total Bookings Last No-Show

Survey Deep-Dive — Headline KPIs

—
Surveys submitted
—
Finished the whole survey
—
Survey completion rate (finished vs. started)
—
Average lead quality score (1 = weak, 4 = strong)
—
Lead quality mix (everyone scored this period)
—

📊 How prospects answered each survey question (pick a question below; bar length = how many people gave that answer)

Number of people (share of all who answered) · show-up rate for that group. Green = strong, red = weak.
loading…

🗺️ Which answer combinations show up (biggest groups first)

—
loading…

🎯 Which survey answers actually convert (every answer, ranked)

—
Smaller groups sink to the bottom, greyed out · click an Income or Commitment row to see the people
loading…
—

Campaign Performance

Revenue traced to its ad
Campaign Spend Revenue Return per $1 spent Status

Return = revenue earned for every $1 of ad spend in the selected period. Status pills judge lifetime return — a new campaign isn’t flagged before its sales have had time to close; a campaign younger than 30 days shows Too New instead of a verdict. Scale ≥4x · Watch 2–4x · Pause <2x lifetime with spend. Click a row for its ads.

Revenue Mix — Ad-Driven vs Organic

last 30 days

How much of our revenue came from paid ads vs everything else — referrals, direct, and organic. Longer bar = more revenue.

Loading…

Return by Funnel

Revenue traced to its ad

Which funnels turn ad dollars into the most revenue. Bar length = $ back per $1 spent; the $ figure is what we spent.

Loading…

Funnels & Campaigns

Revenue traced to its ad
—
Campaigns
  1. —

Call Coaching — …

Per-rep call scores — worst-first
Loading…

What Actually Closes Deals — verified Jul 19

From our own calls: 42 wins vs 144 decided losses, re-tested against lead quality
✓ DO — these separate wins from losses
1. Finish the objection. Dig to the real concern, answer it, then ask again. Wins leave 30% of objections unresolved; losses leave 60%. Winners get just as many objections: they finish them. Holds for warm and cold leads alike.
2. Make it sound small. “10–15 minutes a day” effort framing appears on 58% of wins vs 17% of losses, the single strongest phrase pattern we have.
3. Move fast after the call. Half of buyers pay on the call; 93% within 14 days. Front-load follow-up into the first 3 days; after 14, it’s dead.
4. Treat the money objection as a buying signal. “How would I afford this” wins 45% of the time — and every call where it got fully resolved closed (8 of 8). The dangerous one is “is it worth it” (value doubt): only 25% win even when handled. Sell the value first, then solve the money.
5. Ask the capital question every call. The on-call read of “does this person have money to work with” is the widest won/lost gap we measure (3.2 vs 1.5 of 10). It IS the qualification system.
✗ DON’T — these do nothing in our data
Pressure. Urgency and scarcity (“2 spots left”) appear equally on wins and losses. Zero effect, every test.
Pitch polish. Deals are not won by explaining better (winners often get a shorter pitch). The sale is won or lost in the objection moment.
Trusting lead grades. Pre-call lead scores predict nothing about who buys (2.78 won vs 2.79 lost). What the prospect reveals on the call is what matters.
Fearing objection count. Calls with 3–4 objections win as often as calls with 1–2 (37% vs 30%). It never mattered how many came up — only whether they got finished.

Discovery Gaps — …

Which of the 5 discovery gates each rep most often fails to complete
Loading…

Objection Patterns — …

Which objections go unresolved, and which handling step each rep skips
Loading…

Patterns — …

What each rep does well vs struggles with, across every stage — and what changed recently
Loading…
Objections raised
—
Left unresolved
—
Calls analyzed
—
Per call
—

The seven themes

Click a theme to filter everything below it
Loading…

Trend

Loading…

Every objection

ObjectionTheme RaisedUnresolved Usual root cause
Loading…

Raised counts every time the objection came up, not the number of calls — one call can raise several. Unresolved means the closer never got it handled before the call ended; it is the number that matters. Root cause is why it landed: process breakdown (the closer’s handling), conditioned (a reflex answer, not a real concern), logistics (a genuine constraint) or unclosable. Click any objection to read the prospect’s own words and jump into the recording at that moment.

By closer

Click a closer to filter the whole tab
CloserObjectionsUnresolvedWhere they get stuck
Loading…

Counts follow the period at the top of the page. A rep with more calls will naturally show more objections — read the unresolved % and where they get stuck columns, not the raw count.

Call Log

Booked sales calls, closer-reported — not a revenue source — newest first
Call dateLeadCloserSetterOutcomePre-DialExpected closeSurveyFathom
Loading...

Pre-Dial by Closer

Closer dials to the prospect in the 72h before each booked call
CloserBooked callsPre-dialed%Median lead timeAvg longest dial
Loading...

Every Appointment

All closer-calendar bookings — dial history starts 2026-04-01
Appt dateLeadCloserOutcomeDialsNearestEarliestLongest dial
Loading...

AI Dialer — Retell

Retell voice fleet — funnel, cost & outcomes
—

Funnel

Retell setter agents (Eric / Claire / Reschedule) — per call, with per-lead rollup
Loading…

Pickups by Hour

Dialer answer rate by time of day (CT) — dim rows = small sample
Loading…

Agents — Retell

Per-agent performance this period
Agent Role Dials Pickup % Booked Cal errors Avg talk Cost
Loading...

Call Explorer

Click a row for transcript & audio
When (CT) Agent Contact Stage Talk Cost Rec
Loading...

Dialer

dialer.io human cold-call team — dials, connects & conversations
—

Activity by Day

Dials per day — connects & conversations inline (weekly rollup on long ranges)
Loading…

Best Hours to Dial

Connect rate by hour (CT) — low-sample hours dimmed
Loading…

Booking Markers — What to Target

Which kinds of leads actually book a call when the team dials them — so you know who to load into the dialer next
Loading…

Disposition Mix

What happened on every dial this period — green = offer, red = DQ/DNC, amber = hangup
Loading…

Agents

Per-agent performance this period
Agent Dials Connects Connect % Convos Qualified Offers Avg talk
Loading...

Call Explorer

Recent calls this period — click ▶ to play the recording
When (CT)AgentContactDispositionTalkRec
Loading...

Confirmations

Who confirmed the appointment — Retell AI (Eryn) vs SMS flow vs Human
Human = confirmed with no Retell or SMS-flow trace (inferred). SMS Flow = the GHL text-confirmation workflow stamped the contact. Retell attribution is approximate.
—

By Day

Confirmed appointments per day, split by confirmation source
Loading…

Speed to Lead — …

How fast we dial a fresh lead
Dialer
Hours

How fast we call a new lead

From the moment a lead comes in, to our first call
—

Speed to lead — in hours vs. overnight

Arrival split 8am–8pm Central · the blended median hides a wide gap between these two populations
Loading…

How long leads wait for the first call

Every new lead sorted by wait time · green = fast, red = left waiting
Loading…

Leads we never called

New leads with a phone that anyone has not dialed
Loading…

AI vs. human setter — head to head

From lead created to first dial · new ad/form leads only
Loading…

Speed-to-lead log · per contact

Every new lead · time from created to first dial (AI raw, human counts 8am–8pm ET only) · click a column to sort
Loading…

Sales — Last 30 Days

Closer Pipelines

Each active closer’s live GHL pipeline — sort, scroll, maximize, and click into a lead for detail
Loading…
 
hit KPI missed today (in progress)
Loading…
Objections raised
—
Calls extracted
—
Per call
—
Zero-objection calls
—
Unmapped %
—
Addressed
—

The eight buckets

Click a bucket to filter everything below it — Unmapped is not a theme
Loading…

Trend

Loading…

Every label

LabelTheme RaisedMapped? ColeHormoziAddressed?
Loading…

Raised counts every time the label came up, not the number of calls — one call can raise several. Unmapped means the model produced free text with no objection_taxonomy_dim row yet — it is a taxonomy-widening candidate, not a theme, and it is never folded into a real theme or dropped from the count. Click any label to read the prospect’s own words, what the setter said next, and open the recording. Addressed? is the share of scored objections the setter actually engaged with (addressed · moved past · conceded); the definitions are under the By setter table.

By setter

Own denominators per setter — calls come from the extraction ledger, not from objection rows
SetterChannelObjections CallsPer call Zero-objection %Coverage % Addressed? Where they get stuck
Loading…

Coverage % is the share of that setter’s eligible calls this window that have actually been run through extraction — a low number means the ranking above it is read from a partial sample, not the whole story.

Addressed? grades what the setter said immediately after each objection, read from the transcript: Addressed — engaged with it before moving on (acknowledged, then reframed, asked about it, isolated it, or answered it). Moved past — ignored it or gave a token “gotcha” and went straight back to the script or an unrelated question. Conceded — accepted it and gave up the attempt (agreed to remove, call back, send info, or wrapped up). Unclear (call ended or garbled) and objections not yet scored are shown as counts and never counted against the setter. Open any label to read the reply behind each verdict; a reply flagged unverified quote was not found verbatim in the transcript. For the human-dialer channel the transcript has no speaker labels, so the reply is located by content — the same caveat as that channel’s calibration badge.

This tab covers the AI-setter channel only (Eric & Claire, Retell) — the stage before a call is ever booked. Coverage is partial and uneven by call length; longer calls carry more objections per call, so the extracted subset is not a random sample of the corpus. Unmapped is a taxonomy-widening signal, not a theme. For the closing stage, see the OBJECTIONS tab.

Loading…
Flipped to Showed
—
Reached, no consult
—
Voicemail / no answer
—
Needs a human
—
No transcript
—

Calls reviewed

Click a tile to filter, a row for the full reasoning
AppointmentProspectCloser CallVerdictConf What decided itOn the scorecard
Loading…

Attribution — the money

Real payments by originating funnel + ad — high-ticket program closes (incl. financed plans + Payva-remitted cash, net of refunds) split from low-ticket ($8 course) sales
—

Revenue by setter — who set the sale

New deals in the period, credited to the setter of the last sales call before they paid, next to what the commission record says
loading…

Paid funnels — what the ad dollars return

Only funnels with Meta ad spend in the period. ROAS bars share one scale — the tick = 1.0× breakeven; green ≥2×, amber 1–2×, red loses money. Close rate = share of that funnel's leads that became a $500+ client (best in bold). Sorted by spend.
Funnel Spend Customers Close rate Cost / customer ROAS HT revenue
Loading…

Revenue without ad spend

Clients with no ad dollars behind them — legacy era (before tracking existed, pre-Sep 2024), organic, referrals. No close rate or CAC here: these are survivor cohorts, the percentages would be meaningless.
SourceCustomersHT revenue
Loading…

Untouched leads — never called, booked, or AI-dialed

Leads with zero sales touches (no booking, no human dial, no AI dial — matched by email + phone). Excludes existing high-ticket clients and DNC-tagged contacts; $8-course buyers INCLUDED (hottest cohort). Click a row for the list, or download CSV to feed the dialer.
Funnel Untouched With phone New (90d) $8-course buyers
Loading…
▸ Detail — journeys, ads & cross-funnel paths (the forensic tables — open when you want to dig)

Top Journeys → Closed Sales

Originating funnel + ad, ranked by closes. Click a row to see the contacts and the dates they were created.
Funnel Originating ad HT closes HT revenue LT sales LT revenue Med. days to close Contacts created
Loading…

Top ads behind the closes

Every closed sale grouped by originating ad
Ad Funnel HT closes HT revenue LT sales LT revenue
Loading…

Cross-Funnel Journeys

People who engaged 2+ of Low-Ticket / Webinar / VSL — lifetime cohort. Close = a real high-ticket payment (≥$500).
—

Does stacking funnels lift closing?

High-ticket close rate by how many of the 3 funnels a person engaged
Funnels engagedPeopleHigh-ticket closesClose rateHT revenue
Loading…

Best funnel combinations

Which mix of funnels closes best — sorted by close rate (small samples shown, judge with the People count)
Funnel mix # People HT closes Close rate HT revenue
Loading…

Most common paths (in order)

The order people hit the funnels. Click a row to see the actual people and their touch dates.
Path People HT closes Close rate HT revenue Med. days between
Loading…

Buyer DNA — live

Who actually buys — computed fresh on every load.
Loading…
Loading…
—

Sales Log

Reassign closer / setter credit per deal
DateClientAmountIn logSource Category StatusCommission RuleCloserSetter
Loading...

Status Breakdown

Each status as a share of all counted deals (count and %).
Loading…

Cash Collected by Closer

Each closer's cash collected (after fees), counted deals only. Longer bar = more collected.
Loading…

Cash Collected by Category

Last 90 days · counted deals. Longer bar = more collected; the number after each bar is the deal count.
Loading…

Commissions

Per-rep payout roster by pay period (read-only)
—
RepRoleDeals Commission $Stub status
Loading...

Roster

Sales rep roster — commission_reps
NameEmailRole(s)Setter type Rate %Base payActiveActions
Loading...
Fully certified
—
Modules passed
—
Not started
—
Attempts · 7 days
—

Progress by rep

Best score per module · least progress first
Loading…
94% passed 72% best score, not passed yet — not attempted

Hover a score for attempts and date. Scores are graded in the rep’s browser, so treat this as a training record, not a proctored exam.

Most-missed questions

Each rep’s latest attempt per module
Loading…

Recent attempts

Last 40, all reps
WhenRepModuleScoreResult
Loading…
Loading…
Calls
—
GHL texts
—
SendBlue
—
Total touches
—
People reached
—
Booked after a touch
—
How this is counted

A follow-up touch is an outbound call, GHL text, or SendBlue message from a closer to someone who had no live call on the calendar that day or later (booked before that day). Touches to people who were already booked are pre-call work: shown in their own column and left out of every headline number. A booking the prospect makes the same day or later still counts, and that person shows as Booked after.

Coverage. Calls and SendBlue dashboard messages are complete. GHL texts are complete from Sep 16, 2026 onward (the message poller now follows every manually sent message); before that date the cache only held the most-active conversations, so earlier text counts are a floor. SendBlue carries no call records. Connected = a completed call of 30 seconds or more. People = distinct prospects.

By closer

Click a closer to filter the list
Closer Channel mix Calls Texts SendBlue Total People Booked Pre-call
Loading…

By day

Click a bar to filter the list
Loading…

Who they reached

Closer Prospect Buyer Touches Total Days Last touch Outcome
Loading…

Onboarding

loading…
Loading…

done waiting on someone failed not started not needed · click a rep for the detail

Loading…
Booked at dial time
—
Not booked
—
Total dials
—
People reached
—
Pending verdicts
—
How this is counted

Answer rate = answered ÷ (dials − no-transcript − pending). A GHL dial's verdict (answered / voicemail / screened / no answer / no transcript) comes from GHL's own call transcript, classified with the same rules that were hand-audited on 260919 (answered ~95% correct, voicemail 25/25). Screened is a Google-style call-screening prompt where nobody ultimately came on the line. No transcript means the dial completed 30s+ but has no recording on file (a rep's seat has call recording off) — it is excluded from the rate, never counted as a miss. A dialer.io dial's verdict comes from its own disposition (no transcripts on that side). Booked means the person already had a sales/triage appointment on the calendar at the moment of the dial.

Reference (30 days to 260919, GHL, reps with transcripts): 1,672 dials · 32.2% answered · 34.1% voicemail · 5.9% screened · 27.8% no answer. Booked 1,067 dials, 35.7% answered (50.6% of 451 people reached) vs Not booked 605 dials, 26.0% answered (28.7% of 407 people reached). VSL 33.4% (590) vs 21.2% (264); Public Webinar 37.4% (334) vs 31.7% (205). dialer.io: Booked 27.2% (268) vs Not booked 8.2% (8,842). If a live run drifts far from these, something changed — recheck before trusting the new number.

Verdict mix

Answered / voicemail / screened / no answer (no-transcript and pending shown separately)
Loading…

By funnel

Click a column header to sort · booked and not-booked side by side
Funnel Booked dials Booked answer rate Not-booked dials Not-booked answer rate
Loading…

By rep

Transcript coverage = share of completed, checked dials that came back with a transcript
Rep Dials Answer rate Transcript coverage No transcript Pending
Loading…
Loading…
Closers under the minimum
—
Days blocked off this week
—
Setters behind on dial days
—
Team hours next week
—
How this is counted

Closer hours are configured availability — the hours each closer has open on their own GoHighLevel profile, which is where all of it lives (both sales calendars carry no hours of their own, so the calendar contributes nothing and the person contributes everything). The number is their free slots plus their own booked appointments: GHL's free-slot feed subtracts time that is already booked, so counting it raw would score a fully booked closer as an unavailable one. Slot length is read from each calendar, never assumed.

A day is blocked off (shown in red) when GHL answered and the answer was zero available minutes — the closer has nothing open that day. A day the snapshot never saw is drawn in grey as not captured, which is a different thing and is never counted against anybody. GHL will only report availability for the 14 days ahead of now, so history is built by snapshotting each day while it is still inside that window; weeks before this tab shipped have no snapshot and will read as partial forever.

Click any day in the grid to see exactly which hours that closer has open, in Central time. Slots with a call already booked in them are marked • — they still count toward the hours, because the number is availability the closer opened up, not time left over.

Target: 36h minimum, 40h ideal per closer per week (6 hours a day, 6 days a week). Weeks run Monday to Sunday.

Setter dialing days count a day once the setter places at least 100 dials. Dials are the canonical combined number — dialer.io plus manual GoHighLevel calls — taken from the same rollup the setters are paid and graded on, not recounted here. Days with some dialing that did not clear the bar are drawn in amber with the raw count, so a half day is visible rather than silently reading as a day off. Expectations: 6 days for Soham and Stefan, 5 for Rachel.

Closer availability — this week and next

Hours open per day. Red = completely blocked off. Click a day for the hours.
Loading…

Closer hours by week

Total configured availability per week against the 36h minimum
Loading…

Setter dialing days — recent weeks

Dials per day. Green = counted as a dialing day, amber = dialed but under the bar.
Loading…

Setter dialing days by week

Days dialed against each setter's expectation
Loading…
Loading…

Close review

New-client closes whose credit may need a look
Outstanding
—
Caught up
—
SOPs with someone behind
—
Finished this week
—

Who is behind, by SOP

Loading…
SOPTitleBehindWho, and what is left
Loading…

By rep

Most outstanding first · only SOPs for their role
RepRoleOutstandingCaught upLast activity
Loading…