How to prove janitorial work was done
What counts as proof of service for a night cleaning crew, how to set it up across buildings and subcontractors, and how to report misses honestly.
The JanGuard team6 min read
In this guide
Why “trust us” stops workingWhat counts as proofSetting it up across buildings and crewsHandling missed visits honestlyWhat to share with clientsDoing this with softwareMost commercial cleaning happens after everyone leaves, and nobody watches it. The client sees the building at 8 a.m. and only thinks about you when something looks wrong.
That works until the first complaint. A tenant tells the property manager the trash in suite 210 wasn’t emptied. The property manager emails you. You ask the crew lead, who says they were there. Now it’s your word against a full trash can, and the property manager has to pick one.
Proof of service gets you out of that conversation.
Why “trust us” stops working
“Trust us” is a fine policy when you have three buildings and clean one of them yourself. It breaks down as you grow.
You stop being the one in the building. Once you use crew leads, and especially subcontracted crews, you’re vouching for work you didn’t see.
The property manager isn’t the final audience either. They answer to tenants and an owner, and when a tenant complains, they need something to forward. “Our vendor says they were there” doesn’t close the ticket.
One bad miss changes the relationship. Once a property manager catches a crew skipping a building, every later complaint becomes an argument about whether anyone showed up at all. Records you start keeping after that look defensive. Records you already had look like how you work.
What counts as proof
Each kind of evidence answers a different question. None of them is enough alone.
A timestamp answers when. It shows the visit happened on the right night.
A location answers where, and this is the one people get wrong. A report sent from the parking lot, or from home the next morning, shouldn’t count. Two methods tie a report to the building. One is a QR code posted inside, which the cleaner scans to start the report. The other checks the phone’s GPS position against the building’s address. Both have gaps. Someone can scan a photo of a QR code from anywhere, and GPS gets unreliable in basements and big buildings. Using both closes most of the gaps.
Where you put the code matters. A code by the front door proves someone reached the front door. Put it somewhere you can only reach from inside, like the janitor’s closet or the back of the restroom corridor. In large buildings, use one code per floor or area.
Photos answer what. Ask for photos of results, not of people working. Pick the same few shots every visit, such as the main restroom, the lobby floor, and the break room sink. When the angle is the same every night, a bad night stands out. A crew will take three specific photos every night. They won’t take twenty.
A checklist answers whether the scope got covered. Build it from the scope of work for that building. If the contract says restrooms nightly and high dusting monthly, the nightly checklist shouldn’t list high dusting. Otherwise crews learn to tick boxes they know aren’t true, and the checklist stops meaning anything.
Some things feel like proof and aren’t. A text to the supervisor saying “done” is the crew’s word with a timestamp on it. A paper sign-in sheet in the closet tends to get filled in on Friday. Timesheets prove you paid for hours, not that the work got done.
Setting it up across buildings and crews
Roll it out one building at a time, in this order.
- Write each building’s checklist from its scope of work. Keep items short and concrete. “Restroom trash emptied and relined” beats “restrooms serviced.”
- Post the check-in points. Laminate the codes, mount them at eye level, and note where they are in the site instructions so a new cleaner can find them.
- Set a completion deadline for each schedule. If a building has to be done by 6 a.m., a visit with no report at 6 a.m. is a miss. The deadline turns missing data into a signal. Without one, a missing report looks the same as a quiet night.
- Make it work on the phone the cleaner already has. Crews rotate, and subcontractors won’t install your app. If reporting takes a login, a download, and a password reset, you’ll only hear from the people who were going to do a good job anyway.
- Hold subcontractors to the same rules as your own crews. Put reporting in the subcontract. No report means no visit until someone shows otherwise.
- Watch a week of reports from the first building before adding the next. Confusing checklist items and badly placed codes show up fast.
Tying subcontractor pay to submitted reports gets reports submitted. It also punishes a crew that did the work and had a dead phone, so give them a documented way to prove a visit after the fact, such as a supervisor check the next morning.
Handling missed visits honestly
Once you have deadlines, you’ll see misses you never knew about. That’s uncomfortable, and it’s the point.
Sort each miss by what happened. Some visits got done but not recorded, because the cleaner forgot to scan or the phone died. Some didn’t get done, because the crew didn’t show or got locked out. Some got skipped on purpose, for a holiday closure, a snowstorm, or a building event.
The first kind is the tempting one. It’s easy to mark a visit complete because the crew lead says so. That puts you right back at “trust us.” Ask for something first, like photos still on the phone or a supervisor’s look the next morning, and note what you accepted.
Tell the client about real misses before they find out. Say a crew’s van breaks down on the way to a building. An email at 7 a.m. saying what happened and that the crew will be back at 6 tonight is a minor event. The same miss reported by a tenant at 10 a.m. is a trust problem.
Record a reason for every miss. After a few months the reasons show patterns. Repeated lockouts at one building mean an access problem you can fix with the property manager. Repeated forgotten scans from one crew mean a training problem.
What to share with clients
You don’t need to share everything you collect. For most clients, the useful record is the date of each visit, whether it was completed or missed, the photos, the checklist, and what you did about each miss.
Think before you share exact clock times. Say a report shows a crew checked in at 11:40 p.m. and finished at 12:25 a.m. On a fixed-price contract, some clients will read that as “you were only here 45 minutes,” even if the scope got done and the building looks right. You can keep clock times for your own checks and show clients dates and outcomes. If a client pays by the hour or has security rules that need times on site, share them. Either way, decide on purpose.
Share on a schedule, not only when asked, and include the misses. A property manager who has fielded tenant complaints won’t believe a report that never shows one.
Doing this with software
You can run all of this with printed codes, a shared photo folder, and a spreadsheet. It gets hard past a handful of buildings, mostly because nobody checks the spreadsheet for missing rows at 6 a.m.
JanGuard gives each building or area a printed QR code that opens the cleaning report in the phone’s browser. Cleaners can submit it without a login, and crew members signed in to JanGuard can attach photos. A visit with no report by its deadline is marked missed. Resolving a miss means picking a reason, such as a forgotten scan, illness, or weather, and adding a note if you want. The scheduling page walks through it.