Skip to content
CleanCore · the cleaning module of YC IMSS · live now

The clean happened.
Now prove it.

CleanCore is cleaning management software for contractors who are paid on evidence — an append-only record of every clean, contract KPIs computed on the server, the abatement worked out in front of the customer, and a portal they open themselves.

Per site, per month · a 14-day trial on Pro · Australian data, hosted in AWS Sydney.

Why this exists

Cleaning is judged on the record, not the work.

Nobody notices a clean building. They notice the month you cannot prove one. Every part of CleanCore exists to answer one of three questions a cleaning contract eventually asks.

The 06:00 question

Someone asks whether a particular bus, washroom or platform was cleaned last night, and by whom. An answer that depends on finding the right supervisor is not an answer.

The KPI you are held to

The contract has a quality target and money attached to missing it. The monthly argument is almost never about the cleaning — it is about whose spreadsheet, over which population.

The customer who wants to look

Clients increasingly want their own view. The data they want sits in the same tables as your cost of delivery and your charge decisions, so "give them a login" is harder than it sounds.

The proof

Ask to see it running, not to see slides.

There is a demonstration organisation with real data in it: a three-site contract modelled on the tender CleanCore was built against — a bus depot, a head office and a layover. One contract, vehicles and buildings, the same module. Nothing in the walk-through is typed during the demo, and the figures below are that organisation’s own, not a customer’s.

3

sites, one contract

A bus depot, a head office and a layover — cleaned to one set of KPIs.

198

buses on the board

A nightly cycle across the whole fleet, scheduled and verified per vehicle.

9,245

ledger events

Cleans, verifications, exclusions and defects — appended, never edited.

28 of 30

capabilities live

Counted from the same registry this page renders. The other 2 are named below.

Every capability

The full list, grouped by what you came here for.

28 of 30 are in the product today and are written here in the present tense. The rest carry a badge saying what they actually are. Each group has its own page with a worked example.

Append-only clean history

Live

Every clean, verification, exclusion and defect written once, in the same transaction as the act itself, so the record cannot be edited into a different past.

First included in the Starter tier

Who cleaned it, by name

Live

Cleaned by, verified by, inspected by — each a named person captured at the time, snapshotted so a later rename never changes what the history says.

First included in the Starter tier

Photographic evidence

Live

Photos attach to the event, not to a form: EXIF stripped, virus-scanned where enabled, and counted from the documents that exist rather than from a number the device claims.

First included in the Pro tier

Proof of presence, not proof of tapping

Live

A zone is verified only against a real checkpoint scan of that checkpoint, inside the round window, whose own validation passed. A fabricated scan id is refused.

First included in the Pro tier

History per bus, per site, per area

Live

One timeline for any subject, with the mean interval between cleans and whether it is overdue against its own expected cadence.

First included in the Starter tier

Scope of works, run as a round

Live

A site scope holds its areas in sequence and each area its tasks; a round opens a checklist row per task and a verification per area, and ends with the areas it could not close written out as exceptions and the completion percent they produce.

First included in the Starter tier

Periodic and deep-clean cadence

Live

Quarterly carpet, annual windows, anything on an interval: each task carries its interval in days and its next due date, and the worker advances the date and raises the notification when it falls due rather than waiting for somebody to open a screen.

First included in the Pro tier

Inspection templates from real standards

Live

Reusable templates per area type drawn from ISSA CIMS and APIC, so a walk grades the same way whoever does it.

First included in the Pro tier

Defect capture and closure

Live

A failed line raises a defect on the spot, assigns it and closes it, with a work order behind it when the fix is remedial work rather than a re-clean.

First included in the Pro tier

Contract KPIs, computed not compiled

Live

Non-compliance against inspections, split so the bus KPI and the facility KPI never divide by each other, measured against the target the contract sets for that month.

First included in the Pro tier

Abatement worked out, and shown working

Live

The contract penalty calculated from the month’s invoiced value on the server, with the arithmetic written out for the customer: the rate, the target, the overshoot, the cap.

First included in the Pro tier

Non-conformance register with root cause

Live

Findings carry a root cause from a fixed taxonomy and trace back to the walk that found them and the clean they are about.

First included in the Pro tier

Statistical sampling with a stored seed

Roadmap

Inspections drawn to an AQL rather than chosen by whoever is walking, with the randomisation seed stored so the sample can be defended.

On the roadmap. It is not built, not scheduled, and not something to plan a contract around.

First included in the Enterprise tier

Complaints, and the answer that went back

Live

