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.

For Housecall Pro

Which ads produced the jobs you actually got paid for?

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

No API key Nothing to install in Housecall Pro No card required

The gap

Booked is not paid, and paid is not profitable. Your marketing report stops at booked, which is the least useful of the three.

Housecall Pro sees

What was sold, to whom, and for how much.

no shared row
Your ad account sees

The click, the keyword, the call, and what each one cost.

The file

What the export needs in it.

Three things carry the match: who, how much, and when. Anything else is optional and only changes how the report can be sliced.

  1. Needed

    Customer phone or email

    The customer on the job. Phone first in this trade — residential work is booked by call far more often than by form.

  2. Needed

    Amount collected

    What was actually paid, not what was booked. A cancelled or written-off job is not revenue and should not credit a channel.

  3. Needed

    Job or payment date

    Whichever is consistent with how you close your books.

  4. Optional

    Job type

    Separates a diagnostic visit from a full replacement so the two do not average.

Step by step

Getting the file out of Housecall Pro.

Written for somebody with Housecall Pro open in the next tab. Report names vary by edition, so each step says what to look for.

  1. Pull a paid-jobs or payments report

    One row per job with the customer's contact detail, the amount collected and a date. Look for the export that lists money received rather than work scheduled.

  2. Set at least twelve months

    Residential replacement work closes slowly enough that a quarter of data will only show you the quick jobs.

  3. Confirm the contact column is present

    Phone or email on each row is what makes the file matchable at all.

  4. Export CSV, then upload

    Column mapping is suggested and confirmed by you, with manual mapping always available.

  5. Add your ad and call exports

    Google Ads, Local Services Ads, Meta, or your call tracking provider — whichever you run.

What comes back

The page Housecall Pro cannot show you.

Revenue by channel, the count of sales behind each figure, and an honest bucket for the ones nobody could trace. Sample figures, from the worked example on the HVAC Companies page — not from a Housecall Pro account.

Traced to a channel$349,20068% of $513,500
Sales matched81 of 144high confidence only
Average sale$3,620per paid sale
ChannelShareSalesRevenue
Google Ads38$241,400
Meta Ads24$61,600
Email marketing19$46,200
Direct / Unknown63$164,300

Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.

The argument

What changes when the job and the ad share a row.

Collected, not booked

The gap between a booked job and money in the account is where residential trades lose the thread. Jobs get cancelled, rescheduled into oblivion, cut down on site, or completed and never paid. If a channel's jobs cancel at twice the rate of another's, booked revenue will rank them identically and be wrong.

Exporting what was collected rather than what was booked is a one-column decision that changes the answer. It also makes the report reconcilable to your own accounts, which is the difference between a marketing number and a number you will actually repeat to somebody.

The homeowner who called in April and replaced in September

Residential systems fail on their own schedule. A homeowner gets a diagnostic in spring, decides to nurse it through the summer, and replaces in autumn when it fails properly. The advertisement that produced that customer ran five months before the revenue.

Any tool that measures inside a window will credit the September branded search and score the April campaign as a cost with no return. Matching on the customer makes the five-month gap irrelevant: the same person appears in both files, so the match is made and the revenue is credited to the period the enquiry came from.

One customer, several visits, one acquisition

Residential trades earn most of their money from customers they already have. A first visit leads to a repair, then a maintenance plan, then eventually the replacement. Treating each of those as a separate conversion triple-counts the marketing and makes cost per job look better than it is.

Matching on the customer keeps one person as one acquisition with all their revenue attached. The headline number usually goes down and becomes correct, which is the trade this product exists to make.

Nothing to install, and last year still works

There is no tag, no script, no connected app and no permission to grant. The inputs are two CSVs you can export and inspect before uploading either of them.

Because the method reads records kept for billing rather than a tag that had to be running at the time, you can analyse a period that has already finished. Most operators start by uploading last year, because it is the fastest way to find out whether the exercise tells them anything.

Reviews and marketplaces are channels, and they are rarely priced

Residential trades get a meaningful share of work from review sites and home services marketplaces, which charge per lead or take a commission and report their own performance. That spend sits beside paid search in the budget and has never been compared with it on a common measure.

Upload the marketplace's lead export as a source file and it is ranked on collected revenue exactly like a Google campaign. Operators are frequently surprised in both directions — sometimes the marketplace is the best value in the mix, sometimes it is buying them jobs they would have won anyway.

Either answer is worth having before the annual renewal conversation, which is usually conducted on the marketplace's own figures.

Fair questions

“Housecall Pro already does that.” Not quite.

They say

“We already tag every job with a lead source.”

We say

That is the source somebody typed at booking. This adds what that source went on to collect, and which campaign sat behind it — neither of which the field can hold.

They say

“Our jobs are small.”

We say

Individually. The customer behind them is not, once the repeat work is attached to the original acquisition, which is precisely what the match does.

They say

“We do not have time for a data project.”

We say

It is two file uploads. The first report takes about as long as the export does.

Questions

Housecall Pro, specifically.

Something else? Ask us and a person answers.

Paid jobs or payments: a customer phone or email, the amount collected, and a date.

Housecall Pro and the other product names and logos on this page belong to their owners and are shown to identify the software a file comes from. CloseRev is not affiliated with or endorsed by them, and connects to none of them: it reads a file you export.

Start today

Two exports, and you will know.

Nothing to install in Housecall Pro, no API key, and no need to have been tracking anything until now. Last year works as well as this month.