Browse all guides
The compliance score
One figure, on your dashboard and at the top of Health & Safety, worked out from your own records. This is every point of it, including the arithmetic, because a score you cannot explain to a client is not worth having.
On this page
The compliance score is a number between 0 and 100 derived from three things you already keep in CleanFlo: your incidents, your audits and your risk assessments. Nothing else feeds it. It is not an assessment of your business by us, there is no benchmark against other companies in it, and no part of it is a judgement anyone at CleanFlo has made about you.
It is recalculated from your live records every time a screen carrying it loads. There is no nightly job, no cached figure and no lag: close an incident and refresh, and the number has moved.
The two places it appears
The score is shown twice, in two cards that are deliberately not identical. The dashboard card is the glance version, written to tell you whether to click. The card at the top of Health & Safety is the working version, and it will show you the whole sum.
When every category is clean, the same card reads Nothing outstanding, with the sub-line "No open incidents, no overdue audits and no high-risk assessments." That verdict appears only when not one of the four categories holds a single deduction, which means the score underneath it is 100. There is no partial version of it.
Before you have recorded anything
A brand new account has no incidents, no audits and no assessments, and the arithmetic would happily give it 100. The dashboard refuses to do that, because telling a business it scored full marks on an inspection it never sat is worse than telling it nothing.
So with no records at all the dashboard ring is empty, the number is replaced by a dash, and the card reads Not started with one line underneath: "Log an incident, schedule an audit or write a risk assessment and your score appears here."
Everyone starts at 100
The model is subtraction, and the card says so in its own words when you expand it: "Everyone starts at 100. Points come off for four things only, each capped so no single area can zero your score, and recent events count for more than old ones."
Three properties follow from that, and they are worth understanding because they are what stop the number being nonsense.
- Every deduction is named. Nothing is taken off anonymously. Each point comes from one identified record, with the reason printed beside it, so you can read the whole sum back to a client or to us.
- Recent events weigh more than old ones. A hazard that materialised last week says more about how you run today than one from three years ago. Old records fade, but they never vanish while they are still open.
- Each category is capped. No single category can take you to zero, so improving one area is always visible and there is always a route back. The four caps sum to exactly 100, which is why the worst possible state scores 0 and every lost point is attributable.
Incidents, audits, RAMS and your compliance vault
This card words its verdict differently from the dashboard one. With nothing outstanding it reads "Nothing is outstanding. Every incident is closed, every audit is on time and no active assessment is carrying High or Critical residual risk." Otherwise it states the sum: the points deducted from 100, and which category cost the most.
The four categories, and their arithmetic
Show working opens the breakdown. Four rows, always in the same order, each showing either No deductions or the points it has taken. A clean row cannot be expanded, because there is nothing inside it. A dirty one opens onto its own explanation and then every record behind it.
| Category | Cap | What is counted |
|---|---|---|
| Unresolved incidents | 35 | Incidents whose status is Open or Under Review. Closed ones are not in the sum at all. |
| Overdue audits | 25 | Any audit not marked Completed whose due date is already behind us. |
| Unmitigated risk | 25 | Active or Under Review assessments whose worst residual score is 10 or more, which is High or Critical. |
| Assessments past review | 15 | Active or Under Review assessments whose own review date has gone by. Assessments with no review date are not counted. |
Unresolved incidents, capped at 35
Each open incident is worth three numbers multiplied together. Its severity sets the base at 10 for Critical, 7 for High, 4 for Medium and 2 for Low. Its status scales that: Open counts at full weight, Under Review at 0.6, because being actively worked on is genuinely better than being ignored. Its age then fades it: full weight within 30 days, 0.6 within three months, 0.3 within a year, and 0.15 beyond that.
The reason printed against each one reads the three factors back to you, for example "Medium severity, still open, within 30 days". An incident with no date on it is treated as current, and a date typed in the future is treated as today rather than as a negative age.
Overdue audits, capped at 25
A flat step, by lateness: 3 points up to a week overdue, 5 once it is more than seven days, 8 once it is more than thirty. An audit is on time for the whole of its due date, so it only starts costing anything the day after. The reason reads "1 day overdue" or "12 days overdue".
Unmitigated risk, capped at 25
CleanFlo takes the worst residual score in each assessment, which is the risk that remains after your controls, and charges 4 points if it lands in the High band and 8 if it lands in Critical. Below 10 there is no deduction. The reason names the number, for instance "Worst residual risk 12/25 (High) after controls".
Assessments past review, capped at 15
A flat 2 points for each active assessment whose review date has passed, with the reason "Review was due yesterday" or "Review was due 40 days ago". This is the cheapest category to clear and the one most businesses leave running, because a review date set a year ago is easy to forget.
One score, worked out in full
Here is the whole sum for a business with two live incidents, one late audit and one assessment still carrying High residual risk. Nothing is rounded until the end, and the final figure is rounded to a whole number.
| Record | Why it counts | Points |
|---|---|---|
| INC-2026-031, Slip & Fall | Medium severity (4), still open (×1), today (×1) | 4 |
| INC-2026-030, Chemical Spill | High severity (7), under review (×0.6), 5 days ago (×1) | 4.2 |
| Quarterly chemical store check | 12 days overdue, so the middle step | 5 |
| RA-2026-013, Window cleaning at height | Worst residual 12 of 25, which is High | 4 |
| Total deducted | No category anywhere near its cap | 17.2 |
| Score | 100 minus 17.2, rounded | 83 |
Everyone starts at 100. Points come off for four things only, each capped so no single area can zero your score, and recent events count for more than old ones.
Caps: unresolved incidents 35 · overdue audits 25 · unmitigated risk 25 · assessments past review 15. Calculated from 12 incident records.
If a category ever does run past its cap, CleanFlo tells you rather than quietly discarding the surplus. The row gains a line reading "Capped at 35 points for this category", followed by how many further points were not deducted and why: so that no single area can take your score to zero.
The three tiers, and what they colour
There are exactly three bands, and their thresholds are fixed: good at 90 and above, warn at 70 and above, and bad below 70. They are used to colour the ring and the percentage green, amber or red, and that is all they are used for. The tier is never printed as a word anywhere in the app.
What deliberately does not count
As much thought went into the exclusions as into the weights, and most support questions about the score turn out to be about one of these.
Moving the number
Work down the breakdown, largest first, because the rows are already sorted that way inside each category. Four moves cover almost every case.
Close the incidents that are actually finished
Most open incidents are open because nobody pressed the button, not because anything is outstanding. Open each one, read the actions taken, and press Close Incident if the action is genuinely done. This is usually the largest single recovery available.
Do the overdue audit, or move its date honestly
An audit past thirty days is costing eight points. Doing it and pressing Mark as Completed clears the deduction outright. Moving the due date also clears it, which is a real hole in the design and one you should only use when the scope has genuinely changed.
Get the High residual risks down
Open the assessment, find the hazard whose residual score is 10 or more, and write a control measure that actually lowers it. Four points if it is High, eight if it is Critical, and it is the only category where the fix improves the work rather than the paperwork.
Review the assessments that are past their date
Two points each. Read the assessment, change what has changed, and push the review date forward. If nothing has changed, say so in the notes and move the date anyway, because that is a review.
What you should not do is manage the number rather than the work: deleting incidents, archiving assessments you are still working to, or pushing every review date out a year. All three raise the score and all three are visible to anyone who reads the records underneath it, which at some point will be a client.
Common questions
Do my clients see this score?
Why is my score not 100 when I have only just started?
The dashboard says Not started but Health & Safety shows 100%. Which is right?
Can I change the weights or the caps?
Does an old open incident keep costing me forever?
Still stuck?
Open Support in the app and send us a ticket, or email the team. A real person reads every one.