Every ad dollar from Meta, Google, and the 2026 budget sheet, matched against Builder Prime leads and sold jobs — plus what the numbers say to do next as the marketing moves in-house.
| Source | Yesterday | Last 7 days | Value per lead | Cost per lead | Est. 7-day value |
|---|
Counts pull nightly from the shared lead tracker — aggregate numbers only, no customer details. "Value per lead" is what a lead from each source historically turned into in sold revenue over the trailing CRM year (revenue, not profit — send job-cost data to upgrade this to true profitability). Recommendations are generated daily from the last 30 days of flow plus last year's seasonal pattern. Today's bar keeps filling in until end of day.
Google Local Services closed 43% of its leads and sold $315K on under $6K of spend (Aug ’25–Jan). Since February it has logged zero leads — while spend nearly tripled to $2.8K/mo — $15.5K spent for nothing, and still burning at ~3× its $1K/mo plan per the August weekly sheet. The account is either paused, suspended, mis-targeted, or leads aren't reaching the CRM. Finding out is the single highest-value hour anyone can spend this week.
GLS leads per month, Sep → Aug. Bars stop dead in Feb.
Feb–Apr, a sold job cost ~$610 in ad spend. May–Jul, spend jumped from ~$47K to ~$72K/mo and cost per job hit $1,100–$1,600 — the extra dollars bought progressively worse leads. The last ~$25K/mo of spend was producing far below breakeven quality. Scaling should have gone into budget earlier in the year (see seasonality), not higher in the summer.
Meta delivered 4,621 leads (81% of all paid leads) but closed only 5%, vs Google's 19.5%. 96%+ are Instant Forms — people who never left Facebook. That's not a reason to kill Meta (5.7× ROAS); it's a reason to treat those leads differently: instant AI speed-to-lead, qualification questions on the form, and a nurture sequence, instead of the same follow-up as a high-intent Google search lead.
Since the Indy accounts launched (Apr 2026): $123K spend → 36 sold jobs → $303K. That's ≈$3,400 per sold job and ~2.5× ROAS, vs NWI's ~$600–1,100 and 6–7×. Worse: the Indy budget sheet shows Google ran $20.9K over plan and Meta $24.4K over plan — the weakest market got the biggest unplanned raise — and recent weeklies show Indy Google at ~$2.9K/week for 1–2 leads. New markets ramp slowly, but Indy needs its own creative, reviews, and a GLS/LSA presence — not a copy-paste of NWI campaigns at growing budgets.
ChatGPT Ads: $4,660, zero leads — and per the August weekly sheet it's still running at ~$700/week. Google (non-GLS) ran 11 straight weeks — Sep through mid-Nov 2025 — spending $24.8K with zero CRM-matched leads; tracking gap or waste, either way unacceptable, and nobody caught it for nearly three months. A TOFU test in IL/MI: $6,176 for 2 leads ($3,088 each). Bing and TikTok were rightly killed early. Rule going forward: any channel that can't show a CRM-matched sale inside 60 days gets cut.
Client referrals closed 51%, past clients 48%, organic 38% — together $2.1M sold at near-zero media cost. There's no line in the budget for a referral program. A systematic ask-for-referral + review engine (automated post-job, $250–500 reward) is likely the cheapest revenue available to the business.
Dollar value of jobs sold, from leads created in each month. August is faded — its deals are still closing.
All paid platforms combined.
Spend ÷ jobs sold that month. Lower is better. Jul–Aug faded: close-rate lag.
Share of CRM leads that became sold customers. Google leads are ~4× more likely to buy.
You're right that Northern Indiana winters hit the top line: January was the year's worst month ($290K sold, vs $807–823K in March–April). Lake-effect snow, frozen ground, and nobody thinking about their garage floor in single digits — the demand dip is real. But the data says something more useful than "Q1 is bad":
February–April is the most efficient window of the entire year. A sold job cost $567 in February, $626 in March, $642 in April — versus $2,000–2,500 in November–December and $1,100–1,600 in May–June. Google close rates peaked at 27–31% in Feb–Mar. The people who inquire in late winter are planners getting ready for spring; they're fewer, but they buy.
Part of the bad Q1 is self-inflicted. The 2026 budget cuts to $45K in Jan–Feb, then jumps to $75K in March — spend arrives after the highest-converting leads have already been bought cheap. Radio, events, and print were all dark in Jan–Feb too. Meanwhile the truly inefficient months (Nov–Dec: Meta closing ~3.3%, cost per job $2K+) kept full budgets.
Move ~$15–20K/mo out of Nov–Dec and mid-summer, into Feb–April. Same annual spend, pointed at the window where a job costs $600 instead of $2,000. Ramp Google Search from mid-January — that's when planner-intent shows up.
Garage epoxy is indoor work — capacity doesn't freeze, demand does. Run a "Book by Feb, installed before spring" offer with real scarcity (install-slot calendar), and push commercial/industrial floors (weather-independent decision makers) Nov–Feb.
Sep–Oct leads are plentiful but close soft. Capture them into an email/SMS nurture and re-offer in January with winter pricing, instead of buying brand-new expensive leads in the trough.
| Paid channel | Spend | Leads | Sold | Close | Cost/lead | Cost/sale | Sold $ | ROAS |
|---|---|---|---|---|---|---|---|---|
| Google LSA (GLS) | $21,398 | 88 | 38 | 43.2% | $243 | $563 | $315,120 | 14.7× |
| Google (Search/PMax/YT) | $250,660 | 1,089 | 212 | 19.5% | $230 | $1,182 | $1,801,610 | 7.2× |
| Meta Ads | $318,115 | 4,621 | 232 | 5.0% | $69 | $1,371 | $1,817,380 | 5.7× |
| ChatGPT Ads | $4,660 | 0 | 0 | — | — | — | $0 | 0× |
GLS spend split out of the Google account total using campaign names. Google leads exclude GLS (separate CRM source). Jul–Aug close rates still maturing, so full-year ROAS is slightly understated.
| Non-paid source | Leads | Sold | Close | Sold $ | Avg job |
|---|---|---|---|---|---|
| Organic | 264 | 100 | 37.9% | $969,807 | $9,698 |
| Client referral | 166 | 84 | 50.6% | $682,602 | $8,126 |
| Past client | 83 | 40 | 48.2% | $445,100 | $11,128 |
| Misc / other | 235 | 33 | 14.0% | $260,341 | $7,889 |
| Radio | 52 | 19 | 36.5% | $135,425 | $7,128 |
| Referral partner | 30 | 12 | 40.0% | $122,486 | $10,207 |
| Website lead form | 63 | 13 | 20.6% | $117,075 | $9,006 |
| Direct mail | 48 | 23 | 47.9% | $116,800 | $5,078 |
| Google Business Profile | 7 | 4 | 57.1% | $49,860 | $12,465 |
| Website (generic tag) | 47 | 3 | 6.4% | $20,800 | $6,933 |
Radio spend was ~$24K (2026 budget) against $135K sold — roughly 5.6× on the matched portion. The generic "Website" tag closing at 6% vs "Website Lead Form" at 21% suggests a CRM tagging or form-routing problem worth cleaning up.
77% of all Meta spend ($243K) sits in one campaign ("201 – Mega Campaign"), 98% in two. That's fine while it works — and CPLs of $35–75 on the best ad sets are genuinely good — but it means one fatigued campaign or one account issue takes down 81% of your lead flow. Going in-house, keep 2–3 always-on campaigns with fresh flake/metallic transformation creative rotating monthly, and kill any ad set above ~$100 CPL (several ran $99–$125+, and the IL/MI test hit $3,088).
Budgeted amount per the master sheet vs. delivered media spend. August is partial (through 8/29).
NWI: Jan–Aug budget was $540K; delivered media was $437K — about $103K under, concentrated in Apr–Aug. Meanwhile Indy — the market closing at 2.5× — ran $45K over its plan (Google +$20.9K, Meta +$24.4K). Dollars flowed away from the proven market and window, toward the unproven one. The August weekly sheet also shows a week-one pacing stall ($2.5K delivered against ~$12K planned), then a scramble to catch up.
NWI: management fee $55.7K + retainer $21.0K. Indy: management fee $19.6K (and it ran $6.6K over its own planned fee). Total: $96.3K for 8 months — a ~$144K/yr pace, ≈16% on top of media. That's the going-in-house budget: it funds serious AI tooling, tracking infrastructure, creative production, and a part-time specialist, with money left over.
A %-of-spend management fee gets paid more for spending more — the May–Jul scale-up that doubled your cost per job also raised the fee. Whoever manages this next (in-house or contractor), tie compensation to cost per sold job and CRM-verified revenue, never to spend.
The field is local independents, not national franchises. Garage Force, Hello Garage, Granite Garage Floors, GatorGuard, and Concrete Craft have no NWI territory — their nearest locations are Indianapolis or Fort Wayne. Your real competition is below. Almost nobody publishes pricing (free-quote model dominates), and every serious player makes the same three claims: 1-day install, lifetime warranty, "polyaspartic is 4×/6× stronger than epoxy."
| Company | Base | Type | Review strength | Lead claim | Pricing / offers | Threat |
|---|---|---|---|---|---|---|
| GarageExperts of NWI | Crown Point | Franchise | ~110 · 5.0★ | "Industrial-strength," 140+ styles, cabinets bundle | None published | High — same town, spotless reviews |
| Trim-A-Seal | Gary / Munster | Legacy multi-line | 177 · 4.8★ | 3rd-generation since 1950, Fortress polyurea | Financing + "Seal the Deal" discounts | High — 70-yr brand equity |
| Encore Concrete Coatings | Chicagoland → NWI | Regional volume | 1,153 aggregate 5.0★ | One-day + garage organization | 20% off promo + Valpak coupons | High — the discount attacker (its old NWI licensee went out of business) |
| Wise Coatings NWI | Schererville | Franchise | 434 · 5.0★ (NiceJob) | POLYWISE® proprietary system | Cost guide ~$3–7/sq ft labor | Medium |
| Guardian Concrete Coatings | South Bend → CP pages | Independent | Low count, positive | "4× stronger," 1-day, family values | None; reviews mention low prices | Medium — SEO-aggressive in your towns |
| PureTek | Merrillville | Independent | ~94 · 4.7★ | Commercial lean, lifetime adhesion guarantee | None published | Medium (commercial bids) |
| Duvall Coating Solutions | Lowell | Independent (2023) | Small, 5.0★ | "6× stronger," family-owned | None published | Medium — young, hungry |
| Windy City Coating | New Lenox IL | Independent | 137 (Birdeye) | Built for Chicago winters | None published | Low-med (IL side) |
| T&T Concrete Coatings | Valparaiso | Independent | Near zero | Family-owned, owner-direct ("text Steve") | Wisetack financing | Low — no social proof yet |
| Ace Epoxy | SW Cook Co / NWI | Independent | None found | "Professional & Affordable," anti-DIY | $100 referral, free storage POD | Low |
| Apex · Illiana · CC Editions | NWI various | Independents | Near zero | Geo-SEO pages, climate expertise | None published | Low — but Illiana out-blogs everyone |
| CertaPro NWI · Supreme · Jack Laurie | Various | Adjacent players | n/a | Coatings as a side line | None published | Low / commercial-only |
Market reality: no local competitor publishes pricing. The only signals are Wise's ~$3–7/sq ft labor guide and directory-grade ranges of $4–10/sq ft installed. Level 10 publishes $7–13/sq ft on the homepage, $5–12 on the garage page, and $3,500–5,000 per 500 sq ft on the blog — three different answers, all premium-positioned. Two moves: (1) reconcile your own pages to one range this week; (2) then lean in — a real "what your floor will cost and why" page would be the only one in the market, and transparent pricing is the classic counter to Encore's coupon game.
Mined from competitor and category reviews (franchise complaint boards, BBB files, Yelp) plus your own ~1,085 Google / 5 Yelp reviews.
The category's one-star stories repeat five themes: floors peeling within months (bad prep or untreated moisture, not bad chemistry); companies going silent after the sale — unanswered calls stretching to years; warranties that evaporate through exclusions or franchise turnover; surprise upcharges after the agreement; and jobsite damage/mess (stained driveways, footprints). Emotional vocabulary of angry reviews: ignored, ruined, refuses, no contact.
Five-star language across every company — yours most of all — celebrates people, not products: installers named personally, photo updates during the job, crews that clean up and finish on time, small unexpected extras. Your reviews name crew members (Cole, Nate, Mike, Ethan, Kreig, Tony…) at a rate no competitor matches. Buying triggers: before/after photos, a neighbor's floor, one-day promise, warranty confidence.
Nobody in the market messages on: answering the phone in year 5 (the #1 category complaint), moisture testing before quoting (the #1 actual failure cause), warranty fine print in plain English, or named crews as the product. Caution before claiming the first one: your own few negatives (Yelp 3.4★) are exactly post-sale responsiveness misses — fix the callback process first, then own the claim loudly.
"A franchise installs a system. We answer to our neighbors. Level 10 is Crown Point-owned, our crews are our employees — never subcontractors — and 2,000+ NWI floors carry our name, not a licensing agreement."
"A coupon floor is priced to survive the coupon. We publish one honest price, put the warranty in writing, and let 1,000+ five-star reviews do the persuading — no Valpak required."
"They've done everything since 1950 — windows, siding, and floors too. Concrete coatings aren't our side line; they're the entire company. Specialists finish stronger."
"Anyone can claim quality. We can show 1,000+ verified Google reviews — most of them naming the exact installer who earned them. Ask their references; then read ours."
"Every coating brand claims a strength multiplier. Floors don't fail because the chemistry was 4× instead of 6× — they fail on rushed prep and untested moisture. We grind, we moisture-test, and we put both in the contract."
Illiana out-publishes everyone locally (18 geo-tagged posts) but stays on safe topics. Nobody covers pricing, winter, moisture, or warranty fine print. Priority order:
| # | Content piece | Buyer stage | Why it wins |
|---|---|---|---|
| 1 | "What a garage floor actually costs in NWI" — real ranges, what moves the price | Research | Zero local competition for the highest-intent search there is |
| 2 | "Can you coat a garage floor in an Indiana winter?" (yes — here's how cure works) | Research | Unclaimed topic + feeds your Q1 booking strategy directly |
| 3 | "Why floors peel: moisture, prep, and the test your installer should run" | Consideration | Addresses the category's #1 failure and #1 fear |
| 4 | "What lifetime warranties actually cover" — yours vs. typical exclusions, in plain English | Decision | Nobody local dares; national data shows it's the biggest trust gap |
| 5 | DIY kit teardown — mils, water-based epoxy, no grinding: why $200 kits fail | Research | Only one thin local post exists on the biggest objection |
| 6 | "1-day installs: when they're right and when they're rushed" | Consideration | Honest take on the claim everyone shouts; builds prep credibility |
| 7 | Crew spotlight series — the installers your reviews already name | Trust | Converts your unique review pattern into content no one can copy |
| 8 | Hot tire pickup explained — and why our system doesn't do it | Consideration | Top category complaint; near-zero local coverage |
| 9 | Freeze-thaw & lake-effect: what NWI winters do to bare concrete | Research | Local authority play; Illiana only covers summer |
| 10 | "Reclaim 200 sq ft" — the garage as living space (gym, shop, man cave) | Inspiration | Emotional framing only one LaPorte competitor gestures at |
| 11 | Commercial downtime planning — phasing a shop floor without closing | Commercial | Feeds your new commercial push; only Jack Laurie is close |
| 12 | How to vet a coating contractor (insurance, prep specs, review depth) | Decision | Positions your strengths as the checklist |
| 13 | Financing explained — what "no payments until 2027" really means | Decision | Only T&T mentions financing; kill the confusion, win the payment shopper |
| 14 | "We fixed it" series — floors we've re-done after failed installs | Trust | Proof-by-autopsy; nobody shows failure honestly |
| 15 | Pool deck & patio coatings for Indiana summers (Rubaroc angle) | Seasonal | Your service breadth vs. garage-only competitors |
1. Day 400 > Day 1: "Everyone installs in a day. The question is what your floor looks like in year two." 2. You're buying a grind, not a coating: make surface prep the hero. 3. The moisture test: "We test your slab before we quote it" as a ritual competitors can't fake. 4. Warranty, annotated: publish the exclusions everyone else hides.
5. The named crew: your ads should introduce Cole and Nate the way reviews already do. 6. The last honest room: the garage as the one space that's truly the owner's. 7. The neighbor effect: "the floor your cul-de-sac asks about." 8. Pride of local ownership: not-a-franchise, said warmly, not defensively.
9. Against the strength wars: "4×, 6×, 20× stronger — than what? Floors fail at the prep, not the polymer." Sit above the spec fight. 10. Transparency as strategy: be the only company that shows prices, warranty terms, and failures — trust compounds faster than discounts.
Encore: 20% off + Valpak coupons. GarageExperts national: up to $2,500 off — but gated to Q4 and a flooring-plus-cabinets bundle. TSR (regional benchmark): "60% off installation OR 0% APR for 60 months."
Anatomy: Hook = big number. Promise = savings. Proof = none. Emotion = deal fear. Objection handling = none. CTA = free quote.
Weak points: a 60%-off headline confesses an inflated list price; bundle gates breed the "everything was extra" complaints in their own reviews; zero proof elements; and every discount ad trains price-shoppers — the segment with the market's worst close rates.
Hook: "1,000+ five-star reviews. Most of them name the installer." Body: "Around here, people don't review our coatings — they review Cole, Nate, and the crew who showed up on time, sent photos, and left the garage cleaner than they found it. That's what a floor from your neighbors looks like." CTA: "Meet your crew — free design visit."
2 (anti-coupon): "60% off? A price that can fall that far was never real. One honest quote, one-day install, a warranty in writing — and no coupon required." 3 (prep/moisture): "Floors don't peel because the coating was cheap. They peel because nobody tested the slab. We moisture-test before we quote — ask any installer who doesn't, why not." CTA: "Get the tested quote."
1) Reconcile your three published price ranges to one. 2) Claim your Yelp profile, enable messaging, respond to the pool-coating complaint — 3.4★ there vs 4.9★ on Google is the one attack surface a competitor can screenshot. 3) Tighten the offer stack: $750 off, $500 off, and "$1,000 off" ads run simultaneously — pick one ladder. 4) Watch Encore's push into NWI (its old local licensee died; the Chicagoland operation is couponing into the vacuum) and GarageExperts' Q4 bundle promo window (Oct–Dec).
Method: three parallel research passes (Aug 30, 2026) across competitor websites, Google/Yelp/BBB/Birdeye/HomeAdvisor reviews, franchise complaint boards, and promo pages. Pricing signals are as-published or review-mentioned; most companies publish none. Review counts are point-in-time. Verbatim competitor ad copy from Meta Ad Library needs a logged-in browser pass — available on request. Directory-grade SEO sites posing as local companies (e.g. "MW Garage Floors") were identified and excluded.
Supermetrics ad-platform spend + Builder Prime CRM export, Aug 29 2025 – Aug 29 2026, matched by month + source (no lead-level key exists yet — that's the UTM fix). Master budget workbook (NWI + Indy year tabs, plus monthly weekly-pacing tabs) for planned vs. actual and agency fees. One year of data, not two — if Builder Prime holds an earlier year, exporting it would let us verify the seasonality pattern across two winters.
· Jul–Aug close rates and cost-per-sale are artificially poor (deals still in the sales cycle) — faded in every chart.
· Aug 2026 shows $585K sold-amount against 3 closed customers: the CRM's Sold Amount and Customer-status fields disagree and need an audit.
· Sep–Oct 2025 Google shows spend with zero matched leads — tracking gap or waste, unresolved.
· Indy had no separate ad accounts before Apr 2026.
· ~3% of leads have no region tag.
1. Day-by-day spend export (past month) → daily pacing panel above.
2. Prior-year Builder Prime export if it exists → two-winter seasonality proof.
3. GLS account status screenshot → resolve the #1 finding.
4. Job-cost / margin data → shift every target from revenue-ROAS to profit-ROAS.
| Month | Ad spend | Paid leads | Paid sold | Paid sold $ | Other sold $ | Total sold $ | Cost/sold job |
|---|