Revenue, not calls
Channels are compared on the invoiced revenue they closed, which is the only unit the business is actually paid in.
Marketing attribution for Electricians
Match completed jobs and their revenue to the calls and campaigns that produced them, from a $140 outlet to a $22,000 service upgrade.
$265,500 59% of $450,000 paid
The blind spot
A service call and a panel upgrade cost the same to acquire and differ by two orders of magnitude in revenue. Cost-per-call cannot see that.
What you get
Channels are compared on the invoiced revenue they closed, which is the only unit the business is actually paid in.
The campaign that produced the customer is credited whenever the job lands, not only if it lands inside some reporting period.
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 | 164 | $139,500 | 31% | |
| Local service ads | 122 | $103,500 | 23% | |
| Meta Ads | 26 | $22,500 | 5% | |
| Direct / Unknown | 218 | $184,500 | 41% |
Two channels producing calls at $60 each are not equivalent if one fills the diary with small repairs and the other with panel upgrades, EV chargers and generator installs.
Ranking on completed job revenue is the correction, and it usually reveals that the channel with the highest cost per call has the lowest cost per dollar earned.
A commercial account can be worth a hundred residential calls and arrives through completely different channels — often a referral or a bid list rather than search.
A job-type column mapped as Product / service shows residential and commercial revenue as separate lines, with how much of each traces to a channel, and referred commercial clients can go into the lead file, tagged with their referrer, so the commercial side is measurable at all.
An electrician's day contains work worth a hundred dollars and work worth eight thousand, and both arrive through the same brand and frequently the same campaign. A fault-finding call, a panel upgrade, a rewire, an EV charger installation and a generator are different products with different cycles sold by the same van.
Reported as a single job count, the cheap and fast work dominates every metric, because there is simply more of it. The channels that produce the occasional large project look expensive and unproductive on cost per lead, and they are the ones carrying the margin.
Ranking on invoiced revenue, with a job-type column mapped as Product / service, separates them, so each half's revenue is seen on its own rather than inside an average that describes neither half of the business.
A great deal of an electrician's project work is sold in somebody's house by a technician who went there to do something else. The homeowner called about a dead socket and ends up scheduling a panel upgrade, because somebody they now trust told them the panel was the real problem.
That sequence is one of the most profitable things the trade does and no marketing report credits it, because the advertisement is scored against the eighty-dollar call it produced.
Because the match is on the customer rather than the job, the later project invoice credits the channel that produced the original call. Channels that generate service volume stop looking like a low-margin commodity once the work they lead to is attached to them, which on most books reorders the list.
Scale changes what the same report is good for. With two vans and a few hundred jobs a year, one large commercial rewire can move a channel's revenue share by ten points, so the ranking is noisy and the sensible reading is directional: which sources produce paid work at all, and which have quietly produced none for two quarters. Precision is not available at that volume, and pretending otherwise invites expensive reactions to ordinary variance. The decision it supports is whether to keep paying for a listing, not how to weight two campaigns against each other.
At thirty vans the opposite applies. The volume is high enough that the ranking holds reasonably still from month to month, and the valuable cuts are the ones a small shop cannot make: revenue by service area and by job type. An import carries two breakdowns — a territory mapped as Location and a job type or technician mapped as Product / service — and a single average across a dozen service areas describes none of them, while the budget is being spent area by area rather than as one national number.
Both sizes share one trap, which is reading the attributed share as a performance score. A small contractor whose work is half word of mouth will see a large Direct and Unknown bucket and take it as failure; a large one running heavy paid media will see a small one and take it as success. Neither reading holds. The bucket describes how a business acquires customers, not how well its marketing works, and the figure worth watching is the revenue behind each named channel as it moves over several periods.
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
Which is why revenue rather than job count is the ranking. Export the total and the comparison is meaningful.
Map a job-type column as Product / service and the two show as separate lines, because they do not share economics.
If it exports completed jobs to CSV, that is enough.
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. Starter usually fits residential and commercial electrical contractors — one workspace, one seat, and everything that makes the number defensible from the first plan.
A single business getting started
$9/mo
billed monthly
Questions
Anything else? Talk to us — a person answers, usually the same day.
One row per job: a customer phone or email, the amount, and a date. Anything beyond those three only changes how the report can be cut.
Yes, with a job-type column, so each one can be funded against its own invoiced revenue rather than a portfolio figure.
Yes — later jobs credit the channel that produced them.
Yes: a territory column mapped as Location, or a technician column mapped as Product / service. Each shows revenue with the attributed share; channels are not ranked within each.
No. Anything you do not map is not read, and the match needs only a contact detail, an amount and a date.
Encrypted at rest and in transit, workspace-isolated, and deleted properly rather than flagged when you ask. A DPA is available if your own agreements require one.
Yes. There was no tag running back then and it makes no difference: the customer appears in both files either way.
Job rows analyzed in a calendar month. Call rows and anything else in the lead file do not count.
No. Nothing goes on a page, nothing connects to your job management software, and no permissions are granted — the inputs are two files you export and can read yourself.
Yes. Most residential and commercial electrical contractors begin with last year, because it is the cheapest way to find out whether the exercise tells them anything.
It is reported as Direct and Unknown. Unmatched invoiced revenue is never shared out across the paid channels to improve the attributed figure.
Yes, with a job-type column mapped as Product / service, and it is the most important breakdown to add — service calls and projects behave very differently.
Yes, credited to the channel that produced the original call rather than to whatever was running when the project was booked.
Yes, by mapping a technician column as Product / service (one extra breakdown per import). It shows each technician's revenue with how much of it traces to a channel, which keeps a technician's conversion from a service call to a project from being mistaken for a channel difference.
Yes, with a job-type or product column — those searches behave differently from general electrical demand.
Enough for direction, not for precision. At a few hundred jobs a year a single project shifts a channel's share substantially, so read it for which sources produce revenue and which have gone quiet, and give any one month less weight than a trend across three.
Service area, job type and technician. Once the job count is high enough for the ranking to hold still, those cuts are where the real differences live, and a blended figure across a dozen territories hides the one that is losing money.
It describes how you acquire customers rather than grading you. A referral-heavy shop will always carry a big unattributed bucket, and spreading that revenue across the paid channels to shrink it would make every other figure on the page untrustworthy.
Nearby
Match installed equipment and invoiced work to the calls and ads that produced them, so the channel that fills your install schedule is obvious.
See how it worksMatch signed and installed systems to the leads and campaigns that produced them, across a sales cycle that runs months and survives a finance approval.
See how it worksMatch your invoiced jobs to the calls and ads that produced them, and find out which channel is actually paying for the trucks.
See how it worksWhere your sales already are
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 exportMatch paid jobs to the campaigns and calls behind them, and rank channels on collected revenue rather than booked work.
What to exportExport 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 exportExport completed jobs, upload the calls and leads beside them, and rank your marketing on invoiced work instead of on booked calls.
What to exportExport your jobs, upload the calls and leads beside them, and rank channels on what was charged rather than on what was booked.
What to exportExport 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 exportExport invoices from Kickserv, upload the leads behind them, and find out which marketing produced work rather than calls.
What to exportExport invoices from FieldPulse, upload the leads behind them, and see which channels produce work that closes.
What to exportExport invoices from ServiceM8, upload the leads behind them, and find out which marketing paid for itself.
What to exportExport invoices from Tradify, upload the leads behind them, and see which channels produce work rather than price comparisons.
What to exportExport your Angi leads, match them against the jobs you invoiced, and find out what a won job actually cost.
What to exportExport your Thumbtack leads, match them against paid jobs, and find out which categories and which job sizes are worth being in.
What to exportFrom 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 articleTotal revenue divided by total spend feels like the honest, platform-agnostic metric. It is also incapable of telling you which channel to cut, hides the performance of everything inside it, and improves when you stop spending on the things that grow you.
Read the articleStart today
Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.