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).
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).
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.
| Campaign | Status | Spend | Contacts | Cust. | Revenue | ROAS | Meta CPA | Cost/SQL | Cost/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.
Campaigns with at least $5,000 spend in the period.
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.
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).
| Pipeline | 2025 won | 2025 revenue | 2025 avg deal | 2025 share (deals / rev) | 2026 won | 2026 revenue | 2026 avg deal | 2026 share (deals / rev) |
|---|---|---|---|---|---|---|---|---|
| Installs & Builds | 287 | $1,744,752 | $6,079 | 59% / 74% | 174 | $1,115,968 | $6,414 | 52% / 82% |
| Sheets Only | 114 | $364,242 | $3,195 | 23% / 16% | 72 | $180,688 | $2,510 | 21% / 13% |
| Miami Install | 18 | $130,731 | $7,263 | 4% / 6% | 1 | $5,725 | $5,725 | 0% / 0% |
| Miami Build | 2 | $37,857 | $18,928 | 0% / 2% | 0 | $0 | n/a | 0% / 0% |
| Ecommerce Pipeline | 66 | $64,617 | $979 | 14% / 3% | 76 | $57,083 | $751 | 23% / 4% |
| Passing Lead to Partner | 0 | $0 | n/a | 0% / 0% | 14 | $0 | n/a | 4% / 0% |
| Total | 487 | $2,342,200 | $4,809 | 100% | 337 | $1,359,464 | $4,034 | 100% |
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.
| Group | Camps | Spend | Contacts | Cust. | Revenue | ROAS | Meta CPA | Cost/SQL | Cost/cust |
|---|
Contacts created Jan 1 to Sep 3 of each year, with revenue from their deals closed to date (Nov 3). Two months of buffer lets most of these leads close, so the comparison is fairer than YTD.
| Pipeline | 2025 won | 2025 revenue | 2025 avg deal | 2025 share (deals / rev) | 2026 won | 2026 revenue | 2026 avg deal | 2026 share (deals / rev) |
|---|---|---|---|---|---|---|---|---|
| Installs & Builds | 249 | $1,549,641 | $6,223 | 61% / 76% | 164 | $1,056,848 | $6,444 | 54% / 84% |
| Sheets Only | 93 | $292,139 | $3,141 | 23% / 14% | 66 | $163,414 | $2,476 | 22% / 13% |
| Miami Install | 16 | $122,564 | $7,660 | 4% / 6% | 1 | $5,725 | $5,725 | 0% / 0% |
| Miami Build | 2 | $37,857 | $18,928 | 0% / 2% | 0 | $0 | n/a | 0% / 0% |
| Ecommerce Pipeline | 50 | $38,890 | $778 | 12% / 2% | 62 | $38,082 | $614 | 20% / 3% |
| Passing Lead to Partner | 0 | $0 | n/a | 0% / 0% | 10 | $0 | n/a | 3% / 0% |
| Total | 410 | $2,041,091 | $4,978 | 100% | 303 | $1,264,069 | $4,172 | 100% |
Meta spend and Meta CPA from Ads Manager for Jan 1 to Sep 3. Contacts, customers and revenue are Meta contacts created Jan 1 to Sep 3 matched to a campaign by campaign ID first, then by exact campaign name, with closed-won deals to Nov 3. Matching places 11,023 of 11,764 2026 contacts (231 of 285 customers, $1,019,507 of $1,258,344 revenue) and 8,778 of 9,785 2025 contacts (305 of 356 customers, $1,719,883 of $2,015,764). The rest are in the Unattributed Meta row.
| Campaign | Status | Spend | Contacts | Cust. | Revenue | ROAS | Meta CPA | Cost/SQL | Cost/cust |
|---|
Meta CPA is Meta cost per website lead from Meta Ads Manager (Jan 1 to Sep 3), defined as on the YTD tab. Status is the Meta delivery status at export. n/a means no Meta leads or no matched SQLs.
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.
| Group | Camps | Spend | Contacts | Cust. | Revenue | ROAS | Meta CPA | Cost/SQL | Cost/cust |
|---|
Meta contacts created Jan 1 to Sep 3, 2026 (11,764) and 2025 (9,785), with revenue from their closed-won deals to date (Nov 3). Revenue per lead is the number to compare: it combines close rate and deal size. For reference, Meta spend per contact in this window was $56.09 in 2026.
| Group (2026 cohort) | Contacts | Revenue | Avg / median per customer | In service area | Need an installer | Install myself | Build leads | 2025 contacts / revenue |
|---|---|---|---|---|---|---|---|---|
| High-value customers (Installs & Builds won) | 158 | $1,059,414 | $9,901 / $6,656 | 70% | 60% | 22% | 28% | 227 / $1,690,704 |
| Low-value customers (Sheets, ecommerce or partner only) | 128 | $204,656 | $3,010 / $2,072 | 30% | 20% | 51% | 16% | 130 / $350,387 |
| Got a deal, not closed | 859 | $0 | n/a | 43% | 44% | 34% | 33% | 900 / $0 |
| Never qualified (no deal) | 10,619 | $0 | n/a | 39% | 45% | 35% | 36% | 8,528 / $0 |
High-value customers are 70% in service area (Lead Location IS) and 60% need an installer. Low-value customers are 30% in service area and 51% install themselves. Leads that got a deal but did not close look almost the same as leads that never qualified, so the form answers predict deal size better than they predict who sales will quote.
| Service area and install answer | Leads | Got a deal | Customers (I&B) | Close rate | Avg revenue / customer | Revenue / lead | 2025 revenue / lead (leads) |
|---|---|---|---|---|---|---|---|
| Out of service area, Need an installer | 2,718 | 7.2% | 33 (17) | 1.2% | $4,015 | $49 | $104 (1,699) |
| Out of service area, Install myself | 2,627 | 9.9% | 64 (22) | 2.4% | $2,289 | $56 | $93 (3,641) |
| In service area, Need an installer | 2,228 | 12.7% | 80 (72) | 3.6% | $7,678 | $276 | $430 (1,576) |
| In service area, Install myself | 1,242 | 9.1% | 33 (13) | 2.7% | $1,237 | $33 | $220 (1,847) |
| In service area, no answer | 947 | 10.1% | 22 (19) | 2.3% | $9,954 | $231 | $749 (438) |
| Out of service area, Already have an installer | 547 | 12.1% | 9 (1) | 1.6% | $1,085 | $18 | $243 (258) |
| Out of service area, no answer | 444 | 8.1% | 6 (0) | 1.4% | $4 | $0 | $0 (68) |
| Lead Location blank, Need an installer | 332 | 6.6% | 7 (6) | 2.1% | $5,583 | $118 | $0 (2) |
| In service area, Already have an installer | 248 | 11.3% | 13 (6) | 5.2% | $1,701 | $89 | $345 (143) |
| Lead Location blank, Install myself (sparse) | 226 | 7.5% | 3 (0) | 1.3% | $6,175 | $82 | $0 (4) |
| Lead Location blank, no answer | 128 | 13.3% | 13 (1) | 10.2% | $1,109 | $113 | $0 (109) |
| All Meta leads | 11,764 | 9.7% | 286 (158) | 2.4% | $4,420 | $107 | $209 (9,785) |
Customers column shows all customers, with the Installs & Builds (incl. Miami) customers in brackets. Revenue / lead = revenue / leads in that row. Rows marked sparse have fewer than 5 customers.
| Service area (lead_location) | Leads | Got a deal | Customers (I&B) | Close rate | Avg revenue / customer | Revenue / lead | 2025 revenue / lead (leads) |
|---|---|---|---|---|---|---|---|
| Out of service area (OOS) | 6,336 | 8.8% | 112 (40) | 1.8% | $2,578 | $46 | $102 (5,666) |
| In service area (IS) | 4,665 | 11.1% | 148 (110) | 3.2% | $6,055 | $192 | $365 (4,004) |
| Lead Location blank | 763 | 8.7% | 26 (8) | 3.4% | $3,044 | $104 | $0 (115) |
| All Meta leads | 11,764 | 9.7% | 286 (158) | 2.4% | $4,420 | $107 | $209 (9,785) |
| Need a pergola built? | Leads | Got a deal | Customers (I&B) | Close rate | Avg revenue / customer | Revenue / lead | 2025 revenue / lead (leads) |
|---|---|---|---|---|---|---|---|
| No, I already have one | 5,649 | 11.4% | 177 (97) | 3.1% | $3,046 | $95 | $192 (5,863) |
| Yes, I'd like a quote | 3,786 | 7.3% | 50 (34) | 1.3% | $9,413 | $124 | $169 (2,801) |
| No answer | 1,693 | 9.0% | 42 (20) | 2.5% | $5,268 | $131 | $522 (758) |
| Yes, but I have a contractor | 636 | 11.6% | 17 (7) | 2.7% | $1,948 | $52 | $135 (363) |
| All Meta leads | 11,764 | 9.7% | 286 (158) | 2.4% | $4,420 | $107 | $209 (9,785) |
| Lead type | Leads | Got a deal | Customers (I&B) | Close rate | Avg revenue / customer | Revenue / lead | 2025 revenue / lead (leads) |
|---|---|---|---|---|---|---|---|
| Build | 4,209 | 8.3% | 66 (45) | 1.6% | $9,085 | $142 | $242 (3,073) |
| Product Only | 4,075 | 10.1% | 110 (42) | 2.7% | $2,438 | $66 | $128 (4,789) |
| Install | 3,348 | 10.8% | 92 (69) | 2.7% | $4,065 | $112 | $390 (1,748) |
| No answer | 106 | 17.9% | 15 (2) | 14.2% | $1,455 | $206 | $0 (137) |
| All Meta leads | 11,764 | 9.7% | 286 (158) | 2.4% | $4,420 | $107 | $209 (9,785) |
Build leads close least often (1.6%) but bring the biggest deals ($9,085 average), so their revenue per lead ($142) beats Product Only ($66).
| State | Leads | Got a deal | Customers (I&B) | Close rate | Avg revenue / customer | Revenue / lead | 2025 revenue / lead (leads) |
|---|---|---|---|---|---|---|---|
| TX | 2,451 | 8.3% | 67 (51) | 2.7% | $2,723 | $74 | $317 (2,236) |
| CA | 1,585 | 8.8% | 31 (18) | 2.0% | $2,024 | $40 | $130 (1,340) |
| FL | 1,348 | 16.9% | 36 (19) | 2.7% | $5,116 | $137 | $176 (1,071) |
| No answer | 929 | 8.3% | 15 (10) | 1.6% | $4,619 | $75 | $19 (459) |
| CO | 474 | 14.8% | 34 (29) | 7.2% | $12,707 | $911 | $1,071 (424) |
| IL | 436 | 8.0% | 6 (2) | 1.4% | $819 | $11 | $0 (198) |
| OK | 344 | 5.5% | 10 (8) | 2.9% | $6,380 | $185 | $376 (199) |
| GA | 324 | 31.8% | 5 (2) | 1.5% | $5,792 | $89 | $176 (404) |
| NY | 300 | 4.7% | 6 (0) | 2.0% | $3,780 | $76 | $112 (248) |
| NC | 294 | 4.8% | 7 (1) | 2.4% | $882 | $21 | $106 (339) |
| SC (sparse) | 212 | 2.8% | 4 (1) | 1.9% | $6,384 | $120 | $134 (187) |
| MO | 178 | 15.7% | 5 (0) | 2.8% | $2,335 | $66 | $41 (119) |
| All Meta leads | 11,764 | 9.7% | 286 (158) | 2.4% | $4,420 | $107 | $209 (9,785) |
Colorado is the standout in both years ($911 per lead in 2026, $1,071 in 2025). California, Illinois, North Carolina and Ohio bring volume with little revenue.
| Placement (from ad URL) | Leads | Got a deal | Customers (I&B) | Close rate | Avg revenue / customer | Revenue / lead | 2025 revenue / lead (leads) |
|---|---|---|---|---|---|---|---|
| Facebook_Mobile_Feed | 1,574 | 10.2% | 37 (29) | 2.4% | $5,953 | $140 | $438 (229) |
| Facebook_Mobile_Reels | 1,263 | 6.9% | 18 (12) | 1.4% | $7,505 | $107 | $202 (76) |
| Instagram_Reels | 674 | 10.1% | 13 (5) | 1.9% | $4,574 | $88 | $324 (31) |
| Instagram_Feed | 453 | 12.4% | 10 (5) | 2.2% | $3,454 | $76 | $97 (106) |
| Instagram_Stories | 214 | 8.9% | 5 (4) | 2.3% | $10,025 | $234 | $5,666 (25) |
| Facebook_Stories (sparse) | 129 | 4.7% | 1 (1) | 0.8% | $3,568 | $28 | $0 (17) |
| Facebook_Desktop_Feed | 103 | 14.6% | 9 (5) | 8.7% | $5,095 | $445 | $0 (5) |
| Facebook_Marketplace (sparse) | 73 | 16.4% | 3 (2) | 4.1% | $8,493 | $349 | $0 (9) |
| Facebook_Instream_Video (sparse) | 47 | 8.5% | 0 (0) | 0.0% | n/a | $0 | $0 (3) |
| Not tracked in URL | 7,168 | 9.8% | 187 (93) | 2.6% | $3,579 | $93 | $190 (9,268) |
| All Meta leads | 11,764 | 9.7% | 286 (158) | 2.4% | $4,420 | $107 | $209 (9,785) |
Only 39% of 2026 leads (and 5% of 2025 leads) carry a placement in the ad URL, so read this as directional. Facebook Mobile Feed has the most volume and the best revenue per lead of the large placements ($140). Facebook Stories (129 leads, 1 customer) and Instream Video (47 leads, 0 customers) are the weakest.
| Platform | Leads | Got a deal | Customers (I&B) | Close rate | Avg revenue / customer | Revenue / lead | 2025 revenue / lead (leads) |
|---|---|---|---|---|---|---|---|
| 7,737 | 9.0% | 166 (100) | 2.1% | $4,559 | $98 | $163 (6,895) | |
| 2,889 | 10.2% | 62 (33) | 2.1% | $5,059 | $109 | $261 (2,614) | |
| Not tracked | 1,138 | 13.3% | 58 (25) | 5.1% | $3,339 | $170 | $856 (276) |
| All Meta leads | 11,764 | 9.7% | 286 (158) | 2.4% | $4,420 | $107 | $209 (9,785) |
| Campaign (Meta campaign ID) | Leads | Got a deal | Customers (I&B) | Close rate | Avg revenue / customer | Revenue / lead | 2025 revenue / lead (leads) |
|---|---|---|---|---|---|---|---|
| KNB - National_2 - 8/26 | 2,301 | 7.0% | 31 (13) | 1.3% | $2,970 | $40 | $39 (76) |
| CA - Materials Only - 12/12/25 | 1,191 | 8.8% | 20 (10) | 1.7% | $2,014 | $34 | n/a (0) |
| Miami - Materials & Installs - 8/26 | 894 | 15.9% | 25 (12) | 2.8% | $5,028 | $141 | $0 (26) |
| Unattributed Meta | 741 | 14.8% | 54 (24) | 7.3% | $4,423 | $322 | $308 (1,001) |
| Dallas - Materials & Installs | 734 | 7.1% | 16 (12) | 2.2% | $1,362 | $30 | n/a (0) |
| Houston - Install & Materials | 687 | 8.7% | 20 (15) | 2.9% | $4,821 | $140 | $859 (26) |
| Miami - Caribbean - Install & Materials - 8/26 | 594 | 9.8% | 6 (1) | 1.0% | $4,696 | $47 | $0 (12) |
| Carolinas - Materials Only - 12/10 | 471 | 5.7% | 9 (1) | 1.9% | $3,115 | $60 | n/a (0) |
| Dallas - Builds | 465 | 6.7% | 13 (8) | 2.8% | $3,412 | $95 | $0 (26) |
| OKC - Installs & Materials - 11/10/25 | 358 | 7.8% | 9 (5) | 2.5% | $2,724 | $68 | n/a (0) |
| Kansas City - Materials & Installs - 12/10 | 318 | 11.6% | 5 (1) | 1.6% | $2,135 | $34 | n/a (0) |
| CTX - Install & Materials - 2/21/26 | 291 | 7.2% | 12 (8) | 4.1% | $312 | $13 | n/a (0) |
| Colorado - Builds - 10/29/25 | 290 | 11.4% | 14 (12) | 4.8% | $12,072 | $583 | $6,554 (2) |
| Chicago - Installs & Materials (sparse) | 274 | 7.7% | 3 (0) | 1.1% | $7 | $0 | n/a (0) |
| All Meta leads | 11,764 | 9.7% | 286 (158) | 2.4% | $4,420 | $107 | $209 (9,785) |
Campaign comes from campaign ID matching, then campaign name (see Method on the Matured cohort tab). Unattributed Meta holds the 741 leads no method could place; they return $322 per lead, so campaign rows understate revenue a little. KNB National_2, CA materials only, Dallas materials & installs, Kansas City and the Caribbean campaign return $30 to $47 per lead, under the $56 cost per contact.
| Form | Leads | Got a deal | Customers (I&B) | Close rate | Avg revenue / customer | Revenue / lead | 2025 revenue / lead (leads) |
|---|---|---|---|---|---|---|---|
| KNB Landing Page Form | 10,533 | 9.4% | 237 (134) | 2.3% | $4,317 | $97 | $400 (164) |
| Build Form - Miami | 328 | 10.4% | 6 (6) | 1.8% | $9,939 | $182 | $0 (47) |
| Build Form - CTX (sparse) | 298 | 7.4% | 4 (4) | 1.3% | $8,865 | $119 | $0 (125) |
| Build Form (sparse) | 228 | 8.8% | 4 (4) | 1.8% | $22,106 | $388 | $832 (319) |
| Metform Elementor Form Builder | 97 | 39.2% | 9 (3) | 9.3% | $2,310 | $214 | $684 (28) |
| All Meta leads | 11,764 | 9.7% | 286 (158) | 2.4% | $4,420 | $107 | $209 (9,785) |
| Phone on the contact | Leads | Got a deal | Customers (I&B) | Close rate | Avg revenue / customer | Revenue / lead | 2025 revenue / lead (leads) |
|---|---|---|---|---|---|---|---|
| Valid phone | 11,611 | 9.8% | 285 (157) | 2.5% | $4,435 | $109 | $210 (9,439) |
| Missing or invalid phone (sparse) | 153 | 4.6% | 1 (1) | 0.7% | $0 | $0 | $159 (346) |
| All Meta leads | 11,764 | 9.7% | 286 (158) | 2.4% | $4,420 | $107 | $209 (9,785) |
| Budget answer (only about 8% answer) | Leads | Got a deal | Customers (I&B) | Close rate | Avg revenue / customer | Revenue / lead | 2025 revenue / lead (leads) |
|---|---|---|---|---|---|---|---|
| Not answered | 10,843 | 9.8% | 267 (142) | 2.5% | $4,035 | $99 | $189 (9,242) |
| $5,000+ | 586 | 7.2% | 9 (7) | 1.5% | $4,232 | $65 | $307 (305) |
| $10,000+ | 250 | 13.2% | 7 (7) | 2.8% | $14,474 | $405 | $197 (157) |
| $20,000+ (sparse) | 85 | 10.6% | 3 (2) | 3.5% | $15,776 | $557 | $2,402 (71) |
| All Meta leads | 11,764 | 9.7% | 286 (158) | 2.4% | $4,420 | $107 | $209 (9,785) |
Bad phone numbers are rare (153 leads in 2026) and only 1 of them bought, so junk contact data is not the main quality problem. Budget and timeline are answered by only about 8% of leads; $10,000+ and $20,000+ budgets show higher revenue per lead but on 3 to 7 customers.
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.