BOT PROTECTION FOR AUTO MARKETPLACES

Service Bay Slot Hoarding: When Bots Book Appointments Nobody Keeps

A test-drive slot is a scarce good with a fixed window, and bots learned to book them the way they book concert tickets. The customer who shows up finds the day full, and the slots come back empty when the holds expire.

Bots book service and test-drive appointments they never intend to keep, holding scarce slots through the reservation window and releasing them after real customers have given up. The pattern is the same one that hits test-drive calendars: many bookings for the same scarce slot created in the same seconds, sessions that never browse inventory, and repeated bookings from similar devices and networks. The fix is not a better CAPTCHA at the front door. It is a shorter hold, a deposit or verification step before the slot locks, and a release rule that puts returned slots back in front of the customers who are still waiting.

A slot is inventory, and bots treat it that way

A service bay hour is a perishable good. It cannot be stored, and an empty hour at 10 a.m. is gone by 11. That is what makes appointment slots worth hoarding, and it is why the attack looks exactly like inventory hoarding on a retail site: the bot does not want the slot, it wants real customers to be unable to get one. The tell is the same too. Many bookings for the same scarce slot created in the same seconds, sessions that never browse, and a wave of releases all at once when the holds expire.

Test-drive bookings were the first place this showed up on dealer sites, because a test drive is a scarce slot with a fixed window and a real customer on the other end. Service appointments are the same shape with a longer tail: an oil change slot, a recall slot, a diagnostic hour. Each one is a promise of a bay, a technician, and a loaner, and each one a bot holds is a promise the store cannot keep to anyone else.

The damage is quieter than a scalped sneaker drop, which is why it lasts longer. There is no resale market for a service slot, so nobody reports the abuse as fraud. The store sees a full calendar and a half-empty shop, and the service manager concludes demand is soft. The customers who could not book conclude the store does not want their business. Both readings are wrong, and both cost money.

Why the front-door defenses do not hold

A CAPTCHA at the booking form stops the dumbest scripts and annoys every real customer who is trying to book an oil change on a phone. The bots that matter are not the dumbest scripts. They solve challenges through farms, wait out timers, and fill forms in human order. The form cannot tell them apart from a customer, because by the time the form sees them, they are already behaving like one.

Rate limits help a little and break a little. Limiting bookings per IP stops a single script and does nothing against a botnet rotating residential IPs. Limiting bookings per account stops a single account and does nothing against a farm that creates accounts by the hundred. The controls that work are the ones tied to the slot itself, not to the visitor: how long a hold lasts, what it costs to make one, and what happens when it expires.

The strongest signal is the one the store already has. A real customer books one slot, usually after browsing inventory or service pages, and shows up or cancels. A bot books many slots, never browses, and never cancels, because cancellation is a human courtesy and the bot has no use for it. That pattern is visible in the booking log today, without any new tooling, if anyone looks at holds per device rather than holds per day.

Shorten the hold, verify the booker, release the slot in public

Start with the hold window. A slot held for 24 hours is a slot a bot can sit on all day. A slot held for 15 minutes, with a confirmation step inside that window, is a slot a bot has to keep re-booking, which is noisy and expensive. Shorten the hold for scarce slots first, the Saturday morning test drives and the recall campaign hours, and watch whether genuine customers can still complete a booking. If they can, the window was too long.

Then add a verification step that costs the bot more than the customer. A phone confirmation by text, a small refundable deposit on high-demand slots, or a requirement that the booking account has a service history all raise the price of holding a slot without raising it much for a real customer. The point is not to make booking hard. It is to make holding a hundred slots hard while holding one stays easy.

Finally, release returned slots where the waiting customers can see them. When a block of slots comes back at the reservation timeout, in the exact hours that were supposedly full, that is held inventory being released, not customers changing their minds. Put those slots back in front of the waitlist immediately, and tell the waitlist they are back. A store that re-releases recovered slots publicly keeps trust that a silent sellout destroys.

Frequently asked questions

What is service bay slot hoarding?

Bots book service and test-drive appointments they never intend to keep, holding scarce slots through the reservation window and releasing them after real customers have given up. The store sees a full calendar and a half-empty shop.

How do you spot appointment bots in the booking log?

Many bookings for the same scarce slot created in the same seconds, sessions that never browse inventory, repeated bookings from similar devices and networks, and a wave of releases all at once when the holds expire.

Does a CAPTCHA on the booking form stop this?

Only the simplest scripts. Bots that matter solve challenges through farms, wait out timers, and fill forms in human order. The controls that work are tied to the slot itself: shorter holds, a verification step before the slot locks, and fast re-release of expired holds.

How long should an appointment hold last?

Short enough that a bot has to keep re-booking to hold a slot, long enough that a real customer can confirm. Fifteen minutes with a confirmation step inside the window is a good starting point for scarce slots, and you should test whether genuine customers can still complete a booking before shortening further.