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 Plumbers

Which ads produced work worth doing?

Match invoiced jobs to the calls and ads behind them, and separate the drain clears from the repipes.

  • No card required
  • Nothing to install
  • Cancel anytime
Plumbers workspace August 2026 Sample data
Invoiced work traced to a channel

$208,000 65% of $320,000 paid

  • Google Ads $163,200 · 51%
  • Meta Ads $25,600 · 8%
  • Email marketing $19,200 · 6%
  • Direct / Unknown $112,000 · 35%
Direct / Unknown is shown, never shared out across the channels above.
Google Ads · LeadAug 14 · (•••) •••-0134
Closed sale · Aug 27$1,450
Matched · high confidence

The blind spot

What's actually happening

Emergency plumbing produces a lot of calls and a very wide range of tickets. A blocked toilet and a sewer line replacement arrive through the same ad, and cost per lead cannot tell them apart.

What you get

Built for Plumbers.

Ticket size, not call count

Rank channels by invoiced value so large jobs stop being averaged into invisibility.

Emergency and planned work split

See which channels bring emergencies and which bring scheduled, higher-margin work.

Nothing to install

No tracking numbers to provision, no app for the crew. Two exports.

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$320,000paid invoiced work
Attributed to a channel$208,00065% of revenue
Average deal$1,450per paid sale
Match rate60%of sales matched
ChannelSalesRevenueShare%
Google Ads96$163,20051%
Meta Ads21$25,6008%
Email marketing14$19,2006%
Direct / Unknown88$112,00035%
01

Emergency volume hides the profitable work

Emergency search is where most plumbing ad budget goes, and it produces the most calls. It also produces the smallest average ticket, because someone with water on the floor wants the cheapest fix that works today.

The jobs that pay — repipes, sewer lines, water heater replacements, commercial contracts — often come from different searches and convert more slowly. Measured on call volume they look like poor performers, which is how budget ends up concentrated on the lowest-margin work available.

02

One number that survives the vendor conversation

Lead resellers and directories all report the leads they sent. Matching those lists against your own invoiced jobs produces a single number per source that sums to the work you actually did — rather than several vendor reports that each claim the same customer.

Because only exact phone or email matches count automatically, a source claiming a customer it never sent has nothing to stand on.

03

Emergency work and planned work are two businesses on one phone line

A burst pipe at eleven at night and a bathroom repipe booked three weeks out arrive through the same brand and often the same campaign. One converts in minutes at a modest ticket; the other is quoted, compared and decided over weeks at many times the value.

Cost per lead treats them identically and therefore systematically favors emergency keywords, which are cheap to convert and cheap to serve. That is a real part of the business and it is not where the margin is.

Ranking on invoiced revenue already puts the money where it is. A job-type column mapped as Product / service makes the split explicit: emergency and planned revenue each get their own line, with how much of each traces to a channel, rather than a blended average that describes neither.

04

The customer you keep is worth more than the job you won

Plumbing is a repeat trade. A household that calls once and is treated well calls again, and eventually asks for the water heater, the repipe or the bathroom. That sequence is worth a multiple of the first call and is credited to nobody.

Because the match is on the customer, every later invoice credits the channel that produced them the first time. Channels that bring households rather than one-off emergencies stop looking equivalent, and on most books that reorders the list.

05

What the first report usually shows a plumbing company

The unattributed share tends to be large, and it should be. Plumbing is a trade where a neighbor's recommendation, a van seen in the street and a twelve-year-old relationship genuinely produce work, and none of that can be traced to an advertisement. Reporting it as Direct and Unknown rather than distributing it across the paid channels is what makes the rest of the table believable.

The second common finding is that emergency keywords dominate the job count and underperform on revenue per job, while planned-work keywords look expensive per lead and carry the margin. Neither of those is a reason to switch a campaign off; both are reasons to bid and budget for them separately, which almost nobody does because almost nobody has ever seen the two numbers side by side.

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 Plumbers.

They say

Half our calls are people price-shopping.

We say

They will appear as unmatched leads, which costs nothing against your limit — only invoiced jobs count. Seeing which channel produces shoppers rather than customers is usually the point.

They say

We get a lot of repeat customers.

We say

They show as Direct / Unknown, which is honest. Repeat work is valuable and worth measuring; crediting it to this month's ads is not.

They say

Our job data is in a mess of spreadsheets.

We say

That works. Any layout, any column order — a phone or email, an amount and a date is all the match needs.

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 residential and commercial plumbing 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 Plumbers.

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

Completed, invoiced jobs: customer phone or email, the amount, and the date.

Where your sales already are

What to export, by system.

All systems

ServiceTitan

Export completed jobs and match them to the campaigns and calls that produced the customer — including the estimate that sat for four months.

What to export

Housecall Pro

Match paid jobs to the campaigns and calls behind them, and rank channels on collected revenue rather than booked work.

What to export

QuickBooks Online

Export invoices from QuickBooks Online, upload your call and lead records beside them, and see revenue by channel — from the ledger rather than from a guess.

What to export

CallTrackingMetrics

CallTrackingMetrics attributes the contact. Match those contacts against your sales export and rank channels on the money rather than on the volume.

What to export

FieldEdge

Export completed jobs, upload the calls and leads beside them, and rank your marketing on invoiced work instead of on booked calls.

What to export

Workiz

Export your jobs, upload the calls and leads beside them, and rank channels on what was charged rather than on what was booked.

What to export

Service Fusion

Export invoiced jobs, upload your calls and leads beside them, and get revenue by channel — with the trade that earned it as a cut of its own.

What to export

Kickserv

Export invoices from Kickserv, upload the leads behind them, and find out which marketing produced work rather than calls.

What to export

FieldPulse

Export invoices from FieldPulse, upload the leads behind them, and see which channels produce work that closes.

What to export

ServiceM8

Export invoices from ServiceM8, upload the leads behind them, and find out which marketing paid for itself.

What to export

Tradify

Export invoices from Tradify, upload the leads behind them, and see which channels produce work rather than price comparisons.

What to export

Angi

Export your Angi leads, match them against the jobs you invoiced, and find out what a won job actually cost.

What to export

Thryv

Export customers and paid invoices from Thryv, match them on the customer, and see what each source produced in money you received.

What to export

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.