ELO Privacy Policy
DRAFT: needs lawyer review. This was written by the GTM lead from a read of the app code on 29 Oct 2026. It is not legal advice. Clauses marked ⚑ AGE-DEPENDENT (DECISION: age floor) have two versions. Keep Option A if ELO launches 18+, or Option B if it launches 16+, and delete the other. Questions for counsel are at the end.
Effective date: FILL: effective date Applies to: DOMAIN and every page under it ("ELO", "we", "us"). ELO is run by FILL: legal entity name, FILL: mailing address.
The short version
- You can check a rating and play Higher or Lower without an account. When you check a rating without signing in, we save nothing about the usernames you enter.
- If you sign in with Google, we create a public profile: your display name, photo, handle, rating, title and the stats you choose to add. Adults' public profiles appear on the ladder and in the Higher or Lower game. ⚑ AGE-DEPENDENT: under Option B (16+), add "Profiles of 16- and 17-year-olds stay private." You can hide or delete your profile at any time.
- Your rating is calculated only from stats you add. Nobody votes on you.
- We don't sell or rent your data, and we don't show ads.
- We use a small number of service providers (hosting, database, sign-in) and the public APIs of the platforms you link.
- Email FILL: contact email with any privacy question or request. We answer within 30 days, usually much sooner.
1. What we collect
1.1 If you don't sign in
| What | Why | How long |
|---|---|---|
| Usernames you type into the rating check | We send them to the matching platform's public API (Chess.com, Lichess, Codeforces, LeetCode, GitHub, AtCoder, Hacker News, Stack Overflow or Monkeytype), get the public stats, and show you a rating. | Not saved. The result exists only in your browser for that visit. |
A random guest ID in a cookie called elo_guest |
Keeps your Higher or Lower streak, best streak and accuracy between visits. It's a random number, not linked to your name or email. | The cookie lasts 1 year. Game stats tied to it stay until the guest record is cleared DECISION: guest data retention period. |
| Higher or Lower rounds | Records which two profiles you were shown, your guess and whether it was right, so the game can score you and make pairs harder as your streak grows. | Same as above. |
| Your IP address | Used briefly, in server memory only, to limit how fast one person can run rating checks or send reports, so the platforms we read from aren't overloaded and the report form isn't abused. | Not written to our database. Cleared within about an hour. Our hosting provider may keep standard server logs (see section 4). |
| Reports you send | If you report a profile: the reason, any details you write (up to 500 characters) and your guest ID. | Until the report is resolved and for DECISION: report retention period afterwards, so we can handle repeat abuse. |
| Usage analytics | Counts of page views and actions (for example "rating check completed", "game over at streak 7") so we can see what works. | See section 5. |
1.2 If you sign in with Google
When you sign in, Google tells us your name, email address, profile photo and a Google account ID. We ask only for the basic openid, email and profile permissions. We never see your Google password, and we can't read your Gmail, Drive or contacts.
| What | Where it comes from | Shown publicly? | Why |
|---|---|---|---|
| Google account ID | No | To recognise you when you sign in again | |
| Email address | No | To contact you about your account (for example about a report or a policy change). We don't send marketing email DECISION: product email / newsletter. | |
| Display name | Starts as your Google name; you can change it | Yes | Shown on your profile, the ladder, the game and share cards |
| Profile photo | Your Google photo | Yes | Shown on your profile, the ladder, the game (including to guests) and share cards. DECISION: let users remove or replace the Google photo |
| Handle | Generated from your name; you can change it | Yes | Your profile address: DOMAIN/u/yourhandle |
| X (Twitter) handle | Optional; you type it in | Yes, marked as unverified | So people can find you on X. We don't check that it's yours yet. |
| Headline | Optional; up to 80 characters | Yes | A short line about you |
| Birth year | You enter it once | No (only used to decide eligibility and privacy) | See section 6. ⚑ AGE-DEPENDENT: under Option A it only decides eligibility; under Option B it also decides whether the profile is private |
| Linked platform accounts | You enter the username and prove it's yours by putting a one-time code (like elo-AB12CD) in a public field of that profile |
Yes (the platform name, the stat and a link) | To calculate your rating from verified stats |
| Platform stats | Public APIs: Chess.com and Lichess ratings, Codeforces rating, LeetCode contest rating (Beta), GitHub follower count | Yes | The inputs to your rating |
| One-time verification codes | We generate them | No | Proving account ownership. They expire and are deleted after use. |
| Test scores | You type them in (SAT, ACT, GRE, LSAT, MCAT) | Yes, marked "self-reported" | Count at half weight in your rating |
| Achievements and proof links | You choose an achievement and paste a link | Yes (the achievement and its link) | Count in your rating once reviewed. We review proof links by hand. We never ask for uploads of IDs or certificates. |
| Rating and title | We calculate them | Yes | The point of the service |
| Rating history | We record each time your rating changes | Yes (as a small chart on your profile) | So you can see your progress |
| Who you follow | Your choices | DECISION: are follow lists public? | For the "people you follow" ladder |
| Game stats | Your plays | Yes (best streak on your profile) | Higher or Lower |
Session cookie elo_session |
We set it | No | Keeps you signed in for up to 30 days. It's signed so it can't be forged, and it can't be read by scripts on the page. |
1.3 What we don't collect
We don't collect ID documents, selfies, certificates, phone numbers, precise location, contacts, payment details, or anything from your Google account beyond the basics above. We don't scrape X or any other site for information about you.
2. What's public
ELO is a public ladder. When your profile is public, anyone on the internet can see your display name, photo, handle, headline, X handle, rating, title, rating history, the credentials you've added (with their verification level and proof links), and your best Higher or Lower streak. This includes:
- your profile page, which search engines may index;
- the ladder at DOMAIN/ladder;
- the Higher or Lower game, where your card (name, photo, headline, credentials) is shown to players, including guests, who guess whether you are rated higher or lower than someone else. Guesses never change your rating;
- share cards: images generated from your profile when anyone shares your profile link (for example on X, Discord or iMessage).
You can turn this off at any time with "Hide my profile" DECISION: hide toggle wording and location. Hidden profiles are removed from the ladder, the game and search results and their share cards stop rendering, though copies already shared elsewhere (for example a card someone posted on X before you hid it) are outside our control. You keep your rating while hidden.
Things other people do can never lower your rating.
3. Why we use your data (and our legal bases)
| Purpose | Legal basis (for people in the EU/UK) |
|---|---|
| Running your account, calculating your rating, showing your profile | Performing our contract with you (the Terms) |
| Showing adult profiles on the ladder and in the game (⚑ AGE-DEPENDENT: under Option B, state that 16–17 profiles are never shown and their data is used only to run their own profile) | Our legitimate interest in running a public ladder that people have chosen to join, balanced by your right to hide your profile at any time DECISION: consent vs legitimate interest for ladder/game appearance |
| Checking platform stats again to keep ratings current | Contract |
| Preventing fake credentials, impersonation and abuse; handling reports | Legitimate interest, and legal obligations where they apply |
| Analytics | Legitimate interest, using privacy-friendly analytics that don't track you across other sites (see section 5) |
| Answering your requests and complying with the law | Legal obligation |
Profiling. Your rating is calculated automatically from the stats you add, using the formula published at DOMAIN/regulations. It is a number on a game ladder and has no legal or similarly significant effect on you. We don't use it to make decisions about you, and our Terms forbid anyone from using it for employment, credit, housing, insurance or admissions decisions. You can object to it at any time by hiding or deleting your profile.
4. Who we share data with
We don't sell, rent or trade personal data, and we don't share it with advertisers, data brokers, recruiters or employers.
We use these service providers to run ELO. They process data on our behalf and only for that purpose:
| Provider | What they do | Data involved | Location |
|---|---|---|---|
| Vercel | Hosts the website and generates share-card images | All site traffic, including IP addresses in standard server logs | FILL: confirm Vercel region |
| Neon | Hosts our database | Everything in section 1 that we store | FILL: confirm Neon region |
| Sign-in | Your Google account details, when you sign in | Global | |
| DECISION: analytics provider | Usage analytics | Pseudonymous event data (see section 5) | FILL: analytics region |
| Google Fonts | Supplies a font used on share-card images | None. Our server fetches the font; your browser and data aren't involved. | n/a |
Platforms we read from. When you check or link an account, our server asks that platform's public API for the public stats of that username: Chess.com, Lichess, Codeforces, LeetCode (Beta) and GitHub. We send them only the username. We are not affiliated with any of them, and their own privacy policies apply to the data you keep on their sites. We use GitHub data only for showing your stats and rating, and never sell or export it.
Legal reasons. We may disclose data if the law requires it, to respond to valid legal process, or to protect someone's safety. We'll tell you unless we're not allowed to.
If ELO changes hands. If ELO is sold or merged, your data would move to the new owner under this policy, and we'd tell you first.
5. Cookies and analytics
We use two cookies, both necessary for the site to work:
| Cookie | Purpose | Lasts |
|---|---|---|
elo_session |
Keeps you signed in | 30 days |
elo_guest |
Keeps a guest's game streak | 1 year |
We don't use advertising or cross-site tracking cookies. Analytics are provided by DECISION: analytics provider without cookies and without building a profile of you across other websites. Events are tied to your guest ID or profile ID, never to your email, and never include usernames you typed into the rating check. DECISION: confirm cookieless analytics, otherwise add a consent banner
6. Age and young people
⚑ AGE-DEPENDENT (DECISION: age floor). Also flagged in: the short version (bullet 2), section 1.2 (Birth year row) and section 3 (ladder and game row).
Option A (18+): ELO is only for people aged 18 and over. When you set up your profile we ask for your birth year. If you tell us you are under 18, you won't be able to create a profile, and we delete the account information we received from Google. Because a birth year alone can't tell us your exact age, we treat anyone who might still be 17 as under 18. If we learn that someone under 18 has an account, we delete it. If you think a child is using ELO, tell us at FILL: contact email or use the "underage" report option.
Option B (16+): ELO is for people aged 16 and over. When you set up your profile we ask for your birth year, which can only be set once. Because a birth year alone can't tell us your exact age, we treat anyone who might be younger as the younger age.
- Under 16: you can't create a profile, and we delete the account information we received from Google.
- 16 and 17: your profile is private. It is calculated like anyone else's, but it never appears on the ladder, in the Higher or Lower game, in search results or on share cards, other people can't follow you, and we don't use your data for anything beyond running your own profile. These protections switch off only when you turn 18 by our calculation, and you'll still need to choose to make your profile public DECISION: what happens at 18 — auto-public or opt-in.
- If we learn that someone under 16 has an account, we delete it. If you think a child is using ELO, tell us at FILL: contact email or use the "underage" report option.
ELO is not directed at children, and we don't knowingly collect data from anyone under 13. If we learn we have, we delete it right away.
7. How long we keep data
| Data | Kept |
|---|---|
| Account, profile, credentials, rating history, follows, game stats | Until you delete your account |
| One-time verification codes | Until used or expired |
| Rating check usernames (no account) | Not stored |
| Guest game data | DECISION: guest data retention period |
| Reports | Until resolved, plus DECISION: report retention period |
| Hosting logs | Per the hosting provider's retention, typically a short period FILL: confirm Vercel log retention on chosen plan |
| Backups | Overwritten on a rolling basis within FILL: backup retention period |
8. Deleting your account
You can delete your account yourself from your profile settings by typing your handle to confirm. This permanently deletes your profile, credentials, rating history, follows, game stats, game rounds and any reports about you. Your share cards stop rendering. Deleted data disappears from backups as they roll over (section 7). Cards or screenshots that other people already posted elsewhere are outside our control, but we can help you ask for their removal.
If you'd rather keep your rating but stop being seen, use Hide my profile instead.
9. Your rights
Depending on where you live (including the EU, UK, Canada, Quebec and several US states), you may have the right to:
- access the data we hold about you and get a copy DECISION: self-serve data export;
- correct it (most of it you can edit yourself);
- delete it (section 8);
- object to processing based on legitimate interest, including appearing on the ladder and in the game (hide your profile, or ask us);
- restrict processing or port your data to another service;
- withdraw consent where we rely on it;
- complain to your data protection authority (for example the ICO in the UK, your local authority in the EU, or the Office of the Privacy Commissioner of Canada / Commission d'accès à l'information in Quebec).
Email FILL: contact email. We respond within 30 days and may need to confirm it's you, usually by asking you to write from the email on your account. We don't charge for requests and we won't treat you differently for making one.
10. Security
We store as little as we can: no passwords (Google handles sign-in), no ID documents, no uploads. Data is encrypted in transit (HTTPS). Database access is limited to the people who run ELO. Rating checks and reports are rate-limited. No system is perfectly secure. If a breach affects your data and creates a real risk to you, we'll tell you and the relevant authorities as the law requires (for example within 72 hours under GDPR).
11. International transfers
ELO's providers may store and process data outside your country, including in the United States FILL: confirm regions. Where the law requires it, we rely on safeguards such as the European Commission's standard contractual clauses or equivalent mechanisms offered by our providers.
12. Changes to this policy
If we make a meaningful change, we'll update the date at the top and tell signed-in users on the site (and by email for big changes) before it takes effect. Earlier versions are available on request.
13. Contact
- Privacy questions and requests: FILL: contact email
- Privacy officer: FILL: privacy officer name (this person is also the person in charge of personal information for the purposes of Quebec's Law 25)
- Post: FILL: legal entity name, FILL: mailing address
Notes for the lawyer
Remove this section before publishing.
- Age floor. Founder has to choose 16+ or 18+. GTM recommends 18+ at launch to avoid most UK Children's Code, Online Safety Act children's-duty and US state minors-law exposure. Please confirm Option A or B text, and whether self-declared birth year with "youngest reading" logic (the code uses
current year − birth year − 1) is adequate for each option. - GDPR lawful bases. We propose contract for the account and rating, and legitimate interest for public ladder and game appearance with a one-click hide. Is legitimate interest defensible for showing adult profiles (name, photo, credentials) to anonymous game players, or should game appearance be consent-based (an explicit onboarding toggle)? CJEU SCHUFA (C-634/21) treats scoring as possible automated decision-making. Is our "no legal or similarly significant effect" position in section 3 sound given the Terms ban on employment/admissions use?
- DPIA. Should we write a one-page DPIA before launch? It would double as Quebec's privacy impact assessment.
- EU representative (Art. 27). ELO isn't established in the EU. Is a representative needed at launch, or can it wait until there's meaningful EU traction?
- Canada. If the operator is in Canada: PIPEDA meaningful-consent requirements, the OPC "no-go zones" (profiling leading to unfair treatment), and Quebec Law 25 (privacy officer published, highest-privacy defaults, incident register). Is naming the founder as privacy officer enough?
- UK Online Safety Act. ELO has user-generated content visible to others (profiles, headlines, proof links, handles). Is it a regulated user-to-user service? Which Ofcom assessments are needed under each age option (illegal-content risk assessment; children's access assessment; children's risk assessment if 16+)?
- COPPA. We block under-13s by birth year and aren't child-directed. Is the deletion-on-actual-knowledge language enough under the amended rule (compliance date 22 Apr 2026)?
- US state minors laws. If 16+, which state social-media and minors' privacy laws are likely to apply given follows and public profiles?
- Right of publicity / likeness. Users' names and Google photos appear in the game and on share cards generated when anyone shares a profile link. Is the Terms licence (section on your content) plus the onboarding notice enough consent? Should the Google photo be opt-in rather than default?
- Public stats of non-users. The no-signup rating check sends any typed username to a platform API and shows a computed rating, with nothing stored. Is a privacy notice needed for the people whose usernames are checked (GDPR Art. 14), given nothing is stored or published? Canada's Clearview findings say "publicly available" data used for an unrelated purpose isn't exempt from consent.
- Defamation and disputes. Ratings are first-party computed output. Is the dispute and correction process in the Terms adequate in the UK and Canada, where defamation law is less protective than in the US?
- Analytics consent. If the analytics tool is truly cookieless and doesn't use device fingerprinting, can we skip a consent banner under ePrivacy/PECR? (Recommendation: PostHog in cookieless mode, or Vercel Web Analytics.)
- Retention periods. Please propose periods for guest game data, reports and logs.
- Governing law and entity. Founder to supply the legal entity and jurisdiction.