Every complaint, compliment and survey in one register, each linked to the non-conformance and the corrective action it caused, and each carrying the date a response went back — so the register warns on "nobody has answered", not on "still open".

First included in the Pro tier

Fleet register

Live

Every bus, its type, its depot and its last clean — the register a depot manager opens first.

First included in the Starter tier

Per-bus cleaning board

Live

Spot cleans, deep cleans, steam and detail scheduled per bus per night, with the board showing scheduled, started, completed and verified.

First included in the Starter tier

Exclusions with a charge decision

Live

A bus out of service is excluded from the cycle by the customer or by ops, with charge or no-charge recorded rather than argued later.

First included in the Pro tier

Graffiti to a police report

Live

Offensive graffiti flagged, a removal SLA started, and the NSW Police report pack generated from the record.

First included in the Pro tier

SWMS sign-on that actually blocks work

Live

A cleaner cannot start or complete work at a site with an unsigned mandatory SWMS. WHS Reg 2017 (NSW) cl 299 as a control, not a document.

First included in the Pro tier

Controlled documents and acknowledgement

Live

Policies, procedures and SWMS versioned, issued and acknowledged, with a revision moving the pointer so old sign-ons stop satisfying.

First included in the Pro tier

Hash-chained audit trail

Live

Every write sequenced and chained per organisation under a uniqueness constraint, so tampering is detectable rather than merely discouraged.

First included in the Starter tier

Consumables and reorder

Live

Stock on hand against par per site, every delivery, usage and stocktake in a ledger that explains the count, and the shortfall list that drives the order.

First included in the Pro tier

Customer supply requests

Live

The customer asks for supplies from their own portal, against a catalogue you control, and the request lands in the same queue as everything else.

First included in the Pro tier

A portal the customer opens themselves

Live

Their sites, their cleans, their KPI and their invoices — with the cost of delivery, the cleaner’s identity and the charge stance withheld in the door’s own SQL rather than in the page.

First included in the Pro tier

Customer sign-off on inspections

Live

The customer countersigns the walk, so the quality record is joint rather than asserted.

First included in the Pro tier

Monthly KPI pack, one click

Live

Every inspection and every non-compliance behind the month’s figures, exported as the rows they were computed from.

First included in the Pro tier

The customer raises their own non-compliance

Roadmap

A finding the customer enters themselves, reconciled against yours, so the monthly number is agreed before the invoice rather than after it.

On the roadmap. It is not built, not scheduled, and not something to plan a contract around.

First included in the Enterprise tier

Induction and onboarding register

Live

Every worker’s induction, policy acknowledgement and competency in one register, with the roster refusing anyone whose mandatory items are outstanding.

First included in the Pro tier

Complaint traced back to training

Live

A non-conformance resolves to the cleaner, their induction and their competency record, so a repeat cause becomes a training decision rather than a conversation.

First included in the Pro tier

CleanCore Estimator

Live

Price a cleaning bid per square metre, per fixture, per bus, per visit or per month over one build-up — base rate, productive-hours uplift, on-costs, overhead, margin, GST — with the draft sealed on issue, and an accepted estimate writing the contract, its rates and the site’s CleanCore activation.

First included in the Pro tier
What backs every claim on this page

Each capability names the decision record, module, route or table it is built on. Ask us for any of them in an evaluation and we will walk you through the code.

