Reminder: Ad-spend only comparison. HJ also carries SDR/Dave time, nurture emails, and phone costs that VV does not.
Where to Invest Next
Recent performance (what scenarios are projecting from)
Side
Spend (4w)
Avg/wk
Booked
CPBC
Pipeline to Revenue
How ad spend turns into customers and revenue. ROAS uses actual closed deal values only - no LTV placeholder. Treat ROAS as directional until N≥3 closed per side.
The funnel so far
Stage
Hubjoy
VV
Total
How long it takes to close a customer
Active pipeline deals
Company
Side
Current Stage
Days open
Important context. HJ's real customer acquisition cost is higher - this report only counts ad spend. HJ also carries SDR time, nurture emails, and phone costs. ROAS uses actual closed deal values; treat as directional until N≥3 closed per side.
Deal-by-Deal Audit
VV Booked Calls
Wk
Created
Company
Outcome
Stage
Days
Hubjoy Paid Booked Calls
Wk
Created
Company
Outcome
Stage
Days
Excluded Deals
Created
Company
Source
Reason
Reconciliation
Bucket
Count
Methodology
What counts as a booked call
Any deal in the default sales pipeline with a createdate inside the reporting window.
Call outcome rules
Current Stage
Call Outcome
Expressed Interest
Pending (booked, not yet held)
Recycled
No-show
Discovery / Deep Dive / Audit / Closing / Proposal Signed / Closed Won
Completed
Closed Lost (with discovery completed)
Completed (call happened, deal didn't close)
How we assign VV vs Hubjoy
VV: contact custom_contact_source IN (VV-Zapier, VV-Discovery) OR hs_analytics_first_url contains try.hubjoy.co
Hubjoy paid: contact hs_analytics_source = PAID_SOCIAL AND not VV
Excluded: everything else (organic, referral, direct traffic, etc.)
Why we use createdate, not meeting date
Createdate never changes. Meeting date gets overwritten when calls are rescheduled.
Meeting date is sometimes blank on valid bookings.
Createdate is the moment the booking happened - closest event to the ad.
Lines up ad spend weeks with booking event weeks.
Data sources
Meta ad spend: Pipeboard MCP at campaign level for the reporting window.
HubSpot deals: API deal search, default pipeline, createdate in window.
HJ and VV optimize for DIFFERENT funnel events. HJ's ads optimize for the landing-page / lead-form submission (a cheap, shallow conversion). VV's ads optimize for the booked call (a deeper conversion). Their cost-per-lead numbers are therefore NOT comparable, and we do not pit them against each other. The only fair comparison points are the shared downstream stages: cost per booked call (CPBC), cost per completed call (CPCC), show rate, and closed-won / ROAS.
"Closed Won" means ever-won. A deal counts as closed-won if it ever entered the Closed Won stage (detected via hs_v2_date_entered_closedwon, which survives a later move to Churned) or is currently in a won stage. Ad spend earned that revenue regardless of later churn, so ROAS uses ever-won. Churn is shown separately (retained vs churned) as a retention signal, not erased. Example: VV's ReportWORQ ($6,999) is 1 closed-won that later churned - it is NOT zero.
Known caveats
Ad-spend only. HJ's real cost includes SDR time, nurture emails, and phone costs.
Small sample sizes. Show rate conclusions are directional, not definitive. Closed-won is 1 per side (N=1), so ROAS and "which channel wins" are not yet statistically answerable - need N≥3 per side.
HJ pending deal staleness. Many pending HJ deals are 30+ days old. If resolved as no-shows, HJ's show rate would drop further.
VV pixel leads vs HubSpot bookings gap. VV reports more leads in Meta than appear in HubSpot.
ROAS uses actual closed deal values from HubSpot's amount field. No placeholder LTV. ROAS shows "Not yet measurable" when N=0 closed-won. Treat as directional until N≥3 per side.
Week boundaries
Monday-Sunday (ISO). Deals created on Monday belong to that week's Monday-Sunday window.