1. Start with an exact designated record
Every place file stores the Environment Agency bathing-water name, EUBWID, profile URL, record coordinate and the date the England designation register was checked. The conditions endpoint accepts only one of these reviewed place slugs; arbitrary coordinates are rejected.
2. Keep the official profile outside the summary layer
The exact Environment Agency profile is the verification route for annual classification, sample history and pollution-risk warnings. Those fields are not copied from a generic nearest WIMS point. This prevents an old or unrelated sample from looking like the current official bathing-water result.
3. Give live sources a time budget and a failure state
The live endpoint gives weather up to 3.5 seconds, a river-station lookup up to two seconds and a returned station reading up to 1.5 seconds. It combines duplicate in-flight requests and uses a five-minute process cache. A total weather failure returns HTTP 503. A river file with weather but no gauge is labelled partial rather than complete.
4. Request gauges only where they can frame a river question
A nearest Environment Agency gauge is requested only for river files. Its station, catchment, straight-line distance, unit and reading time remain visible, and its relationship to the bathing reach is explicitly unverified. Coast and lake files do not request a nearest river gauge merely to fill a box.
5. Require user observation
Access, signs, colour, odour, debris, flow or surf, entry, exit, other water users and equipment must be assessed at the place. A remote desk cannot complete these checks.
6. Use stop and open states
An unresolved critical check stays open. A concerning observation is a stop condition. Completing every field records the review; it is not a declaration that entering the water is safe.
7. Save the decision, not a public review
Trip checks saved to the logbook remain in browser local storage. There are no user accounts, background alerts or public crowd reports in this release.