Cookie preferences

Choose what we may use. Strictly necessary cookies keep you signed in and can't be turned off; everything else is your call and changes nothing about how the site works. You can change your mind any time from the footer.

Marketing attribution for foundation repair companies

Which channels produced signed repair contracts?

Match signed contracts and their value to the calls and campaigns that produced them, months after the first inspection.

  • No card required
  • Nothing to install
  • Cancel anytime
Foundation Repair workspace FY2026 Sample data
Signed contracts traced to a channel

$413,000 59% of $700,000 paid

  • Google Ads $252,000 · 36%
  • Local service ads $112,000 · 16%
  • Meta Ads $49,000 · 7%
  • Direct / Unknown $287,000 · 41%
Direct / Unknown is shown, never shared out across the channels above.
Google Ads · LeadFY2026 14 · (•••) •••-0134
Closed sale · FY2026 27$11,400
Matched · high confidence

The blind spot

What's actually happening

An inspection is free and a repair is $12,000. Cost-per-inspection tells you nothing about which channel produces the homeowners who actually proceed.

What you get

Built for foundation repair companies.

Revenue, not calls

The ranking is on invoiced revenue actually earned, not on jobs counted, so a channel that brings fewer and larger ones rises.

Quotes that close weeks later

An inquiry in one quarter and a job in the next are one match, and the earlier campaign is credited with the later invoiced revenue.

Defensible before you raise a budget

Only exact matches count toward invoiced revenue. Anything weaker is flagged for somebody to confirm, and anything unmatched stays unmatched.

A worked example

The number you can take into a budget meeting.

Not impressions, not leads, not cost per click. Closed revenue, by the channel that produced it, for a period you choose — with the portion we could not trace shown rather than quietly shared out across your paid channels.

Total revenue$700,000paid signed contracts
Attributed to a channel$413,00059% of revenue
Average deal$11,400per paid sale
Match rate59%of sales matched
ChannelSalesRevenueShare%
Google Ads22$252,00036%
Local service ads10$112,00016%
Meta Ads4$49,0007%
Direct / Unknown25$287,00041%
01

The free inspection hides which channel is working

Every channel produces inspections. Only some produce homeowners who sign, and the proceed rate can differ threefold between two channels with identical costs per inspection.

Ranking on signed contract value rather than inspections booked is what makes that visible, and it is normally the difference between a channel worth doubling and one worth stopping.

02

Homeowners wait, sometimes for a year

Structural repair is expensive and rarely urgent enough to force an immediate decision. Many homeowners get an inspection, sit on it, and sign the following season.

There is no attribution window, so a contract signed a year after the inspection still credits the campaign that produced it — which is precisely the revenue currently sitting in Direct / Unknown.

03

A crack inspected in spring is repaired when it frightens somebody

Foundation work is almost never bought on the day it is first investigated. A homeowner notices a crack, books a free inspection, receives a quote that is larger than they expected, and then waits — often through a full season — until the problem worsens, a survey demands it, or they decide to sell the house and cannot avoid it any longer.

That produces one of the longest and most irregular gaps between inquiry and revenue in the whole trade. A quote issued in March and accepted in November is entirely ordinary, and no window-based measurement will connect the two, so the March campaign is recorded as spend with nothing to show for it.

Matching the invoiced job back to the household who booked the inspection removes the problem completely. The gap is not modeled or decayed; the same person simply appears in two files, and the revenue is credited to the period the inquiry came from.

04

Free inspections are the real cost, and nothing counts them

The expensive thing in this trade is not the advertising, it is the inspection. A structural technician driving to a property, spending an hour under it, and producing a detailed quote is a significant cost that is incurred before anybody has agreed to anything, and it is incurred on every inquiry regardless of whether the household ever intended to proceed.

Cost per lead treats a serious inquiry and a curious one as identical. A channel that fills the diary with homeowners who wanted a valuation for a sale they are not making is costing far more than its media spend, and on every dashboard available it looks like the cheapest source in the account.

Ranking channels on invoiced repairs makes that visible, and uploading the inspection list alongside the invoices lets the report show inspection-to-job conversion per channel — which is usually the number that changes how the diary is filled.

05

What waits for a person, and what does not

Only exact email and phone matches count on their own. The one weaker link the engine produces — the same national number under a different country code — is set aside as a decision for a person, and nothing else is: a phone number differing by a digit, an email under a different provider, a shared surname or address produce no link at all. None of it is folded into the revenue quietly. That design is the reason the headline figure can be carried into a budget meeting.

The work that does need a person is reading the matched rows behind a surprising figure, and the person best placed to do it is rarely the person who buys the advertising. Confirming that an inspection booked in March and a pier installation invoiced in November belong to the same property needs somebody who recognizes the address and the technician's note, which means the office manager or whoever runs the schedule. An agency reading the same rows is working from strings; the office is reading its own records.

Anything in the review queue stays out of the revenue until it is confirmed, and confirmations can be undone. An entry left alone stays in Direct and Unknown, so an unreviewed queue understates the attributed revenue rather than inflating it: the failure mode is conservative on purpose. And because the match has no window, a household that decides to proceed a year after the inspection is still linked, which is precisely the pair a window-based tool would have dropped.

Why it matters

What changes when you can prove it.

You stop defending the budget and start growing it

"We generated 400 leads" invites an argument. "This channel closed $186,400 last quarter, here is the reconciliation" ends one. The teams that can show closed revenue by channel are the teams that get the next increase approved, because they are asking with evidence rather than with conviction.

You can cut the wrong channel without a fight

Killing spend is politically harder than adding it, because someone always owns the channel being cut. A number that reconciles to the sales export takes the argument out of the room — you are not overruling a colleague's judgment, you are reading the same ledger they are.

Your reporting survives the finance review

Platform-reported conversions do not reconcile to revenue, and eventually someone in finance notices. Reporting built from your own closed-sales export starts from the number finance already trusts, which is why it holds up when it is checked.

You answer in an afternoon, not a quarter

Because this reconciles exports rather than tracking visitors, it works on months that have already closed. You are not instrumenting now to learn something in ninety days — you can answer for last quarter today, which is usually when the question is being asked.

Honest answers

The pushback we hear from Foundation Repair.

They say

We give away free inspections.

We say

Which is why signed contracts are the measure. Inspections that do not convert appear as unmatched leads and cost nothing.

They say

Homeowners take months to decide.

We say

There is no attribution window. The match holds however long the gap.

They say

We don't want a tracking script.

We say

There is none. Two exports and a mapping you confirm once.

Pricing

Flat monthly pricing. No per-call fees.

The price here is the price on the invoice, plus any sales tax that applies — no per-call, per-minute or per-form fees. Growth usually fits foundation, waterproofing and structural repair contractors — thirteen months of history to compare a month to the same month last year, and a PDF you can put in front of whoever holds the budget.

Questions

Questions we get about Foundation Repair.

Anything else? Talk to us — a person answers, usually the same day.

Signed contracts: a customer email or phone, the contract value, and a date.

Start today

Stop guessing which ads pay off.

Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.