Cover Your Pergola: Meta Spend vs HubSpot Revenue, 2025 vs 2026

Year to date (Jan 1 to Nov 3) Meta spend against revenue from all Meta contacts, 2026 vs 2025, overall and by campaign (matched by campaign ID first, then campaign name).

Headline: YTD 2026 vs YTD 2025

Spend grew 22% in 2026, but revenue from Meta contacts fell 42%, so ROAS fell from 3.39x to 1.62x. Spend is all Meta spend (three ad accounts); contacts, customers and revenue are all Meta contacts created Jan 1 to Nov 3, with closed-won deals to Nov 3, including the Unattributed Meta contacts that could not be tied to a campaign. Late 2026 leads have had less time to close; the Matured cohort tab controls for that.

2026 YTD spend already exceeds full year 2025 spend ($821,646).

Two years side by side

Light: 2025 YTD   Dark: 2026 YTD

Campaign table

Spend and Meta CPA are from Meta Ads Manager exports (Jan 1 to Nov 3). Contacts, customers, revenue and SQLs are Meta contacts created Jan 1 to Nov 3 matched to that campaign by campaign ID, or by exact campaign name when no ID is available, with closed-won deals to Nov 3. Unattributed Meta holds the contacts no method could place; it has no spend, so ROAS and cost columns show n/a.

CampaignStatusSpendContactsCust.RevenueROASMeta CPACost/SQLCost/cust

Meta CPA is Meta cost per website lead from Meta Ads Manager (Jan 1 to Nov 2). Compare it with Cost/cust, which is HubSpot cost per closed customer. n/a means no Meta match or 0 Meta leads.

Top campaigns by revenue

2026 YTD

2025 YTD

Top campaigns by ROAS

Campaigns with at least $5,000 spend in the period.

2026 YTD

2025 YTD

KNB National_2 - 8/26

The 8/26 ads carried the older 7/11 campaign's hsa_cam ID as a fixed number but the correct utm_id, so matching by utm_id first credits the 8/26 campaign with its own leads. The URL parameters were fixed in Meta on Nov 3, 2026 and now use dynamic macros.

Spend
$101,890
2026 YTD
Contacts
2,819
Customers
34
Revenue
$99,962
ROAS
0.98x
vs 1.62x all Meta
Cost per SQL
$525
194 SQLs
Cost per customer
$2,997
vs $2,633 all Meta

Installs & Builds vs Sheets Only, YTD 2025 vs YTD 2026

Closed-won deals of Meta contacts created Jan 1 to Nov 3 of each year, by deal pipeline, from the HubSpot CRM (deal counts stand in for customers).

Pipeline2025 won2025 revenue2025 avg deal2025 share (deals / rev)2026 won2026 revenue2026 avg deal2026 share (deals / rev)
Installs & Builds287$1,744,752$6,07959% / 74%174$1,115,968$6,41452% / 82%
Sheets Only114$364,242$3,19523% / 16%72$180,688$2,51021% / 13%
Miami Install18$130,731$7,2634% / 6%1$5,725$5,7250% / 0%
Miami Build2$37,857$18,9280% / 2%0$0n/a0% / 0%
Ecommerce Pipeline66$64,617$97914% / 3%76$57,083$75123% / 4%
Passing Lead to Partner0$0n/a0% / 0%14$0n/a4% / 0%
Total487$2,342,200$4,809100%337$1,359,464$4,034100%
What it showsInstalls & Builds is the revenue engine both years (75% of linked 2025 revenue, 82% in 2026). Its average deal held steady ($6,079 in 2025, $6,414 in 2026), but won deals fell from 287 to 174 so far. Sheets Only fell from 114 deals and $364,242 to 72 deals and $180,688, with a lower average deal ($3,195 to $2,510). Miami Install and Miami Build, worth $168,588 in 2025, are nearly gone in 2026 ($5,725). Ecommerce added more small orders (76 vs 66, about $750 each).

Findings

Growth story2026 brought 20% more Meta contacts but 25% fewer customers on 22% more spend, so cost per customer rose from $1,607 to $2,633. Revenue per customer also fell, from $5,451 to $4,270, so Meta revenue is down 42%. Part of the gap is time to close; through Sep 3, revenue is down 38%.

Caveats

Campaigns grouped by branch and type, YTD (Jan 1 to Nov 3)

Same metrics as the campaign table, summed across similar campaigns (date-suffixed copies and KNB variants for the same market and type roll into one row). Campaigns with no clear market are their own group. Grouping rules are in Method.

GroupCampsSpendContactsCust.RevenueROASMeta CPACost/SQLCost/cust

Sources: Meta Ads Manager campaign exports with campaign IDs (Jan 1 to Sep 3 and Jan 1 to Nov 3, both years) joined to HubSpot contacts and closed-won deals by campaign ID, then campaign name. Headline KPIs cover all Meta contacts, including Unattributed Meta. Meta CPL and CPA from Meta Ads Manager.