Operations & Loss Prevention, 9 min read

Quick lube void and discount audit: a daily checklist

A quick lube void and discount audit is a daily check of every ticket that was cancelled, discounted by hand or charged to a fleet account, matched against what the cars in the bay and the bank deposit say happened. Do it every morning for yesterday, one store at a time, and most of the money that leaks out through the POS shows up within a day instead of at month end.

Below is the checklist we use as a starting point, the reason codes that make it work, and an example of what one morning's review looks like.

Quick answer

  • What to pull: yesterday's voided tickets, cancelled tickets, manual discounts, $0 tickets and fleet charges, per store.
  • What to check: each one has a reason code, an approver, and a car or payment that backs it up.
  • What to flag: voids after payment, discounts that match no coupon on the menu, and fleet tickets with no matching invoice.
  • Who reviews: someone outside the store, in about 15 minutes a store once the codes are in place.

Why do voids and discounts need their own audit?

Most of the money a quick lube loses at the counter never looks like theft. It looks like a normal ticket that got cancelled, a coupon applied twice, or a fleet oil change nobody invoiced. Each one is small. Across stores and months, it adds up.

The Association of Certified Fraud Examiners estimates that organizations lose about 5% of revenue to fraud each year, and that 43% of the frauds detected in its 2024 study were found through tips, not controls. A daily audit is how you stop relying on someone speaking up.

POS systems already record voids. Pos-i-Lube, for example, documents a daily void procedure, and restaurant systems like NCR Aloha ship a void audit report. The report isn't the problem. Nobody reads it every day, and it doesn't tell you whether the car was actually serviced.

What should a quick lube void and discount audit cover?

Five kinds of tickets. Each one leaks money in a different way.

Ticket typeHow money leaksWhat backs it up
Voided after paymentCustomer pays, ticket is voided, cash stays in someone's pocketCard or cash record that matches, and the car leaving the bay
Cancelled before paymentCar is serviced, ticket is cancelled instead of closedCamera visit with the hood up, or no visit at all
Manual discountA hand-typed amount instead of a menu couponA coupon, promo or manager approval on the menu
$0 ticketA paid service rung up as a comeback or courtesyAn earlier paid ticket on the same plate
Fleet or house chargeService charged to an account that never gets invoiced or paidAn invoice line, and later a payment

If your POS can export these five lists by store each morning, you have everything you need to start.

How do you run the audit each morning?

1. Pull yesterday's exceptions

Export voids, cancels, manual discounts, $0 tickets and fleet charges for each store. Include who rang it, who approved it, the time, the plate or VIN and the amount. Pull the full day, even if it's a long list at first.

2. Check every exception has a reason code

No code, no pass. A void with no reason goes straight to the flagged list. This one rule does more than anything else on this page, because it forces the conversation to happen at the counter, not three weeks later.

3. Match discounts to the menu

Compare every discount amount to the coupons and promos that were live that day. A discount that matches no promo is a hand-typed discount, and it needs an approver.

Here's a pattern we've seen in a real audit (store and amounts kept generic): a $12 discount typed by hand on a day when the only live coupons were $7 and $5. That's two coupons' worth in one manual line. Maybe the customer had both, maybe not. The POS showed one tidy discount and no coupon codes, so nobody could tell without asking.

4. Match voids and cancels to the bay

For each voided or cancelled ticket, check whether a car was serviced. If your bay cameras log visits, look for a hood-up visit in the same bay and time window. A cancelled ticket with a full service in the bay is the case you care about most. Our off-book oil changes guide covers how that matching works.

No cameras? Use the card processor. A void after a card payment should have a refund to match.

5. Match fleet charges to invoices

Every fleet or house-account ticket should land on an invoice in your accounting system, and then get paid. Check yesterday's fleet tickets against the invoice list, and check last month's invoices against payments received.

6. Send what's left to an outside reviewer

The store manager can explain an exception, but shouldn't be the one who closes it. Send the flagged list to your controller, an ops manager from another store, or your bookkeeper.

Worksheet: one store, one morning

