How to check a cleaner's status and activity
Clicking a cleaner opens their own page: what they have done, how much of it they finished, where they spend their time and when they are available. It is the record you reach for when somebody asks you a question about one person.
Get there from the Team directory table by clicking the row or the name. The breadcrumb runs Staff then their full name, and the sub-line under the title is their job title, or "Cleaner" when they have not got one. There is one action button in the header, a danger Delete: everything else on this page is for reading.
The top of the page
The hero card carries a rounded-square avatar in their own colour, their name, then meta chips for the job title, the email address as a mailto link, the phone number and Joined 14 Aug 2026. On the right sits the presence pill.
Cleaning Pro · aisha@example.co.uk · +44 7700 900118 · Joined 3 Feb 2026
- Staff in the sidebar opens this screen.
- New, in the title bar on every screen, adds a clean, client, quote, invoice and more.
The five figures across the strip are Total Cleans, Completed, Completion as a percentage, Revenue as money, and On time as a percentage or a dash where there is nothing to work it out from. Completion is colour-coded: green from 80 per cent, amber from 50, red below that.
The presence pill
The pill on the right of the hero is one of four words, each with its own dot. Active and On Site pulse; the other two sit still.
- Active
- Sky blue, pulsing. Signed in and available.
- On Site
- Green, pulsing. At a property.
- On Break
- Amber. Stopped, but not finished for the day.
- Offline
- Grey. The default a new account starts on, and where everybody sits when nothing says otherwise.
- Inactive
- Amber, and not really a presence at all. A deactivated member always reads Inactive whatever their presence value says, because they cannot sign in.
The presence value is held on the cleaner's own record rather than being guessed from their phone, so it is a slower signal than it looks. For "is this person working right now", two other things on the same screens are more reliable: the Last Active pill in the directory, which is when they last signed in, and a clean sitting in In Progress, which means a cleaner has actually started it in the app.
The tabs
Under the stats sit Activity, Overview, Clean History, Top Locations and Availability. If you are the account owner there is a sixth, Employment, covered in its own guide. Beside Overview, and again inside Top Locations, is a group of reporting period pills: 7 Days, 30 Days, 90 Days and All Time. It opens on 30 Days.
Overview
Six tiles for the chosen period: Completed with "of 41 cleans" underneath, In Progress with "active now", Scheduled with "upcoming", Cancelled with the cancellation rate, Avg Duration with "per clean", and Active Days with "with completed cleans". Then three cards: Completion Rate with a meter and a four-part legend, Monthly activity as a bar chart, and Recent Cleans with a View all that jumps to Clean History.
Clean History
Every clean with their name on it. Filter pills across the top read All, Completed, Scheduled, In Progress and Cancelled. Note that the filter says Completed while the status pill on the row says Done: they are the same thing.
| Clean | Date | Location | Duration | Price | Status |
|---|---|---|---|---|---|
| Changeover clean Riverside Homes | Thu 13 Aug 09:00 | Flat 4B | 2h 06m | £95.00 | Done |
| Weekly office clean Bay View Offices | Wed 12 Aug 17:30 | 2nd floor | 1h 48m | £85.00 | Done |
| Surgery deep clean St Marks Medical Centre | Thu 13 Aug 14:00 | Main building | 3h 00m | £240.00 | In Progress |
| Changeover clean Harbour Lettings | Sat 15 Aug 10:00 | Seaview Cottage | 2h 00m | £95.00 | Scheduled |
The columns are Clean with the client beneath it, Date with the time beneath it, Location, Duration, Price and Status, ten to a page. With nothing to show it reads No cleans found and "No cleans have been assigned to this team member yet.", or "Try a different filter." when a filter is on.
Top Locations
A ranked list of where this cleaner actually goes, with the period pills on it. Each row is a rank number, the site name, a meta line of "14 cleans · 13 completed" and a proportional bar. It is the quickest way to see that a cleaner has effectively become the person for one client, which is useful information right up until they book a holiday.
Availability
Two cards. Weekly Availability is a seven-cell grid labelled Mon to Sun, each cell reading a time range or Off. The cleaner sets this themselves in the phone app, so an empty grid reads "No availability set by this team member yet." rather than meaning they are never free.
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
| 09:00 – 17:00 | 09:00 – 17:00 | 09:00 – 13:00 | 09:00 – 17:00 | 09:00 – 17:00 | Off | Off |
The second card is Time Off & Absence. Each row shows the kind of leave, the date or the date range, the reason if one was given, and either Approve and Decline while it is pending or a settled word reading Approved or Declined. Answering one puts a toast on screen reading Time off request updated, sends the cleaner a message in their app, and pushes a notification to their phone titled "Time off approved" or "Time off declined".
Your cleaners choose the kind when they ask: Holiday, Unpaid, Parental, Compassionate, Time off in lieu or Other, in their own language. Requests made before this existed read as Other, which is the truth: nobody recorded what they were, and guessing them into Holiday would invent a fact.
Recording an absence nobody asked for
Sickness is not on the list your cleaners can choose from, on purpose. Somebody phoning in ill at 6am is not asking for anything, and a request sitting pending would lose the day it is about. Use Record an absence at the top of the card instead: it is filed as already agreed, with your name against it as the person who took the call.
The same button covers a holiday you agreed by text, a day off you gave for a funeral, or anything else that happened without a request. Pick the kind, the dates, whether either end is a half day, and add a note. For sickness there is a Self-certified box, a line telling you which side of the seven-day self-certification limit the dates fall, and, once the absence is on the list, Attach fit note on the row. See Sickness and fit notes.
What an absence is worth
Approving an absence works out how many hours it accounts for, from that cleaner’s own weekly availability, so a fortnight off is two days for somebody who works Tuesdays and Thursdays, not ten. Half days at either end are halved. The figure is shown on the row.
It is worked out once, at the moment you approve, and never recalculated. If that cleaner later changes the days they work, an absence you already granted keeps the value it had when you granted it. Otherwise a balance somebody had already planned a holiday around would quietly change underneath them.
Where the Shift swaps module is on, a third card, Shift Swap Requests, sits alongside it: every swap this person has offered or been offered, with the same Approve and Decline pair. Approving one reassigns the clean to the other cleaner in the same step, so it is never briefly unassigned. See Starting and finishing a clean for what a cleaner sees when they ask for one.
The same numbers across the team
One cleaner at a time is the wrong tool for comparing people. There are two places that do it for the whole team at once.
The Performance tab on the Staff screen is the quick one. It replaces the directory with a per-cleaner table over a fixed window of the last 30 days, with the columns Staff Member, Completed, In Progress, Scheduled, Cancelled, Total Cleans and Completion Rate. Whoever has the most completions gets a filled trophy beside their name. Future bookings are outside the window, so a full diary next week does not flatter anybody today.
| Name | Status | Total Cleans | Completed | Hours | Completion Rate |
|---|---|---|---|---|---|
| Aisha Nowak | Active | 41 | 38 | 84.5h | 93% |
| Marek Kowalski | Active | 36 | 31 | 71.0h | 86% |
| Joanne Reid | Active | 22 | 14 | 33.5h | 64% |
| Tomas Silva | Inactive | 0 | 0 | 0.0h | 0% |
Reports goes further. Its Staff tab runs on the date range chosen at the top of that screen, one of Last 7 days, Last 30 days, Last 90 days or Last 12 months. Four figures across the top read Active Staff, Avg Cleans / Staff, Total Hours Logged and Top Performer, then a bar chart of Cleans per Team Member, then the Staff Performance Table with the columns Name, Status, Total Cleans, Completed, Hours and Completion Rate. That table has an Export button, which is the route to getting any of this into a spreadsheet.
Common questions
Why does a cleaner show as Offline when I know they are working?
Can I edit a cleaner's availability for them?
Does approving time off block the schedule?
What counts as On time?
Why do the numbers at the top not match the tiles?
Previous: How to add a cleaner
Did this answer your question?
Good. Back to the app, then.
Sorry about that. Tell us what you were looking for and a person will answer it.
Still stuck?
Every message is read by a person on the CleanFlo team.