“Arborgold already reports revenue by customer.”
It does, and it has no record of the advert that produced the customer, because that happened before the customer existed.
For Arborgold
Export invoices from Arborgold, upload the leads behind them, and rank marketing on completed work rather than on requests for a quote.
No API key Nothing to install in ArborgoldNothing to install No card requiredNo card
CloseRev reads an Arborgold 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 estimate. Tree care and landscaping quote far ahead of the work, so the gap between lead and revenue is months, and only a long window reads it correctly. Invoices with no traceable lead are reported as Direct / Unknown.
Last checked against Arborgold's own documentation on September 24, 2026.
The gap
Spring fills the book with estimates and autumn fills it with invoices, and no report connects the two back to a channel.
What was sold, to whom, and for how much.
The click, the keyword, the call, and what each one cost.
The file
Three things carry the match: who, how much, and when. Anything else is optional and only changes how the report can be sliced.
On the customer record. Phone is the working key in this trade; email coverage is patchier.
What was billed for completed work. Proposals and accepted estimates are not revenue.
When the work was billed. Keep the estimate date too if the export offers it — the gap between them is the useful part.
Removal, pruning, plant health care, maintenance contract. Their values differ by an order of magnitude.
Step by step
Written for somebody with Arborgold open in the next tab. Report names vary by edition, so each step says what to look for.
One row per invoice with a customer contact detail, the total and a date.
Seasonality is the defining feature here. Any window shorter than a year compares channels across different seasons and calls it a ranking.
Call tracking, the website form, search ads, map listings and any neighbourhood or marketplace listing you pay for.
It is how the report reads a March lead against an August invoice without widening the window for everybody.
The join runs on the phone and the email, normalised, with first jobs and repeat work reported apart.
What comes back
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 Tree Service page — not from a Arborgold account.
| Channel | Share | Sales | Revenue |
|---|---|---|---|
| Google Ads | 71 | $82,500 | |
| Local service ads | 47 | $55,000 | |
| Meta Ads | 13 | $15,000 | |
| Direct / Unknown | 84 | $97,500 |
Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.
The argument
A homeowner asks for a quote in early spring. The crew is booked out, the job is scheduled for July, and the invoice lands in August.
A ninety-day attribution window loses that entirely, and every report built on one credits the wrong quarter's marketing or nothing at all.
Reading a full year of invoices against a full year of leads removes the problem rather than tuning around it. Where the export carries an estimate date, the report shows the typical lag per channel, which is a useful operational number in itself.
Channels differ on that lag: an emergency storm call converts in a day, a planned removal in months, and a channel judged on the wrong one looks either urgent or dead.
A large removal can be four figures. A pruning visit is a few hundred. A plant health care programme is a small recurring amount several times a year.
Blended, they produce an average that describes nothing, and a channel weighted towards one is ranked as though it produced the others.
Where the export carries a service type, the report splits on it, and the split is usually the decision. The channel that is expensive per lead is often the one producing removals.
Recurring programmes deserve the same treatment as any other subscription: the value is the year, not the first visit, and the report sums by customer to show it.
A wind event fills the phone for two weeks. Those calls arrive because a tree is on a roof, not because a campaign worked.
Left in the file undistinguished, a storm inflates whichever channel happened to be running and produces a conclusion that will not repeat.
The honest treatment is to read those weeks separately. Where the export carries a service type or a priority flag, that is straightforward; where it does not, the date range alone usually tells you.
The point is not to discard the revenue — it is to stop it being used as proof that something works when the weather was the cause.
Homeowners with a dangerous limb call. So do the ones who saw the truck, the yard sign or the map result, and none of those leave a form behind.
With no tracked numbers, the lead file covers the web forms only, and web forms are the minority of this trade's enquiries.
Distinct tracking numbers on the website, the vehicles and every paid listing turn a mostly-empty lead file into a complete one, and the cost is trivial next to the budget being judged.
Until that exists the report states the size of the untracked bucket rather than distributing it across the channels that happen to have data.
Fair questions
It does, and it has no record of the advert that produced the customer, because that happened before the customer existed.
The season is short; the year is what makes two seasons comparable. A single season ranks channels against weather.
Then a tracked number on the trucks will tell you how much, and that is worth knowing before you spend anywhere else.
No. It reads a file you exported, so your schedule, crews and customer records are not reachable from here.
Invoices for completed work with a customer contact detail, the total and a date.
An accepted estimate is not money. In this trade the gap between acceptance and invoice is months and some of it never closes.
A year. Seasonality makes anything shorter a comparison of months rather than of channels.
Yes, where the export carries an estimate date, and it differs usefully by channel.
Read separately where a service type or the date range identifies it, so weather is not mistaken for marketing.
Yes, where the export carries a service type. It is usually the most informative split available.
They are summed by customer across the year rather than judged on the first visit.
First and subsequent jobs are reported apart, so the decision stays yours.
Anything with no traceable lead — mostly untracked phone calls in this trade, and the size of it is the finding.
A contact detail, an amount and a date, plus a service type if you include one. No property addresses required, no notes, no card data. Encrypted in transit and at rest and deleted with the import.
Revenue per acquired customer by source, split by service type where available, first and repeat work apart, and everything unmatched kept visible.
By trade
What the report looks like once the export is in, written for each one.
Other systems
Running more than one system, or comparing? The method is the same and the columns are not.
Arborgold 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
Nothing to install in Arborgold, no API key, and no need to have been tracking anything until now. Last year works as well as this month.