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 FieldPulse

A booked appointment is not a sale, and the difference is not evenly spread.

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

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

CloseRev reads a FieldPulse 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. FieldPulse tracks the whole path from estimate to payment, which makes it unusually good at answering where each stage leaked once a lead source is joined to it. Invoices with no traceable lead are reported as Direct / Unknown.

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

The gap

Two channels deliver the same number of appointments and one of them produces half the revenue. Nothing you currently run would show that.

FieldPulse 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. The phone number is the reliable key in the trades.

  2. Needed

    Invoice total

    Billed and collected, not the estimate total. Estimates measure quoting.

  3. Needed

    Invoice date

    When the work was billed. Use it consistently for every row.

  4. Optional

    Estimate status and job type

    Whether an estimate was won or lost, and what kind of work it was. Together they show where each channel leaks.

Step by step

Getting the file out of FieldPulse.

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

  1. Export invoices

    One row per invoice with a customer contact detail, the total and a date.

  2. Export estimates too, if you can

    Won and lost together. The close rate per channel is the most actionable number this report produces.

  3. Take six months or more

    Trade revenue is lumpy. One large install in a short file decides the ranking on its own.

  4. Export your lead sources

    Call tracking, web forms, search ads, map listings and marketplaces. Contact detail plus the source.

  5. Upload both

    The join runs on the phone and the email, normalised, and unmatched rows stay visible.

What comes back

The page FieldPulse 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 FieldPulse 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.

Close rate is where channels really differ

Two sources can deliver identical appointment counts and utterly different revenue, because the people they send are not equally ready to buy.

Marketplace leads shopping three contractors close at one rate. A caller from a map result with an emergency closes at another. Neither is visible in a cost-per-lead report.

With estimates exported alongside invoices, the report gives close rate and average won value per channel, which is enough to change a budget with confidence.

It also separates two very different problems: a channel that sends poor leads and a channel that sends good leads your team is slow to call back. The first is a buying decision and the second is a scheduling one, and they are routinely mistaken for each other.

The estimate total is not the invoice total and the gap is informative

Work changes on site. Some jobs grow, some shrink, and a few are abandoned after the estimate was written.

Ranking channels on estimate values rewards whichever one produced the most optimistic quotes, which is a measure of your salespeople rather than your marketing.

The report uses invoices as the revenue side throughout. Where both are present it shows the gap per channel, which occasionally reveals that one source's jobs systematically shrink on contact with reality.

That is worth knowing before a channel is cut for producing small jobs it did not actually produce.

Change orders and multi-visit work need summing by customer

A single project can produce several invoices — a deposit, progress billing, a change order, a final. Counted individually, one customer looks like four wins.

Summed by customer, the project is one decision with one value, which is the unit a marketing decision is made in.

The report sums by customer across the window and keeps the first job separate from later ones, so a repeat customer is not silently credited to the original advert.

For contractors with maintenance agreements, that separation is also how the recurring revenue becomes visible instead of being averaged away. An agreement signed on a first visit is worth several years of small invoices, and a channel that produces them is worth paying more for at the front end.

Untracked calls are the limiting factor, not the software

Trade enquiries arrive by phone from vehicle wraps, yard signs, map results and referrals, and none of those produce a row in any lead file by default.

A report built only on web forms describes the minority of your enquiries and will underrate every offline channel you have.

Tracked numbers on the website, the trucks and each paid listing fix this in a week, and every report afterwards is worth reading. It is the single cheapest improvement available to a contractor measuring marketing, and it usually pays for itself on the first budget decision it changes.

Until then, the size of the Direct / Unknown bucket is stated plainly rather than being distributed across whichever channels happen to have data.

Fair questions

“FieldPulse already does that.” Not quite.

They say

“FieldPulse already reports revenue.”

We say

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

They say

“We judge channels on booked appointments.”

We say

Then you are judging them on a stage where they look similar, and ignoring the stage where they do not.

They say

“Exporting estimates is extra work.”

We say

It is one more file and it buys the close rate per channel, which is usually the number that changes the budget.

Questions

FieldPulse, specifically.

Something else? Ask us and a person answers.

No. It reads files you exported; your schedule, crews and customer records are not reachable from here.

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