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 Kickserv

Twelve leads, four jobs, one channel that paid for itself.

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

No API key Nothing to install in KickservNothing to install No card requiredNo card

CloseRev reads a Kickserv export of invoices — the customer's phone or email, the amount and the date — and matches it against the calls, forms and ads that produced the job. For a small contractor the gap between a booked call and a paid invoice is wide, and only the invoice side settles which marketing is worth keeping. Invoices with no traceable lead are reported as Direct / Unknown.

Last checked against Kickserv's own documentation on September 24, 2026.

The gap

Every channel reports leads. Only your invoices know which of those leads turned into money.

Kickserv 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

    On the customer record. In the trades the phone number is the reliable key.

  2. Needed

    Invoice total

    What was billed and collected, not the estimate. Estimates measure your quoting, not your marketing.

  3. Needed

    Invoice date

    When the work was billed. For jobs that ran across weeks, the invoice date is the stable one.

  4. Optional

    Job type

    Repair, install, maintenance. The difference in value between them is usually larger than the difference between channels.

Step by step

Getting the file out of Kickserv.

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

  1. Export invoices, not estimates

    One row per invoice with a customer contact detail, the total and a date. An estimate is an intention.

  2. Cover six months or more

    Small trades have lumpy months. A short file ranks channels on which one happened to catch a big install.

  3. Export your lead sources

    Call tracking first, plus the website form, search ads and any marketplace or directory you pay for.

  4. Include the jobs that did not close

    A channel's cost is spread across everything it sent, including the leads that went nowhere.

  5. Upload both

    The join runs on the phone and the email, normalised, and everything unmatched stays visible.

What comes back

The page Kickserv 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 Plumbers page — not from a Kickserv account.

Traced to a channel$208,00065% of $320,000
Sales matched131 of 219high confidence only
Average sale$1,450per paid sale
ChannelShareSalesRevenue
Google Ads96$163,200
Meta Ads21$25,600
Email marketing14$19,200
Direct / Unknown88$112,000

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.

A big install once a quarter distorts everything shorter than a quarter

Small contractors have a revenue distribution with a long tail: dozens of small repairs and a handful of installs worth more than all of them together.

In a one-month file, whichever channel produced the install wins by an order of magnitude, and the conclusion is noise rather than signal.

Six months is the practical floor, and a year is better. The report shows the median job as well as the total by channel, because those two numbers disagreeing is itself the finding.

Where job type is in the export, splitting repair from install removes most of the distortion outright.

Repeat customers are the quiet half of a small trade's revenue

A homeowner who liked the plumber calls the plumber again. Over two years, repeat work is often the largest single line in a small contractor's book.

Attributed to nothing, it disappears into Direct / Unknown and makes every paid channel look worse than it is. Attributed to the original channel with no thought, it makes them look far better.

The report separates first jobs from subsequent ones and leaves the judgement to you, with the number in front of you rather than assumed.

That number is also the honest argument for the more expensive channel: a source whose customers come back twice is worth paying more for at the front.

Untracked calls are the biggest source of error in this trade

A small contractor's phone rings from a van decal, a map listing, a search advert and a neighbour, and none of those produce a form submission.

Every one of them lands in the same place — the phone — so without tracking numbers there is nothing to join on and the report is mostly Direct / Unknown.

The fix is cheap: distinct tracked numbers on the website, on the vehicles and on any paid listing. One change makes every subsequent report worth reading.

Until that exists, the report states the size of the untracked bucket rather than guessing a distribution across the channels that do have data.

Marketplaces charge per lead and should be judged per invoice

Lead marketplaces sell the same enquiry to several contractors and bill whether or not you win it. The cost per lead is known; the cost per job never is.

Matching invoices back to marketplace leads gives the only number that matters, which is what a won job actually cost once the losses are included.

Contractors who run this usually find one marketplace is defensible and another is not, where the cost-per-lead figures were nearly identical.

The same method applies to any channel that bills for contact rather than for outcome, which is most of them.

It also settles the argument about response time. Where a marketplace lead only converts when it is called within minutes, the invoice file shows it, and the fix is an operational one rather than a change of channel.

Fair questions

“Kickserv already does that.” Not quite.

They say

“Kickserv already shows revenue by customer.”

We say

It does. It cannot show which advert produced the customer, because that happened before the customer existed.

They say

“We are too small for this.”

We say

Small is where it matters most: a single misjudged channel is a larger share of the budget.

They say

“Our work is all word of mouth.”

We say

Then the report will show that, and the size of it is worth knowing before you buy anything else.

Questions

Kickserv, specifically.

Something else? Ask us and a person answers.

No. It reads a file you exported; your schedule and customer records are not reachable from here.

Kickserv 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 Kickserv, no API key, and no need to have been tracking anything until now. Last year works as well as this month.