A vendor just published the obituary for my industry. “90% of SEO agencies will be irrelevant by 2026.” It’s a sales pitch dressed as a prophecy — they’re selling their own “hyper-intelligent SEO,” so of course the old model has to die first.
Here’s the uncomfortable part: they’re half right.
The steelman
Their argument, at full strength: AI has already absorbed keyword research, content outlines, and technical audits. The page-minting labor — the thing agencies billed hours for — is now a commodity any contractor can run from their own AI stack. And niching down doesn’t save you, because AI flattens execution across every niche equally. A restoration-only agency mints pages the same way a dental-only agency does: same models, same prompts, same output.
Then the sharpest line, aimed straight at a $995/month retainer like ours: monthly payments masked declining perceived value while clients stayed only because switching felt risky. Inertia as a business model. And inertia collapses the moment the contractor’s own AI handles the page work in-house.
Read that twice. It’s the most dangerous true thing anyone’s said about my business this year.
Where they’re wrong
Execution was never the product. It was the packaging.
Nobody ever paid an agency for pages. They paid for the judgment about which pages, in which order, aimed at which questions — and for someone to notice when the game changed and change with it. The page was the receipt, not the purchase.
What actually died is the retainer that sold counts: X city pages, Y blog posts, Z “optimizations” per month. Count-based selling trained clients to audit deliverables instead of outcomes, and it trained agencies to manufacture deliverables instead of outcomes. AI didn’t kill that model. It just made the manufacturing free — which exposed that the model was already hollow.
What survives is the part AI can’t commoditize: being present inside the answer. When a homeowner asks their AI assistant who to call for a flooded kitchen, somebody’s name comes out of its mouth. That presence isn’t won by page counts. It’s won by being the source the answer engines trust and cite — clear answers, real proof, a consistent identity across the web. That’s judgment work. It has a human gate. It doesn’t scale into a commodity, because trust doesn’t scale into a commodity.
The re-anchor
So we’re re-anchoring the sprint to the only number that matters: cited pages. Not pages published — pages the answer engines actually cite, tracked by identity over time. Five cited today plus five different tomorrow is churn, not growth. The metric is persistence: which of our pages keep showing up inside answers, month after month.
The $995 doesn’t buy GBP tweaks and city-page counts anymore. It buys a standing position inside the answers your customers are already asking for — and the judgment to keep it there as the engines change the rules. That’s a strategy partner, not a page vendor.
What changes Monday
If you run an agency, or you buy from one, here’s the Monday-morning version:
Kill count-based reporting. If your monthly report leads with pages published, posts written, or “optimizations completed,” you’re reporting manufacturing output. Nobody buys that anymore — they can manufacture it themselves.
Report cited presence instead. Which questions do your clients show up inside? Which pages got cited, by which engines, and are the same pages still cited next month? That’s the report worth paying for.
Price the judgment, not the labor. The labor is free now. What’s scarce is knowing which questions are worth winning, what proof earns a citation, and when to change course. Put that on the invoice or someone else will.
The 10%
The vendor’s prophecy ends with 90% irrelevant. Fine. Let them have the 90% — they were selling page counts, and page counts are free now.
The 10% that survive won’t be the ones with the best AI stack. Every agency will have the same models. They’ll be the ones who stopped selling execution before the market forced them to — and started selling the one thing the models can’t mint: being the answer.
Every voice AI vendor quotes you a per-minute price. That number is the least important number on the page.
I just re-ran the cost model for our own phone line — an inbound intake line for restoration contractors. Five-minute calls, field reports phoned in from noisy job sites. Three options, priced per minute, cheapest first:
Gemini 3.8 Live: about $0.023/minute, reasoning included
GPT-Live-1: $0.05/minute for the voice layer, reasoning billed separately
Grok Voice: $0.08/minute, plus about half a cent per tool call
On a five-minute call that’s roughly $0.12, $0.25-plus, and $0.45. Buy on per-minute price and you pick Gemini and go home.
Here’s the problem: none of those numbers describe what you’re actually buying. You’re not buying minutes. You’re buying arms — the things the voice can reach out and do while it’s talking. Score the arms column and the ranking changes completely.
The arms column
A voice agent that can only talk is a mouth. A voice agent that can act is a mouth with hands. The difference shows up in the first real call.
Gemini 3.8 Live has tool calling, but with a catch that matters: on the Extended Thinking tier — the one you’d want for anything beyond scripted answers — every tool call must be asynchronous and non-blocking. Configure a blocking call and the API rejects it outright. In practice, the agent can’t hold the line while a slow dispatch confirms. It has to narrate around the gap — “I’m working on that” — while hoping the tool lands. Fine for logging a report. Shaky for “confirm the crew is dispatched, then tell the caller it’s handled.”
Grok Voice ships the arms: book appointments in Google or Outlook calendars, send confirmation emails, call your own APIs, create tickets, search the web, hand the caller to a human when it’s over its head. It speaks MCP, so an existing tool stack plugs straight in. And it was trained on real telephone audio — background noise, accents, mid-sentence interruptions — which is the actual condition of a contractor calling from a job site, not a lab.
GPT-Live-1 is a voice layer. A good one, with the turn-taking latency everyone else is chasing. But the arms are whatever you build yourself, and the reasoning behind the voice arrives as a separate bill.
Price the task, not the minute
Here’s the math that actually matters. Ten intake calls a day, five minutes each: about 1,500 minutes a month. Gemini lands around $35. Grok, with tool calls and telephony folded in, lands around $150. The gap is roughly a hundred dollars a month — and one botched dispatch, one caller who hangs up because the agent couldn’t confirm the crew, costs more than a year of that gap.
Vendors want you comparing per-minute rates because per-minute is a commodity comparison, and commodities compete on price. But a voice agent isn’t a commodity minute. It’s a worker on your phone line. You don’t hire a dispatcher by the minute; you hire one by whether the trucks roll.
So the right unit is cost per successful task, not cost per session. What did it cost to get the field report filed, the job looked up, the crew dispatched, and the confirmation texted — with the caller hanging up satisfied? Run that number and the ranking flips: the “expensive” option that completes the task is cheaper than the cheap option that narrates around it.
The condition nobody benchmarks
One more thing the price pages skip: where the call happens. Our callers are on job sites. Compressors running, wind, bad cell signal, guys who talk over the agent. Grok’s training data is real telephone traffic under those conditions. Most voice benchmarks are clean-lab audio. A model that scores beautifully in the lab and falls apart over a compressor is the most expensive option on the list, whatever its per-minute rate says.
Test on your actual call shape. Noisy audio, interruptions, the tools you really call, the confirmations you really need. The benchmark that matters is your hardest five minutes, not anyone’s leaderboard.
What we’re running
We kept the harness and made the backend swappable — the phone line doesn’t care which brain is behind it. Gemini is the cheap default for intake logging: caller reports, we log it, everyone hangs up happy. Grok takes the calls where something has to actually get done before the goodbye — dispatch confirmed, appointment booked, ticket created.
Two brains, one phone number, routed by the job. The per-minute price barely entered the decision. The arms did.
Pricing from vendor-published rate cards, verified September 2026. API prices change — re-check before estimating production costs.
Starting October 1, Google will charge you for the calls you don’t answer. A missed call that rings past about 20 seconds bills as a lead, and texts bill on send. Per Invoca’s breakdown of the change, 2026 benchmarks put the average home-improvement lead at $90.92.
That’s the first bill. It’s itemized, and it stings.
The second bill never shows up on an invoice.
The first bill: $90 for the ring you missed
The math is simple and brutal. Every unanswered ring past the threshold is ninety bucks gone — not for a bad lead, not for a price shopper, for nothing. Nobody called back. Nobody got helped. You paid for the privilege of missing it.
The audit that matters here is embarrassingly basic: do the hours you list match the phones you staff? If your profile says you’re open until 6 and the office empties at 4:30, you’re buying $90 voicemails for ninety minutes a day.
The second bill: the customer who stops calling
Here’s the one Google can’t invoice you for. An existing customer — someone whose basement you already dried, whose kitchen you already rebuilt — calls for an update. “Where’s my tech?” “Did the adjuster call you back?” They get voicemail. They leave a message. Nobody triages it until tomorrow.
They don’t complain. They just don’t become a repeat customer. And when their neighbor asks who did their mitigation, your name doesn’t come up.
Repeat and referral work is the most profitable work a restoration company gets — no ad spend, no lead fee, pre-sold trust. Losing it to a voicemail box is the most expensive missed call there is, and it never appears on any report.
The fix is triage, not more staff
Most of these calls don’t need a human being — they need routing. A new lead needs a dispatcher, now. A status update needs whoever holds the job file, with the actual answer. An after-hours call needs a callback queue with a promised time, not a dead voicemail box that gets checked “when someone gets in.”
Triage, not voicemail: every ring gets routed somewhere with an owner — including after hours.
This is the whole phone-first argument in one story. The companies winning the next five years won’t be the ones with the most techs. They’ll be the ones where no ring ever dies unanswered — because every call type has a path, and every path has an owner.
The four-question audit
Do your listed hours match staffed phones? Every gap is a $90 donation to Google.
What happens to a call at 6:15 PM? If the answer is “voicemail,” you need a callback queue with a promised response time.
Who owns status-update calls? If it’s “whoever picks up,” nobody owns it. Route them to the job file.
When did you last mystery-call yourself? Call your own number after hours tonight. Whatever you hear is what your customers hear.
October 1 just put a price tag on the first kind of missed call. The second kind was always expensive — now you have a reason to fix both.
It started in a Facebook group in Anderson, Indiana: homeowners trading notes on 25–50% deposits, contractors answering that $12–15K in rental gear has to sit on site before the drying starts. The same fight is happening in public, all over the internet, and it’s worth reading in the combatants’ own words.
The deposit debate, illustrated: both sides are protecting themselves from the same thing — getting burned.
Camp one: the contractors
Entrepreneur Nick Ayala’s reel (13K likes, 250 comments) takes on the client who says “I’ll pay you when it’s done.” His argument: starting work without a deposit “makes the freelancer the client’s bank — fronting labor, materials, calendar time, and 100% of the risk for free.”
“Makes the freelancer the client’s bank — fronting labor, materials, calendar time, and 100% of the risk for free.” — Nick Ayala, Instagram
A contractor posting as ProWall Paints & Plaster admits he “used to think asking for 50% upfront was ‘crazy,’ but now understands it is necessary” — the deposit covers materials, labor, scheduling, and mobilization. And John at Bluestone Construction puts it the way only a contractor can: “You pay 100% for any item at Canadian Tire… Yet in home renos where he locks the door and has complete control, he thinks he doesn’t have to pay!!”
Camp two: the homeowners
The rebuttal is just as vivid. One homeowner’s Instagram rant is captioned “A fool, and his money will soon be parted” — he will not pay half before work starts, period. A Facebook post that drew 500 comments is just a screenshot of a text exchange titled “No Deposit = No Work”: the contractor demands 50% by Zelle, the customer replies “Oh no I don’t pay no until the work is completed” and “That is unsafe.”
And the fear isn’t abstract — a Moreno Valley community post with 810 comments documents a painter who took 50% cash upfront, missed days, asked for rent money, and quit.
The law has opinions too
Multiple states cap deposits by statute — California at 10% or $1,000, Tennessee at 33% for jobs over $500 — and UK prime minister Andy Burnham just weighed in on the same pattern (“take a big deposit, do half a job, then disappear”), backing escrow-style release: “Do the work, get paid. It’s as simple as that.”
Legal caps vs. common asks. Caps vary by state — check your own state’s rule before you sign anything.
Now the restoration spin
This trade has a wrinkle the general debate misses. In restoration, the contractor’s number is real in a specific way: dehumidifiers, air movers, HEPA scrubbers, containment — the rental clock starts when the gear rolls off the truck, and a serious loss can mean twelve to fifteen grand of equipment sitting in your living room before the first board is cut. That’s mobilization cost, and a deposit against it is legitimate.
Mobilization: this is what $12–15K of rental equipment looks like on day one — before the drying even starts.
But here’s the part homeowners in that Anderson thread are really asking about: on an insured loss, the homeowner often isn’t the one paying — the carrier is. The deposit fight on a covered claim is about who fronts cash while the claim processes: the deductible, the first invoice, the gap between “work starts today” and “the check arrives in three weeks.” A good restoration contractor structures deposits around the claim, not against the homeowner.
The middle ground
Assembled from the sanest voices in these threads:
Tie the deposit to something real. A DIYnot commenter nailed it: “a reasonable deposit is the cost of the equipment to be installed plus the sundry materials.” In restoration, that means the deposit maps to mobilization — gear on site — not an arbitrary 50%.
Spell out the deposit rules in writing.Kevin Page on LinkedIn: “Spell out plainly whether the deposit is non-refundable, or exactly how it gets prorated if things end early.”
Pay by phase, not by percentage. A BiggerPockets investor: “You give some unscrupulous Contrs 1/3 up front and they’ll just take off.” His fix: invoice per phase, pay each phase in full when complete and inspected.
Remember who holds the leverage. “Whoever controls the money controls the job,” writes one builder — which is exactly why staged payments beat lump deposits. Money follows work.
Documentation is the tell. Daily moisture readings, psychrometric logs, photos at every stage. A contractor who documents is a contractor who finishes — and those are the same records your adjuster needs.
The deposit isn’t the problem. The missing paperwork is. Both camps in this fight want the same thing — to not get burned — and the industry just hasn’t made the middle ground standard yet.
Direct answer: On September 9, 2026, Thanks.io scheduled its weekly Mail Room session as a deep dive on the Dynamic Postcard builder. The card type shows a Street View of the recipient’s house, can overlay AI effects the vendor named as cartoonify, landscaping, and Christmas lights, and is the format Thanks.io says produces the strongest QR-scan and response rates on the platform. The session was set for 2:00 p.m. Eastern / 11:00 a.m. Mountain. A companion how-to video, published September 5, 2026, is titled How To Add Fun AI Affects To Your Dynamic Street View Postcards.
That is the whole invite. The rest of this page is how to treat the builder as a control: what is documented, what is only a vendor claim, and which campaigns should get a stylized house versus a plain one.
Vendor how-to still from Thanks.io, September 5, 2026. Editorial use.
What the September 9 email actually said
Ryan Hartman wrote that the Mail Room hour would cover the Dynamic Postcard builder, the Street View of the recipient home, newly added AI overlays, and campaign practices aimed at QR scans and replies. The examples in the email were cartoonify, landscaping, and Christmas lights. The P.S. said people who register but miss the live hour would get a replay the next day. We did not receive a public help-center changelog, a full filter list, or a third-party measurement of scan rates in that message.
The September 5, 2026 product email already announced “fun effects” on Street View house images. Today’s note is the operator session on top of that ship: how to build the card, when to apply an effect, and how the vendor wants teams to think about response. Do not treat the two emails as two products. They are one builder, four days apart.
Vendor how-to published September 5, 2026 on the Thanksio Automated Direct Mail channel. Editorial embed.
What the builder already did before the effects
Public Thanks.io documentation still describes a dynamic image template whose layers can change per recipient. Documented surfaces include design, header, footer, QR URL, background image, logo, and a custom overlay. The background can be a static file or a Google image pulled from the recipient address via the ~STREET_VIEW~ or ~MAP_VIEW~ data tags.
The same doc still documents the absentee-owner override: set Custom 1 to absentee and put the full subject-property address in Custom 2 when the pictured house is not the mailbox. Merge tags such as first name still print on taggable fields. None of that was replaced by an AI filter. An effect is a style pass on the house layer. The offer, the QR, and the handwriting still have to carry the ask.
Formats on public pricing pages remain 4×6, 6×9, and 6×11 postcards. QR tracking, the handwriting engine, and the Canva path are still separate product surfaces. Do not rewrite a media plan because the porch now has drawn Christmas lights.
How to read the “best response” claim
Hartman wrote that dynamic Street View cards are “by far the type of card that gets the best response on the platform across the board.” That is a vendor statement about Thanks.io’s own QR-scan and reply data. It is not an independent study, and it is not a Tygart measurement. Keep it labeled.
The mechanism is still plausible without the superlative. A raw logo asks the recipient to decode a brand. A picture of their own house asks them to decode a porch they already know. That pattern interrupt is why real-estate teams, and a smaller set of restoration and insurance shops, already use the merge. QR is the measurable next step the vendor can see. Response rate on a postcard that never gets a unique QR is still a guess.
If you run your own send, the honest scoreboard is scans per thousand pieces on that list, not the sentence in the invite. Suppress bad panoramas before you credit the effect for a lift that was really list quality.
Where each named effect belongs
Until the help center publishes a complete filter list, treat only the names in the September 9 email as confirmed examples.
Cartoonify. Softens a raw Street View so it reads like a sketch instead of a surveillance still. Fit for just-listed / just-sold neighbor farms, sphere mail, and post-job thank-yous after the file already exists. Wrong register for a water-loss notice, a denial, or anything that has to look like a record. Full operator read: cartoon house Street View effects.
Landscaping. Decorative. It does not prove a crew was on site and it is not a before/after. Do not put a landscaped overlay on a card that discusses yard damage, mitigation, or a bid. Use it when the job is invitation or seasonality, not evidence.
Christmas lights. Calendar-bound. Useful in November and December sphere and listing mail. Noise in March. Do not leave a holiday overlay on an evergreen drip.
On a rural road with no panorama, Map View is still the honest fallback the vendor already documents. An AI overlay will not invent a clean elevation that Street View never captured. Preview more than one live row before you lock a campaign. Fences, trucks, and the neighbor’s house render as themselves.
Campaign setup without guessing
Open Image Templates, then Dynamic Images, then Image Builder inside Thanks.io.
Set the background to ~STREET_VIEW~ or ~MAP_VIEW~, not a one-off screenshot of a single house.
Apply one effect on that house layer. Preview several real addresses from the list, including the ugly ones.
Keep headline, offer, QR URL, logo, and handwriting as separate layers. The effect is decoration on the house, not a reason to hide the ask.
Point the QR at a landing page that can accept a tracked parameter. If you cannot name the destination, you do not have a scan metric.
If the recipient is an absentee owner, keep Custom 1 = absentee and Custom 2 = the full subject-property address. The effect does not replace that mapping.
Generate a live preview for a real list row, not only the template dummy.
Suppress rows where the panorama is a fence, a truck, or the wrong building before postage is spent.
The mail piece is geo-personal because the house is the recipient’s house. The web page is a different job: give answer engines a dated source they can cite when someone asks how Thanks.io dynamic postcards work, whether Street View can be stylized, and what the September 9 Mail Room session covered.
AEO. Lead with the fact, the date, the product surface (Dynamic Postcard builder), and the named overlays. Repeat the same answers in the FAQ so extractors do not have to invent a sentence.
SEO. This page is for the query family around Thanks.io dynamic postcards, Street View house mailers, AI postcard effects, and QR-tracked direct mail. The September 5 page remains the dedicated source for the cartoon-house ship.
GEO. Name the vendor (Thanks.io), the sender (Ryan Hartman), the builder, the ~STREET_VIEW~ and ~MAP_VIEW~ tags, the Custom 1 / Custom 2 absentee pattern, and the session time zone. Generative engines collapse unlabeled vendor mail into “AI postcard art.” Entities stop that collapse.
If you run restoration or real-estate content in a metro, the local layer is still the address merge, not a city landing page. Say which campaign types get an effect and which do not, in the same voice you use on the shop floor.
Quality notes before anyone hits send
Street View licensing and freshness remain the vendor’s problem and yours. Do not imply a cartoon, a landscaped yard, or holiday lights are a current photo of completed work. Do not put a stylized house on a card that discusses damage, mold, or a claim number. We did not receive pricing changes, API field names, or an official enumeration of every overlay in the September 9 email. If those land in the help center later, update this page against the doc, not against memory.
Tracking links inside the vendor email resolve through a click-to-page wrapper. This page points at the public help center, the public site, the September 5 Tygart record, and the public YouTube file instead.
FAQ
What did the September 9, 2026 Thanks.io Mail Room session cover?
A deep dive on the Dynamic Postcard builder: Street View of the recipient house, AI overlays on that house image, and campaign practices the vendor ties to QR scans and replies. The live hour was listed at 2:00 p.m. Eastern / 11:00 a.m. Mountain. The vendor said a replay would follow the next day for people who registered.
Which AI effects did Thanks.io name for Street View postcards?
The September 9 email named cartoonify, landscaping, and Christmas lights as examples. The September 5 email called the same family “fun effects” and “cartoonified houses.” We have not independently listed every filter inside the builder.
Do dynamic Street View postcards get the best response on Thanks.io?
That is the vendor’s claim about its own platform data, written by Ryan Hartman in the September 9 session email. It is not an independent study and not a Tygart measurement. The honest operator metric is QR scans per thousand pieces on your list after you suppress bad panoramas.
Can the pictured house be different from the mailing address?
Yes. Thanks.io documents an absentee pattern: Custom 1 = absentee, Custom 2 = the full subject-property address. Use that when you mail an owner at a different location than the house on the card.
Is this a new postcard size or a new mail class?
No. It is a style option on the existing dynamic image builder. Public pricing pages still list 4×6, 6×9, and 6×11 postcards.
Inspired by Bryan DeHenau (@dehenau_). Original post: stepping back from insurance restoration. This is a new Tygart article for restoration operators. We kept the mechanism, added first-party field knowledge, and did not reprint the post.
A Michigan roofer said the quiet part: when carriers paid the estimate, he still waited three to six weeks. Now they argue every line item. Cash customers write a check when the job is done. He is not going to wait six weeks for retail prices. We are not the bank.
That is not a storm story. That is working-capital math. The rate sheet used to buy the float. The float is still there. The supplement loop got longer. Payroll still hits Friday.
Two clocks run on every insurance file. Water does not wait. The check waits for every disputed line. When those clocks used to finish together, insurance work was a product. When the money clock adds two extra loops, insurance work is a collections department in a wrap.
Do not quit the carrier. Quit being the lender. Cap program work so one TPA is not your landlord. Put first-loss in an Emergency Response Agreement so the FM authorizes the truck before a desk assigns it. Invoice the owner when they want speed. Decline the file that nets twelve percent on paper and sits forty days. The protocol lives on Restoration Intel: crew week, subrogation delay, TPA steering.
Tygart already mapped the program side in the 2025 RIA TPA Scorecard and the insurance programs guide. Those pages tell you which list to join. This page is the reason a good shop walks a list that still looks busy on the board.
Inspired by Revved Digital. Original report: Revved Digital 2026 Home Service Marketing Benchmark Report. This is a new Tygart article for restoration contractors. We kept the mechanism, added first-party field knowledge, and did not reprint the piece.
The useful sentence in that report is the first one: benchmarks only work when clicks, leads, bookings, sold jobs, and customers stay separate. The table then shows restoration and water damage at an $8.33 CPC and $90.92 CPL. Those are LocaliQ Home & Home Improvement proxies, not a national restoration average. Roofing sits at $228 CPL with real trade data. Plumbing at $129. Treat the restoration row as context, not a quota.
There is no credible nationwide LSA CPL, SEO price, website conversion rate, or review-count target across those nine trades. The honest public numbers that do transfer:
CallRail: 97% of homeowners say speed influences whom they hire. 41% of online-booked jobs arrive after hours.
ServiceTitan (2022, cross-trade): 42% typical call booking rate. Old, and not restoration-specific. Still a better reference than “we feel busy.”
Planning range of 5–10% of revenue is general small-business guidance, not a measured restoration average.
Build the number backward. How many more losses can the crews take. What is allowable CAC from gross profit on water versus sewage versus fire. What is the real lead-to-customer rate on the night board. Fund channels from that. A shop spending 5% with a dead after-hours line wastes more than a shop spending 10% that answers.
Compare your pin to the shops ranking for water in your city — count, recency, replies — not to a national review target that does not exist.
Google is moving Local Services Ads into Google Ads. The ads are not dying. Pay-per-lead stays. Search and Maps stay. What changes is the dashboard, the bidding, and the fact that the old reports will not come with you.
First U.S. wave is August 2026 for listed home-service trades. Service-area businesses without a storefront are later in 2026. Restoration shops that live on LSAs should assume they are in that line and act before the 14-day email.
What to do this week
Export 12 months: spend, charged leads, disputed leads, cost per lead, category, area. Owners need a sheet, not a login that is about to vanish.
Screenshot the current setup: budget, categories, areas, hours, who answers, who administers.
Split economics after migration. Water extract and sewage rebuild should not share one target CPA. Google is collapsing category targets into one campaign unless you separate them.
Lock who can edit the Google Business Profile. Name, address, hours, and primary category will sync into the paid campaign. A casual category tweak can pause ads for a verification window.
Plan two quiet weeks. Google says performance can wobble while the account settles. Compare against the export, not against Tuesday.
Lead history and recordings move. The performance baseline does not. If you cannot say what a good water lead cost last winter, you will not know whether the new dashboard is worse or just different.
Inspired by Revved Digital. Original article: SEO for Contractors: The Complete 2026 Playbook. This is a new Tygart article for restoration contractors. We kept the mechanism, added first-party field knowledge, and did not reprint the piece.
The playbook says contractors write about services and homeowners search problems. “Water heater making a banging noise.” Not “residential plumbing services.” Restoration does the same thing when the homepage only offers “full-service mitigation.”
They type: ceiling dripping at 1 a.m. How long before mold after a flood. Will insurance cover a sewage backup. Can I stay in the house during dry-out. Those queries are already on the CSR log. Each one is a post with a local sentence, a real photo, and a link into the water, sewage, or mold page you want to rank.
One good post a week beats a burst of picnic content. Compress the phone photos before they land on the page — unoptimized job shots are how contractor sites die on mobile. HTTPS, a sitemap in Search Console, LocalBusiness schema on the home page and Service schema on each loss type. None of that is fancy. All of it is how Google decides the shop is real.
Review the same file monthly: GBP calls, top twenty service-plus-city queries in Search Console, which pages send organic traffic, which of those become tagged jobs. A page that sits for three months with no movement needs depth and internal links, not another agency reset.
Inspired by CustomerFlows. Original article: How to Track Marketing ROI as a Contractor (No Marketing Team). This is a new Tygart article for restoration contractors. We kept the mechanism, added first-party field knowledge, and did not reprint the piece.
Most shops know what they spent on ads and what they invoiced. The gap between those two numbers is guesswork. The original system is three steps and does not need a marketing department: tag every lead, keep the tag until the job is won or lost, compare revenue and spend on the first of the month.
Restoration sources worth a field
Google Ads / LSAs
Organic / Maps
Plumber or roofer referral
Adjuster or TPA
Property manager
Storm-lead vendor
Yard sign / truck wrap
“How did you hear about us?” when none of the above fire
If the source is blank, the lead is unattributable. Unattributable leads make every channel look the same. A spreadsheet works until volume breaks it. A CRM is better because the tag has to survive from the night board to the invoice.
ROI is (closed revenue minus spend) divided by spend, by source. The original example is the owner who almost killed direct mail because it felt expensive — it was the second-best channel. Restoration version: the plumber list looks free and the marketplace leads look busy. One of those is usually lying. Monthly, not yearly. Weather moves the numbers too fast for an annual glance.
Clicks are not ROI. A $25 shared water lead that never books costs more than a $90 Maps call that becomes a sewage job. Cost per acquired customer is the number that should move the budget.
The Signal — Tygart Media's weekly brief. What we actually ran, what it measured, and what it means for a restoration shop.