Privacy

Short version: no accounts, no tracking, no third-party cookies, no analytics that build a profile of you.

What's logged

The application's own access log — the only log we can actually read — records one line per request: the requested URL, the HTTP method and status (the platform's log viewer adds the timestamp). It does not contain your IP address (the address on each line is the hosting platform's internal proxy, identical for every visitor), your User-Agent, or your referrer. The stream is retained briefly by Fly.io; we don't export it or keep copies.

As with any website, the platforms that carry the traffic — Cloudflare and Fly.io's edge (see “Hosting”) — do see your IP, User-Agent, and referrer in transit, in their own transient logs under their own policies. Nothing we operate routinely records them — the one exception is an error report (see "Error reporting" below), which includes request headers. Nothing here is used for analytics or profiling.

“Is this right?” reports

Pressing the report button on a crossing page stores the report: the crossing, the moment being reported about, when the button was pressed, what the page was predicting at that moment, and your browser's User-Agent string. No IP address or identifier is attached, so a report can't be traced to a person. Reports are kept indefinitely — they're part of the site's accuracy record.

What's stored on your device

The theme preference (auto / light / dark) and your chosen default crossing (if you star one) are kept in your browser's localStorage; which collapsible sections you've left open on crossing pages is kept in sessionStorage (cleared when the tab closes). None of it ever leaves your device. No cookies are set.

What's not collected

Hosting and data location

The site runs on Fly.io in their London (LHR) region, behind Cloudflare, which proxies every request and caches static content. Both platforms see standard request metadata (IP, URL, User-Agent) and retain it briefly in their own log streams under their own policies; neither sets cookies here.

Error reporting

When the server hits an unhandled exception, an error report is sent to Sentry so we can diagnose and fix it. The report contains the request URL and method, the request headers minus anything identifying (cookies and IP-revealing headers are stripped — the browser / OS hint and referrer do remain), and the stack trace. Client IP addresses are never included. The server also sends Sentry a once-a-minute "still alive" heartbeat and its own operational error logs; neither contains any visitor data.

Your rights

If you believe we hold data about you that you'd like accessed, corrected, or deleted, get in touch. In practice we hold no records addressed to you at all: we keep no store of IP addresses — your IP appears only in Fly.io's and Cloudflare's own transient log streams, which expire automatically on their schedules and which we can't search or selectively edit — and reports carry no IP or identifier. So there is usually nothing to delete; if you think otherwise, tell us what and we'll investigate.

Changes

If this policy ever changes materially, the new version will be dated and the previous version preserved (it's in the site's version control). Last updated: 19 July 2026.