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.
Marketing attribution for restoration companies
Match completed jobs and the revenue collected to the calls, insurer programs and referral partners that produced them.
$469,000 67% of $700,000 paid
The blind spot
Restoration work arrives at three in the morning through search, insurers and plumbers, and only the first of those is ever measured.
What you get
The ranking is on invoiced revenue actually earned, not on jobs counted, so a channel that brings fewer and larger ones rises.
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.
Only exact matches count toward invoiced revenue. Anything weaker is flagged for somebody to confirm, and anything unmatched stays unmatched.
A worked example
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.
| Channel | Sales | Revenue | Share | % |
|---|---|---|---|---|
| Google Ads | 58 | $196,000 | 28% | |
| Insurer programs | 49 | $168,000 | 24% | |
| Referral partners | 31 | $105,000 | 15% | |
| Direct / Unknown | 68 | $231,000 | 33% |
Restoration keywords are bid aggressively because a single large loss pays for a month of clicks. That logic only holds if the channel actually produces large losses.
Ranking on collected job revenue rather than emergency calls shows which channels produce the jobs that pay and which produce small mitigations that barely cover the truck roll.
Referral relationships drive a large share of restoration work and are maintained on instinct. Which partners are actually producing revenue this year, and which stopped, is rarely known.
A partner's or program's referred jobs can go into the lead file, tagged with the partner. Ranked on collected revenue, they show exactly which relationships are worth the lunches and which have quietly gone quiet.
Restoration is an emergency trade with an insurance settlement behind it. The homeowner rings at two in the morning, the crew is on site within the hour, and the amount is then negotiated with a carrier or an adjuster over the following weeks. What the job is worth is decided long after the marketing that produced it did its work.
That gap is the whole measurement problem. A report built on jobs booked treats a small water extraction and a full reconstruction as one job each, when the difference between them is the entire margin of the month.
Matching invoiced and collected revenue back to the original call resolves it, and because the caller's number is captured by the phone network rather than typed into a form, this trade reconciles unusually well on the first attempt.
A large share of restoration work arrives through plumbers, property managers, insurance agents and adjusters. Those relationships cost time, lunches and reliability rather than media spend, and they are almost always left out of the marketing report entirely.
The result is that the paid channels are judged against each other in isolation, and the question that actually matters — whether the next increment of effort belongs in advertising or in the referral network — is never asked with numbers attached.
Adding referral sources to the lead file, each row tagged with its referrer, puts them on the same revenue axis as paid search. For a restoration company that single comparison can be the most valuable output of the whole exercise, and it may never have been made.
Restoration revenue is lumpy in a way few trades match. A single commercial loss with a reconstruction attached can be worth more than the entire month of domestic extractions around it, and whichever channel happened to produce that call finishes the month looking extraordinary. The month after, it may produce nothing unusual whatsoever. Nothing has changed about the channel; the weather, a burst main and an adjuster's decision have simply landed in one column of the report rather than another, and in one month rather than the next.
The defenses against that are dull and they work. Read quarters rather than months. Put the job count beside the revenue, because a channel carried by one invoice announces itself the moment the two disagree. Where the export carries a job type, check whether the ranking survives with reconstruction excluded: a channel leading on mitigation volume and on reconstruction separately is a finding worth acting on, while one that leads only because of a single large rebuild is an anecdote with a currency symbol in front of it.
There is one exception worth naming, because this trade has it and most do not. A referral relationship that stops producing shows up faster and more reliably than any advertising change, since a plumber who has started recommending somebody else leaves a clean and continuing absence rather than a noisy number. A partner who sent work every month for two years and nothing for the last six weeks is a phone call worth making now, without waiting for a quarter to close. It is the one signal here that a short period reads honestly.
Why it matters
"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.
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.
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.
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 report does not care when the call happened, only that it was recorded. Any call export works as a lead file.
Export the amount collected, whoever paid it. The match is on the homeowner's contact detail.
Which is why revenue rather than job count is the ranking.
Pricing
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 restoration and mitigation 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.
A business scaling ad spend
$49/mo
billed monthly
Questions
Anything else? Talk to us — a person answers, usually the same day.
Completed jobs: a customer email or phone, the amount collected, and a date.
Yes — add the assignment jobs to the lead file, tagged with the program as their source.
Yes, if the partner is named in the lead file.
Yes, with a job-type column. Without it the report averages jobs that have no business being averaged.
No. Where you already have them, a tracked caller's number is a clean key and raises the match rate, but nothing requires tracking numbers — the emergency calls and form leads your ad platforms recorded is enough to start.
Encrypted in transit and at rest, isolated to your workspace, and deletable in one click. A DPA is available, and customer details never leave that workspace. Insurance claim numbers and moisture readings can stay out of the export.
Yes, and there is no window to fall outside of. However long ago a job closed, it matches if the customer is in both files.
Job rows analyzed in a calendar month. Inquiry and call rows do not count.
No. Nothing goes on your website, nothing connects to your job management software, and no permissions are granted. The inputs are two CSV files you export and can open in a spreadsheet before sending.
Yes, and most companies start that way. Because the method reads records kept for billing rather than a tag that had to be running at the time, last year works exactly as well as this month.
It is reported as Direct and Unknown and stays there. Unmatched revenue is never distributed across the paid channels to make the attributed share look larger, because that would make every other number on the page untrustworthy.
Collected. Carrier negotiation moves the figure after the job, and the gap between billed and collected is not uniform across the sources that produced the work.
Yes. Referred jobs go into the lead file, tagged with the referrer, and are ranked on collected revenue exactly like an advertising campaign.
Not required, but this is an emergency phone trade and a call export usually produces the highest match rate available to you.
Yes, with a job-type column, so the two halves of the job are not blended into one average.
No, but it makes that month unreadable as a channel verdict. Read the job count alongside the revenue, and where a job-type column is mapped as Product / service, check how much of the month was reconstruction. To see the ranking without it, run the period with reconstruction left out of the export.
Monthly to keep the files small, quarterly to make decisions with. The upload is cheap enough to repeat often, but the interpretation needs enough losses behind it that one unusual job cannot set the order of the list on its own.
Yes, and it is one of the few things a short period shows clearly. A named partner in the lead file leaves a continuous record, so a gap after two years of steady assignments is visible long before an advertising trend would be.
Nearby
Match invoiced jobs to the calls and ads behind them, and separate the drain clears from the repipes.
See how it worksMatch signed contracts and their value to the calls and campaigns that produced them, months after the first inspection.
See how it worksMatch signed and installed contracts to the leads and ads that produced them, across a sales cycle that often runs months.
See how it worksWhere your sales already are
From the blog
Multi-crew home and field services businesses run on phone calls and job management software, not on web forms. Which means the standard marketing dashboard is measuring the smallest part of the business and missing where the money actually is.
Read the articleGoogle's Local Services Ads charge for the phone call, not the click, and they hand you the caller's number with the invoice. It is the easiest channel in the budget to attribute to closed revenue. Almost nobody does, because the lead inbox is not where the reports live.
Read the articlePixels were built for sales that finish in a browser. Most sales don't. Here's the method that works on exports you already have — and why the tools you're paying for structurally cannot do it.
Read the articleStart today
Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.