Skip to content

Toilet Hygiene & Utilization ​

A fixed cleaning rota sends a cleaner to a toilet nobody has used and leaves alone the one four hundred people have just walked through. Toilet Hygiene cleans by what actually happens instead: the door counter says how many people went in, guests rate the toilet from a QR code, and every toilet gets a dirty score. Jobs go to the cleaners' phones, and a cleaner's badge staying in the toilet long enough closes the job by itself.

It is for the cleaners who do the work, the supervisors who keep the jobs moving, and the managers who want to know whether the toilets are good enough. Every time in the app is your building's local time.

The top of the Work orders screen. Six tiles: Open jobs 4, 3 not picked up yet; Overdue 3; Done today 17, average 25 minutes to finish, 88% on time; Missed today 1; Cleaners on site 2 of 2, 1 inside a toilet now; Guest rating today 3.0 out of 5, 5 reviews, 2 bad. Below, Needs attention with four lines: 3 jobs are past their deadline; 1 urgent or high-priority job hasn't been picked up by anyone; 1 job was missed today; Guests gave 2 bad reviews today.
Ravi's afternoon at Northwind Tower: what is open, what is late, and what needs him

Who uses it ​

Siti Nur — CleanerSitiCleanerNurul Huda — CleanerNurulCleanerRavi Kumar — Operations LeadRaviOperations LeadAisha Rahman — Facilities ManagerAishaFacilities ManagerDaniel Lim — TechnicianDanielTechnician
RoleWhat they do with Toilet HygieneAt Northwind Tower
CleanerOpens My work on the phone, walks to the toilet at the top of the list, marks jobs done, adds photos and remarksSiti Nur (Level 3 and L2 Male), Nurul Huda (Level 1 and L2 Female)
Cleaning supervisorWatches Work orders and Live, chases late jobs, moves a job to someone else, sets the schedulesRavi Kumar, Operations Lead
Facilities managerReads Reports and each toilet's page: trends, guest ratings, how fast jobs get done; changes toilet settingsAisha Rahman
TechnicianLooks at a toilet's page and guest complaints when something is broken rather than dirtyDaniel Lim
Guest or visitorScans the QR poster on the door and rates the toilet, with no loginAnyone in the building
AdministratorMarks zones as toilets, puts people on the cleaning roster, links their badge and app login (admin console)Aisha, on the admin side

A person on the cleaning roster only ever sees My work and the cleaners' version of the schedule board. If they open any other page of the app, it takes them back to My work. Everyone else who has the app sees all of it.

A day at Northwind Tower ​

Northwind has six toilets: a male and a female toilet on each of Levels 1, 2 and 3, coded L1-M, L1-F, L2-M, L2-F, L3-M and L3-F. Each has a door counter. Levels 1 and 3 are cleaned every 2 hours from 08:00 to 17:00, Level 2 every 3 hours, Monday to Saturday. L3-M is the busiest toilet in the tower, so its schedule always sends a cleaner and it also has the busy-hour auto clean on.

TimeWhat happensHow
08:00Siti Nur — CleanerNurul Huda — Cleaner Siti and Nurul start the cleaning round. My work puts L3 Male at the top of Toilet traffic — Go here next, 42 visits since its last clean last night. Siti walks in; her badge claims the job, and after six minutes inside it closes by itself, confirmed by her badge.My work
10:00Nurul Huda — CleanerRavi Kumar — Operations Lead Nurul is called to the Loading Bay to take in a supplies delivery before she reaches L1 Female. The 10:00 job there is sent again, nobody comes, and it is marked Missed. It shows red on Ravi's board.What happens to a job nobody does
11:00The fire drill: both cleaners go to the car park with everyone else and Roll Call counts them. The 11:00 cleans on Level 2 wait until they are back.
11:40Siti Nur — Cleaner A guest scans the poster in L2 Male and gives it 2 stars: No toilet paper — "No tissue in the second cubicle." That raises an urgent job, due in 15 minutes. Siti restocks it in 13.Guest feedback
12:00Siti Nur — Cleaner The 12:00 L3 Female clean waits for Siti's lunch break. She does it at 13:00, so the board marks it Late.The daily board
14:20Ravi Kumar — Operations LeadNurul Huda — Cleaner A 1-star review in L2 Female — bad smell, sticky floor. Nobody picks the urgent job up; it is re-sent. Ravi sees it at the top of Needs attention and moves it to Nurul with Reassign.Work orders
15:00Siti Nur — CleanerNurul Huda — Cleaner L3 Male is busy again: 42 visits since Siti cleaned it at 12:18. Siti walks in; Live shows her there and how long she still has to stay for it to count. Nurul's badge is down to 17%; Live flags it for charging.Live
16:30Ravi Kumar — Operations Lead Ravi opens Reports for the last 14 days: guests mostly complain about smell in L3 Female, and most people come around 12:00, so he plans a clean just before.Reports
All dayThe lobby TV shows how many washrooms are clean, due and overdue.TV Dashboard

How to work through My work (cleaners) ​

Open Toilet Hygiene on your phone. You land on My work.

My work for Siti Nur on a phone: 9 of 10 jobs done today, 90%. Under To do (1), the job Scheduled clean: L3-M, L3 Male Toilet, today at 14:00, 42 people since last clean, opened to show Status In progress, Priority Medium, Raised by Scheduled cleaning, and a green Mark as done button. Below, Unclaimed nearby (3) starts with an urgent Bad feedback (1 star) at L2-F.
Siti's My work: her job in L3 Male, and the jobs nobody has taken yet

From top to bottom:

  1. Jobs done today: how many of today's jobs are done.
  2. To do: the jobs that are yours, urgent first. Each shows the toilet, how many people used it since the last clean, and when it was raised. Tap a job to see its Status, Priority and what Raised by it.
  3. Unclaimed nearby: jobs nobody has taken yet. There is no claim button — walking into the toilet is the claim. Once you are inside, the card says You're here and that the job will be assigned to you shortly; once you have stayed about as long as one clean takes, it moves to your To do. If another cleaner is already there, the card says so, and you only need to go if they need a hand.
  4. Cleaning schedule: how many of today's scheduled cleans are done, and the next one due. Tap it for the schedule board.
  5. Toilet traffic: every toilet, sorted by how many people have used it since its last clean. The top one is marked Go here next. Tap a toilet to see people today, This hour and Last hour against the usual, a 12-hour chart, and who cleaned it last. Counter off or No counter means the numbers cannot be trusted or do not exist for that toilet.
  6. Done today: what you finished, with tag-verified next to the ones your badge confirmed.
