Cleaning Crew Ghost Shifts: How PinShot Catches Them
Ghost shifts on overnight cleaning crews cost commercial operators thousands per month. Here is how PinShot selfie verification and geofencing shut the pattern down.
TL;DR
- A ghost shift is a clock-in event with no worker physically on site. The pay record exists; the work does not.
- Overnight commercial cleaning, with no supervisor present, is the highest-risk environment for ghost shifts in U.S. labor.
- PIN-only and badge-only systems cannot detect them. Selfie verification at clock-in does.
- In our customer base, ghost shifts drop to effectively zero within 30 days of PinShot rollout.
Of every fraud pattern in commercial cleaning, ghost shifts are the hardest to detect and the easiest to commit. A worker clocks in from a phone at home, drives somewhere else, takes the night off, or simply does not show. The clock-in lands in the audit log. The shift gets billed. Nobody on the supervisor side sees a problem until the customer complains the building was not cleaned.
By that point the operator has paid for hours that did not happen and the customer relationship is on the wrong foot. Both are recoverable. Neither is free.
This is what ghost shifts cost, where they thrive, and the verification control that closes them.
What counts as a ghost shift
The strict definition: a punch-in event with no worker present at the geofenced site at the time of the punch. The looser definition that operations teams use day-to-day: any clock-in where the company paid for hours the worker did not actually deliver on-site.
Ghost shifts cluster in four specific conditions:
- Overnight commercial cleaning — empty buildings, no supervisor on site, low odds of physical audit
- Distributed multi-site operations — supervisor cannot physically visit every site every shift
- Subcontracted scopes — accountability blurred between primary operator and sub
- Weekend or holiday shifts — reduced office oversight
If your operation has more than one of these factors active, the ghost-shift exposure is real and quantifiable.
What the math looks like
For a commercial cleaning operator running 60 cleaners across 40 sites with overnight scopes, conservative audit ranges in our customer base put ghost-shift incidence at 1–2% of total shifts. The annual cost:
- 60 cleaners × 5 shifts/week × 52 weeks = 15,600 shifts/year
- 1.5% ghost rate = 234 ghost shifts/year
- 5-hour average shift × $22 blended loaded rate × 234 shifts = $25,740 in unrecovered labor
That is the cleaner half of the cost. The bigger half is the customer-relationship damage when a building goes uncleaned and the property manager calls in the morning. SLA penalties, lost accounts, and reputational hits compound past the direct labor leakage.
The Association for Certified Fraud Examiners 2024 Report to the Nations places payroll fraud as one of the longest-duration occupational fraud schemes — median time to detection of 24 months. Cleaning operators rarely look closely at overnight shifts until the customer escalates, and by then 24 months of leakage has compounded.
How a ghost shift gets committed
The most common ghost-shift mechanism on a PIN-based or badge-based system:
- The worker is scheduled for a 10 PM–2 AM overnight at a commercial office building.
- At 9:50 PM, the worker (from home, from a different site, or from anywhere) enters their PIN into the time tracker.
- The system records “worker X clocked in at 9:50 PM.”
- The worker does not go to the site. Or arrives at 11:30 PM and does an abbreviated cleaning. Or sends a buddy.
- At 2:00 AM, the worker (or buddy) clocks out.
- The shift is recorded as four hours.
- The audit log shows nothing unusual.
On a PIN system, the audit log has no way to know whether the worker was actually at the site. The system verified a number, not a person, not a location.
On a badge-based wall clock, slightly better — the badge had to be at the wall — but a buddy with the badge defeats it.
On a GPS-only mobile app, the location is captured but identity is not. Hand the phone to a buddy and the GPS pin is on-site while the worker is asleep.
Why selfie verification closes the loop
The control that catches every variant of this pattern is identity verification at the clock-in moment. PinShot — the Klees selfie verification system — runs the following at every clock-in:
- Captures a real-time selfie of the person punching in.
- Anti-spoof scores the selfie against a photo-of-photo attack, a face mask, an obscured image, or a video screen.
- Matches the selfie against the worker’s reference photo on file.
- Captures the GPS coordinate and checks it against the site’s geofence.
- Writes all of the above to the audit log as a single punch record.
For a ghost shift to succeed under PinShot, three things have to happen simultaneously:
- The correct worker has to take a real-time selfie.
- The selfie has to pass anti-spoof scoring (no held-up photo).
- The GPS has to be inside the site geofence.
If the worker is not on site, they cannot pass the geofence check. If the worker is not present at the punch, somebody else has to take the selfie — and that selfie will fail the face match. The control is structural; it does not depend on supervisor presence.
We cover the verification mechanism end to end in What Is PinShot?, and the anti-spoof scoring detail in Anti-Spoof Selfie Verification.

