No API key·Nothing to install in FieldEdgeNothing to install·No card requiredNo card
closed-sales.csvExported from FieldEdgeClosed-sales file
Customer phone or email
Invoiced amount
Completion or invoice date
Job type or trade
greencarries the match greyslices the report
Lead Mar 12 · Google Ads
Closed Jul 18 · matched
Lead Mar 12Closed Jul 18 · matched
CloseRev reads a FieldEdge export of completed work — the customer's phone or email, the invoiced amount and the completion date — and matches it against your call and lead records. It answers which marketing produced the jobs you invoiced for a contractor whose work arrives overwhelmingly by phone, which is the route ad platforms report worst. Jobs it cannot trace are reported as Direct / Unknown rather than shared out.
Last checked against FieldEdge's own documentation on September 24, 2026.
The gap
The dispatch board fills up and the trucks roll. At the end of the month you know exactly what you invoiced and nothing at all about which of it your advertising caused.
FieldEdge 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.
01Needed
Customer phone or email
On the customer record the job belongs to. A phone number is the realistic key in this trade — most of these customers rang, and a good share of them have no email on file at all.
02Needed
Invoiced amount
What the job actually billed, including any parts and any change to the scope on site. Not the estimate, which is a different and less interesting number.
03Needed
Completion or invoice date
When the work was done or billed, rather than when the call was booked. The gap between those two matters most on replacement work.
04Optional
Job type or trade
Service call, maintenance, replacement — whatever your file distinguishes. It becomes the split that separates cheap volume from real money.
Step by step
Getting the file out of FieldEdge.
Written for somebody with FieldEdge open in the next tab. Report names vary by edition, so each step says what to look for.
1
Export completed jobs with revenue
One row per job with a customer contact detail, the invoiced amount and a date. Look for the export that lists jobs with what they billed, rather than for a particular report name — the names differ by edition and by how your account was set up.
2
Check the phone column first
This trade lives on the phone and dies on missing contact details. If a meaningful share of jobs have no phone and no email, the matched share will be low and that is a property of the file rather than of the marketing.
3
Export your calls and leads
Call tracking is the usual source, and the website forms and any marketplace leads belong in the same file. Contact detail plus where the lead came from.
4
Cover a wider window on the job side
A maintenance call in March becomes a system replacement in July. A sales file that stops at the end of the campaign month will miss the revenue the campaign actually produced.
5
Upload both and read the disagreements
Where a channel's booked-call rank and its revenue rank differ, that gap is usually the most useful output on the report.
What comes back
The page FieldEdge 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 FieldEdge account.
app.closerev.com/reports · August 2026 · sample
Traced to a channel$349,20068% of $513,500
Sales matched81 of 144high confidence only
Average sale$3,620per paid sale
Channel
Share
Sales
Revenue
Google Ads
38
$241,400
Meta Ads
24
$61,600
Email marketing
19
$46,200
Direct / Unknown
63
$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.
01
The service call and the replacement are the same customer and not the same money
A diagnostic visit bills a couple of hundred. The system replacement that visit leads to bills ten thousand or more, weeks or months later, and it is the reason the marketing was worth running at all.
Ad platform reporting sees the first event if it sees anything, because that is the one close enough in time to a click to be attributed. The second is invisible to it, and the second is where the margin is.
Matching an invoice export that reaches well past the campaign window recovers exactly that revenue. It is disproportionately the large revenue, which is why channels reorder when you do it.
02
Most of this work arrives by phone, which is the route least well reported
Somebody with no heat does not fill in a form. They ring the first number they can find, and the call is answered by a person who books it and moves on. Nothing in that sequence records a campaign.
That is precisely why the pairing works. A tracked number attributes the call, FieldEdge records what the job billed, and the two are joined on a phone number captured by the network rather than typed by anybody.
Where a contractor has no call tracking at all, this still works on the leads they do capture, and the report will be honest about how much it could not place.
03
Maintenance agreements change what a customer is worth
A customer on an agreement is not one job, they are a relationship with several invoices a year and a much better chance of buying equipment from you when the time comes.
Crediting all of that to the campaign that first produced them flatters that campaign enormously; crediting none of it understates a channel that is genuinely producing the best customers you have. There is no universally right answer and a tool should not pick one quietly.
So repeat and follow-on revenue is reported separately from the first job. The decision stays yours and it is visible rather than buried in an average.
04
Seasonality makes a single month a bad judge
This trade's demand arrives in shocks — a cold snap, a heatwave, a storm — and a campaign that looks brilliant in the week the temperature drops is being credited with weather.
Comparing a channel against itself across a longer window, and against the other channels in the same window, is the only reading that survives. The report covers whatever period your files cover, so the honest move is to give it a wide one.
Fair questions
“FieldEdge already does that.” Not quite.
They say
“Our office staff already ask callers how they heard about us.”
We say
They do, and the answer is unreliable in a known direction: people say the internet, or a friend, or they do not remember. This reads the ad click and the invoice rather than a recollection.
They say
“We do not want to change how we dispatch.”
We say
Nothing changes. FieldEdge stays as it is and its export becomes the revenue file.
They say
“Half our jobs have no email address.”
We say
That is normal in this trade, and the phone number is the better key anyway. The report says what share it could match rather than assuming.
No. It reads a file you exported, so nothing holds a credential to your account and nothing writes back.
Completed jobs with a customer contact detail, the invoiced amount and a date. Look for the export listing jobs with revenue rather than for a particular report name.
The invoice. What the job billed is the number the report is about; the estimate is what you hoped it would be.
Calls and leads with a source — call tracking, website forms, marketplace leads, or a spreadsheet the office keeps.
On the phone number and the email, normalised on both sides rather than compared as strings.
They are reported separately from first jobs, so you decide whether recurring revenue credits the campaign that won the customer.
Yes, where the export carries a job type. It is usually the most revealing cut on the whole report.
Further than the lead file, and generously. A spring maintenance call becoming a summer replacement is the case this exists to catch.
Yes. Where the file distinguishes them, the report does too.
They go to Direct / Unknown and stay there. Unmatched revenue is reported as unmatched rather than distributed across the paid channels.
A contact detail, an amount and a date. No job notes, no technician records, no equipment history and nothing you take payment with. Uploads are encrypted in transit and at rest and deleted with their import.
Revenue by channel from invoiced work, the share of jobs it could match, and everything it could not, kept apart.
By trade
Trades that run FieldEdge.
What the report looks like once the export is in, written for each one.
FieldEdge 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 FieldEdge, no API key, and no need to have been tracking anything until now. Last year works as well as this month.