Murph Outbound Funnel

Meta ad spend to booked discovery calls. One chain, every number pulled live and labelled with its source.

Headline economics

GHL truth
Cost per booked call
spend / leads
Cost per lead
PostHog + Meta
Click to lead
Meta
Cost per click

The funnel

Call quality, LockedIn grades on the booked calls

Meta spend / LockedIn A+B
Cost per A or B call
LockedIn call_logs
Grading coverage
LockedIn outcomes
Held / no-show
LockedIn outcomes
Won
Grade distribution, calls joined to this window's bookings
GradeCallsWonClose rate

VSL retention, the content-quality signal

Of the leads who reach the post-gate VSL on /video, how deep they watch (PostHog vsl_progress). This is the lever for the VSL itself: hook vs body vs offer. It is not lead to watched (the email gate sits before the video, so that is ~100% by design and measures nothing).

Scaling model, drag a lever to scale the whole funnel

Variables

live = measured this window. The two purple rows are your real levers. Grey rows are assumptions, set them to your numbers.

Spend (Meta)
Spend per day$
Cost per click$
The funnel, your two levers
Click to lead the gate: offer + phone field%
Lead to booked the VSL and the close%
Sales (assumptions, set to your data)
Show rate%
Close rate%
Economics (assumptions)
Price per month$
Gross margin%
Avg retention months mo
Customers per mo
New MRR per mo
added every month
CAC per customer
spend / customers
Cost per lead
leads per mo
Cost per booked
booked per mo
Payback
months of margin
LTV to CAC
LTV $
Booked per mo
at this spend
Closer load
calls per workday
Scaling ladder, at your current levers
Spend/dayLeads/moBooked/moCustomers/moNew MRR/moCACClosers
Leads and cost-per-lead are anchored to the live click to lead. Everything past booked rides on the assumption sliders, set show, close and price to your real numbers before trusting the customers and MRR columns.

Per-ad breakdown, Meta ad.id = PostHog initial_utm_content

AdSpendClicksCTRCR (lead)CPLVSL view75%

Tracking truth

Deep funnel and revenue, below the booked call

GHL pipeline, source (all-time)
StageOpps
New lead87
Shown Interest39
Needs Manual Follow Up3
Booking Link Sent6
Meeting booked1
Discovery done2
2nd meeting booked1
Closed to sale4
Sold (client)1
Nurture2
Lost / Disqualified2
GHL stage fields are maintained by hand (demoted to metadata): directional, not truth. Per-ad attribution dies here, bookings attach to Meta only via the source field, never the ad. The booking truth is the calendar count above.
Revenue and ROAS
Stripe active subscriptions9
Stripe MRR (mixed-ccy est)$8,102
Ad-sourced revenuenot joined
ROASopen
Stripe MRR is mostly non-ad retainers, there is no Stripe to Meta Purchase event and GHL monetaryValue is 0 on every opp, so ad ROAS cannot be computed today. Flagged, not faked.