The 30-day pattern after PinShot rollout
In every cleaning operation we have rolled PinShot to, the same three-phase pattern shows up:
| Week | What happens | What you see |
|---|---|---|
| Week 1 | Ghost-shift attempts continue, now flagged | Spike in flagged events on the dashboard |
| Week 2 | Word travels on the crew | Flagged events fall sharply |
| Week 3 | Attempts effectively stop | Dashboard shows zero or near-zero flags |
| Week 4 | Workers who relied on the pattern self-select out | Slight turnover spike, then stable |
Alta Janitorial documented this trajectory across 5 Western states. The Alta case study shows buddy-punch incidents falling to zero in the first 90 days alongside the same ghost-shift collapse.
The turnover spike in week 4 is uncomfortable but real. A small percentage of any cleaning workforce has been quietly relying on weak controls. When the controls tighten, some of them leave. Operators in our base report this as net-positive: the workers who leave are not the ones doing the work, and the replacement hires onboard onto a clean system.
What you need in the stack besides PinShot
Selfie verification by itself is necessary but not sufficient. The full ghost-shift defensive setup:
- PinShot at clock-in and clock-out — verifies identity at both ends of the shift
- Geofenced sites — verifies location, sized correctly per the radius guide
- Anti-spoof scoring — flags photo-of-photo attacks
- Device fingerprint — flags shifts being clocked from a device that is not the worker’s
- Live Map view — supervisor sees every active crew in real time
- Daily exception report — flagged events surface within 24 hours, not at the end of the pay period
- Retained audit log — the record holds up in disputes and in DOL audits
Klees ships all seven in the Standard plan at $32 + $7/user. For multi-site cleaning operators specifically, the industries/cleaning page documents the per-customer reporting and dispatch features that pair with the verification controls.
Where ghost shifts hide that operators miss
A few less-obvious patterns I see in audits:
- Short ghost shifts on multi-stop days — cleaner skips one of four sites on a route, clocks the time anyway. Customer at site 3 complains; sites 1, 2, and 4 cover for it.
- Half-ghost shifts — worker arrives an hour late, clock-in shows on time. Hard to detect without identity verification at the punch.
- Phantom crew members — worker on the payroll who never actually works, just gets clocked in by a friend each week. Most common in operations that hired through informal channels and did not run identity verification at onboarding.
PinShot catches all three. The first because the geofence fails on the skipped site. The second because a real-time selfie cannot be backdated. The third because the phantom worker has no reference photo to match against.
FAQ
How is a ghost shift different from buddy punching?
Buddy punching is somebody else clocking in for a worker who exists and is scheduled. A ghost shift is a clock-in event with nobody physically at the work site. They overlap but are not identical — buddy punching can produce a ghost shift, and a ghost shift can also be self-inflicted (the scheduled worker clocking themselves in remotely).
Can a worker still call in sick after a ghost shift is caught?
Yes. The point of PinShot is not to deny legitimate absences but to verify clock-in events. A worker calling in sick before the shift goes through the normal absence flow. A worker clocking in without being on site is the failure case.
Does this work on overnight shifts with no supervisor?
That is the case PinShot was built for. The verification runs at the punch event, not via supervisor presence. An overnight cleaning crew with no on-site supervisor is fully covered.
What about workers who genuinely forget their phone?
The override flow allows a supervisor to clock a worker in manually, with the supervisor’s PinShot attached and a reason code. This is auditable and rare — operators report it accounts for under 2% of total punches.
Does the cost of PinShot pay back the labor savings?
In every operator we have rolled this to, the first month of ghost-shift recovery alone exceeds the annual subscription cost. The longer-tail wins on customer retention and SLA compliance are larger but harder to attribute.
Run overnight commercial cleaning? Book a PinShot demo with Klees field-ops — we will show you the audit log and the flagged-events dashboard with your sites loaded.
Compliance and payroll lead at Klees. 15 years in construction payroll, prevailing wage, certified payroll, and OSHA reporting. CPP certified.
Connect on LinkedIn →Related reads
The True Cost of Buddy Punching: A Calculator for GCs and Cleaning Owners
How to calculate the actual dollar cost of buddy punching for your crew, with formulas, illustrative scenarios, and what to do once you have the number.
Anti-Spoof Selfie Verification: How Klees Detects Photo-of-Photo Fraud
Selfie clock-in is only useful if it can't be fooled by a printed photo or a phone screen. Here's the anti-spoof model inside Klees PinShot.
How to Stop Buddy Punching in a Cleaning Crew (Without Killing Morale)
Buddy punching costs commercial cleaning operators thousands per month. Here is the verification stack that ends it without alienating honest cleaners.