You have a four-person crew on a 60,000 square foot medical office building, Monday through Friday, 6 PM to 10 PM. The payroll report says 80 hours a week, every week, like clockwork. The building contact says the third-floor restrooms have been skipped twice this month.
Both things can be true at the same time. That gap is usually where buddy punching lives: one person clocks in two or three people, the crew splits the work among whoever actually showed, and the timesheet stays clean because nobody has a reason to touch it.
Janitorial work is unusually exposed to this. Crews work unsupervised, after hours, spread across multiple addresses, often with a working supervisor who is also cleaning and has no time to verify anything. If your time system relies on trust plus a shared device, you are not running a time system. You are running an honor system with a paper trail.
What Buddy Punching Actually Costs You
The direct cost is wages paid for hours nobody worked. The math is simple enough that you can do it on a napkin, and you should, because the number is usually larger than operators expect.
Use your fully burdened labor rate, not the base wage. According to the U.S. Bureau of Labor Statistics, employer costs for employee compensation include wages plus benefits, payroll taxes and insurance, which together push total compensation meaningfully above the hourly wage line on your payroll register. For most janitorial operators, the burden factor lands somewhere between 1.15 and 1.35 depending on workers' comp classification and benefits.
The leakage formula
Annual leakage = (padded minutes per shift ÷ 60) × shifts per week × 52 × affected employees × burdened hourly rate
| Scenario | Padding per shift | Crew size affected | Shifts/week | Annual hours lost |
|---|---|---|---|---|
| Early clock-out, one crew | 15 minutes | 4 | 5 | 260 hours |
| One no-show punched in weekly | 4 hours (full shift) | 1 | 1 | 208 hours |
| Two crews, 20 min padding each | 20 minutes | 8 | 5 | 693 hours |
| Mid-size operation, 40 cleaners, 10 min avg | 10 minutes | 40 | 5 | 1,733 hours |
At a $20 burdened rate, that last row is roughly $34,660 a year. Nobody stole anything dramatic. Ten minutes a shift, spread thin enough that no single instance looks worth a conversation.
The costs that hurt more than payroll
- Unperformed scope: If a three-person job runs with two people, something gets skipped. That is what shows up in the client's inspection complaint 30 days later.
- Invoice exposure: If you bill hourly, or bill a government or healthcare client with certified payroll or audit rights, inaccurate time records are a contract problem, not a payroll problem.
- Overtime distortion: Padded hours push people past 40 and into time-and-a-half. Under the Fair Labor Standards Act, you owe overtime on hours the record shows as worked unless you can prove otherwise, and you generally cannot prove otherwise after the fact.
- Crew morale: Your reliable cleaners know exactly who is getting paid for shifts they did not work. Letting it continue is a message about what your standards actually are.
Why It Happens in Janitorial Specifically
If you treat this as a character problem, you will fire two people and see the same numbers next quarter. The conditions matter more than the individuals.
1. The punch is detached from the work
A shared tablet in a janitor's closet, a punch code on a wall keypad, a paper sheet on a clipboard: all of these record that someone entered a code, not that a specific person was in a specific building. Anyone with the code can create a valid-looking record.
2. Nobody is watching, by design
Commercial cleaning is sold on the premise that the client's staff never sees you. That same premise removes every casual witness. A working supervisor cleaning her own zone cannot verify four other punches.
3. Schedules built on hours instead of tasks
When the assignment is "four hours at the Riverside building," the deliverable becomes time. When the assignment is a defined scope with a checklist, the deliverable becomes completed work. Crews who finish scope in three hours and are paid for four have an obvious incentive to keep the punch running.
4. Rounding and grace periods that got generous
Many operators inherited a 7-minute or 15-minute rounding rule. Crews learn it fast. A 15-minute grace on both ends of a shift is 30 minutes of legitimate-looking padding per person per day, and you approved it.
5. Chronic understaffing
This is the uncomfortable one. If you scheduled four people and only three are ever available, the crew will cover for the ghost because the alternative is failing the account. Buddy punching becomes an informal workaround for a staffing problem you have not solved.
Warning Signs Worth Investigating
- Identical punch times: Four people clocking in within the same 30-second window, night after night. One phone, one hand.
- Suspiciously flat labor variance: Actual hours equal budgeted hours on an account for weeks straight while inspection scores drift down.
- Punches from the same device or IP: If your system logs device or session data, repeated overlap across employees is the clearest signal you will get.
- Clock-ins before the geofence: Punches recorded from a parking lot two blocks away, or from a home address, on a recurring basis.
- Inspection failures clustered on specific shifts: Map failed inspections against who was scheduled. Patterns emerge fast.
- Supply consumption that does not match hours: A crew billing 80 hours a week on a building should be burning through liners, paper and floor chemical at a predictable rate. If supply requests fall while hours hold steady, the work volume changed.
- Clients reporting arrival times you cannot reconcile: "They usually get here around 7" when your record says 6:00.
- One employee always handling the timesheet: A crew lead who volunteers to submit everyone's hours has taken on unpaid administrative work for a reason.
The Solution Framework: Four Layers, Not One Tool
No single control fixes this. The operators who solve it stack a few cheap controls so that beating the system takes more coordinated effort than just doing the shift.
Layer 1: Make the punch identity-bound and location-bound
Move off shared devices. Each cleaner punches from their own phone, with their own login, and the system captures GPS coordinates at that moment. A geofence around the building means a punch from the parking lot down the street fails or flags.
A 150 meter radius is a reasonable default for a standalone commercial building. Tighten it for dense downtown blocks where three of your accounts sit within a block of each other. Widen it for a warehouse campus or a multi-building school district site where the entrance and the janitorial closet are far apart.
Be honest with yourself about what GPS does and does not prove. Location capture at clock-in proves a phone was near the building at that minute. It does not prove the person stayed. That is what Layers 2 and 3 are for.
Layer 2: Tie time to verifiable work output
This is the layer most operators skip, and it is the one that makes the whole system credible. If the shift requires a completed checklist with timestamped photos of the restrooms, the lobby glass and the trash staging area, one person cannot cover for three absent coworkers without it being obvious.
Photo evidence does double duty. It defends you against unfounded client complaints and it makes ghost shifts nearly impossible to sustain.
Layer 3: Fix the schedule and the staffing math
Use production rates to build shifts you can actually staff. ISSA publishes cleaning times by task and surface type in its cleaning times and production rate references, which give you a defensible basis for how long a floor should take rather than a number inherited from the last account manager.
If your production math says a 40,000 square foot office needs 5.5 labor hours nightly and you have scheduled 8, you have built the padding in yourself. If it says 8 and you keep sending 6 people who each punch 8 hours, you have created a reason for the crew to cover for each other.
Layer 4: Write the policy down and enforce it identically
A time-fraud policy that exists only in your head cannot be enforced. Put it in the handbook, get a signature at onboarding, and cover it in your first-week training. The policy should name buddy punching specifically, describe the consequence, and state that the consequence applies to both parties: the person who punched and the person who was punched in.
Choosing your controls by operation size
| Control | Stops ghost shifts | Stops early clock-out | Practical for small teams |
|---|---|---|---|
| Paper timesheet, supervisor signature | No | No | Yes, but ineffective |
| Shared wall keypad or PIN | No | No | Yes |
| Call-in to a phone line (IVR) | Partially | Partially | Yes |
| Individual login + geofenced GPS punch | Mostly | Mostly | Yes |
| Geofenced punch + task checklist with photos | Yes | Yes | Yes |
| Biometric time clock at the building | Yes | Yes | Rarely, cost and multi-site logistics |
If you use biometrics, check your state law first. Illinois, Texas and Washington regulate collection of biometric identifiers, and Illinois BIPA in particular carries private right of action with statutory damages. Written consent and a retention schedule are not optional there.
Prevention Checklist
Before you change anything
- Pull 4 weeks of timesheets and flag every account where actual hours match scheduled hours exactly.
- Cross-reference failed inspections against the crew scheduled that night.
- Recalculate labor hours for your three largest accounts using production rates, not history.
- Confirm your fully burdened hourly rate so you can size the problem in dollars.
- Check whether any building has a keycard or alarm log you can request from the client.
Building the controls
- Give every cleaner an individual login. No shared credentials, no shared device for punching.
- Set a geofence per location and record why you chose that radius.
- Reduce rounding to the smallest interval your payroll can handle, ideally exact minutes.
- Require a completed task checklist before a shift can be closed.
- Require at least two photos per shift on accounts with recurring complaints.
- Write the buddy punching policy, including consequences for both parties, and collect signatures.
- Train supervisors on how to review flagged punches without accusing anyone in front of the crew.
The rollout conversation
- Announce the change 2 weeks before it takes effect, in a meeting, not by text.
- Lead with accuracy and paycheck protection, not surveillance. Most cleaners have been shorted on hours at some point.
- State plainly what the system captures: location at clock-in and clock-out, not continuous tracking.
- Run a 1 to 2 week parallel period where old and new methods both run, so nobody loses pay to a technology hiccup.
- Amnesty is a legitimate tool. "Starting the 1st, the rules are the rules" gets better results than retroactive investigations.
Common Mistakes Operators Make
Buying technology and skipping the policy
Geofencing generates flags. If nobody reviews the flags and nothing happens when they appear, crews learn within three weeks that the flags are decorative. The tool is only as strong as the follow-up.
Framing it as surveillance
Tell a crew you are installing GPS because you think they steal, and you will spend the next quarter replacing people. Cleaners in the US janitorial workforce already deal with high turnover, and BLS occupational data consistently shows janitors and building cleaners among the largest and lowest-paid occupational groups. Trust is a retention asset. Spend it carefully.
Setting the geofence too tight
A 25 meter radius on a building with underground parking and thick concrete will fail honest people all night long. Every false failure teaches your crew that the system is broken, which is exactly the story someone gaming it wants told.
Assuming GPS is tamper-proof
Location data can be manipulated. Treat a location stamp as one piece of evidence, corroborated by checklist completion, photos, supply usage and client feedback. Never build a termination on a single data point.
Editing time records without a trail
If a manager can silently change punches, you have moved the vulnerability from the crew to the office. Every edit needs an author, a timestamp and a reason. That trail also protects you in a wage claim.
Punishing the crew for your staffing gap
If a crew has been covering an unfilled position for six months, the buddy punching is a symptom. Fill the role or reduce the scope, then enforce the policy.
Letting the grace period do the stealing
A 15-minute grace period at each end is a company-sanctioned 30 minutes. If you must round, round to the nearest 5 minutes and audit it quarterly.
How Often to Review
Time integrity decays. Controls that worked in March stop working in September because a new crew lead figured out the pattern. Put the review on a calendar.
| Frequency | What to review | Who owns it |
|---|---|---|
| Daily | Missed punches, out-of-geofence flags, shifts closed without a checklist | Operations manager or account supervisor |
| Weekly | Actual vs. budgeted labor hours by account; any punch cluster within 60 seconds | Operations manager |
| Biweekly, at payroll | All manual time edits with reason codes; overtime by employee | Owner or payroll admin |
| Monthly | Inspection scores mapped against crew and hours; client complaints vs. punch records | Owner and account manager |
| Quarterly | Geofence radii by site, rounding rules, production-rate assumptions on top accounts | Owner |
| Annually | Handbook time policy, state law changes, onboarding training content | Owner with HR or counsel |
How CleanTrack360 Supports This
CleanTrack360 handles the first two layers directly. Geofenced GPS clock-in and clock-out runs in the phone browser, so every cleaner punches under their own login from their own phone without you buying hardware or waiting on an app install. The default geofence radius is 150 meters and it is configurable per location, so a downtown suite and a distribution center can each get a sensible boundary. Location is captured at clock-in and clock-out, and quality inspections with custom checklists, photo evidence and automatic scoring give you the work-output side of the equation on the same record.
From there, reports with CSV export let you run the labor variance and inspection comparisons on the review cadence above, and the client dashboard shows schedules and inspection reports to the building contact so arrival times stop being a matter of opinion. Plans start at $99 a month for up to 5 team members, $199 for up to 20 and $249 for up to 50, priced per plan rather than per user, with a 14-day free trial and no credit card required.