Privacy
What we do and don't collect
Calculations happen entirely in your browser. Your engineering inputs are not uploaded or stored. If you voluntarily submit feedback, only the feedback you provide is sent to us.
Your calculations
The calculation engines are JavaScript that runs on your device. Changing a design speed or a grade sends nothing and waits for nothing — the answer is computed locally and appears immediately. You can disconnect from the network entirely after the page loads and the calculators will keep working.
You can check this in your browser's network panel. Using the calculator triggers no request carrying your numbers. You will, after a while, see one request to/api/ux: that is the interface measurement describedbelow, and it records that a control was used, never which value you set or what the calculator returned.
Calculator state is written into the page URL so a calculation is shareable. That URL stays in your browser unless you choose to share it. It is not sent to us, and the feedback form deliberately strips the query string before submitting.
Feedback you submit
When you use the feedback form, we store only:
- which calculator you were using
- whether you marked it useful
- the message you typed, if you typed one
- the path of the page, without the query string
- the time of submission
We do not store your inputs, your name, your email, or an account identifier, because there are no accounts. Please don't put personal or project-confidential information in the message field — it isn't needed, and we'd rather not hold it.
Your IP address is used transiently to rate-limit submissions and is not written to the database.
Analytics
We use Cloudflare Web Analytics, which is privacy-preserving: it sets no cookies, does not fingerprint visitors, and does not track people across sites. We use it to see which calculators get used so we know which ones to build next. There are no third-party advertising or tracking scripts on this site.
How we measure the interface
To work out which parts of a calculator are confusing, we collect coarse, aggregate interaction data: roughly where the mouse pointer spends time, where people click, clicks that land on something which turns out not to be clickable, how far they scroll, which sections they reach, and how long a section is on screen while the tab is active. It goes to our own servers, not to a third party.
Mouse position is not recorded as a path. Your pointer's position is rounded into a coarse grid — one cell is about a twenty-fourth of the window's width — and only a count per cell is sent, batched every 45 seconds. There is no trail to reconstruct, because one is never created.
What this never collects
- No session replay. We cannot play back what you did, and the data we hold could not be used to build such a thing.
- No identifier of any kind. No cookie, no stored ID, no fingerprint, no account. We cannot tell whether two page views came from the same person or two different people, so there is no per-visitor history to hold.
- No calculator inputs or results. Your design speed, grade, curve lengths and computed values are never sent — not to this system, not anywhere.
- No typed text, keystrokes, clipboard contents, or page text.
- No web addresses carrying your inputs. Because a shareable calculator link puts your numbers in the address bar, only the bare page path is ever recorded — the part after the
?is stripped before anything is sent. - No names, email addresses, or anything you didn't type into the feedback box.
The system accepts a fixed list of things it is allowed to record, and refuses anything else outright rather than ignoring it. Where a page section is identified, it is by a general label such as “sources” or “diagram”, never by the words on the page.
Where it goes, and for how long
Aggregate counts are stored in Cloudflare Workers Analytics Engine, which keeps data for about three months. We keep daily summary totals for longer so we can see trends, but those are page-level aggregates — no individual interaction survives.
Your IP address is used transiently to rate-limit requests and is never stored with the interaction data.
If you'd rather not
Turn it off here. The setting takes effect immediately and stays on this device. It stores a single on/off flag in your browser — nothing that identifies you, and nothing that is ever sent to us.
Currently on.
Needs JavaScript. If it isn't working, blocking requests to /api/ux has the same effect.
We also honour Global Privacy Control and Do Not Track: if your browser sends either, this measurement is skipped without you doing anything. Blocking/api/ux or disabling JavaScript stops it too — and the calculators keep working in every case, because they never depended on it.
Cookies
We set no cookies — not for analytics, not for anything. Your colour theme preference is stored in your browser's local storage and never leaves your device.