Privacy

No accounts, no profiles, no raw IP addresses. Here is exactly what is kept and why.

This policy covers the Feeling Forecast website. The site is run by the operator of Feeling Forecast, an individual, and is the data controller for anything described here. Contact: doc@feelingforecast.com.

The short version: the site never asks who you are, and it is built so that it cannot work it out later either. There are no accounts and nothing you submit is linked to a name, an email address, or a profile.

What is stored when you submit a feeling

One row is written per submission. It holds:

  • The feeling you picked — one value from a fixed list.
  • The time — the UTC date and the UTC hour, plus a timestamp.
  • A hash of a visitor id — the site issues your browser a random id, keeps it in a cookie, and stores a salted SHA-256 hash of it. The id is random and means nothing on its own; it exists only to notice a second submission from the same browser on the same day.
  • A hash of your IP address— salted SHA-256, plus a small counter marking which of that address's daily allowance the submission used.

Your IP address is never written to the database in readable form, and neither is your browser's user-agent string. The IP is used in memory to run the rate limit and the bot check, then hashed. To be precise rather than flattering: a salted hash of an IP is pseudonymous, not anonymous — nobody can reverse it without the secret salt, but it is still a stable per-address identifier, which is why it is treated as personal data here.

What is not stored

  • No name, email address, phone number, or account of any kind.
  • No free text — you cannot type anything into this site, only choose from a list.
  • No raw IP addresses, and no user-agent or device fingerprint.
  • No location beyond what an IP address implies while a request is being handled.
  • No advertising identifiers, and no cross-site tracking.

Why it is stored

  • To publish the forecast — the daily chart is the point of the site, and it is just a count of the feelings submitted.
  • To keep the poll honest — the two hashes are what enforce one submission per browser per day and a daily quota per network address. Without them the numbers would mean nothing.
  • To keep the site up — rate limiting and the bot check protect it from bursts and automated abuse.

Where UK/EU data protection law applies, the lawful basis is legitimate interests (Article 6(1)(f)): publishing an aggregate poll and preventing it from being trivially manipulated, using the least identifying data that can do the job. The feeling you pick is not tied to you, is never published individually, and appears publicly only inside a daily count.

What is published

Only aggregate counts: for each day, how many people picked each feeling in each hour. The raw submission rows are never reachable from the public site or the public API — there is no endpoint that returns them. They are visible only to the site operator through a password-protected admin page.

Cookies

The site sets one strictly necessary cookie for the one-per-day limit, and may set analytics cookies. This is set out in full on the cookie policy.

Who else processes data

The site runs on third-party infrastructure. These providers process data on the operator's behalf:

  • Vercel — hosting. Handles every request, and therefore sees IP addresses and request metadata in the normal course of serving the site. Also provides the privacy-friendly page analytics described in the cookie policy.
  • Neon — the managed Postgres database that stores the rows described above.
  • Cloudflare — the Turnstile bot check that runs before a submission is accepted. Cloudflare receives your IP address and signals about the browser session in order to decide whether you are a bot.
  • Upstash — the store backing the burst rate limit, keyed on your IP address.
  • Google Analytics — page analytics, active only when the site is configured with a measurement id. See the cookie policy, including how to opt out.

These providers operate globally, so data may be processed outside your country, including in the United States. Nothing is sold, and nothing is shared for advertising.

How long it is kept

  • Published daily charts — kept indefinitely. That is the archive, and it contains counts only, nothing about individuals.
  • Raw submission rows— kept for as long as the site runs. They are what makes it possible to re-run or correct a day's aggregation, and they contain no direct identifiers, only the hashes described above.
  • Rate-limit records — short-lived; they expire automatically within minutes.
  • The visitor cookie — up to about 400 days in your browser, which is the maximum browsers allow. You can delete it at any time.

Your rights

Depending on where you live, you may have the right to access, correct, delete, or object to the processing of your personal data, and to complain to a data protection authority.

There is an honest limitation here. Because submissions are stored only as salted hashes, the site cannot identify which rows are yours from an email asking about them — and it will not ask you for your IP address in order to go looking, since that would mean collecting more identifying information than the site otherwise holds. Where the law provides for this (for example Article 11 UK/EU GDPR), a controller is not required to acquire extra data purely to enable identification. Practically: deleting the site's cookie removes the only identifier you control, and the daily rows age into meaningless counters regardless. If you have a specific concern, write to doc@feelingforecast.com and it will be dealt with as far as it technically can be.

Children

The site is not directed at children and asks for no information that would identify one. It is not intended for use by anyone under 13, or under the minimum age of digital consent where you live if that is higher.

Security

Identifiers are salted and hashed before storage, all database access happens server-side, the admin area is password-protected, and the site is served over HTTPS with a restrictive set of security headers. No site can promise perfect security, and this one does not.

Changes

If this policy changes, the date below is updated. Substantive changes will be reflected here rather than announced individually, since there is no mailing list to announce them to.

Last updated 30 July 2026