“Shop-Ware already reports sales by shop.”
It does. It has no record of what produced each customer, because that predates the first repair order.
For Shop-Ware
Export repair orders from Shop-Ware, upload the leads behind them, and rank channels on gross profit — shop by shop.
No API key Nothing to install in Shop-WareNothing to install No card requiredNo card
CloseRev reads a Shop-Ware export of repair orders — the customer's phone or email, the sale and its cost, and the date — and matches it against the calls, ads and listings that produced the first visit. Repair groups running several shops need two things a single-shop report never gives them: an answer per location, and a ranking on what the work was worth after parts, not on what it was billed at. Revenue with no traceable lead is reported as Direct / Unknown.
Last checked against Shop-Ware's own documentation on September 25, 2026.
The gap
Every location reports sales. The owner's real question is which channels produce profitable work at which shops.
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, which is what joins every later visit back to the first one.
What was billed and what the parts cost. Their difference is what the channel actually earned the business.
When the order was closed. Keep the date of any declined work too, if the export has it.
Which location, and how much technician time the job took. Both change the ranking.
Step by step
Written for somebody with Shop-Ware open in the next tab. Report names vary by edition, so each step says what to look for.
One row per order with a customer contact detail, sale, cost of parts and the date.
A group-wide ranking describes no single location, and marketing is usually local.
Tracked numbers per location, search campaigns per location, map listings, fleet programmes.
Declined work that comes back months later needs time to arrive before it can be credited.
The join runs on the phone and the email, normalised, with results per shop and for the group.
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 Auto Repair Shops page — not from a Shop-Ware account.
| Channel | Share | Sales | Revenue |
|---|---|---|---|
| Google Ads | 203 | $101,500 | |
| Local service ads | 142 | $77,000 | |
| Meta Ads | 61 | $24,500 | |
| Direct / Unknown | 289 | $147,000 |
Unmatched sales stay in Direct / Unknown. They are never spread across the paid channels to make the total look better.
The argument
Repair groups buy marketing centrally and deliver it into several local markets, each with its own competitors and its own mix of customers.
A channel that fills bays at one location can do nothing at another a few miles away, and a group-wide figure sits between them and describes neither.
Splitting every figure by shop turns one ambiguous number into a set of local decisions, which is how a group actually allocates.
It also shows which locations are carrying a channel's group-wide result, which is usually two or three of them.
Those are the shops where changing the spend changes something.
Two orders with the same total can be mostly labour or mostly parts, and the business keeps very different amounts from each.
Channels do not bring the same mix. A source producing heavy parts jobs can top a sales ranking and sit near the bottom of a profit one.
Where the export carries the cost of the order, the report ranks on the difference, which is the number the owner cares about.
Where it does not, the report ranks on sales and says so, rather than implying a precision the file does not contain.
A customer declines a recommendation today and comes back for it three months later. The second order often looks like a return visit with no marketing behind it.
It was produced by the first visit — and so by whatever brought the customer in the first time.
Summing by customer across a year, rather than judging each order alone, keeps that work attached to the channel that earned it.
It is also a measure of the shop: a channel whose customers come back for deferred work is producing customers who trust the shop, which is worth more than its first-visit figure suggests.
A shop can only sell the hours its technicians have. A channel bringing long, low-margin diagnostic work can fill the week and leave little behind it.
Where the export carries labour hours, the report shows gross profit per labour hour by channel, which is the fairest comparison for a shop at capacity.
For a shop with idle bays the ranking that matters is different, and the report shows both so the owner can choose.
Neither figure is visible in an advertising platform, which sees clicks and calls and never sees the bay.
For a group, the per-shop version of this is the useful one. A location running at capacity should be bought different work from a location with empty bays, and a single group-wide channel budget cannot do that.
Fair questions
It does. It has no record of what produced each customer, because that predates the first repair order.
Then the report ranks on sales and says so. Adding the cost of the order is what turns it into a ranking on profit.
Which is why the shop split matters: the same spend lands in several different local markets.
No. It reads a file you exported, so your repair orders, inspections and customer messages stay where they are.
Closed repair orders with a customer contact detail, sale, cost of parts, date and shop.
Because a parts-heavy order and a labour-heavy order with the same total leave very different amounts in the business.
The report ranks on sales and labels it as such.
Yes, and for a group it is usually the reason to run the report at all.
Summed by customer across the year, so work declined and later approved stays with the channel that brought the car in.
Yes, where the export carries labour hours — the fairest comparison for a shop at capacity.
A year, so deferred work has time to come back.
No. Their first order is the acquisition and later orders are reported separately.
Any first visit with no traceable lead, usually untracked calls to a location's main line.
A contact detail, sale and cost figures, a date and a shop. No VINs required, no inspection photos, no payment details. Encrypted in transit and at rest and deleted with the import.
Gross profit per acquired customer by source and by shop, deferred work kept with its channel, profit per labour hour where available, 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.
Shop-Ware 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 Shop-Ware, no API key, and no need to have been tracking anything until now. Last year works as well as this month.