The model looks. The server calculates. Every rule is here.
The same code that gives a toilet its class.
Slide the four scores as the model would give them, switch observations on and watch what the fixed rules do with them. This lab calls exactly the same functions as the server.
The model describes. A published rule decides.
- A vision language model (a Claude model by Anthropic; which model exactly is a server setting, stored with every measurement).
- First inventories what the photos show: bowl, floor, washbasin, dispensers, door, light.
- Gives each pillar a score from 0 to 100 and writes two or three businesslike sentences.
- Looks for faces, mirror reflections and documents and returns the regions that must be blurred.
- Does not decide the class. The server does, with the fixed rules below.
- Guesses nothing that is out of frame. A washbasin out of frame is “unknown”, never “no soap”.
- Does not decide alone. A class takes two inspectors on two days.
- Sets pillars nothing was observed for to the neutral 60.
- Puts a fixed ceiling on a pillar for every observation. Litter on the floor and hygiene 92 do not go together.
- Weighs the four pillars into one LooIndex and derives the class from it.
- Stores with every measurement which rules intervened and which engine version was used.
Four pillars, one number.
LooIndex = 35 % × hygiene + 25 % × stock + 20 % × accessibility + 20 % × safety, rounded to a whole number.
The thresholds are fixed and inclusive: 85 or higher is A, 70 to 84 is B, 50 to 69 is C, below that D.
Four steps, always in this order.
The server applies them to the model’s four scores. The ceilings come last, so a floor can never undo a ceiling.
- 1Clamp
Every score becomes a whole number between 0 and 100.
- 2Neutralise what was not observed
When neither the photo nor a tap says anything about a pillar, that pillar becomes 60, whatever the model gave. An unseen washbasin may not be guessed high or low.
- 3The accessibility rule
A regular toilet never scores below 60 on accessibility: it is not penalised for not being an accessible toilet. A toilet that does present itself as accessible is judged on what it delivers. The “step-free” tap lifts the pillar to at least 70.
- 4Ceilings
Every observation in the table puts a maximum on its pillar. Several ceilings at once: the lowest wins.
- 50litter on the floor
- 80wet spots on the floor
- 60stained porcelain
- 88porcelain only acceptable
- 45toilet paper empty
- 78toilet paper low
- 55no soap at the washbasin
- 85no hand drying
- 50a step at the door of a toilet presented as accessible
- 50a step at the door of a room with grab bars
- 40door lock missing
- 65door lock weak
- 70privacy gaps around the door
- 70flickering light
- 85dim light
A facility alert for the operator only arises from something observed: an active ceiling, a negative tap, or a deficit the model marked as urgent. “Check the soap” about a washbasin that was out of frame is dropped.
What a camera cannot see, the inspector taps.
At the door, in four fixed questions. A tap only fills in what the photo cannot show.
When a tap contradicts the photo (stock full tapped, but the holder is visibly empty), the photo counts and the review names the difference.
Two voluntary questions (selfie-friendly, worth a visit) never reach the model and never count.
Two people, two moments, never one photo.
One measurement is one vote. A toilet only gets its public class once 2 different inspectors have measured it, at least 24 hours apart.
- Every measurement is valid for 180 days. When fewer than 2 valid measurements remain, the class expires and the pin turns grey.
- Per pillar the middle value (median) of the measurements that observed that pillar counts. A photo without the washbasin does not drag the stock pillar of a good toilet towards 60.
- When the same inspector measures the toilet again, the new measurement replaces the previous one. The last 12 measurements per toilet are kept.
- A measurement from more than 300 m away is refused. Measuring happens on site.
The original never leaves the phone.
In the same call the model looks for people, faces, mirror reflections, name tags and legible documents and returns their regions. The inspector’s phone blurs those regions before the photo is uploaded. Location and device data are stripped from the image file. When blurring fails, publication is blocked.
Honestly: a design choice, not research.
The weighting 35/25/20/20 comes from the first version of the engine. The order (hygiene heaviest, then stock, then safety) matches what public surveys keep showing: people avoid a toilet first for dirt and smell, then for missing paper and soap, then for a lack of privacy. The exact numbers are judgement.
That is why there is an anonymous poll below. Visitors rank the four pillars; we count with a Borda count (4 points for first place, 1 for last) and keep only counters, never votes. From 500 votes onwards we use the outcome as input for a new weighting.
One pillar is not up for a vote: accessibility stays at 20 %. For a small group accessibility decides everything and for the majority it is invisible; a public poll would push that weight towards zero. That weight is a LooView policy decision, and we would rather say so out loud than hide it in a poll. Visitors of looview.io are not a cross-section of the population either; the poll calibrates the weights for the people who use LooView.
What counts most for you at a public toilet?
Tap the four points in order, the most important first. The poll is anonymous: we keep counters, never votes. From 500 votes onwards we use the outcome to calibrate the weights of the score.
Accessibility stays at 20 %: a LooView decision, not a poll outcome.
An old measurement is never silently recalculated.
Every measurement stores the engine version it was calculated with. When a number in this method changes, the engine gets a new version number and old measurements keep their old calculation. A toilet that was Class B last month is never silently recalculated.
Engine 2.4.0Three places where you can verify it.
- Right after a measurement: the pillar scores, the features that were seen and the interventions under “How the score was calculated”.
- On every toilet page: the class, the number of measurements, the validity and the inspector’s review.
- On this page: every weight, threshold and ceiling, filled from the same code that calculates the score.
Something wrong? Mail info@looview.io. A reasoned correction to a ceiling or threshold is taken seriously and gets a new version number.
