How to queue walk-in oil changes without double-booking your bays
Double-booked bays usually aren't a scheduling mistake - they're what happens when a shop tracks appointments on one list and walk-ins on another, with no shared view of which bay is actually free. Fix it by queuing both appointments and walk-ins against the same bay availability, not two separate systems that only meet in person at the counter.
A shop with three bays and a full appointment book can still end up with a car idling in the lot and nowhere to put it. The schedule says bay two is free at 2pm. A walk-in shows up at 1:50 and gets waved in. The 2pm appointment arrives on time to a bay that's five minutes from done. Nobody double-booked anything on paper - the appointment book and the walk-in line just never talked to each other.
Why this happens even with a working schedule
Most shops run two separate systems at once: a booking calendar for appointments, and a first-come list (a clipboard, a whiteboard, or just "take a seat, we'll call you") for walk-ins. Each one looks correct in isolation. The calendar shows open slots. The walk-in list shows who's waiting. The problem is that both are trying to allocate the same three or four bays, and neither one knows what the other has already committed.
A service advisor waving in a walk-in isn't guessing randomly - they're looking at a bay that appears empty right now. What they can't see is that it's about to be needed in ten minutes by someone who booked it two days ago.
Example: a three-bay shop on a Saturday morning
Bay 1 has a 9am oil change booked, expected to take 20 minutes. Bay 2 and 3 are open. At 9:05, a walk-in pulls in wanting an oil change. The advisor puts them in bay 2 - reasonable, since bay 1 is occupied and bay 3 is free for now. At 9:15, a tire rotation that was booked for 9:30 shows up early. Bay 3 takes them. By 9:25, the 9am oil change in bay 1 wraps up, but there's now a second walk-in waiting with no bay free until one of the other two finishes. The shop didn't overbook on the calendar. It ran out of visibility into which bay was actually about to open up, and when.
Separate "who's next" from "which bay is free"
The fix isn't a stricter calendar - it's treating every bay as a single shared resource that both appointments and walk-ins draw from, with one line that reflects real bay status instead of two lists that only reconcile at the counter. A few things help in practice:
- Give every walk-in a token the moment they arrive, instead of a verbal "we'll call you." A token is something the customer can check without hovering at the counter, and it gives the shop an actual queue instead of a guess at who showed up first.
- Keep one list of who's waiting for a bay, appointment or walk-in, ranked by when the bay will actually be free - not by who called ahead versus who didn't. The customer with a 9:30 appointment and the walk-in who arrived at 9:05 are both waiting on the same three bays; treat them as entries in the same line, not two separate processes that happen to use the same shop.
- Let staff see queue status and bay status side by side. The decision to wave someone into a bay should come from current bay state, not from whichever list happens to be in front of the advisor at that moment.
Where Qrua fits
Qrua gives walk-ins a token from a QR code at the counter or in the lot, so they get a place in line immediately instead of standing around waiting to be noticed. Staff work from one queue and call the next customer when a bay is actually free, rather than juggling a calendar and a walk-in list separately. Customers see their live position and an estimated wait on their own phone, so they can wait in the lounge, run next door, or stay with the car, without checking in at the counter every few minutes.