Copy this into a spreadsheet. One row per exception.

TicketTypeAmountReason codeApproverBacked up byResult
Void / Cancel / Discount / $0 / FleetPayment, visit, coupon, invoicePass / Flag

The "Backed up by" column is the whole audit. If you can't fill it in, it's a flag.

Which reason codes should you use?

Keep the list short so people actually use it. Ten codes is plenty.

CodeUse forNeeds manager approval?
Wrong item rungService entered wrong, re-rung right awayNo, if re-rung within 10 minutes
Customer leftCustomer drove off before service startedNo
Duplicate ticketSame car rung twiceNo
Comeback / warrantyRe-check of earlier workNo, but must reference the original ticket
CourtesyFree top-off, bulb, tire pressureNo, $0 ticket only
CouponMenu coupon or promoNo, coupon code required
Price match / goodwillDiscount not on the menuYes
Employee vehicleStaff car, per your policyYes
Fleet chargeAccount customerNo, account number required
Refund after paymentMoney returned to the customerYes

Worked example (made-up numbers, not real store data)

One store, one Tuesday. Every number is an example to show the math.

LineExample value
Tickets closed70
Exceptions pulled (voids, cancels, discounts, $0, fleet)11
Passed with code, approver and backup8
Flagged: cancel with a hood-up visit in the bay1 ($89.99 service)
Flagged: $12 manual discount, no matching coupon1
Flagged: fleet ticket with no invoice line1 ($74.99)
Dollars under review$176.98

If an example store had $177 under review a day and half of it turned out to be real, that's about $88 a day, or about $32,000 over 365 days. Run your own numbers. The point is that small daily amounts don't look small over a year, and that you won't know your number until you check every day for a month.

What should you look for over a month?

Single tickets catch single problems. Patterns catch habits. Once a week, sort the month by:

  • Voids and cancels per 100 tickets, by store and by employee. One person far above the rest is worth a conversation.
  • Manual discount dollars per store. Compare to coupon redemptions. If manual discounts rise while coupon use falls, people are typing discounts instead of scanning them.
  • Exceptions by hour. Clusters right before close or right after open often mean one person working alone.
  • Fleet days outstanding. How long fleet charges sit before they're invoiced, then paid.

These belong on the same scorecard as car count and ticket average. Our quick lube KPIs guide covers the rest of that scorecard, and the bulk oil variance guide covers the product side of the same leak.

Where does automation help?

Doing this by hand works for one store. Past three or four, the export, matching and follow-up eat a morning.

This is what we build at Trilix. Our audits pull every ticket from the POS each night, follow it to the card processor and the bank deposit, match voids and cancels to bay camera visits, check discounts against the live menu and fleet charges against invoices, and send only the exceptions to the reviewer. The flagged list and the monthly patterns roll into an owner dashboard with every store on one screen. The same pipeline can post the day's sales to QuickBooks as part of back-office automation.

Want to see what yesterday's voids and discounts looked like across your stores?

We'll walk through a POS export with you and show what a daily audit would flag.

FAQ

Something else on your mind? Ask us directly or call 416-262-2723.

How often should a quick lube audit voids and discounts?

Daily, for the day before. Weekly is too slow: by then nobody remembers why a ticket was voided, and the cameras may have overwritten the footage.

What is the difference between a void and a cancel?

It depends on the POS, but in most systems a void reverses a ticket after it was closed or paid, and a cancel removes a ticket before payment. Audit both. A cancel with a full service in the bay is often the bigger problem.

Should store managers review their own voids?

They should explain them, not approve them. Have someone outside the store sign off, so the review protects good managers and holds up if you ever need to act.

How do I audit fleet accounts?

Match every fleet ticket to an invoice line, then match invoices to payments. Track days from service to invoice and from invoice to payment. A fleet ticket with no invoice is the most common leak.

Do I need cameras to run this audit?

No. Reason codes, menu matching and processor matching work with just the POS and card data. Cameras add the one thing those can't: proof of whether a car was actually serviced on a cancelled or voided ticket.