2 a.m. The dispatch screen showed six trucks "checked in." The yard in front of the dock doors was empty. I called one of the drivers — he was asleep at a rest stop 25 miles out. He'd tapped "arrived" in the app hours earlier. Why not? Tapping early moved him up the queue. Not tapping just meant waiting behind everyone who did.

I watched this play out at a food distribution 3PL in Ontario in 2024. Their appointment system let drivers self-report arrival, and dispatch sequenced dock doors off that signal. Drivers figured out the game within weeks: tap "arrived" while still on the highway, roll in later, skip the line. The honest ones waited longer and longer — seven hours at peak season. The best part: the system dashboard reported "average wait: 40 minutes," and management thought operations were running fine.

The three plays, and I've seen them all

Play one: the early tap. Still on the road, already "arrived," queue position secured. Play two: the buddy tap. One driver checks in the whole fleet's trucks while half of them are still on the highway. Play three: the plate swap. The truck that shows up isn't the truck on the appointment, and when something goes wrong nobody knows who to call.

These plays don't spread because drivers are bad people. They spread because the system was designed naively — it handed the trigger for a critical event to the party with the incentive to lie. Let students grade their own exams and cheating is just a matter of time.

Four layers of foolproofing, cheapest first

Layer one: geofence auto-check-in. Stop letting drivers tap manually. Draw a virtual fence around the facility with phone GPS; the truck crosses within a few hundred meters and the system marks it arrived. No button to abuse. Cheapest option — just a location permission in the driver app. Weakness: dead zones, underground docks, rural sites where GPS drifts, and drivers will absolutely use drift as an excuse.

Truck being inspected at a warehouse security gate

Layer two: gate events are the only truth. The appointment state machine should accept exactly one source for arrival — the gate system. License-plate recognition timestamp in, timestamp out. The driver app becomes read-only display; it doesn't participate in queue math. Flip this switch and all three plays die on the spot. The cost is integration work between the gate and the appointment system, which older setups may not have.

Layer three: evidence spot-checks. Require a photo at the dock — plate, timestamp watermark — or put a capture camera at the gate. You don't need to check every truck; 10% random sampling is enough. What matters is that drivers know somebody might be looking. This is also your answer to "I was there but your system missed me" disputes.

Layer four: a driver score. On-time and cooperative earns priority dock slots; faked check-ins and no-shows sink to the back. Tie the score to settlement with the carrier and the carrier will police its own drivers. Most powerful layer, and the most politically expensive — only pick this fight when you have more trucks wanting in than you need.

Don't build the system first — fix the data source first

A lot of managers hear "appointment fraud" and start shopping for plate-recognition cameras and weighbridges. I go the other way: touch no hardware until the data source is clean. Open your system backend and look at what field drives the queue. If it's a click event from the driver app, that's the bug. Revoke write access on that field — only gate and geofence events may write it; the driver app becomes read-only. That's a configuration change with your software vendor, probably free.

Then assess the hardware gap honestly. No plate recognition? Can the guard's paper logbook go digital first — even a tablet for registrations gives you a timestamped arrival event. Driver app can't do geofencing? Alternative: the guard scans the appointment QR code at the gate, and that scan is the arrival event. More accurate than GPS, immune to signal problems.

Once the data is honest, the dashboards mean something. At that Ontario food warehouse, the first month after the data-source fix, "average wait" went from 40 minutes to 2 hours 10 minutes. Management was horrified — but that was the truth. The old system had been laundering fake data into pretty charts. Ugly truth beats pretty lies, because only the truth tells you whether the dock needs more people or longer receiving hours.

A minimum viable rollout

If I were prescribing for a mid-size yard: week one, change the queue source from driver taps to gate events — use the gate if you have one, a guard with a scanner if you don't. Week two, turn on the geofence, drawn generously; tolerate false positives and correct them manually. Week three, start the score, rewards only, no penalties yet — let drivers learn that the score matters. After a month, take the real wait-time data to the boss: staffing, extended receiving windows, all of it now has numbers behind it.

Zero hardware spend, pure process and configuration. Add plate recognition and weighbridge integration later, when volume justifies it. Foolproofing is a progression, not a project.

One more thing: expect the arms race. I've seen drivers carry two phones — one crosses the geofence while they're still outside. I've seen carriers pay drivers a "check-in bonus" for early taps. Technology always has seams. The trick is making fraud cost more than it's worth — once the score hits settlement, the carrier polices itself, because one faked check-in can cost the whole fleet its slot priority next week.

And don't maim the honest drivers. GPS drift will flag a driver unloading next door as "arrived then left," and the system logs a no-show. Keep an appeal path — one-click correction for dispatch. Run two weeks of record-only mode before any penalty, and map the false-positive scenarios first. In peak season when capacity is tight, switch penalties off and keep only rewards.

At the end of the day you're not fighting bad people, you're fighting a system that rewards lying. When every driver games the rule, don't blame the drivers — check whether your rule punishes honesty. Take the definition of "arrived" out of the driver's hands, give it to the gate and the geofence, and 80% of the problem vanishes on the spot. Grind down the rest with spot-checks and scoring. Systems are static, people aren't — revisit the rules every quarter and check whether someone's figured out a new way around them.