The short version
- You can use the whole calculator without giving us anything that identifies you.
- Your calculator inputs stay in your own browser. They are never sent to us.
- If you ask for a weather forecast, the coordinates you request are sent to our server and to a weather service. Your IP address is not passed on to them.
- We set no advertising or cross-site tracking cookie. Google Analytics, which runs on the calculator and on this page, sets its own measurement cookies; one further optional cookie remembers a feature toggle, and only if you use that feature.
- The contact form is the only place we ask for your name and email, and it only goes to an inbox.
Stored in your browser, never sent to us
This data lives in your device's local storage. It never leaves your browser, we cannot read it, and clearing your site data deletes it permanently.
| Key | What it holds | Why | Lifetime |
|---|---|---|---|
heat-guidance-calculator.inputs.v1 |
Your last calculator inputs — temperature, humidity, workload, acclimatization state, °C/°F preference. | So the tool reopens where you left it instead of resetting every visit. | Until you clear site data. |
heat-guidance-calculator.weekPlan.v1 |
Your week-planner adjustments, and — if you used the planner with a location — the latitude and longitude that plan was built for. | So a multi-day plan survives a page reload. | Until you clear site data. |
This is the complete set. The site sets no other cookie, and there is no advertising, cross-site, or session-replay cookie of any kind.
Location
The calculator can use your location to fetch a local forecast. Nothing happens until you press the button — your browser then asks your permission, and you can refuse and type a place name or enter conditions by hand instead. Every feature still works if you decline.
If you do share it, your browser gives us a latitude and longitude, which we round to four decimal places (about 11 metres) before use. That coordinate is sent to our server, which forwards it to a weather provider to get the forecast. It is not stored against you, and it is not combined with your IP address or anything else to build a profile.
One thing worth knowing: a forecast response is cached on our server for up to 24 hours, and the cache key contains the requested coordinate at that ~11 m precision. So for up to a day, our infrastructure holds a record that somebody asked about that point. The cache entry contains only the coordinate, the date, and the weather data — no IP address, no device identifier, and nothing tying it to the person who asked. It is a weather cache, not a location history.
Collected automatically when you load a page
Server and network logs
The site is hosted on Cloudflare Workers. Like any web host, Cloudflare processes the request data needed to serve and protect the site: your IP address, the page you requested, your browser's user-agent string, and approximate country. This is handled by Cloudflare under its own retention policies as our infrastructure provider. We do not build reports from it or link it to anything else.
Rate limiting
To stop one client from overwhelming the free API, each request to
/api/v1/* is counted against a short-lived bucket. There
are two counters, and they treat your IP address differently, so both are described
here rather than summarised into one comforting sentence.
The counter we wrote ourselves passes your IP address through a short non-cryptographic hash first, and stores only that hash, for the length of the limit window — 10 seconds, 60 seconds, or one hour. We should be straight about the limits of that: a 32-bit hash of an IP address is obfuscation, not real anonymisation, and someone holding the stored value could work backwards to candidate addresses. It is used because it is short-lived and cheap, not because it makes the data untraceable. Nothing is written to disk and nothing survives the window.
The second counter is Cloudflare's own rate limiter, which we ask to count against your IP address directly, unhashed. Hashing it there would be theatre: the counter runs inside Cloudflare's network, which already sees your IP address because it is the network delivering your request — the same processing described under Server and network logs above. It is handled by Cloudflare under its own retention policies. We never see it, store it, or query it.
Analytics
We use Cloudflare Web Analytics on the home page and on the per-standard,
per-country, and topic pages. It is privacy-first by design: no
cookie, no localStorage, and no fingerprinting of your
device. It reports aggregate page views and referrers.
The calculator, this page, and the About and Contact pages additionally load Google Analytics (gtag.js, property G-0WPW3BDB1Z), which does set cookies. The per-standard, per-country, and topic pages do not load it. There is no advertising pixel and no session recording anywhere on this site.
API usage counts
Requests to /api/v1/* are counted so we can see which
standards and which endpoints are actually being used. Verifying a jurisdiction's
heat rule against its primary sources takes hours of manual work, and this is how we
decide where that effort goes — an engine nobody evaluates is not where the next
week should be spent.
Four things are recorded per request, and this is the complete list: which endpoint was called, which standard was evaluated (for the evaluate endpoint only), the HTTP status code, and how many milliseconds the request took.
What is deliberately not recorded matters more, so it is spelled out: no IP address, hashed or otherwise; no coordinates — the weather endpoints take a latitude and longitude and it is dropped rather than stored, because a coordinate is a location and a stream of them is a movement trace; no user-agent, headers, or cookies; no session or request identifier; and no country, even though Cloudflare offers it to us for free. Country was rejected specifically because this page says we do not build reports from the request data Cloudflare processes on our behalf, and writing it into a dataset we query would be building one.
The consequence is the point: no row can be linked to a person, and no two rows can be linked to each other. They are counts of events, not records of visitors. The data is sampled and is retained for three months.
The contact form
When you send a message through the contact page, we receive:
- Your name — required, up to 100 characters.
- Your email address — required, so a reply can reach you.
- The topic you picked from the dropdown.
- Your message — up to 5,000 characters. Please don't put health information about a named person in it; see the note below.
- The page you came from — a hidden field records the referring page on this site, so a correction about a specific standard arrives with the context attached. It only ever records a page on this site, never an external one.
All of it is formatted into a single email and delivered to the operator's inbox through Cloudflare's email sending service. Your address is set as the reply-to so a response goes straight back to you. There is no database and no CRM behind this form: the message exists as an email, and it is kept for as long as the operator keeps their correspondence.
The form is protected by Cloudflare Turnstile, a CAPTCHA alternative. Loading the contact page contacts Cloudflare, which assesses whether you are a bot; your IP address is included in that check. Turnstile is designed not to track users across sites. Submissions are also rate-limited (3 per minute, 10 per hour) by the same two mechanisms described above.
Please do not send health information. This form is for the calculator itself — corrections, standards to add, questions about a result. It is not a medical channel, it is not an emergency channel, and it is not a secure one. If someone is showing signs of heat illness, call your local emergency services.
Who else your data reaches
Loaded by your browser
These receive your IP address because your browser connects to them directly. They are the complete set of third-party origins this site loads.
| Service | What for | When |
|---|---|---|
| Cloudflare | Hosting, analytics beacon, API usage counts, rate limiting, Turnstile on the contact page, and delivery of contact-form email. | Every page load; API counts on API requests; Turnstile and email only on the contact page. |
| Google (googletagmanager.com) | Google Analytics page-view measurement. Sets its own cookies. | The calculator, About, Contact, and this page. Not loaded on the per-standard, per-country, or topic pages. |
| CARTO | Map background tiles. | Only when the map is displayed. |
| jsDelivr | Country boundary shapes for the map (Natural Earth data). | Only when the map is displayed. |
Fonts are self-hosted, so no font CDN sees you. Nothing on this site is loaded from an advertising or tracking network.
Called by our server, not by you
When you request a forecast or an alert level, our server makes that call on your behalf. These providers see the coordinate or place name and our server's address — never your IP address, and nothing that identifies you.
- Open-Meteo — forecasts, air quality, and place-name search.
- US National Weather Service (weather.gov) — US forecasts.
- AEMET (Spain), Météo-France, and GeoSphere Austria — national heat-alert levels.
- Zippopotam.us and OpenDataSoft — postcode and place lookups.
The public API
The REST API at /api/v1/ is free and needs no key or
account. Requests are rate-limited by hashed IP exactly as described above. If you
send coordinates to it, the caching behaviour described under Location applies to
your request too. Nothing about an API caller is logged beyond what Cloudflare logs
for any request.
Your choices and rights
- Delete everything stored locally — clear this site's data in your browser settings. That removes both storage keys and the cookie. Nothing of yours remains on our side to delete afterwards.
- Refuse location — decline the browser prompt, or revoke the permission in your browser's site settings. Search by place name or enter conditions manually instead.
- Use it without the map — if you never open the map, CARTO and jsDelivr are never contacted.
- Ask about your data — depending on where you live, you may have rights of access, correction, deletion, or objection under the GDPR, UK GDPR, or similar law. Because we hold no account and no profile, in practice the only thing we might hold about you is an email you sent us. Ask and it will be deleted.
Where the GDPR applies, our lawful basis is legitimate interest for the security and rate-limiting measures and for aggregate analytics, and consent for browser location, which you grant or refuse at the prompt.
Children
This is an occupational tool for workers, supervisors, and safety professionals. It is not directed at children and does not knowingly collect anything from them.