Invoiced revenue, not form fills
The ranking is on invoiced revenue actually earned, not on tickets counted, so a channel that brings fewer and larger ones rises.
Marketing attribution for Tire & Wheel Retailers
Match closed tickets and their revenue to the calls and campaigns behind them, including the service work that follows.
$224,000 56% of $400,000 paid
The blind spot
Tire retail runs on thin margins and heavy seasonal advertising. Cost-per-click is easy to see and ticket revenue is not.
What you get
The ranking is on invoiced revenue actually earned, not on tickets counted, so a channel that brings fewer and larger ones rises.
An inquiry in one quarter and a ticket in the next are one match, and the earlier campaign is credited with the later invoiced revenue.
Nothing is inferred. A ticket either matches a source exactly or it is reported as unattributed, and the unattributed share is printed rather than absorbed.
A worked example
Not impressions, not leads, not cost per click. Closed revenue, by the channel that produced it, for a period you choose — with the portion we could not trace shown rather than quietly shared out across your paid channels.
| Channel | Sales | Revenue | Share | % |
|---|---|---|---|---|
| Google Ads | 214 | $124,000 | 31% | |
| Meta Ads | 88 | $44,000 | 11% | |
| Local service ads | 97 | $56,000 | 14% | |
| Direct / Unknown | 309 | $176,000 | 44% |
Tire advertising drives price-shoppers efficiently. Whether it drives profitable tickets is a separate question that cost-per-click cannot answer.
Ranking on ticket revenue — or on gross, if you export gross as the amount — shows which campaigns bring the customer who buys four premium tires plus an alignment rather than the cheapest single tire in stock.
A winter changeover season compared against an autumn is meaningless, yet that is the comparison most dashboards default to.
Because there is no attribution window, you can run the same season last year against the same season this year and compare like with like.
Tire retail gets a particular kind of call: a size, a brand, a price, and a decision made in twenty seconds. Some of those callers arrive and some ring the next shop on the list. What separates a good source of calls from a bad one is not the volume, it is the proportion that end up on a ramp, and nothing in a call report distinguishes between them. A source can double the phone traffic and change the ticket count by almost nothing at all.
Using the call export as the lead file and closed tickets as the sales file answers that directly. Each source gets a revenue figure beside its call count, and the ratio between the two becomes visible. The spread can be wide, and the source at the wrong end of it may be the cheapest one, funded for years on the strength of its cost per call and nothing else.
The fix is rarely to switch a source off. It is to stop paying the same for both kinds of call and to change what the phone is asked to do. A source producing price checks needs a different conversation at the counter from a source producing people with a puncture, and knowing which is which before the handset is picked up is worth more than another point of margin on the tire. The report does not run the shop; it tells you which half of the phone you spent the year optimizing.
A share of the bays in most tire shops is now taken by tires the shop did not sell. The customer bought online, had them delivered, and booked a fitting. The ticket is small, the labor is real, and the job occupies the same ramp for the same length of time as a set sold across the counter. On a ticket count it is indistinguishable from the business the advertising is meant to produce. On revenue per bay hour it is a completely different thing.
A ticket or service-type column mapped as Product / service separates them in the breakdown, showing product sales and fitting-only work as their own lines with how much of each traces to a channel. To rank channels on product tickets alone — the question the advertising budget is actually trying to answer — export only those tickets; the ranking always covers everything in the file. Mixed together they produce an average ticket describing no customer the shop has.
There is a quieter version of the same problem with price matching. A ticket written at a matched price carries the revenue and not the gross, and if the export only holds the sale total then the campaign that drove the match looks as good as the one that never needed to. A cost or margin column is what makes the difference legible, and in a trade running on the margins this one does, that column is not optional. Revenue says what sold; only gross says whether the bay hour was worth it.
The economics of a tire shop are not in the tires. They are in the alignment sold alongside them, the rotations that bring the vehicle back, the brake job found during one of those rotations, and the second set four or five years later. A first ticket judged on its own says almost nothing about whether that customer was worth acquiring. Two sources with the same average first ticket can differ enormously in what they produce over the following two years of the relationship.
Because later tickets carry the same phone number, they credit the source that produced the customer without anybody maintaining a link between them. Export two or three years of closed tickets rather than one month and the ranking changes shape: sources bringing people who live nearby and come back move up, and sources bringing a one-off chasing a national price move down where they belong. Neither movement is visible in a report built on a single transaction, and neither is something a counter can recall across thousands of tickets.
This is also the honest answer to the discount question. A promotional set sold at no margin is defensible if the customer returns and indefensible if they do not, and the argument is usually had without evidence, because nobody can see the second visit attached to the first. Two files and a long enough date range settle it. Sometimes the promotion is justified, and sometimes it has been buying strangers for years — either way it stops being a matter of opinion.
Why it matters
"We generated 400 leads" invites an argument. "This channel closed $186,400 last quarter, here is the reconciliation" ends one. The teams that can show closed revenue by channel are the teams that get the next increase approved, because they are asking with evidence rather than with conviction.
Killing spend is politically harder than adding it, because someone always owns the channel being cut. A number that reconciles to the sales export takes the argument out of the room — you are not overruling a colleague's judgment, you are reading the same ledger they are.
Platform-reported conversions do not reconcile to revenue, and eventually someone in finance notices. Reporting built from your own closed-sales export starts from the number finance already trusts, which is why it holds up when it is checked.
Because this reconciles exports rather than tracking visitors, it works on months that have already closed. You are not instrumenting now to learn something in ninety days — you can answer for last quarter today, which is usually when the question is being asked.
Honest answers
Then gross per ticket is the number that matters, and it is exactly what the report ranks on when you export gross as each row's amount.
Compare the same season year on year — nothing had to be installed at the time for that to work.
No. A CSV export of closed tickets is enough.
Pricing
The price here is the price on the invoice, plus any sales tax that applies — no per-call, per-minute or per-form fees. Starter usually fits tire retailers and wheel specialists — one workspace, one seat, and everything that makes the number defensible from the first plan.
A single business getting started
$9/mo
billed monthly
Questions
Anything else? Talk to us — a person answers, usually the same day.
Closed tickets: a customer email or phone, the total, and a date.
Yes, by exporting gross instead of revenue as each row's amount, consistently — the report adds up every row in the workspace, so gross and revenue should not be mixed.
Yes — later tickets credit the channel that produced the customer.
Yes, with a location column mapped as Location.
Yes. There is no attribution window.
Encrypted throughout, isolated to your workspace, and deletable in one click. We act as a data processor and a DPA is available on request.
No — the match reads a contact detail, an amount and a date, and nothing else.
Ticket rows analyzed in a calendar month. Call rows do not count.
Yes, with a service-type column. Fitting tires bought elsewhere occupies the same bay time for a fraction of the ticket, and blending the two produces an average that describes no real customer of yours.
Load two or three years of tickets and look at whether promotional customers came back. A set sold at no margin is defensible if the second and third visits arrived, and not defensible if they never did.
Only if you rank on call volume. Use the call export as the lead file and each source is measured on the tickets it produced, so cheap calls that never arrive stop looking efficient.
Yes. That is where the margin is, and it credits the source that produced the customer originally. A service-category column mapped as Product / service shows that work as its own line; to rank channels without it, export the tires alone.
Leave them out if the question is what the advertising produced, or include them with an account-type column mapped as Product / service, which shows their revenue as its own line. Fleet tire work runs at different rates and volumes from retail, and because the channel ranking counts every row, one large account can otherwise make a modest source look like the best thing you do.
As far as your system holds. Two years is where the return-visit picture becomes readable, and nothing had to be running at the time for those tickets to match the inquiries beside them.
Nearby
Match closed repair orders and their revenue to the calls and campaigns that produced them.
See how it worksMatch completed jobs and their revenue to the calls, referrals and campaigns that produced them.
See how it worksMatch delivered vehicles and front-end gross to the calls, forms and ads that produced them.
See how it worksWhere your sales already are
Export your Square transactions, upload the inquiries beside them, and find out which marketing produced the people who walked in.
What to exportExport repair orders from Shopmonkey, upload the leads behind them, and rank marketing on the customer rather than the ticket.
What to exportExport repair orders from Tekmetric, upload the leads behind them, and rank channels on approved work rather than on cars through the door.
What to exportExport invoices from AutoLeap, upload the leads behind them, and separate the customers marketing won from the ones your reminders brought back.
What to exportExport repair orders from Shop-Ware, upload the leads behind them, and rank channels on gross profit — shop by shop.
What to exportFrom the blog
A dealer group's marketing reports add up to more vehicles than the group sold. Third-party marketplaces, OEM co-op campaigns and your own paid search all claim the same buyer, and the only file that counts each sale once is the one in your DMS.
Read the articleAdd up what your agencies and platforms claim and you have sold the same thing several times over. Nobody is lying. Here is why double counting is structural, how to run the reconciliation meeting, and what to change in the contracts so it stops recurring.
Read the articleAttribution needs history and privacy law needs forgetting, and those two facts are in direct tension. A practical retention policy for marketing data: what to keep, what to aggregate, what to delete, and how to prove you did.
Read the articleStart today
Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.