Append-only clean history
ADR 0052 · src/server/imss-clean-history.ts · imss_cleaning_events
Who cleaned it, by name
src/server/imss-clean-history.ts resolveActorSnapshot · OpsBusRecord.tsx
Photographic evidence
src/server/imss-clean-evidence.ts · ADR 0023
Proof of presence, not proof of tapping
src/server/imss-cleaning-round.ts requireZoneScan
History per bus, per site, per area
GET /api/imss/clean-history · OpsCleaningHistory.tsx · client-portal/bus
Scope of works, run as a round
src/server/imss-cleaning-round.ts evaluateRound · imss_cleaning_scope_areas imss_cleaning_zone_verifications · patrol/cleaning-rounds · OpsCleaningServices.tsx
Periodic and deep-clean cadence
src/server/imss-jobs/periodic-cleaning.ts sweepPeriodicCleaning · imss_periodic_cleaning_tasks · v3 cleaning_periodic
Inspection templates from real standards
src/server/imss-inspection-library.ts · /imss/inspection-library · v3 cleaning_inspection
Defect capture and closure
src/server/api/imss/cleaning-defects/PATCH.ts · migration 0014
Contract KPIs, computed not compiled
src/server/api/imss/cleaning-kpi/GET.ts · computeCleaningKpi
Abatement worked out, and shown working
src/server/imss-cleaning-kpi-basis.ts · client-portal/cleaning-kpi
Non-conformance register with root cause
imss_cleaning_non_conformances · NC_ROOT_CAUSES
Statistical sampling with a stored seed
docs/research/cleancore-roadmap.md G33
Complaints, and the answer that went back
ADR 0053 · src/server/imss-qms.ts respondToFeedback · imss_customer_feedback · /imss/customer-feedback
Fleet register
imss_depot_buses · /imss/depot-buses · client-portal/bus-register
Per-bus cleaning board
ADR 0025 · imss_bus_cleaning_tasks · /imss/bus-cleaning
Exclusions with a charge decision
ADR 0026 · imss_bus_cleaning_exclusions
Graffiti to a police report
ADR 0024 · src/server/imss-graffiti.ts · /api/imss/graffiti-reports
SWMS sign-on that actually blocks work
ADR 0053 · bus-cleaning-tasks/PATCH.ts swmsGate
Controlled documents and acknowledgement
ADR 0053 · imss_controlled_documents
Hash-chained audit trail
src/server/imss-audit.ts · uq_imss_audit_events_org_sequence
Induction and onboarding register
ADR 0053 · imss_onboarding_programmes · evaluateOnboardingGate
Complaint traced back to training
ADR 0053 · src/scripts/imss-maintenance/seed-workforce-qms.ts
Consumables and reorder
src/server/imss-consumables.ts · /imss/consumables · v3 cleaning_stock
Customer supply requests
client-portal/supply-request · client-portal/supply-requests · client-portal/supply-catalogue · /api/imss/supply-requests
A portal the customer opens themselves
src/server/imss-client-portal.ts · client-portal-doors.test.ts · client-portal/overview · client-portal/cleaning-stats · client-portal/depot-cleaning
Customer sign-off on inspections
src/server/api/imss/client-portal/POST.ts inspection-signoff · ClientQuality.tsx
Monthly KPI pack, one click
client-portal/cleaning-kpi CSV export
The customer raises their own non-compliance
docs/research/cleancore-roadmap.md G19 (wave 3)
CleanCore Estimator
ADR 0051 · src/lib/imss-estimator-core.ts · imss_estimates · /imss/cleancore-estimator

Not built yet

What CleanCore does not do, said before you ask.

A feature page that reads as complete is the easiest way to lose an evaluation later. These are the gaps, in the same words we use in a tender response.

Statistical sampling with a stored seed

Roadmap

Inspections drawn to an AQL rather than chosen by whoever is walking, with the randomisation seed stored so the sample can be defended.

On the roadmap. It is not built, not scheduled, and not something to plan a contract around.

First included in the Enterprise tier

The customer raises their own non-compliance

Roadmap

A finding the customer enters themselves, reconciled against yours, so the monthly number is agreed before the invoice rather than after it.

On the roadmap. It is not built, not scheduled, and not something to plan a contract around.

First included in the Enterprise tier

And plainly, what is absent

  • KPI 5 — continuous improvement — has no register yet. The client portal says so on the screen rather than showing an empty list.
  • There is no IoT, no robot telemetry and no BI dataset.
  • The cleaner’s app is the web round runner today. A native iOS and Android app is a later stage (ADR 0038), not a thing you have now.

Pricing

Per site, per month. Not per cleaner.

A cleaning contractor’s cost scales with the contracts they win, not with the number of people they employ — so charging per seat would tax the field rollout that makes the evidence trail worth having. Prices exclude GST.

Starter

One site, and a real record of it. No card.

Free

  • One site
  • Up to 5 users
  • Append-only clean history
  • Who cleaned it, by name

Pro

The contract you have to prove you delivered.

$149/site/month

  • Unlimited sites and users
  • Full clean history, kept for the life of the contract
  • Photographic evidence on every event
  • Contract KPIs and the abatement engine

Enterprise

Multi-depot operators, and anyone whose contract has an SLA in it.

Talk to us

  • Everything in Pro
  • Single sign-on (SAML)
  • API access and webhooks
  • Named support with response-time commitments

Where it runs

Hosted in AWS Sydney, with every organisation’s data separated in the database itself rather than only in the application. Yarning Crescent is Indigenous-owned and Supply Nation registered, so what you already spend on cleaning counts as Indigenous procurement. How the whole platform fits together.

See it on a real contract, with real data.

Twenty minutes and four logins: the clean history, the KPI and its abatement, the customer’s own portal, and the safety gate refusing work it should refuse.