The quick lube KPIs that matter most are cars per day, average ticket, bay time, bay utilization, attach rate, labor percentage, review rating and comeback rate. Track all eight weekly, by store, on one page, and the weak store usually shows itself in two or three of them at once.
With one store, you can feel when something is off. With six, you can't. A store can hold its car count while its ticket slides. Below are the formula for each KPI, the published benchmarks we found, and a weekly scorecard you can copy.
The 8 KPIs at a glance
| KPI | Formula | Published benchmark |
|---|---|---|
| Cars per day | Vehicles serviced ÷ open days | Average of 36 a day, mostly 2- and 3-bay shops (NOLN KPI Handbook) |
| Average ticket | Total sales ÷ paying customers | 52.5% of operators report over $100 (NOLN, 2025) |
| Bay time | Average minutes from bay entry to exit | 48.1% of operators average 15 minutes or less (NOLN, 2025) |
| Bay utilization | Bay minutes used ÷ bay minutes available | No published benchmark; compare your own stores |
| Attach rate | Tickets with the service ÷ total tickets | Additives on a third of services; filters and fluid exchanges on half (NOLN KPI Handbook) |
| Labor % | Loaded labor cost ÷ sales | Under 25% (NOLN KPI Handbook) |
| Review rating | Average star rating, plus new reviews per week | 68% of consumers only use businesses rated 4 stars or higher (BrightLocal, 2026) |
| Comeback rate | Vehicles returning for the same issue ÷ total tickets | No published quick lube benchmark; set your own baseline |
1. Cars per day
Cars per day = vehicles serviced ÷ open days
This is the number most owners already know. NOLN's KPI Handbook put the average at 36 cars a day, with most shops in the data running two or three bays (NOLN). That figure came from 2019 survey data, so treat it as a rough reference point.
Track it by day of week too, since Saturday and Tuesday call for different staffing.
Pair it with cars per labor hour (cars ÷ total labor hours worked). The same handbook quotes a target of 0.95 cars per labor hour from an Idaho operator (NOLN). It tells you whether a high car count came from a good crew or from an overstaffed one.
2. Average ticket
Average ticket = total sales ÷ paying customers
In the 2025 NOLN Operator Survey, 52.5% of quick lube operators reported an average ticket above $100, 35.6% reported $76 to $100, and 9.9% reported $51 to $75 (NOLN).
Average ticket moves with three things: oil mix, add-ons and price. When it drops, check which one moved before you blame the crew. A store that shifted toward conventional oil will show a lower ticket even with perfect upselling.
The KPI Handbook suggests tracking oil mix as its own number, with a target of 20% good, 50% better and 30% best (NOLN).
3. Bay time
Bay time = average minutes from when the car enters the bay to when it leaves
The 2025 NOLN survey asked operators for their average bay time. 11.7% said 10 minutes or less, 36.4% said 11 to 15 minutes, 29.9% said 16 to 20 minutes, and 22.1% said more than 20 minutes (NOLN).
Faster is not always better. A store with very short bay times and a low attach rate may be skipping the inspection that leads to the add-on. Read bay time next to ticket and comebacks.
Ticket open and close times in the POS are a fair stand-in, if the crew opens the ticket when the car pulls in. If not, camera-based bay timing is more accurate.
4. Bay utilization
Bay utilization = (cars serviced × average bay time) ÷ (bays × open minutes)
A 3-bay store open 10 hours has 1,800 bay minutes a day. If it services 38 cars at 16 minutes each, it uses 608 of them, or about 34%.
That number will look low, and that's normal for a drive-in business where cars arrive in waves. What matters is how utilization compares across stores and across hours. If one store sits at 70% from 11 a.m. to 1 p.m. while cars wait in line, it needs another tech at lunch. If another sits at 15% all afternoon, its schedule is too heavy.
We couldn't find a published benchmark for this one. Your own best store is the benchmark.
5. Attach rate
Attach rate (per service) = tickets that include the service ÷ total oil change tickets × 100
The KPI Handbook gives two targets worth borrowing: a third of services should include an additive sale, and one in every two tickets should include a filter or fluid exchange (NOLN).
Track attach rate per service and per tech, then split it into two parts:
- Recommendation rate: how often the tech recommended the service at all
- Close rate: recommended and sold ÷ recommended
A low recommendation rate means the conversation isn't happening. A low close rate means it's happening badly. Our oil change upsell scripts cover the conversation side and show what a few points of attach rate are worth.
6. Labor percentage
Labor % = loaded labor cost ÷ sales × 100
"Loaded" means wages plus payroll tax, insurance and benefits. The KPI Handbook's example adds a 25% load to a $12.50 wage to get $15.62 an hour, and puts the target for labor at under 25% of sales (NOLN).
Labor % is where multi-store owners find the most money, because it's set by the schedule a manager writes on Thursday. Compare it with cars per labor hour. A store with high labor % and normal cars per labor hour has a pricing or ticket problem. A store with high labor % and low cars per labor hour has a scheduling problem.
7. Review rating
Track two numbers: average star rating, and new reviews per week
BrightLocal's 2026 survey of 1,002 US consumers found that 68% will only use a business rated 4 stars or higher, and 31% will only use one with 4.5 stars or more. 74% look for reviews written in the last three months, and 89% expect owners to respond to reviews (BrightLocal).
So a 4.3 store with no reviews since summer is losing first-time customers it never sees. Add "replied to all new reviews this week" as a yes/no line on the scorecard.
8. Comeback rate
Comeback rate = vehicles that return for the same issue within 30 days ÷ total tickets × 100
At a quick lube, a comeback is usually a leak, a loose drain plug, a wrong filter, a double-gasketed oil filter or a missed fluid top-off. They're rare, so they're easy to stop tracking. Log every one on a simple sheet with the tech, the service and the cause.
We couldn't find a published benchmark for quick lubes. Set your baseline from three months of data and look for the tech or store that runs well above it.
Weekly scorecard template
Copy this into a spreadsheet. One column per store, one row per KPI, filled in every Monday for the prior week.
| KPI | Target | Store 1 | Store 2 | Store 3 |
|---|---|---|---|---|
| Cars per day | Your best store | |||
| Cars per labor hour | 0.95 | |||
| Average ticket | Your best store | |||
| Oil mix (good / better / best) | 20 / 50 / 30 | |||
| Average bay time (min) | 15 or less | |||
| Bay utilization, peak hours | Your best store | |||
| Filter + fluid attach rate | 50% | |||
| Additive attach rate | 33% | |||
| Labor % | Under 25% | |||
| Star rating / new reviews | 4.5+ / weekly | |||
| All reviews replied to | Yes | |||
| Comebacks (count / rate) | Below baseline | |||
| Missed-call rate | 10% or less |
Targets marked "your best store" are internal. The missed-call row uses Marchex's healthy rate of 10% or less for automotive service (Marchex); our post on what missed calls cost shows how to measure it.
Worked example: reading a 3-store scorecard
Here's one week at three 3-bay stores, each open 6 days and 10 hours a day. These numbers are an example.
| KPI | Store 1 | Store 2 | Store 3 |
|---|---|---|---|
| Cars (week / per day) | 228 / 38 | 186 / 31 | 252 / 42 |
| Sales | $23,484 | $16,926 | $26,712 |
| Average ticket | $103 | $91 | $106 |
| Labor hours | 240 | 240 | 260 |
| Cars per labor hour | 0.95 | 0.78 | 0.97 |
| Average bay time | 16 min | 21 min | 14 min |
| Bay utilization (all hours) | 33.8% | 36.2% | 32.7% |
| Filter + fluid attach rate | 47% | 38% | 52% |
| Loaded labor cost | $4,930 | $4,570 | $5,342 |
| Labor % | 21.0% | 27.0% | 20.0% |
| Star rating | 4.6 | 4.2 | 4.7 |
| Comebacks | 2 (0.9%) | 5 (2.7%) | 1 (0.4%) |
Store 2 is the problem, and the scorecard says why in more than one place.
- Slow bays with fewer cars. It has the longest bay time and the lowest car count. Its utilization is the highest of the three, so its bays are busy without producing more cars.
- Same labor, less output. It works the same 240 hours as Store 1 and services 42 fewer cars, so labor runs 27% of sales against a 25% target.
- Lower ticket. Attach rate is 9 points below Store 1, which explains most of the $12 ticket gap.
- Quality and reputation. Five comebacks and a 4.2 rating. Under BrightLocal's numbers, about a third of consumers would skip this store for a 4.5-rated competitor.
The likely cause is an under-trained crew that rushes the inspection and makes mistakes. Start by watching Store 2's bays for a morning.
Getting the numbers without a spreadsheet marathon
Most of these KPIs already exist somewhere. Cars, sales, ticket and attach rate live in the POS. Labor hours live in payroll or the time clock. Reviews live on Google. Bay time lives in ticket timestamps or on camera. Missed calls live in the phone carrier portal.
The work is pulling them together every week for every store. A manager filling in the template by hand works for three stores and gets hard around six.
Trilix builds custom reporting for multi-location operators that pulls POS, phone and camera data into an executive dashboard, with each store side by side. Most owners start with one workflow as a pilot, often the weekly scorecard itself. See how this fits a lube operation on our quick lube page.
Want this scorecard filled in automatically?
We'll look at your POS, payroll and phone data and show what a weekly multi-store report could pull.
