“SmartMoving already has a marketing ROI report.”
It does, on the sources it holds. This adds the campaign and keyword underneath them and puts lead vendors and ad accounts on one axis.
For SmartMoving
SmartMoving reports on the sources it holds. This adds the campaign behind them and ranks every lead vendor on invoiced work.
CloseRev reads a SmartMoving export of invoiced or collected moves — customer contact detail, the amount and the date — and joins it to the lead sources that produced the inquiry. It answers which channels filled the calendar with the jobs worth having, branch by branch, rather than which filled it with estimates. Unmatched jobs are counted as Direct / Unknown.
Page updated September 24, 2026.
The gap
A marketing ROI report that arrives as a spreadsheet by email is a report nobody opens twice. It is also blind to everything outside the system.
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.
The customer on the job. Phone first — this trade books by call.
Final invoice rather than the booked estimate, for the same reason every mover already knows.
Used consistently between uploads.
Separates interstate from local, and branch from branch.
Step by step
Written for somebody with SmartMoving open in the next tab. Report names vary by edition, so each step says what to look for.
SmartMoving's marketing reporting exports to a spreadsheet, which is the right starting point — it already holds source against revenue.
This is what lets the report go below the source name to the campaign, keyword and call.
Combine them into the lead file, each vendor named as the source on its rows. This is where the interesting comparison lives.
Google Ads, Local Services, Meta, and call tracking if you run it — rows in the same lead file, each with its source named.
Map a move-type column as Product / service so interstate and local revenue are shown apart rather than averaged.
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 Long-Distance Movers page — not from a SmartMoving account.
| Channel | Share | Sales | Revenue |
|---|---|---|---|
| Google Ads | 209 | $1,295,000 | |
| Purchased leads | 185 | $1,145,500 | |
| Organic search | 96 | $597,500 | |
| Meta Ads | 40 | $249,000 | |
| Direct / Unknown | 273 | $1,693,000 |
Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.
The argument
Marketing reporting inside operational software tends to be delivered rather than dashboarded: run it, receive a spreadsheet, open it, interpret it. That is fine once a quarter and it is not a cadence that steers weekly spend.
More importantly it can only report on what the system holds. A source name against a revenue figure is genuinely useful, and it is a level above where the decisions get made — which is at the campaign and keyword, inside an ad account the moving software never sees.
Reconciling the invoiced jobs against the ad and call exports produces that level, and produces it as a standing report rather than an attachment.
Movers buy leads and also advertise. Both spends come out of the same budget and are measured in different units by parties with different interests. The lead vendor reports leads. The ad platform reports conversions. Neither reports invoiced revenue.
Putting every vendor's delivered leads and every ad export into one lead file ranks all of them on invoiced work. It is a comparison neither party will ever hand you, and it is the one that can move budget.
Moving is violently seasonal. A source that performs in June and disappears in November may simply be a source that serves summer demand, and comparing consecutive months will tell you the wrong story about it.
Uploading two years lets the report compare the same weeks across years. For a business whose peak is three months long, that is the difference between a chart that is argued about and a chart that gets acted on.
The moving software holds the job, the customer and the money. It does not hold the keyword, the campaign, the ad spend or the call recording — and it has no route to any of them.
That is not a gap to be apologized for; it is the boundary between an operational system and an advertising one. Crossing it requires reconciling two exports, which is what this does.
Two estimators working the same source will convert it at different rates, and a source that looks weak may simply be routed to whoever is busiest. Ranking sources without that context blames the channel for a routing decision.
Exporting the assigned salesperson as the Product / service column shows how much revenue each estimator closed and the share that traced to a channel. The matched-records export of each import carries salesperson and source on every job, which is where a source-by-estimator table can be built.
It is also the kind of finding that changes an operation rather than a budget, which tends to be cheaper and faster than either.
Fair questions
It does, on the sources it holds. This adds the campaign and keyword underneath them and puts lead vendors and ad accounts on one axis.
It is two uploads a month. There is nothing to install and nothing to keep running.
Then the report will confirm it in invoiced revenue, and you will know what the alternative channels are actually worth before you renegotiate.
Invoiced jobs with a customer phone or email, the amount, and a date.
No. It adds the campaign and keyword layer and ranks external lead vendors on the same axis.
Invoice, for the same reason as every mover's own accounting.
Yes. Each vendor's leads go into the lead file under its name and are ranked on invoiced revenue.
Yes, with a move-type column.
Yes — map a branch column as Location.
Two years if you can, because the trade is strongly seasonal.
Not required, but it is the strongest second file in a phone-booked trade.
No. CSV export and upload.
Contact detail, invoiced or collected amount, date, and a branch if you include one. Estimates, crew assignments and storage records stay in SmartMoving. Everything uploaded is encrypted in transit and at rest and removable in one click.
Per estimator, yes, if the salesperson column takes the Product / service slot; per estimator and source together, from the matched-records export.
No. The lead file says when a lead arrived, not when you reached it, so response time is measured in SmartMoving.
Yes. Every vendor's leads sit in the one lead file under their own source name and are ranked on invoiced revenue.
Yes, as further rows against the same customer.
They stay in the lead file and earn nothing, which is what makes the close rate per source meaningful.
Yes — a branch column mapped as Location puts every branch on the same report.
Yes, with an account-type column. Government and corporate work arrives through channels that have nothing to do with consumer advertising and should not dilute it.
Both will contain the person. The earliest of the two leads takes the credit automatically, so the vendor that delivered first is credited; the overlap itself is not reported as a figure.
Not as revenue, because a cancellation earns nothing and does not belong in the sales file. The report shows each source's leads beside its invoiced jobs; cancellations sit somewhere in that gap, and SmartMoving's own records say how many.
It works on whatever revenue your accounts recognize. Where a van line supplies both the lead and a revenue share, the source is the van line and the amount is your share — kept under the van line's own source name so it is never blended with your own demand.
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.
SmartMoving 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.
From the blog
Multi-crew home and field services businesses run on phone calls and job management software, not on web forms. Which means the standard marketing dashboard is measuring the smallest part of the business and missing where the money actually is.
Read the articleIt is easy to compute, easy to improve, and it will happily bankrupt you. A defense of the least popular position in performance marketing: that the metric most teams are held to is actively harmful, and that the alternative is available to anyone willing to do one join.
Read the articleThe attribution window is the most consequential setting in marketing measurement and the least defended. It is usually inherited from a platform default, occasionally changed until the numbers look better, and almost never written down. Here is how to choose one honestly, why a longer window for one channel can be legitimate, and the single rule that separates a measurement from a rationalization.
Read the articleStart today
Nothing to install in SmartMoving, no API key, and no need to have been tracking anything until now. Last year works as well as this month.