The Toilet traffic card for L3-M, marked Go here next: 42 since clean, cleaned today at 12:18 by Siti Nur; 109 people today; This hour 0 since 15:00; Last hour 12, usually 15; Busiest 12:00, 18 people; a bar chart of the day.
Go here next: the toilet most people have used since its last clean

Closing a job ​

With your badge (the usual way). Stay in the toilet for the toilet's clean time (One clean takes about, 5 or 6 minutes at Northwind). When you leave, the job closes by itself and is marked tag-verified. You do not have to touch the phone. If you leave before the time is up, the job is put back to open with a note that the visit was too short.

By hand, for example when your badge is charging:

  1. Open the job under To do and press Mark as done.
  2. Press Add a photo if you can, and write in What did you do? (optional).
  3. Press Done.
The Mark this job done sheet on a phone, over Siti's L3-M job: Add a photo and a note if you can — it helps if anyone checks back on this later. An Add a photo button, a note box saying What did you do? (optional), and Cancel and Done buttons.
Marking a job done by hand: a photo and a note help whoever checks later

Closing early, where the toilet allows it (Cleaners can close a job early in the toilet's settings). When the toilet needs less than a full clean, you do not have to wait out the clean time:

  1. Go to the toilet. Once your badge has been seen there, the job under Unclaimed nearby shows You stayed 3 of 10 min and a Close job button.
  2. Press Close job and pick why: Already clean, Light clean only, Called away or Other. A photo and a note are optional.
  3. Press Close job.

The job is saved as Closed early, with the minutes you stayed and your reason. The schedule board shows it that way and the admins who were told about the job get "Closed by Siti after 3 of 10 min. Reason: Already clean." A job closed as Called away does not reset the toilet, so it can raise the next job.

Any clean, by badge or by hand, resets the toilet: its dirty score starts again from the time part and the count of visits since the last clean goes back to zero.

The cleaners' schedule board ​

Tap Cleaning schedule on My work, or go to Schedules. You see the day hour by hour with the toilets across the top; All or Assigned to me filters it. The camera icon opens the photos. Tap a coloured slot to see the job behind it, and add photos or a remark to it. You can post on today and yesterday only.

The cleaners' Cleaning schedule on a phone for Saturday 3 Oct, with All and Assigned to me filters: 22 Done, 5 Not done, 1 Missed, 0 Due. A grid with times down the side from 10:00 to 17:00 and the toilets L1-F, L1-M, L2-F, L2-M, L3-F across: a red missed slot for L1-F at 10:00, green done slots, grey not-needed slots for L2-M at 11:00 and L2-F at 14:00, Level 2 cleaned at 11:00, 14:00 and 17:00, and orange not-done slots for L1-F at 14:00 and 16:00.
The same board the supervisor uses, in a phone layout

How to keep the jobs moving (supervisors) ​

Open Work orders. It is built around what you can act on.

  1. The tiles: Open jobs (and how many nobody has picked up), Overdue, Done today (with the average time to finish and the share on time), Missed today, Cleaners on site and Guest rating today.
  2. Needs attention: the few things to deal with, each with a link. It can list jobs past their deadline, urgent or high jobs nobody has picked up, open jobs with no cleaner on site, toilets at 60 or more with no open job, jobs missed today, bad reviews today, and cleaners whose badge has no app login.
  3. Open jobs: every open job across all toilets, overdue first, then by priority. Each shows the toilet, what raised it (Scheduled clean, Guest complaint, Busy-hour auto clean and so on), who has it or Not picked up, and the deadline. re-sent 1× means nobody turned up and the system sent it again. Filter with All, Overdue, Not picked up or Urgent & high.
The Open jobs list, all toilets, overdue first then by priority. Filters All 4, Overdue 3, Not picked up 4, Urgent and high 1. First, an Urgent job L2-F Bad feedback (1 star) at L2-F with a re-sent 1x tag, Guest complaint, Not picked up, raised 40 minutes ago, Overdue 25 minutes, deadline 14:36, and a Reassign button. Then medium Scheduled clean jobs for L3-M and L1-F, both overdue, and L2-M, due in 33 minutes.
Open jobs: the urgent complaint has been re-sent once and is still waiting
  1. Team now: each cleaner, where they are and how many jobs they finished today. Today's timetable: today's scheduled cleans as done, in progress, missed, skipped (already clean) and still to come, and the next few due. Dirty toilets lists any toilet at 60 or more, worst first.
Team now, 2 of 2 on site: Siti Nur in L3-M, 10 done today; Nurul Huda with a 17% battery warning, last seen at the Loading Bay, 8 done today. Today's timetable with a coloured bar of done, in progress, missed, skipped and still to come, and Next up: L1-M, L1-F, L3-M and L3-F at 16:00. Dirty toilets: No toilet is dirty right now.
Who is where, and how today's timetable is going

Moving a job to someone else ​

  1. In Open jobs, press Reassign on the job.
  2. Under Send it to, choose a cleaner. Cleaners who are away are shown but cannot be picked.
  3. Add a Reason (optional), such as "closer to the toilet", and press Reassign.
The Reassign this job dialog for L2-F, Bad feedback (1 star) at L2-F. Now with: Not picked up. A Send it to list showing Choose a cleaner, a Reason (optional) box with the hint e.g. closer to the toilet, and Cancel and Reassign buttons.
Reassign: the job leaves the shared pool and goes to one person

Normally you do not need to: every new job goes to every cleaner's phone at once, and whoever walks into the toilet takes it. Reassign is for when you want one person to have it.

What happens to a job nobody does ​

WhenWhat the system does
A job is open and nobody has started itAfter Reassign after (30 minutes unless the toilet says otherwise) it sends the job to the cleaners again.
A cleaner had the job but has not been seen in the building latelyThe job goes up one priority step and is sent again.
This has happened Give up after times (3 unless the toilet says otherwise)The job is marked Missed. It leaves the open lists, but a cleaner can still finish it.
A job passes its deadlineOnce per job: an alert on the toilet's activity, the priority raised one step, the job re-sent, and a notification to the supervisors.
A cleaner's badge leaves before One clean takes aboutThe job is put back to open, with a note that the visit was too short.

That table is the default, Every cleaner. A toilet can instead have its own steps, set on its edit page under Who gets notified:

  1. Choose Choose people, step by step.
  2. Step 1 · When a job is raised: tap the cleaners (or All cleaners) and the admins to tell.
  3. Add step for each next step and set If no one responds within (minutes). Each step can tell any number of cleaners and admins.
  4. Set mark the job Missed after for the time after the last step, and tap the admins to tell when that happens (admins only; it starts with the last step's admins).

A job moves to the next step only while no cleaner has responded: no badge has reached the toilet, and nobody has started or finished it in My Work. Any cleaner can still do the job, even one not in the current step. Admins are Toilet Hygiene users who are not cleaners; they get a push on their phone at each step they are in, and when the job is marked Missed. A person whose phone has notifications off shows a bell with a line through it, and gets nothing until they allow notifications in the app. With steps, a job past its deadline still goes up to urgent, but is not sent again by itself. Steps are for cleaning jobs only: an electrical, plumbing, maintenance, inspection or restocking job at the toilet (a cleaning rule can raise those) goes to its own role as before. A cleaning rule's Always send this cleaner is ignored for cleaning jobs at a toilet with steps; the rule's form shows the toilet's step 1 instead. The daily board shows each step: who it went to, how many phones took it, and who came next.

Notifications are written in each person's own language: English, Bahasa Melayu or 简体中文, whichever they use the app in (chosen on their Profile). One job can send a Malay alert to a cleaner and an English one to an admin. Someone who has not chosen a language gets English. See every notification on the toilet's edit page shows the messages in the language you are reading the page in.

How to see where cleaners are ​

Open Live. It updates itself every few seconds.

Live: where cleaners are now. Updated 14:44, with a red 1 badge is low on battery tag. Tiles: In a toilet 1, Elsewhere 1, Not seen lately 0, Off shift 0, Jobs waiting 3. Siti Nur's card: In toilet L3-M for 3 minutes since 14:41, Needs 3m more to count as a clean (needs 6m, now 3m), Job in this toilet: Medium Scheduled clean L3-M; today 9 visits, 8 cleans confirmed, 1h 21m inside; 76% battery. Nurul Huda's card: In Loading Bay for 9 minutes; today 8 visits, 8 cleans confirmed; Low battery, charge this badge (17%). On the right, Jobs waiting for a cleaner: L1-F and L3-M waiting 44 minutes, and the urgent L2-F sent to 2 phones and resent 1 time.
Live: Siti needs three more minutes in L3 Male for it to count; Nurul's badge needs charging
TileMeans
In a toiletThe badge was picked up in a toilet in the last 5 minutes
ElsewhereSeen in another area of the building
Not seen latelyNo signal for over 5 minutes
Off shiftNo signal for hours (6 by default)
Jobs waitingOpen toilet jobs

Each cleaner's card says where they are and since when. While they are in a toilet it says what the visit will turn into, for example how much longer they must stay for it to count as a clean. A badge under 20% battery is flagged so it can be charged. Movement today opens the cleaner's trail. Jobs waiting for a cleaner lists open jobs, oldest first, with who they were sent to and how often.

Where a cleaner went ​

  1. Open Staff, then Where they went (or press See where they went on a cleaner's card).
  2. Pick a Date (the arrows step a day back or forward) and a Cleaner.
  3. Press Search trail.

You get the day as a coloured strip and a timeline: each stay with its place and length, the gaps where the badge was not seen, and First seen, Last seen, Time tracked, Toilets and Longest stay.

Cleaner movement trail for Siti Nur on 3 Oct: First seen 07:30, Last seen 15:01, Time tracked 2h 10m, Toilets 5, Longest stay 34m in the Pantry. A coloured strip from 07:00 to 15:00 and a legend: L3 Female Toilet 36m, Pantry 34m, L3 Male Toilet 32m, L2 Male Toilet 14m, Store Room 14m. The timeline: Store Room 07:30 to 07:44, not seen 27m, L3 Male Toilet 08:10 to 08:21, L3 Female Toilet 08:24 to 08:32, L2 Male Toilet 09:04 to 09:11, and so on, with Show all 12 stays.
Siti's day so far, stay by stay

How to read the toilets ​

Open Toilets. A banner at the top says whether everything is clean, how many toilets are getting dirty or need cleaning now, and whether any jobs look stuck. Below it are the counts, the guest rating for 30 days, and Busiest toilets since their last clean — the number the busy-hour auto clean watches, against each toilet's threshold.

The toilet list with a search box, filters All 6, Needs attention 4, Urgent 0, In use 6, Switched off 0, and the dirty-score legend: Clean 0-29, Getting bad 30-59, Dirty 60-79, Urgent 80-100. Three cards: L3-M, Level 3, Male, 3 stalls, 4 urinals, 6m clean, dirty score 56 Getting bad, 2,256 visits in 14 days, 46 visits since last clean 2 hours ago; L1-F, score 51; L2-F, score 41. Each has an Open button.
Every toilet's dirty score, visits and time since its last clean

Search by name, floor or building, filter with All, Needs attention, Urgent, In use or Switched off, and press Open on a toilet.

One toilet's page ​

The header shows the code, whether it is in use and open now, and its dirty score. The QR icon opens the toilet's feedback poster; Edit opens its settings.

The page for toilet L3-M: Active, Open now, 48 out of 100 Getting bad; Male, 3 stalls, 4 urinals, 22 square metres. Tabs Overview, Work orders 1, Feedback 24, Cleaning plan 1, Activity, Usage. The Overview opens with a score dial at 48, a Keep an eye on it label, Health 79/100, the headline Close or chase the late job, and an AI summary predicting when the toilet will reach the next band and suggesting three actions.
L3 Male in the afternoon: the verdict, and an AI summary written from the numbers on the page
TabWhat it shows
OverviewHow is it doing?: the score and a verdict (All good, Keep an eye on it, Needs action or Switched off). If your organisation has AI turned on, an AI summary written from the numbers on the page. What to do: a short list with a button for each item, such as Send a cleaner now, Add a routine cleaning schedule or Turn on auto-clean for busy hours. Going well, the Dirty score, last 24 h chart, What happens next (forecast from the last 14 days of visits), How busy is this toilet?, recent activity and guest feedback.
Work ordersOpen jobs, with seen, mark done and delete on each, and the jobs closed in the last 30 days: how long each took and whether it met its deadline.
FeedbackGuest ratings, bad reviews, what guests complain about, and the Feedback QR poster.
Cleaning planEverything that decides when this toilet gets cleaned: its schedules and what each decided, the busy-hour auto clean, guest complaints, today's timetable, Service standards, Opening hours, Assigned cleaners and Stalls.
ActivityThe score over 24 hours and a log of the last 14 days, filtered by cleaning jobs, guest reviews, alerts or problems only.
UsageDoor-counter visits by day and hour, with the peak hour and day.
How busy is this toilet? for L3-M, from the people counter at the door over the last 14 days: Visits a day 165, Busiest time 08:00 to 15:00, about 17 visits an hour, Today so far 110, usually about 121 by now, Since last clean 47 visits. Below, What the numbers say: busiest from 08:00 to 15:00, a quick check about every 8 hours keeps it clean at that rate, almost nobody uses it from 00:00 to 02:00, Wednesday is the busiest day and Sunday the quietest, and this week's visits are about the same as last week's.
How busy is this toilet? turns the door counter into plain advice
The Work orders tab of L3-M. Tiles: Open now 1, 1 not yet picked up; Overdue 1; Done in 30 days 138, 149 raised, 10 missed; Average time to finish 25 minutes; On time 87%, 120 of 138 met the deadline; Badge-verified 91%. A note says Siti Nur (5 min) is in this toilet now and the open job will close on its own when she leaves, if she stayed long enough.
One toilet's jobs over 30 days, and who is in it right now

How to read the daily board ​

Open Schedules → Daily board. It shows one day, hour by hour, with the toilets down the side. Pick a day from the strip or Jump to date. The four counts across the top — Done, Not done, Missed, Due — also work as filters, and Anyone and Any status narrow it further.

The Daily board for Saturday 3 Oct, seen in the evening: 22 Done, 5 Not done, 1 Missed, 0 Due. A grid of the six toilets against the hours 00 to 23: Levels 1 and 3 have slots every two hours from 08:00 to 16:00, Level 2 at 08:00, 11:00, 14:00 and 17:00. A red missed slot for L1-F at 10:00, grey not-needed slots for L2-M at 11:00 and L2-F at 14:00, late markers on several L2-F and L3-F slots, orange not-done slots for L1-F and L3-M at 14:00 and 16:00, under Other jobs a done job at 11:00 and an open one at 22:00, and small numbers for the people through each hour. A legend explains Done, Not done, Missed, Due, Not needed, People through, Current hour, Auto-triggered, Late and Photo / remark.
The day at a glance: the 10:00 miss in L1 Female, the late 12:00 clean in L3 Female, and Level 2's cleans at 08:00, 11:00, 14:00 and 17:00
On the boardMeans
DoneThe job was finished.
Not doneA job was sent and is still open.
MissedNothing was sent within 20 minutes of the slot, or the job was re-sent the maximum number of times and nobody came. A cleaner can still finish it.
DueStill to come.
Not neededThe schedule checked and skipped: the toilet was still clean, or a job was already open.
Other jobsJobs outside the schedule, such as a busy-hour auto clean or a bad review.

Markers on a slot show Auto-triggered (busy-hour), Late, Photo / remark, the number of people through that hour (People through) and the Current hour.

Press a slot to see What happened: the schedule's check (the dirty score against the skip limit), who the job was sent to, any re-sends, who did it, and whether their badge confirmed it. Press a toilet's name for its day hour by hour.

The detail of the L3-M 12:00 slot on 3 Oct: Done, by Siti Nur, raised to done in 18 minutes, in the zone 12:09 to 12:18 for 9 minutes, closed at 12:18. What happened: 12:00 schedule check, this schedule always sends a cleaner, so a cleaning job was created; 12:00 sent to 2 cleaners' phones; 12:18 done by Siti Nur, confirmed by their badge in the toilet. 18 people passed through this hour. Photos and remarks: none yet, with a camera button and a Write a remark box.
What happened at L3 Male at 12:00, step by step

Photos and remarks. In a slot's detail, under Photos & remarks, add a photo (JPEG, PNG or WebP, under 8 MB, up to 8 per job) with the camera button, or type in Write a remark… and send it. A remark or photo on an hour with no job is kept as a note; it never counts as a clean. Schedules → Photos shows the photos from every toilet, grouped by day, for the last 1, 3, 7, 14 or 30 days, with All photos or My photos, and Open this hour jumps back to the board.

How to set up a cleaning schedule ​

A schedule sends a cleaning job to a toilet at regular times, and can skip the visit when the toilet is still clean.

  1. Open Schedules → Cleaning rules and press New Schedule. (On a toilet's Cleaning plan tab, Add schedule does the same with the toilet chosen.)

  2. Which toilet? Pick the toilet.

  3. How often? Pick 30 min, 1 hour, 2 hours, 3 hours, 4 hours, 6 hours, 8 hours or 12 hours, or type your own number of minutes (5 to 1,440).

  4. When? Set From and Until, or press All day or Daytime (08:00–22:00). Under On these days pick the days, or press Every day, Weekdays or Weekends. Leaving them all off also means every day.

  5. Skip if it is still clean? Choose one:

    OptionWhat happens at each cleaning time
    Always send a cleanerA job is sent whatever the score.
    Skip while it is still clean (recommended)Skipped if the dirty score is below 30.
    Only once it gets dirtySkipped if the dirty score is below 60.
    Custom: skip if the dirty score is belowSkipped below your number. 0 means never skip.

    The coloured scale shows which scores are skipped.

  6. The cleaning job: set the Priority. Always send this cleaner is optional and only lists cleaners set up the older way (see Setting up cleaners). Under More options you can change the type of job, who can do it, and the minute past the hour it runs at.

  7. Check What this schedule will do on the right: the schedule in one sentence, cleans a day and a week, and the times.

  8. Leave Schedule is on switched on and press Create schedule.

Cleans start at the From time and repeat at the interval up to Until: a 3-hour schedule from 08:00 to 17:00 runs at 08:00, 11:00, 14:00 and 17:00. The times stay the same every day, however late a clean was done. Minute past the hour, under More options, moves them to that minute: with 30, the same schedule runs at 08:30, 11:30 and 14:30. Check the times in What this schedule will do.

The form also warns you that the window cannot cross midnight (for a 22:00–06:00 night shift, make two schedules) and when no cleaning time falls inside the hours. To pause a schedule without losing it, edit it and switch off Schedule is on.

Schedules are checked every five minutes, so a job can appear a few minutes after its slot.

Recurring Cleaning Schedules with a New Schedule button. Tiles: Total schedules 6 across 6 toilets, Active 6, Inactive 0, Cadence 140 minutes average. Six rows, each Active, Cleaning, Medium: L3-F, L1-F, L1-M and L3-M every 2 hours, L2-M and L2-F every 3 hours, all 08:00 to 17:00, skip if score below 30 (L3-M below 0), next Mon 08:00 because Sunday is off, the days M T W T F S lit and S for Sunday grey, and an Edit button.
Northwind's six schedules, Monday to Saturday

What actually ran, below the list, shows every slot over the last 24 hours (or the dates you choose) and what the schedule decided: Fired, Fired, unassigned (created, but nobody was available), Already clean or Previous job open.

What actually ran: every slot in the last 24 hours, with From and to dates and a Show button. Fired 24, Fired unassigned 0, Already clean 2, Previous job open 2, and a bar chart of the day. The list: 17:00 L2-F cleaning job created, dirty score 51, skip below 30; 17:00 L2-M cleaning job created, dirty score 34; 16:00 L1-F skipped, previous job still open, dirty score 52, open 9 hours, unassigned; 16:00 L3-F cleaning job created, dirty score 41.
What each schedule decided, and why

How guest feedback works ​

Each toilet has a printable poster with a QR code: the QR icon on the toilet's page, or Feedback QR poster on its Feedback tab. Press Print on the poster.

The feedback poster for L3-M, Level 3, Male toilet, 3 stalls, 4 urinals: a large QR code, Scan to rate this toilet, 1-minute anonymous feedback, your cleaning team gets notified instantly, and the web address underneath.
The poster for the door of L3 Male

Guests scan it and see How was this restroom?. They tap one to five stars, tick what was wrong under Anything wrong? (optional) — Dirty floor, No soap, No toilet paper, No water, Bad smell, Leak / flooding, Broken fixture or Other — add a comment, and press Send feedback. No login and no app. The page follows the phone's language, and EN, BM, 中文 and Tamil switch it by hand. One phone can send one review a minute.

The guest feedback page on a phone for L3-M, L3 Male Toilet: How was this restroom? Your feedback helps us keep it clean. Tap a star to rate, five stars. Anything wrong? (optional) with chips Dirty floor, No soap, No toilet paper (selected), No water, Bad smell, Leak / flooding, Broken fixture, Other. Tell us more (optional), a Send feedback button, and language links EN, BM, Chinese and Tamil.
What a guest sees after scanning

A review of 1 or 2 stars can raise an urgent cleaning job, due in 15 minutes and sent to the cleaners' phones straight away. This is off until you turn it on for each toilet, in Edit → Advanced settings → Send a cleaner after a 1–2 star guest review. No job is raised if one was already opened for that toilet in the last hour. Every review is kept either way, for 120 days, and shows in Reports.

The Feedback tab of L3-M over the last 30 days: Average rating 4.3 out of 5, Reviews 24, Bad reviews 0, Complaints actioned, Left a comment 42%. Star ratings: 10 five-star, 10 four-star, 4 three-star, none below. What guests complain about: Bad smell twice, No soap once, No toilet paper once, with the note that supply problems point at restocking and smell or a dirty floor point at cleaning frequency.
What guests say about L3 Male over 30 days

How to read the reports ​

Open Reports and pick a period: Today, 7 days, 14 days, 30 days, 90 days, or your own From and to dates, then Show. Every figure is compared with the same number of days just before, and each has a How is this worked out? link.

Reports has one tab per topic, in a second row under the menu. The period you pick stays the same when you switch tabs.

Reports for 14 days. In short: 293 cleanings were finished, 4% fewer than the period before; a cleaning job took 28 minutes on average from being raised to done; guests left 48 reviews averaging 4.0, 6 of them bad; busiest toilet for jobs L3-M with 70 jobs; people visit most around 12:00; Nurul Huda finished the most jobs. What to do next: check L3-F, it got 2 bad reviews mostly about bad smell; plan a cleaning just before 12:00. Tiles: Cleanings done 293, Time to finish a job 28m, Guest rating 4.0, Visitors 9,300.
Fourteen days at Northwind in plain sentences
TabWhat it tells you
OverviewIn short and What to do next in plain sentences, then the headline numbers: Cleanings done, Time to finish a job, Visitors, Guest rating. See details on a number opens its tab
VisitorsHow many people went into the toilets over time. See Visitors below
CleaningCleanings per day, time to finish per day, how long cleaners stay inside a toilet, Where jobs came from and Toilets with the most jobs (a toilet high on that list may need more scheduled cleans)
Service levelWhether a cleaner arrived within the toilet's Job is late after time, how long they took to arrive, and how long they cleaned. See Service level below
CleanersPer cleaner: jobs given, done, urgent, finished on time, auto-confirmed; and team availability when cleaners have admin accounts
Guest reviewsRatings, bad reviews, what guests complain about, reviews per toilet, latest comments
DownloadsSpreadsheet (CSV) files for the same dates; see below

On time means finished before the job's deadline. A job without a deadline is on time if it was finished within the toilet's Job is late after time. A visit the system recorded by itself is never late, because nobody asked for it.

Visitors ​

Visitors counts people walking into the toilets, from the door sensor at each toilet. Sensors elsewhere in the building are not counted. Pick All toilets or a single toilet at the top.

  • The headline numbers: people who went in (compared with the period before), a day on average, the busiest day, the busiest time of day and, for all toilets, the busiest toilet.
  • People going in is the trend chart. Show by sets the size of each bar: Hour (ranges up to 14 days), Day, Week (14 days or more, weeks start on Monday) or Month (60 days or more). Switch between Bars and Line, and for all toilets between All together and Each toilet. The dashed line is the average.
  • When people come: the average for each hour of the day and each day of the week. Clean just before the busy ones.
  • Visitors per toilet: each toilet's share, a day on average and its busiest time. Tap a toilet to see only its trend.
  • Numbers by period: the chart as a table, with Download CSV. Below it, the full day-by-hour table (ranges up to 62 days).

Averages count every day in the range, including days the toilets were closed.

Service level ​

Service level answers two questions for every cleaning job that was raised: did a cleaner get there in time, and how long did they clean? The time allowed is each toilet's Job is late after setting, counted from the moment the job was raised.

  • Time to arrive: from the job being raised until a cleaner's badge was first inside the toilet for at least 2 minutes. A shorter visit can be a badge passing the door, so it shows as First seen but does not count as arriving.
  • Cleaning time: all the time the badge was inside the toilet for that job.
  • Arrived on time: of the jobs where someone arrived or nobody came, the share where a cleaner arrived within the time allowed.
  • Jobs within time (still open, time not up), cancelled, and not measured (closed with no cleaner stay recorded, for example closed by hand) are listed but not counted in the rate. Cleans the system recorded by itself are left out, because nobody raised them.

The tab shows the headline numbers, a day-by-day chart, the figures per toilet and per cleaner, and every job with its times, with Download CSV.

Finished on time on the Cleaners tab is a different measure: whether the job was closed before its deadline.

Downloads ​

Downloads has a Download CSV button for each of five files, all for the dates picked at the top.

The Downloads section of Reports: Spreadsheet (CSV) files for 20 Sep 2026 to 3 Oct 2026, the dates picked at the top. Five cards, each with a Download CSV button: Cleaning log (HACCP), Infection-control audit, Toilet alert log, Guest reviews (personal data request), and Cleans and supplies estimate, each with a line on what is in it.
Downloads: five spreadsheets for the dates picked at the top
FileWhat is in it
Cleaning log (HACCP)Every cleaning and restocking job finished in those dates: toilet, cleaner, when it was done and how it was confirmed
Infection-control auditEvery cleaning, restocking and inspection job closed in those dates, with the cleaner and their closing note
Toilet alert logAlerts recorded against each toilet, such as going over its dirty-score limit
Guest reviews (personal data request)Every guest review: rating, issues ticked, comment and how it was resolved
Cleans and supplies estimateFinished cleans per toilet, with a rough estimate of water (5 L), soap (50 g) and CO₂ per clean

Because toilets are zones, they also appear in Omaya's own reports, such as Space Utilisation, Enter / Exit and Environment.

Emailed on a schedule

Whoever can change this app's settings can have the cleaning and feedback summary emailed daily, weekly or monthly, from Reports › Scheduled reports in the app, to the app's users or any address. See Scheduled reports in the apps.

The dirty score ​

Every minute each toilet in use gets a score from 0 (just cleaned) to 100 (very dirty). The toilet's Edit page explains it under How is the dirty score calculated?, and the schedule form under How is the dirty score worked out?.

What adds pointsUp toHowNeeds
Time since the last clean2525 × minutes since the last clean ÷ Normal time between cleans, capped at 25. Never cleaned = 25. While the toilet is closed = 5.Always counted
Visitors in the last hour201 point for every 2 people over the last 60 minutesA people counter
People inside right now151 point per personAn occupancy sensor
Bad smell or water leak1010 if ammonia is over 5 ppm or a leak is detectedAn air or leak sensor
High humidity1010 if humidity is over 75%A humidity sensor
Cleaner taking too long1010 if a cleaner's badge has been inside more than twice One clean takes about (at least 10 minutes) and is still thereAlways counted
Bad feedback55 if any guest gave 1 or 2 stars in the last 24 hoursAlways counted
Scheduled clean missed55 if, inside a schedule's days and hours, nothing was cleaned or sent for longer than its interval plus Job is late afterAlways counted

The score is the points earned as a share of the points this toilet can earn:

dirty score = points earned ÷ points possible × 100

Points possible only counts the signals the toilet has a working sensor for, so a toilet is not held low just because it has no humidity sensor. A toilet with no sensors at all can earn 45 points (25 + 10 + 5 + 5).

Worked example. A toilet with only a people counter, Normal time between cleans 60 minutes. Points possible = 25 + 20 + 10 + 5 + 5 = 65. Forty-five minutes after the last clean, with 16 visitors in the last hour: 25 × 45 ÷ 60 = 19 points for time, 16 ÷ 2 = 8 for visitors, 27 in all. 27 ÷ 65 × 100 = 42, "Getting bad".

Without any sensors, time is nearly all there is: even at the full 25 time points a toilet only reaches 25 ÷ 45 × 100 = 56. A schedule set to skip below 60 would never send a cleaner to such a toilet unless a missed clean or a bad review adds points.

ScoreBand
0–29Clean
30–59Getting bad
60–79Dirty
80–100Urgent

The score colours the screens but does not send anyone by itself. Jobs come from schedules, the busy-hour auto clean, bad reviews and rules.

Busy-hour auto clean ​

The dirty score rises gradually, so a rush can take a while to show. The busy-hour auto clean reacts straight away: when enough people have used the toilet since its last clean, it raises a high-priority cleaning job, titled with that count (for example "Auto-triggered high-traffic clean (47 visits since the last clean)"). It checks every time the door counter records a visit, and every minute as a back-up.

It is off until you turn it on for each toilet, in Edit → Advanced settings → Send a cleaner when traffic is high. The toilet's Cleaning plan tab shows the threshold in use, how it was worked out, this hour's and last hour's visits, and when it last fired.

The Auto-clean when this toilet gets busy card for L3-M, Enabled: Large toilet, send a cleaner when this toilet sees 45 visits since its last clean. This hour 10 entered so far, last hour 18, usually 18. Using your override (45 visits); the auto-suggested value was 26. Never auto-fired yet. An Edit high-traffic settings button.
L3 Male fires at 45 visits — Ravi raised it from the suggested 26

The threshold is suggested from the toilet's size: each cubicle is taken as able to handle 6 visits an hour, each urinal 12, and each square metre of floor 1. The auto clean fires at 30% of that total, and never below 15 visits. For L3 Male, 3 cubicles, 4 urinals and 22 m² give 18 + 48 + 22 = 88, and 30% of 88 is about 26. Type your own number in Busy when visits reach to override it.

It does not fire when the toilet is switched off or closed, when a high or urgent job is already open for it, when a cleaner's badge is in the toilet, or within Wait before next extra clean (15 minutes by default) of the last time it fired. The count starts again at every clean.

Extra cleans for a dirty score or a bad review ​

Two more switches sit under the busy-hour one in Edit → Advanced settings. Both are off until you turn them on, toilet by toilet.

  • Send a cleaner when the dirty score passes its limit. When the toilet's score reaches its Dirty score limit (set under Cleaning on the same page), a high-priority job titled, for example, "Dirty score 76 reached its limit of 75" is sent to the cleaners. The score is checked every minute, so any limit works. Like the busy-hour clean, it does not fire when the toilet is closed or switched off, when a cleaning job is already open for it, when a cleaner's badge is in the toilet, or within Wait before next extra clean of the last time it fired.
  • Send a cleaner after a 1–2 star guest review. A 1 or 2 star review from the QR poster raises an urgent job due in 15 minutes, sent straight away, unless a job was opened for that toilet in the last hour.

Jobs from either switch go to every cleaner's phone like any other, and count in Reports → Service level.

A stall occupied too long ​

Somebody in a stall for far longer than usual is either a stuck door or a person who needs help. The Stalls card, at the bottom of a toilet's Cleaning plan tab, watches each stall you list and raises a job when one stays occupied past its limit.

To add a stall (managers only):

  1. Open the toilet and go to the Cleaning plan tab.
  2. Under Stalls, type a Name, for example "Stall 1".
  3. Pick the Type: Stall or Urinal.
  4. Pick the Sensor: a presence sensor inside the stall, or a door contact on its door. Only sensors in this toilet's zone are offered.
  5. Set the Limit (min), from 5 to 240. The default is 20.
  6. Press Add.

Each stall then shows what it is doing Now:

StateMeaning
OccupiedThe presence sensor sees somebody, or the door contact reads closed. Shows for how long.
FreeThe presence sensor sees nobody, or the door is open.
No readingThe sensor has sent nothing for 30 minutes, or sends neither presence nor door readings.
Out of orderThe stall is out of use and is not watched.

A door contact counts closed as occupied, so a stall whose door is normally left shut is better watched with a presence sensor.

When a stall has been Occupied for longer than its limit, Omaya raises one high-priority inspection job, due in 15 minutes: "a stuck door, or somebody who needs help". Stalls are checked every five minutes, and a stall has at most one open job at a time, not one per check. The trash button on a stall's row removes it and stops its watch.

Check it worked: within a few minutes of adding a stall, its Now column shows Occupied or Free rather than No reading.

Using it in your organisation ​

Corporate office tower ​

The setting. Six to forty toilets over several floors, busy at arrival, lunch and after big meetings; a small in-house or contract cleaning team.

Who does what. Two or three cleaners each own a few floors and work from My work; a facilities or operations lead watches Work orders twice a day and reads Reports weekly. Receptionists rarely touch it.

Settings that matter. A schedule per toilet every 2 hours in office hours with Skip while it is still clean; the busy-hour auto clean on the toilets next to meeting floors and the cafeteria; Normal time between cleans close to the schedule interval; Monday to Friday (plus Saturday if the building opens).

Tip. Put the QR poster at eye level inside the door, not on the outside. People rate the toilet as they leave it, and the "No toilet paper" and "No soap" ticks turn into a restocking round rather than a full clean.

Hospital or clinic ​

The setting. Public toilets near outpatient clinics and wards, open long hours, with infection-control expectations and auditors who ask for proof.

Who does what. Housekeeping supervisors per block use Live and Work orders; cleaners work from My work with badges; the infection-control nurse reads the toilet pages and the guest complaints.

Settings that matter. Always send a cleaner on the busiest clinic toilets, so the record shows a clean at every slot whatever the score; short Job is late after (15–20 minutes); Give up after kept at 3 so missed cleans surface the same day; badges on every cleaner so most cleans are tag-verified.

Tip. Badge-verified on a toilet's Work orders tab is the number auditors care about: it shows the clean was done by someone physically there for the full clean time, not just a tap on a phone. Ask cleaners to add a photo when they mark a job done by hand.

Shopping mall or transport hub ​

The setting. Large toilet blocks with peaks that follow trains, flights, film showings or sales; a big contract cleaning team; complaints on social media.

Who does what. A cleaning supervisor per zone works from Live and Reassign; cleaners go wherever Go here next points; centre management reads Reports and the guest ratings.

Settings that matter. The busy-hour auto clean on every high-traffic block, with the suggested threshold to start with; schedules with Only once it gets dirty so quiet toilets are not cleaned for nothing; Wait before next extra clean raised to 20–30 minutes on the busiest blocks so one rush does not raise three jobs.

Tip. Watch Toilets with the most jobs in Reports for two weeks before adjusting. A toilet that keeps firing the busy-hour clean needs a shorter schedule interval, not a higher threshold.

Setting it up for your organisation ​

This part is for whoever sets the app up. Most of it is done once.

What must exist first ​

  • A zone per toilet, drawn in the floor-plan editor, with its zone type set to Toilet. Everything hangs off the zone: visits, sensors, badges and jobs.
  • Something that counts visits: a people counter on the door, linked to the toilet's zone. Without one the score is driven by time alone, the busy-hour auto clean never fires, and the forecasts stay empty.
  • People and badges: each cleaner as a person under Entity with a badge (a BLE tag) linked, and an app login. See people and assets.
  • Optional sensors: an occupancy sensor, an ammonia or leak sensor and a humidity sensor each add to the dirty score when present. A missing sensor is left out of the score; it does not count as zero.

Checklist ​

  1. Mark the zones as toilets. Go to Apps → Module settings → Toilet Hygiene & Utilization (or Apps → Your apps and the settings icon on the Toilet Hygiene card). In Mark a Zone as Toilet, find the zone and press Mark as toilet.

  2. Add each toilet's profile. In Needs profile, press Add profile, or in the app open Toilets and press New Toilet. Under Location on floor plan, pick the zone (only toilet zones without a profile are listed), fill in the form, and press Create toilet.

  3. Put the cleaners on the roster. On the same admin settings page, in Cleaners, mark each cleaner's person as a cleaner. Then under Apps → App Users, create or edit their login, set Linked entity to that person, and tick the Toilet Hygiene app.

  4. Check the team. In the app, open Staff. Each cleaner's card should show their Badge and a tick next to App login, and Can get jobs should equal the number of cleaners.

    Staff, Cleaning team: Cleaners 2 on the roster, On site now 2, Can get jobs 2 of 2 with an app login, Toilet visits (7 days) 140, Auto-confirmed cleans (7 days) 139. A note, How jobs reach your cleaners: the job goes to every cleaner's phone at once and whoever stays long enough is recorded as the cleaner. Cards for Nurul Huda (in the Loading Bay, badge DC:AE:EB:30:00:05 at 17%, app login nurul.huda@northwind.example, last 7 days 71 toilet visits, 71 auto-confirmed, average 8 minutes inside) and Siti Nur (in L3 Male Toilet, badge at 76%, working on Scheduled clean: L3-M).
    Both Northwind cleaners have a badge and a login, so both can get jobs
  5. Add schedules for each toilet (how).

  6. Turn on the busy-hour auto clean on the busy toilets (how).

  7. Print and put up the QR posters (how).

  8. Optional: send a cleaner for a high dirty score or a bad review. Turn on Send a cleaner when the dirty score passes its limit and Send a cleaner after a 1–2 star guest review per toilet, in Edit → Advanced settings (how). Both are off by default. For anything beyond that, an administrator can still add a rule with Create toilet-hygiene work order, for example an ammonia sensor over its limit.

With the roster, every new job goes to every cleaner's phone at once, and whoever stays in the toilet long enough is recorded as the cleaner.

Cleaners on admin accounts (older set-up)

Some sites run cleaners as admin accounts with the cleaner role and a paired badge. They are listed on Staff under Admin accounts with badges, and jobs go to them before the roster, one person per job. Only for these cleaners can you press Toilets on their row to make them Main, Backup or Second backup for a toilet, Mark absent, Pair badge or Disable a badge, and pick them in a schedule's Always send this cleaner. Roster cleaners have no assignments: the job goes to all of them.

The toilet's settings ​

Open a toilet and press Edit, then Save changes at the bottom.

SettingDefaultWhat it changes
Toilet codeThe short name staff use, such as L3-M. Printed on the QR poster.
Location on floor planThe toilet's zone.
Toilet typeMale, Female, Unisex or Accessible.
Toilet is in useOnOff pauses cleaning jobs and alerts, for example during a refit. History is kept.
Cubicles, Urinals, Floor areaThe toilet's size, used for the busy-hour threshold suggestion.
One clean takes about5 minutesA badge staying this long closes the job by itself. Shorter stays do not count.
Job is late after30 minutesHow long a job may take before it counts as late, for jobs with no deadline of their own.
Cleaners can close a job earlyOffOn lets a cleaner whose badge has been at the toilet close the job from My work before the clean time is reached, with a reason. Recorded as Closed early, never as a full clean.
Normal time between cleans60 minutesHow fast the time part of the dirty score rises. Smaller rises faster.
Dirty score limit90A target to keep below. The toilet is flagged as over its limit above it; it does not create jobs.
Open 24 hoursOnSwitch off to tick the days the toilet is open and set an opening and closing time for each.
Send a cleaner when traffic is highOffThe busy-hour auto clean.
Busy when visits reachFrom the sizeLeave blank to use the suggestion.
Wait before next extra clean15 minutesHow soon the busy-hour clean may fire again.
Reassign after30 minutesHow long a job may sit before it is sent again.
Give up after3 triesRe-sends before the job is marked Missed.
Keep job if cleaner seen in building within15 minutesIf the cleaner holding the job was seen anywhere in the building this recently, it stays with them.
Advanced settings on the toilet's edit form, opened. Extra clean when it gets busy: Send a cleaner when traffic is high, switched on; Busy when visits reach 45 visits, counted since the last clean, leave blank to calculate from the toilet size; Wait before next extra clean, default 15 minutes. When no one responds to a job: Reassign after, default 30 minutes; Give up after, default 3 tries, then the job is marked Missed; Keep job if cleaner seen in building within, default 15 minutes.
Advanced settings: the busy-hour clean and what happens when nobody responds

Remove toilet, at the bottom of the edit page, hides the toilet and stops its jobs; history is kept and an admin can restore it. On the admin side, Unmap in Current Toilets takes a zone out of the app; tick the box to keep the profile if you might map it again.

Opening hours. New toilets are open 24 hours. To set hours, switch off Open 24 hours under Opening hours on the edit form, tick the days the toilet is open and set the times; an unticked day is closed. A closing time earlier than the opening time runs past midnight. The hours show on the Cleaning plan tab. While the toilet is closed, the time part of its score is held at 5 points and the busy-hour clean does not fire. Schedules keep their own hours.

The Opening hours card on a toilet's edit form: while the toilet is closed, its dirty score's time part stays at 5 and the busy-hour auto clean does not fire. Open 24 hours is switched off, so each day from Monday to Sunday has a tick and an opening and closing time: 7 am to 9 pm Monday to Saturday, 9 am to 5 pm on Sunday. A note says times are the building's local time and a closing time earlier than the opening time runs past midnight.
Opening hours with Open 24 hours switched off: a tick and times for each day

Questions and problems ​

Every toilet's score is driven by time alone. Nothing is counting visits. Check the people counter is online and linked to the toilet's zone. A counter that has said nothing for a day is treated as missing.

The score is high but nobody has a job. The score raises nothing by itself. Add a schedule, turn on the busy-hour auto clean, or add the dirty-score rule. Work orders → Needs attention lists toilets at 60 or more with no open job.

A schedule never sends anyone. Look at Schedules → Cleaning rules → What actually ran. Already clean means the score was under the skip limit each time; lower it or choose Always send a cleaner. On a toilet with no sensors the score cannot pass 56 on time alone, so a limit of 60 skips every time. Previous job open means the last job was never closed; check the toilet's Work orders tab.

The schedule runs at different times than I expected. Cleans start at the schedule's From time, then repeat at its interval, so a 3-hour schedule from 08:00 runs at 08:00, 11:00 and 14:00. If Minute past the hour is filled in, they start at the first such minute at or after From. Until 3 October 2026 cleans were counted from midnight instead (09:00, 12:00, 15:00 for the same schedule).

The board shows a row of Missed. Nothing was sent within 20 minutes of each slot. Check the schedule is switched on and its toilet is in use.

The busy-hour auto clean never fires. It is off until you turn it on. It also waits while a high or urgent job is open, while a cleaner is in the toilet, during its wait time and while the toilet is closed. The count starts again at every clean.

Cleaners do their rounds but jobs stay open. The badge has to stay for One clean takes about; a quick look in does not count. Also check on Staff that the cleaner's badge is linked to an app login.

Jobs do not reach a cleaner's phone. Their card on Staff says there is no app login. Create an app user linked to that person under Apps → App Users.

Nobody appears on Live. The cleaners are not marked as cleaners in the admin settings, or their person has no badge.

Cleaners on shift counts fewer people than I expect. The Cleaners on shift tile on Toilets counts roster cleaners whose person has a badge, plus cleaners on admin accounts with an active badge. A roster cleaner with no badge linked is not counted, and neither is a badge whose admin account has been deleted or disabled (switched off on the Admins page) — turn the account back on and they count again. Only cleaners on admin accounts can be marked absent, so Absent today never includes a roster cleaner.

The Cleaning plan tab says no one is assigned. On a site that uses the cleaning roster, that is expected: every roster cleaner gets every job, so there is nothing to assign. Main and Backup cleaners exist only for cleaners on admin accounts.

On the phone ​

Cleaners and supervisors can do all of this from the Omaya Mobile app too: their jobs, the unclaimed jobs nearby, where to go next and the schedule. See Facility and Cleaning on the phone.

Last updated:

Omaya platform documentation