Privacy Policy
Last updated 11 November 2026
The short version
You do not make an account, and the app does not ask for your name or phone number. It asks for an email address in one place only — an optional box in Settings → Send feedback, so we can reply — and you can leave it empty. (The website has one voluntary form — see The website below.) We give your device an anonymous ID so it can rejoin a game after you close the app. We store the games you play and the guesses you make, because that is the game. We do not sell anything about you. From version 1.0.2 the free version shows ads, served by Google AdMob: at the end of a Daily Challenge, between some party rounds and, in versions that have them, after a Play more run or a Duel turn. On iPhone and iPad, the only thing that decides whether those ads use your device's advertising identifier is the tracking prompt iOS shows you — tap Ask App Not to Track and you get generic ads instead. (From version 1.0.8, where the app asks Apple for your age range and the answer does not show an adult, there is no prompt, and you get generic ads.) On Android there is no such prompt: the app only ever asks for generic ads, though each ad request still carries your phone's Android advertising ID. From the same version you can buy a Premium subscription, which removes the ads; Apple or Google Play takes the payment and we never see your card. From version 1.0.7, if you ask for them, we can send you a Daily Challenge reminder and a nudge when your group has finished — nothing else, never an ad, and you can switch them off in the app. From the same version you can add a photo to a Daily group or to your profile: only people in your groups see it, and every photo is checked automatically before anyone does. And from the same version you can find your Facebook friends on the Daily leaderboard. We keep only the ID Facebook gives you for this app and the IDs of your friends who connected too. We never keep your Facebook name, photo or access key, and Disconnect deletes them.
Anyone using the app can see the Everyone board: your Daily Challenge total under a board name the app makes for you, or under your display name if you choose to show it there. A board name is a pseudonym, not anonymity: people you have played with can tell it is you. The only way to take yourself off the Everyone board is to delete your account (Settings → Delete account).
From version 1.0.7 the Leaderboard also has a Season tab (in newer versions of the app, it is named after the month, such as October): a monthly total of five times your Daily Challenge scores plus your score on each new list you play in Play more or a Duel (replays add nothing). Its Friends, group and Everyone boards show it to the same people, under the same name, as the Daily boards, and a month of only Play more still puts you on the Everyone Season board.
On iPhone and iPad, from version 1.0.6, you can also turn on Game Center. It puts your lifetime Daily Challenge total on Rank 100's public Game Center leaderboard, under your Game Center nickname. Turning it off stops sending, but anything already sent stays until you remove it in Game Center.
On Android, from version 1.0.6 (114), the app asks for the month and year you were born the first time it opens, and asks Google Play for your age range. Neither leaves your phone. If your answer shows you are under 13, the app does not open. If Google Play's answer shows it, the app stops when that answer arrives, which can be a few seconds after the app has opened. Either way, a Rank 100 account that phone had is deleted. On an account a parent supervises, the features a parent has not yet approved stay off, and while those include the Daily Challenge leaderboards, groups and links, that account is left off other players' boards and links (see Age checks below). In the app updates that add it, we also keep Google Play's install ID with an account a parent supervises, only to match Google Play's list of revoked approvals (see If a parent withdraws consent below).
On iPhone and iPad, from version 1.0.8, where age rules apply to your account, the app asks Apple for your age range. Apple's answer stays on your phone. If it shows you are under 13, the app stops and a Rank 100 account that phone had is deleted. If it does not show an adult, you get non-personalized ads and no tracking prompt. Where a parent's consent applies, the features a parent has not yet approved stay off, and while those include the Daily Challenge leaderboards, groups and links, that account is left off other players' boards and links. We also keep Apple's ID for the download with the account, so we can act if a parent withdraws consent (see Age checks below).
Who we are
This app is made by Joe Spisak. Contact: hello@rank100.app.
What we collect, and why
An anonymous account
When you first open the app we create an anonymous account with our backend provider, Supabase. It is a random identifier (a UUID). It is not linked to your name, email, phone number, Apple ID, Google Account, or advertising identifier, and we cannot use it to work out who you are.
It persists on your device so that closing the app mid-game does not lose your score. If you delete and reinstall the app, you get a new one and the old history is no longer associated with you.
Two IDs from the app stores can sit beside it, each for one use only, and neither gives us your name, your Apple ID or your Google Account: from version 1.0.8 on iPhone and iPad, where age rules apply, Apple's ID for the download; and in the Android app updates that add it, on an account a parent supervises, Google Play's install ID (see If a parent withdraws consent below). Either can stay the same after a reinstall, so on our server it can sit beside both your old account and your new one until the old one is deleted.
Things you type
- Your display name. You choose it, and other players in your game see it, and so do people who open your friend link, people on your Friends board, people in your Daily groups and anyone who opens one of those groups' links in the app, the people you Duel and anyone who opens your Duel link in the app — and, if you choose to show it on the Everyone board, anyone using the app. In versions of the app that show Challenge friends after a Daily Challenge, a Daily group is made only when someone taps + New group and names it, and Invite friends sends your friend link instead. In earlier versions, Invite friends starts a group named after you, so your display name is also in that group's name, in the invite messages sent for it, and in the group's notifications. Please do not use your full name or anything you would not want the other people in the room to see.
- Your guesses. Stored with the round they belong to, because scoring and the reveal both need them. Other players never see what you type. Once a round is revealed, they see the list entry your guess matched, where it ranks and your points. A guess that is not on the list shows as a miss or, if it is on another list in the same pack, as that list's entry and where it ranks there. If you tap Tell us it should have counted on one of your guesses that matched nothing, we keep that guess's text, lower-cased and with accents and punctuation removed, with the list it was for and your anonymous ID, so we can fix the list's answers. Only we can read it. Deleting your account unlinks it from you; the text itself stays.
Gameplay data
Which games you joined, when, your score, and which content packs you have access to. This is what makes the game work. From 1.0.7, the Play more lists you play and your scores on them. Your Rewards points (what earned them and what you spent them on) are seen only by you.
Reports
If you report another player we store who reported whom, in which game, the reason, and anything you typed — so we can act on it. The person you report is not told. Reports are readable only by us.
Feedback you send us (version 1.0.2 and later)
There are two places in the app where you can tell us what you think: Settings → Send feedback, and a card we show once, after a game has finished. Both send the same thing to the same place. On Android, there is also a one-time card on Home that opens the same Settings form.
When you send feedback we store what you wrote and — only if the message came from the card after a game — which game you were in, so a bug report about a round can be traced to that round. Every message also records the version and build number of the app you were running and whether you were on iPhone or iPad, Android or the web, so we can reproduce a problem. If you typed an email address in the optional box, we store that too, and we use it for one thing: replying to you. The box can be left empty and the message sends just the same.
Reporting an ad. In the app updates that add it, a report sent with Report an ad in Send feedback, or with the Report this ad button shown briefly after an ad, also stores which of the two you used and, if you saw an ad in the past half hour, which ad slot the last one was and what kind of ad (such as the one after your Daily, or one you chose to watch), the ID AdMob gave us for that slot (the same for every player), and the time it ended, so we can find that ad and block it. Those details describe the ad, not you: a report adds no new identifier for you or your device, has no email box, and records no game.
We keep feedback until we have acted on it. It is not deleted when your account is — if it were, the anonymous accounts this app runs on would take most messages with them before anyone had read them, which would make the feature pointless. What survives is the message itself; the account it came from is unlinked. If you want a message or the email you left with it removed, write to hello@rank100.app and we will delete it.
Feedback goes to nobody but us. It is not shown to other players, and it is not sent to any third party — it sits in our own database, which only we can read.
Analytics and crash reporting
Version 1.0 of the app contains none. No analytics, no crash reporting, no PostHog, no Sentry, and no other measurement or diagnostics service, so nothing about how you use it is sent anywhere except the game data described above.
Version 1.0.1 and later contain two, and only two. This section was updated before that version was submitted, which is what the earlier version of this policy promised would happen.
- PostHog, for product analytics, receives your anonymous ID and a short list of named events: the app was opened, an invite link was followed, a game was created, joined, started or finished, a guess was submitted, a result was shared. Each one carries counts and timings — how many players were in the room, which round it was, how many seconds were left on the clock — plus the few details PostHog's code adds to every event: your phone's model, operating system, language and time zone, and the app's version. PostHog also records the IP address each event comes from, and from it estimates roughly where you are: your country, city and postcode, and map coordinates typically accurate to about 10 km. It stores both with the event, so they are linked to your anonymous ID just as the events are. We use them only for analytics.
- Sentry, for crash reporting, receives crashes and errors: your device model, OS version, app version, and the technical stack trace. It is not told your anonymous ID, so a crash is not tied to a player.
From Android version 1.0.6 (114), and on iPhone and iPad from the updates to versions 1.0.6 and 1.0.7 that carry this change, the app tells PostHog not to estimate a location from the IP address: PostHog still receives the IP address, but works out no country, city, postcode or coordinates from it for the events those versions send. Earlier versions and updates, and the website, still let it.
Neither one is ever sent your guesses, your display name, the contents of any list, the rank or score of any particular answer, or any redemption code. That is enforced by the app and not merely intended: every event is checked against a list of forbidden fields before it leaves the device, and an event carrying one is discarded whole rather than trimmed.
No event carries your age or anything from Google Play's or Apple's age signal. The age checks below send one event, on Android only: whether Google Play answered the app's first check of a launch within 8 seconds, and nothing about the answer. Neither service is ever sent Apple's ID for the download or Google Play's install ID.
Neither is an advertising, attribution, or ad-network service. The App Tracking Transparency prompt the app can show belongs to the advertising section below, not to these two.
Advertising (version 1.0.2 and later)
The free version shows ads. An ad may show at the end of a Daily Challenge (at most one a day, and none after your very first), after a Play more run or a Duel turn in versions that have them (at most one each time, and none before your second day of Daily Challenges), between rounds of a party game (never more than two in a game), or when you choose to watch one (see below). An ad never starts while the clock is running, and in some versions an ad you did not choose never starts within a minute of the last one. The ads are served by Google AdMob, an ad network run by Google, and are requested with Google's strictest content setting, so they are meant to be suitable for a general audience.
When an ad is about to show, the app sends AdMob an ad request. That request carries your IP address (which AdMob may use to estimate your general location), your device model and OS version, the app's identifier, and your device's advertising identifier: on iPhone and iPad only if you allowed tracking (the IDFA), and on Android the Android advertising ID and app set ID (see On Android (Google Play) below). AdMob also records which ads you were shown and whether you tapped one, and collects diagnostics about how its own code performed. AdMob does not receive your anonymous ID, your display name, or anything you type in the game. PostHog, our analytics service, is told whether each of these ads showed and, if not, why not; what a shown ad earned us; whether it closed normally; whether you tapped it; and, on iPhone and iPad, whether you left the app while it was up. With what an ad earned us, PostHog is also told whether the app asked AdMob for a personalized ad: on iPhone and iPad that is yes only if you allowed tracking, and on Android it is always no. It is never told which ad you saw.
On iPhone and iPad, tracking is your call, and the app works the same either way. The first time an ad is about to show, iOS asks whether Rank 100 may track you. Allow it and AdMob may use your advertising identifier to pick ads for you and to measure them across apps. Tap Ask App Not to Track and the app asks AdMob for non-personalized ads instead — you still see ads, they are simply not chosen for you. You can change your answer at any time in the iOS Settings app, under Privacy & Security, then Tracking.
From version 1.0.8, an age check can change that on iPhone and iPad. Where age rules apply and Apple's answer does not show an adult, the app never shows the tracking prompt and asks AdMob only for non-personalized ads. Where a parent's consent applies and a parent has not approved ads, the app shows no ads at all (see Age checks below).
On Android there is no tracking prompt, and the app always asks AdMob for non-personalized ads. See On Android (Google Play) below.
If you are in the EEA or UK, you will also see Google's consent choices before the first ad. Ads are only requested once you have made your choice, and your choice decides whether they may be personalized. You can reopen those choices at any time: in the app, under Settings, tap Ad privacy choices. That row appears only where Google's consent rules give you a choice to change, so if you do not see it, there is nothing there to change.
An ad you choose to watch. Outside games, the Rewards screen may offer Watch an ad · +5 points. Nothing plays unless you tap it, and Premium players are never offered it. The ad is requested from Google AdMob in the same way as the app's other ads, with the same tracking and consent choices, the same content setting and the same age checks. If AdMob reports that you watched it to the end, we add 5 points to your Rewards balance, at most twice a day (Eastern Time), and store that award with your anonymous ID, as we store your other Rewards points. Watching one never changes a score, a streak or any leaderboard. PostHog, our analytics service, is told when the offer is shown and when an ad starts (each with how many are left that day), what the ad earned us, whether points were added (and your new points balance when they were) and, when a tap pays nothing, why. It is never told which ad you saw.
Ads are how the free version pays for itself. Rank 100 Premium removes them — see Purchases, next.
Purchases (version 1.0.2 and later)
Earlier versions of the app are free and sell nothing. From version 1.0.2 there is one optional thing to buy: Rank 100 Premium, an auto-renewing subscription (monthly or annual) that removes the ads: no ad after your Daily, and none between rounds, in Play more or in Duels. Category packs are not for sale: every pack is free for everyone. Everything else in the game stays free.
Apple or Google takes the payment. On iPhone and iPad, purchases go through the App Store, under your Apple Account; on Android, through Google Play, under your Google Account. We never see your card, your billing address, your Apple ID or your Google Account. Refunds of App Store purchases are handled by Apple, not by us; Google Play purchases follow Google Play's refund policies.
RevenueCat records what you unlocked. RevenueCat is the service we use to check purchases with Apple and Google and to tell our server what your anonymous ID has paid for. While purchases are switched on in the app, as they are now, the app registers your anonymous ID with RevenueCat as soon as it has one, whether or not you ever buy anything, so the Premium screen can show the store's prices and Restore purchases can work. With it, RevenueCat's code sends what it sends with every request: your phone's model and brand, its language settings, the operating system and app versions, the store's country, and, like every request, the IP address it comes from; on iPhone and iPad also the identifier Apple gives this app on your device (the IDFV) and your answer to the tracking prompt. Only if you buy something does RevenueCat also receive the purchase record the store issues for the transaction, and it sends our server the result: the date your Premium subscription runs to. We store that with your gameplay data, because the app needs it to know not to show you ads. If a purchase is refunded, Premium is removed the same way.
Your purchases follow your Apple Account or Google Account, not your anonymous ID. If you reinstall the app or get a new phone, you get a new anonymous ID; tap Restore purchases on the Premium screen and the store's record moves what you bought onto the new one.
Notifications (version 1.0.7 and later)
Earlier versions only ever scheduled reminders on your own phone. Nothing left the device and no server could reach you. From version 1.0.7 we can send two kinds of notification from our own server, and only two: a Daily Challenge reminder you asked for, and a "the board is in" nudge for a Daily group you joined, once everyone in it has played that day. Neither is advertising, and neither carries an offer or a price.
You have to ask for them. The reminder is offered at the end of a puzzle you finished, never when you open the app. If you never tap it and never join a group, we never have anything to send to.
What we store to do it. When you turn reminders on, your phone asks Apple or Google for a push token — a random identifier for that one installation of this app, not for you and not for your phone across other apps — and we store it with your anonymous ID. We store it alongside your time zone: the offset from UTC and the zone's name, so a reminder arrives in your evening rather than in the middle of your night. We also store which app version asked, so we can tell whether a token that stopped working belongs to a version still in use.
What rides in a notification. The text is written by us, in advance, and your phone receives it already composed. The one thing you or another player can type that may appear is the name of a Daily group you are in — and only after it passes the same word filter as display names. If it does not pass, or if the group has been reported, the notification just says "your group" instead. A group that Invite friends started, in versions of the app before Challenge friends, is named after the person who started it, so its name includes their display name. Nothing else you type ever appears: not your guesses, not your score, not a report, not feedback, and no display name except inside a group's name.
Turning them off. Switch them off in your phone's own Settings, or in the app's Settings, which also tells our server to stop sending to that installation. Turning them back on is the same switch. The rest of the game is identical either way — no streak is protected, no points are given, and nothing is unlocked for allowing them.
Who sends them. We hand the notification to Expo, whose push service passes it to Apple and Google for delivery. See the table below.
Photos (version 1.0.7 and later)
Only if you add one. A Daily group's owner can give the group a photo, and you can give yourself a profile photo in Settings. Nobody has to, and nothing in the game changes if you don't.
We see only the photo you pick. The app opens your phone's photo picker; it never reads your photo library and never uses the camera. The photo you pick is cropped to a square and shrunk to 512 by 512 pixels on your phone before it is sent.
Who sees it. A group's photo is seen by the people in that group. Your profile photo is seen by you and by people who share a Daily group with you — never on the Friends or Everyone boards, never on the website, and never on a card you share.
Every photo is checked before anyone sees it. When you upload a photo, our server sends it to Google Cloud Vision to check it for adult, violent or racy content, and refuses it if Google rates any of those likely. A photo that is refused is not stored. Google's terms for this service say the image is "processed in memory and not persisted to disk", that Google does "not use any of your content (such as images and labels) for any purpose except to provide you with the Vision API service", and that it does not use it to train its models. We keep a record that each photo was checked and what the check said — never the photo itself.
Hiding, reporting and removing. Anyone in a group can hide a photo on their own phone, or report it. A photo that two different people report is hidden from everyone automatically. A group's owner can remove the group's photo, you can remove your own, and we can remove any photo.
Facebook friends (version 1.0.7 and later)
Only if you tap Find Facebook friends. The button is in two places, and nowhere else in the app: the Daily Challenge's Friends leaderboard, and the Friends section of the app's Settings (the Facebook friends section, in versions of the app without a Friends section). It is not a login: you keep the same anonymous account, nothing in the game needs Facebook, and connecting earns nothing.
Facebook asks first. Your phone opens Facebook's own screen, which asks whether Rank 100 may see your name and profile picture and your friends list. If you agree, Facebook gives your phone two things: a temporary access key, and a note signed by Facebook that says which Facebook account agreed. Your phone uses the access key to ask Facebook which of your friends also connected Rank 100. Facebook only ever answers with friends who did that themselves, never your whole friends list. The app does not ask for your total number of friends, and if Facebook includes it anyway the app ignores it: it is never sent to us and never kept. The access key stays on your phone. It is never sent to our server and never saved, and it is gone when the connect finishes.
What we store. Your phone sends our server the signed note and the list of those friends. We check Facebook's signature, and then we keep two things:
- your app-scoped Facebook ID — a number Facebook issues for you and Rank 100 only. It is not your Facebook profile ID and means nothing to any other app;
- the app-scoped IDs of your Facebook friends who also connected Rank 100.
That is all. The signed note also carries your Facebook name and a link to your profile picture, because Facebook puts them in every one. Our server throws them away as soon as the signature is checked. It never stores or logs them. We never store your Facebook name, photo or email address, or any Facebook access key. While Facebook's screen is open we also hold a one-time code tied to your anonymous ID, so the answer that comes back can only be attached to your account. It expires after ten minutes. Each time you connect, the friends list you send replaces the one we held before. It is never added to.
Who sees what. Your Facebook friends who have also connected see your Rank 100 display name and your Daily scores on their Friends leaderboard, and you see theirs. They can also tell which Everyone board name is yours. Nobody sees your Facebook name or photo. Nobody is added this way unless they tapped Find Facebook friends themselves. A friend who connects after you appears on your board without you doing anything.
We never post to Facebook. We do not ask for a permission that could. We do not read your posts, photos, messages or anything else on Facebook.
What PostHog, our analytics service, is told. That you tapped the button; whether the connect worked, was cancelled or failed, with a short code for why it failed; roughly how many friends it found (0, 1–2, 3–9 or 10 or more); and, when you disconnect, whether Facebook confirmed removing Rank 100's access. It is never told a Facebook ID, a friend's ID, or your exact number of friends.
Disconnecting. Disconnect Facebook is in the same two places. Facebook asks you to confirm. Your phone then asks Facebook to remove Rank 100's access, and we delete your app-scoped Facebook ID and every friend record that names you: the ones you sent, and the ones your friends' phones sent about you. Your account, scores and streak are not touched. If Facebook does not confirm the removal, we still delete everything on our side, and the app tells you to remove Rank 100 in your Facebook settings too.
Game Center (iPhone and iPad, version 1.0.6 and later)
Only if you turn it on. Game Center is Apple's service for game leaderboards and achievements. The Game Center switch in the app's Settings is off until you tap it, and the app never signs you in to Game Center by itself. There is no Game Center on Android.
What the app sends. Once it is on, the app sends Game Center two things, under your Game Center account: your lifetime Daily Challenge total (the app calls it your total depth), for Rank 100's Total Depth leaderboard, and the Rank 100 achievements you have earned. Nothing else: not your anonymous ID, your display name, your guesses or anything you type. The app never reads your Game Center nickname or photo, or anyone else's scores.
Who sees it. The leaderboard is public. Apple shows it inside Game Center to everyone who plays Rank 100 and to your Game Center friends, with your total beside your Game Center nickname, not your display name or your Everyone board name. Your Game Center settings decide who can see your profile and your achievements. Apple handles all of this under its own privacy policy.
Turning it off. Turn the switch off and the app stops sending. It does not sign you out of Game Center. Anything already sent stays on Game Center until you remove it there. Game Center gives us no way to take your total off the leaderboard, and the app never resets achievements you have earned. Deleting your Rank 100 account does not remove them either: Apple keeps them under your Apple Account, and we do not hold them.
Age checks (Android, version 1.0.6 (114) and later)
Rank 100 is for people 13 and older (see Children below). On Android, from version 1.0.6 (114), the app checks that in two ways, both on your phone.
The age question. The first time the app opens, and once on a phone that updates to this version, it asks for the month and year you were born before it creates an account, starts analytics or crash reporting, or loads an ad. Your answer stays on your phone. The app sends it nowhere and keeps only the result, whether it may open. It does not ask again unless you clear the app's data or reinstall it.
Google Play's age signal. After an answer of 13 or older, the app asks Google Play, through Google's Play Age Signals service, for your age range and, for an account a parent supervises with Google Family Link, whether a parent has approved our latest changes. Depending on where you are and your Google Play settings, Google Play may first ask whether to share your age range with the app. If Google Play needs to confirm your age, the app stays closed until you have done that in the Google Play Store app. Otherwise the app waits a few seconds for the answer before it opens; if Google Play is slow or cannot be reached, the app opens anyway and applies the answer when it arrives (see Under 13). The app uses the answer only to apply the rules in this section. It keeps only the result on your phone, never your age range, and sends the age range nowhere: not to our server, not to analytics, not to the ad network. In the app updates that add it, the one other thing it sends is the install ID in Google Play's answer, for an account a parent supervises (see If a parent withdraws consent below). It checks again at most once a year, and more often only when we have told Google Play about a change that needs a parent's approval, while that approval is outstanding, while Google Play is confirming your age, or when an earlier check could not reach Google Play.
Under 13. If your answer shows you are under 13, the app stops at a screen saying it is not available, and stays there. If Google Play's signal shows it, the app stops at the same screen when the signal arrives: usually before the app opens, but if Google Play answers late, after the app has opened, and that session ends there. Either way, if the phone had a Rank 100 account, the app sends a request to delete it (the same request as Settings → Delete account, retried a few times if it fails), and then clears the account's sign-in and game data from the phone. If our server refuses the deletion, the app sends one more request, to keep that account off other players' boards and links (see Parental approval below). After that, nothing more is sent from the phone to our server, to analytics, to crash reporting or to the ad network. Once our server has deleted the account, it asks PostHog to delete the events stored under its anonymous ID and RevenueCat to delete its record of that ID, as it does for every deleted account. If the deletion cannot reach our server, the 30-day idle deletion removes the account (see How long we keep it).
Parental approval. Some laws, Texas's among them, give the parent of a supervised account a say in changes to an app their child uses. When we tell Google Play about such a change, Google Play asks those parents to approve it. Until a parent approves, whether they have declined or not yet decided, the features that change covers stay off on that phone. For the change we told Google Play about, effective 16 October 2026, those are the Daily Challenge leaderboards (the Everyone board, Friends boards and group boards), Daily groups and their links, friend and invite links, and the optional email in Send feedback. The rough location it also names is PostHog's estimate, which is off for every player on these versions (see Analytics and crash reporting above); Google AdMob may still estimate a general location from an ad request, as it does for every player (see Advertising). That change also names the device information RevenueCat receives (see Purchases above): on that phone the app does not start RevenueCat, so it offers nothing to buy through Google Play there, and no Restore purchases. If Google Play's answer arrives only after the app has opened, RevenueCat may already have started for that session, and stays off from the next time the app opens. While those features are off, the app also asks our server to leave that account off other players' boards, group boards and links. Our server keeps one flag for this, stored with the anonymous account. It says only that the account is held back, and since when: not an age, an age range or why. Like every request the app makes to our server, the one that sets or clears the flag passes through our database provider's request logs (Supabase, in the table below), which keep it, with the account's anonymous ID, for seven days. Other players are not shown the account. The flag is removed when the app learns that the account is no longer held back, for example because a parent has approved, and is deleted with the account. A parent's approval does not end the separate hold described under If a parent withdraws consent below.
Age checks (iPhone and iPad, version 1.0.8 and later)
Rank 100 is for people 13 and older (see Children below). On iPhone and iPad, from version 1.0.8 on iOS 26.2 or later, the app checks that with Apple. It never asks you to type your age or birth date. Earlier versions of the app, and older versions of iOS, do not run this check.
Apple's age range. Where Apple tells the app that age rules apply to your account (in Texas, for example), or where your App Store account is in a country whose law calls for it, the app asks Apple's Declared Age Range service for your age range, before it starts analytics or crash reporting or loads an ad and, on a new install, before it creates an account. Apple may first ask you or a parent whether to share it, and if you decline, the app applies the same rules as for a player under 18. Anywhere else, the app does not ask. If Apple cannot answer, the app opens anyway, keeps any limit already set and tries again later. The app uses the answer only to apply the rules in this section. It keeps only the result on your phone, never your age range, and sends the age range nowhere: not to our server, not to analytics, not to the ad network. It asks Apple for your age range again at most once a year, and more often only when age rules newly apply to your account, when we have made a change that needs a parent's approval, or when an earlier check did not finish. Whether age rules apply is not your age, so the app can check that each time it opens.
Under 13 on iPhone and iPad. If Apple's answer shows you are under 13, the app stops at the same screen as on Android and stays there, even if a parent has approved the download, and a Rank 100 account that phone had is deleted in the same way (see Under 13 above).
Under 18 on iPhone and iPad. If Apple's answer does not show an adult, the app never shows the tracking prompt and asks AdMob only for non-personalized ads, until a later Apple answer shows an adult. The ad request does not say why.
A parent's approval on iPhone and iPad. Some laws, Texas's among them, give a parent a say in changes to an app their child uses. Where Apple says a parent's consent applies to you, the features we added after you first downloaded the app stay off on that phone until a parent approves, whether they have declined or not yet decided, or until Apple says a parent's consent no longer applies. Those can include ads, buying Premium (Restore purchases stays), the Daily Challenge leaderboards, Game Center, Daily groups and their links, friend and invite links, notifications from our server, photos, the optional email in Send feedback, Play more, Duels and the ad you can choose to watch. The Daily Challenge itself stays open. The app asks a parent only when you tap to, through Apple's own screens and Messages, and keeps only which questions were asked and what came back, on your phone. While those features include the Daily Challenge leaderboards, groups or links, the app also asks our server to leave that account off other players' boards, group boards and links, with the same flag as on Android (see Parental approval above). A parent's approval does not end the hold described under If a parent withdraws consent below.
Apple's ID for the download. Where Apple tells the app that age rules apply to your account, whatever your age, the app also sends our server Apple's ID for the download, once for each Rank 100 account. It is the one ID Apple gives for your Apple Account's download of Rank 100: it stays the same if you reinstall or change phones, and it does not tell us your name or your Apple ID. We keep it with the account so we can act if a parent withdraws consent, we use it for nothing else, and it is deleted with the account.
If a parent withdraws consent
On iPhone and iPad (version 1.0.8 and later). When a parent withdraws consent for Rank 100, Apple says it stops the app from opening on that child's phone, and it tells us. Its notice names the download, not a person, and reaches our server through RevenueCat or from Apple's own history of those notices. We act on every Rank 100 account we held that download's ID for: each is left off other players' boards, group boards and links, and our server sends it no notifications. The notice cannot reach an account we did not yet hold that ID for, such as one that has not opened version 1.0.8 or later. The hide from those boards and the stop on notifications last until a later in-app Apple age check on that account shows an adult or no parental consent owed (possibly up to a year after the app opens again), or the account is deleted (the 30-day idle deletion included). A parent's later approval does not end them, and we do not end them on request. A separate record says that a notice matched the account, and when. Scores already sent to Game Center stay there until you remove them in Game Center (see Game Center above).
On Android (in the app updates that add it). For an account a parent supervises, anywhere, Google Play's answer includes an install ID, Google's ID for that install, which exists so that Google Play can tell us when a parent revokes approval. The app sends that one value to our server, and we keep one for each account. It has one use: matching Google Play's list of revoked approvals, which names install IDs and no one else. We never send it to analytics or crash reporting, never put it in our own logs and never share it. Holding one shows only that a parent supervises that account. When a parent revokes approval for Rank 100 in Google Family Link, Google says the app stops working for that child, and it adds the install ID to that list. We read the list on a schedule, not as it changes, so the hold starts when we next read it, which can be days after the parent acted. We delete our copy of the list once we have read it, and our log of it keeps only a code worked out from each ID. An account we hold a listed ID for is left off other players' boards, group boards and links, and our server sends it no notifications. The hide from those boards and the stop on notifications last until a later in-app Google Play age check on that account shows an adult or that a parent no longer supervises it (possibly up to a year after the app opens again), or the account is deleted (the 30-day idle deletion included). A parent's later approval does not end them, and we do not end them on request. We delete the install ID when that check shows an adult or that a parent no longer supervises the account, and when the account is deleted.
Like every request the app makes to our server, the ones that send these IDs pass through our database provider's request logs (see Parental approval above), which record the request but not the ID it carries.
On Android (Google Play)
Rank 100 is also on Android, from Google Play. Everything in this policy applies there too; this section says where Android differs.
Ads. Android has no tracking prompt, so the app always asks AdMob for non-personalized ads: you still see ads, but they are never chosen for you. Each ad request still carries your phone's Android advertising ID and app set ID, which Google uses for what non-personalized ads need: limiting how often you see the same ad, counting ads, and preventing fraud. Both IDs come from Google Play services on your phone. You can reset or delete the advertising ID at any time in your phone's Settings, under Privacy, then Ads (on some phones, under Google, then Ads).
Payments. Purchases go through Google Play, under your Google Account, and RevenueCat checks them with Google Play the same way it checks App Store purchases with Apple. We never see your card or your Google Account. To manage or cancel a subscription, see Your choices and rights below.
Notifications (version 1.0.7 and later). On Android, Google's Firebase Cloud Messaging, part of Google Play services, issues the push token and delivers each notification that Expo hands it.
Permissions. The one permission the app ever asks you for on Android is to show notifications, and only when you turn reminders on. Android also grants, without asking, the ordinary permissions the app needs to work, such as internet access and keeping your reminders scheduled after the phone restarts, and the one that lets AdMob read the advertising ID. The app's package also lists two permissions that the code it is built on lists by default, and the app never asks for or uses either: access to your phone's storage (on Android 12L and older only) and displaying over other apps. From version 1.0.7, adding a photo opens the system photo picker, and the app receives only the photo you pick. The app never asks for your location, your phone's contacts, your camera or your microphone.
Deleting your data works the same way as on iPhone: in the app, under Settings → Delete account, or by email (see Your choices and rights below).
What we never do
- We do not track you across other apps or websites unless you allow it. On iPhone and iPad, the one ad network in the app, Google AdMob, may use your advertising identifier (IDFA) only after you tap Allow on the App Tracking Transparency prompt. Say no and you get non-personalized ads. On Android the app never asks for personalized ads. There are no attribution SDKs.
- We do not sell your personal information. Personalized advertising can count as "sharing" under the California Consumer Privacy Act; the way to opt out is the same tracking switch, in the iOS Settings app under Privacy & Security, then Tracking. On Android there is nothing to opt out of: the ads are never personalized.
- We do not see or store your payment details. Apple or Google does, under its own privacy policy.
- We do not ask for your phone's contacts, location, microphone, or camera, and we never read your photo library — from version 1.0.7 we receive only a photo you pick for a group or your profile (see Photos above). The one friends list the app ever reads is Facebook's, only if you tap Find Facebook friends, and only the friends who connected Rank 100 too (see Facebook friends above).
Who else sees it
| Who | What | Why |
|---|---|---|
| Other players in your game | Display name, score, and, once each round is revealed, the list entry each of your guesses matched. Never what you typed. Afterwards, your Daily Challenge scores on their Friends board, and you see theirs. They can also tell which Everyone board name is yours. You can only take yourself off their board by deleting your account | It is a multiplayer game |
| Anyone using the app (the Everyone board) | Your Daily Challenge total, under a board name the app makes for you, or under your display name if you choose to show it there | It is the Daily Challenge's leaderboard. A board name is a pseudonym, not anonymity: people you have played with can tell it is you. The only way to take yourself off the Everyone board is to delete your account (Settings → Delete account) |
| People who can see your boards (the Season tab, named after the month in newer versions; 1.0.7 and later) | Your Season total for this month (five times your Daily Challenge scores plus your score on each new list you play in Play more or a Duel), never its parts, the lists or your guesses: beside your display name on Friends and group Season boards, and on the Everyone Season board under your board name or, if you chose to show it, your display name | The Leaderboard's monthly tab. Leaving a group takes you off its Season board; the only way off the Everyone board is to delete your account |
| Supabase | Everything in this policy, including list suggestions and in-app feedback | Our database and authentication provider |
| PostHog (1.0.1 and later, and the website) | From the app: your anonymous ID; named events with counts and timings; your phone's model, operating system, language and time zone, and the app's version; and your IP address, with the approximate location PostHog estimates from it (country, city, postcode, map coordinates; not for events from Android 1.0.6 (114) and later, or from the iPhone and iPad update released with it), all stored under your anonymous ID. From the website: the page you are on and the page that sent you there, a few named events, your browser, operating system and kind of device, screen size, language and time zone, and your IP address with the approximate location PostHog estimates from it, with no cookie and nothing stored on your device | Product analytics, so we can see where the game loses people |
| Sentry (1.0.1 and later) | Crashes: device model, OS version, app version, stack trace | Crash reporting, so a bug that kills the app can be found |
| Google AdMob (1.0.2 and later, free version only) | Ad requests: IP address, device model and OS version, the advertising identifier (on iPhone and iPad only if you allowed tracking; on Android the advertising ID and app set ID, for non-personalized ads), and which ads were shown or tapped | Serving the ads between rounds, and the ad you can choose to watch for Rewards points |
| Apple or Google (1.0.2 and later, only if you buy something) | The purchase itself, under your Apple Account or Google Account | The App Store or Google Play is the payment processor |
| RevenueCat (1.0.2 and later) | Every player, while purchases are switched on: your anonymous ID, registered as soon as the app has one, with your phone's model and brand, its language settings, the operating system and app versions, the store's country and the IP address its requests come from, and on iPhone and iPad the IDFV and your answer to the tracking prompt. Only if you buy something: the store's purchase record (Apple's or Google Play's); it sends our server what that ID has unlocked | Showing the store's prices, checking purchases with Apple or Google Play, and recording what you own |
| Google Play (Android, 1.0.6 (114) and later) | That the app asked for your age range and, on an account a parent supervises, a parent's approval status. Nothing from the age question. Google answers under its own privacy policy | Play Age Signals, so the app can apply its age rules (see Age checks above) |
| Apple (iPhone and iPad, 1.0.8 and later) | That the app asked for your age range and, where a parent's consent applies, any question the app asks a parent through Apple. Apple answers under its own privacy policy | Declared Age Range and parental approval, so the app can apply its age rules (see Age checks above) |
| Supabase: Apple's download ID (iPhone and iPad, 1.0.8 and later, only where age rules apply) | Apple's ID for the download, kept with the account so we can act if a parent withdraws consent, deleted with the account. It sits in our database on Supabase. Apple's notice that a parent has withdrawn consent carries it, and reaches us through RevenueCat. RevenueCat can also receive it, whatever your age, inside Apple's records when you buy something or tap Restore purchases (see RevenueCat above). Never sent to analytics, crash reporting or the ad network | Apple's notice names only the download, so this ID is the one way to find the account |
| Supabase: Google Play's install ID (Android, in the app updates that add it, only for an account a parent supervises) | The install ID in Google Play's answer, kept with the account and used only to match Google Play's list of revoked approvals; deleted with the account, or sooner if a later Google Play age check shows an adult or that a parent no longer supervises the account. Never sent to analytics, crash reporting or the ad network, and shared with no one else | Google Play's list names only install IDs, so this ID is the one way to find the account |
| People who tap your friend link (1.0.6 and later) | In the app, your display name, before they decide. If you send it from a Play more result, the app also shows them that list and your score on that run. The link carries the list and the run, never the score. When a friend link you send in a message carries your result, a chat's preview of it shows your score (if the day has one), your deepest pick and the day, and never your name. If you send your friend link in a message, the rank100.app page it opens shows the first word of your display name and confirms the Daily score in the link; a link you post to your Story shows neither. A Story's link carries only the day, so its preview and page show no score either. If they add you, your display name and your Daily Challenge scores on their Friends board, and you see theirs. They can also tell which Everyone board name is yours | A friend link lets someone add you to their Friends board. In versions of the app that show Challenge friends after a Daily Challenge, every Daily Challenge share and invite you send carries it, and Post to Story copies your public link for you to add to your Story, where anyone who sees the Story can open it. You can turn it off in Settings. In earlier versions it comes from Challenge a friend or, as your public link, from a Daily result you share with the link on. Nobody is added until they agree in the app. In versions of the app that show Challenge friends, someone who agrees before playing that day's Daily Challenge is added when they finish it. A link works for 30 days or 25 people. You can remove anyone, and you can reset your public link in Settings |
| People you Duel (1.0.7 and later) | Before they accept your Duel link: your display name. In a Duel: your display name; your score for each round once you have played it, and how many you got right and your multiplier once you have both played it; who won; and your record against each other. Never what you typed. If they accepted your Duel link (or you theirs), also your display name and your Daily Challenge and Season scores on their Friends board, and you see theirs. They can also tell which Everyone board name is yours | A Duel is a best-of-3 game between two players, one turn at a time. You can Duel someone on your Friends board, or send a Duel link, which works once, for 7 days. You can decline a Duel, give up, or remove someone who joined through a Duel link from your Friends board |
| People in your Daily groups (1.0.6 and later) | Your display name; your Daily Challenge scores: today's once you have finished it (and only to people in the group who have finished it too), and your total for this month; whether you have finished today's Daily Challenge, are partway through it or have not started it; and, from 1.0.7, the group's photo and your profile photo if you added one | A Daily group is one board for the person who started it and everyone who joined from its link. You can leave any time in Group settings. Whoever runs the group (whoever has been in it longest: at first, the person who started it) can remove people, and still sees a removed person's name in the group's Removed list |
| Anyone holding a Daily group's link (1.0.6 and later) | In the app, before they decide whether to join: the group's name and, unless the group is full, the display names of the people in it. The rank100.app page the link opens in a browser shows neither. If they join, everything in the row above | Anyone in a group can send its link, anyone holding it can pass it on, and anyone who opens it can join until the group has 50 people. A link stops working 30 days after the group was started or someone in it last tapped Invite. Whoever runs the group can reset the link, which stops the old one at once |
| Your Facebook friends who also connected (1.0.7 and later, only if you connect Facebook) | Your display name and your Daily scores, on their Friends leaderboard. They can also tell which Everyone board name is yours. Never your Facebook name or photo | So friends can see each other's Daily scores |
| Meta (1.0.7 and later, only if you connect Facebook) | That you connected Rank 100 to your Facebook account, and your phone's requests for the friends who also connected. Meta sees these under its own privacy policy. We send Meta nothing about your games, your display name or anything you type | Facebook shows its consent screen and answers the friends request |
| Apple Game Center (iPhone and iPad, 1.0.6 and later, only if you turn it on) | Your lifetime Daily Challenge total and the achievements you earned, under your Game Center account. On the leaderboard, everyone who plays Rank 100 and your Game Center friends see your total beside your Game Center nickname. Never your anonymous ID, your display name or your guesses | Rank 100's Total Depth leaderboard and its achievements, which Apple runs |
| Google Cloud Vision (1.0.7 and later, only if you add a photo) | The photo you picked, once, as it is uploaded | Checking every photo for adult, violent or racy content before anyone sees it |
| Expo (1.0.7 and later, only if you turn on notifications) | Your push token and the notification's text, which it passes to Apple or Google for delivery. Not your anonymous ID, not your score, and nothing you typed except a group name that passed our filter, which, for a group named after the person who started it, includes their display name | Our push notification provider — it is how a reminder reaches your phone |
| Vercel | Website requests, including a list suggestion as it passes through. When you open the sheet to send a Daily Challenge result or invite, before you send anything, the app asks rank100.app for the picture your link will show: the request carries the day and, if your result has them, your score and deepest pick (the numbers your link carries), and, like every request, your IP address. Never your name, your link or any ID. | Our website host |
| Ahrefs Analytics | Aggregate, cookieless visit and click counts from the website — never an email | Website analytics |
That is the whole list. No data brokers and no attribution network. Google AdMob is the one ad network, and it is contacted only when an ad is about to be shown. Apple and Google Play are the only payment processors, one for each platform, and RevenueCat is the one service that sees a purchase record. While purchases are switched on, Apple and Google Play are asked for the prices on the Premium screen for every player, and take part in a payment only if you buy something. RevenueCat knows every player's anonymous ID while purchases are switched on, but sees a purchase record only if you buy something.
If that ever changes, this table is where it will show up, and we will say so in the app before it does.
How long we keep it
- Anonymous accounts that have not been used for 30 days are deleted, along with the profile and game history attached to them. An account is not deleted for being idle while it has Premium — a subscription that is running or that Apple or Google may still renew (we wait until 60 days after the last paid period ends), Premium earned by inviting friends, or Premium bought with points — or if it owns a category pack or has redeemed a promo code.
- Finished games are kept while they are still useful to the people who played them, then removed with the accounts they belong to.
- Reports are kept longer than the accounts involved, deliberately: a report about someone who deletes their account should not disappear with it.
- Purchase records — which packs an anonymous ID unlocked and when Premium runs to — are kept as long as that anonymous account exists and are deleted with it. Apple or Google keeps its own record of the purchase under your Apple Account or Google Account, which is what Restore purchases uses.
- Push tokens (1.0.7 and later) are kept while that installation is still registered, and are deleted with the anonymous account they belong to — including by the 30-day idle deletion above, so a phone we stopped being allowed to know about stops being buzzed. A token that Apple or Google tells us is dead is marked as dead and kept as the record that this installation stopped answering; turning reminders off from the app stops sending to it immediately.
- Age checks (Android, 1.0.6 (114) and later): the result of the age question and of Google Play's signal is kept on your phone only, until you clear the app's data or uninstall the app; your age and age range are never kept. The board hold flag (see Age checks) is kept on our server while the account is held back (for an account under 13 whose deletion our server refused, until the account is deleted), and is deleted when the account is no longer held back or when the account is deleted.
- Age checks on iPhone and iPad (1.0.8 and later): the result of Apple's answer and any answer a parent gave are kept on your phone only, until you uninstall the app; your age and age range are never kept. The board hold flag works as it does on Android.
- Apple's ID for the download (iPhone and iPad, 1.0.8 and later) is kept with the account and deleted with it, including by the 30-day idle deletion above.
- Google Play's install ID (Android, in the app updates that add it) is kept with the account and deleted with it, including by the 30-day idle deletion above, or sooner if a later Google Play age check shows an adult or that a parent no longer supervises the account.
- A parent's withdrawal: the record that a notice matched an account is deleted with the account or when the hold ends. Our log of Apple's notices holds no ID of any person or download. It records each notice, when it came, how it reached us and how many accounts it matched, and is kept for three years, or longer if a hold still refers to it. In the Android app updates that add the install ID, Google Play's list is deleted once we have read it, and our log of it keeps only a code worked out from each ID.
- Photos (1.0.7 and later) are kept while they are a group's photo or your profile photo. When a photo is replaced or removed, or the account or group it belongs to is deleted, the photo is deleted too — straight away where we can, and within a week at most — except that a photo someone reported may be kept for up to 30 days so we can act on the report. The record that a photo was checked (never the photo) is kept like a report.
- Daily groups (1.0.6 and later) last while anyone is in them: a group, its name, its link and its board are deleted when its last member leaves or is deleted, or when whoever runs it deletes it. Leaving takes you off its board at once. A group named after the person who started it, as Invite friends names one in versions before Challenge friends, keeps that name until that person leaves it or their account is deleted (the 30-day idle deletion above included), and is then renamed "Our group". Invites and notifications already sent keep the name they carried, and so does a report made about the group.
- Duels (1.0.7 and later) are kept, with each round's scores and result, while both players' accounts exist. Deleting either account (the 30-day idle deletion above included) deletes every Duel it was in, for both players.
- Facebook friends (1.0.7 and later): your app-scoped Facebook ID and your friends' IDs are kept until you disconnect, delete your account (the 30-day idle deletion above included), or remove Rank 100 in your Facebook settings. Facebook tells us about that last one, and we delete the same data as Disconnect does. If you ask Facebook to have us delete your data, Facebook gives you a confirmation code and a link to a page on our server showing when it was done. The record behind that page holds the code, the dates and how many records were removed. Nothing in it says whose they were. Disconnect before you delete your account. Disconnect also deletes the entries your friends' phones sent about you. Deleting the account does not delete them, because once the account is gone we can no longer tell which entries were yours. Those entries keep your app-scoped Facebook ID. They match nobody while you are not connected, but they can stay indefinitely. An entry goes when that friend connects again after Facebook has stopped listing you, for example because you removed Rank 100 in your Facebook settings. If the same Facebook account connects Rank 100 again later, the entries that remain come back into use.
- The launch list (the pre-release "tell me when it's out" form) was deleted in full on 2 September 2026, after the app was released; the form no longer exists.
- List suggestions are kept while we are still working through them. If you left an email with one, ask us and we will delete it from that suggestion — the suggestion itself is about a list, not about you.
- Feedback you send from the app (1.0.2 and later: Settings → Send feedback, the one-time card after a game, or, on Android, the one-time card on Home that opens the same Settings form) is kept until we have acted on it. It records what you wrote, the app version, and — only if you typed one — an email so we can reply. It is not removed with your account: the message stays, unlinked from the account that sent it. Ask us at hello@rank100.app and we will delete a message, or just the email you left with it.
Your choices and rights
Because accounts are anonymous, we usually cannot tell which data is yours unless you tell us. If you write to hello@rank100.app we can help if you can identify the game — for example a join code and roughly when you played. The exception is the website's suggestion form, which is keyed to the email address you typed if you left one: write from that address and we can find and delete what it is attached to.
- Change your name: type a different one on the screen where you create or join a game. It is remembered on your device between games, and changing it there changes it everywhere afterwards. A name you have already joined a game with stays that name for the rest of that game.
- Daily groups (1.0.6 and later): leave a group in its Group settings. Whoever runs a group can rename it, remove someone, reset its link (the old link stops working at once) or delete it for everyone. A removed person cannot rejoin from the same account unless whoever runs the group lets them back in, but could from a new account while the old link works, which is what resetting the link is for.
- Your Everyone board name: in the app's Settings, under Profile (in versions of the app without a Profile section, under Everyone board), you can show your display name on the Everyone board or switch back to the board name the app made.
- Game Center (iPhone and iPad, 1.0.6 and later): the Game Center switch in the app's Settings. Off stops sending; anything already sent stays until you remove it in Game Center.
- Delete your data: in the app, under Settings → Delete account. This is immediate and cannot be undone. You can also email us, or delete the app — an unused anonymous account is removed on our normal schedule. Deleting your account also removes its unlocks from our server; the purchase itself stays on your Apple Account or Google Account, and Restore purchases brings it back on a new install. Deleting your account does not touch anything you sent from the website — for a list suggestion, email us.
- Manage or cancel a subscription: in the iOS Settings app, under your Apple Account, then Subscriptions. On Android: in the Google Play app, under Payments & subscriptions, then Subscriptions. Deleting the app does not cancel a subscription.
- If you are in the EEA or UK (GDPR): you may request access, correction, erasure, or a copy of your data, and may complain to your local data protection authority. Our basis for processing is the legitimate interest of running a game you chose to play, the contract when you buy something, and for anything optional, your consent.
- Notifications (1.0.7 and later): the app's Settings screen has a Daily Challenge reminder switch, which also tells our server to stop sending to that installation. Your phone's own Settings can refuse them outright at any time, and refusing changes nothing else about the game. If you never turn them on we never hold a push token for you at all.
- Facebook friends (1.0.7 and later): Disconnect Facebook, on the Daily Challenge's Friends leaderboard or in the app's Settings (under Friends; in versions of the app without a Friends section, under Facebook friends), deletes what we hold and asks Facebook to remove Rank 100's access. Removing Rank 100 in your Facebook settings, under Apps and websites, deletes the same data from our side. Nothing else about the game changes either way.
- Ads and tracking: the iOS Settings app, under Privacy & Security, then Tracking, is where you allow or refuse tracking for Rank 100 at any time; refusing switches you to non-personalized ads. On Android there is no tracking switch, because the app never asks for personalized ads; you can reset or delete your advertising ID in your phone's Settings, under Privacy, then Ads (or under Google, then Ads). In the EEA or UK, the app's Settings screen has an Ad privacy choices row that reopens Google's consent options. Google's own controls for the ads it shows you are at adssettings.google.com.
- If you are in California (CCPA/CPRA): you may request to know, delete, or correct your personal information, and you will not be treated differently for asking. We do not sell it. To opt out of the "sharing" that personalized ads can amount to, refuse tracking as described above. On Android there is nothing to opt out of.
Children
This app is not directed at children under 13, and we do not knowingly collect personal information from them. On Android, from version 1.0.6 (114), the app asks for a birth month and year before it creates an account, and asks Google Play for its age signal, waiting a few seconds for the answer. If either shows a player is under 13, the app does not open or, if Google Play answers after it has opened, stops then, and it deletes any account that phone had (see Age checks above). On iPhone and iPad, from version 1.0.8 on iOS 26.2 or later, where age rules apply, the app asks Apple for your age range. If that shows a player is under 13, the app stops and deletes any account that phone had. A player Apple's answer does not show to be an adult gets non-personalized ads and no tracking prompt. Where a parent's consent applies, the features a parent has not approved stay off and the player is left off boards, and if a parent withdraws consent, the player stays off them and gets no notifications from our server, as If a parent withdraws consent above says. In earlier versions, on older versions of iOS and where age rules do not apply, the app does not ask your age. If you believe a child has provided information to us, email hello@rank100.app and we will delete it. Ads are requested with Google's strictest content setting, and the app is not treated as child-directed.
Note that players type their own display names, which are shown to everyone else in the game. What a player types as a guess is not shown to anyone else: the reveal shows only the list entry it matched. Anyone using the app can see the Everyone board, which shows a player's display name only if they choose to show it there. People in a Daily group, and anyone holding its link, see the display names of the people in it. From Android 1.0.6 (114), a supervised account whose parent has not approved the change covering the Daily Challenge leaderboards, groups and links is not shown on them (see Age checks above). From version 1.0.8 on iPhone and iPad, where a parent's consent applies, the same goes for an account whose parent has not approved those features.
Security
Data is stored with Supabase and protected by row-level security, so a player can only read the games they are actually in. Connections use HTTPS. No system is perfect and we will not pretend otherwise.
The website
Most of this policy is about the app, because that is where your data lives. The website (rank100.app) uses two analytics services to count visits and clicks in aggregate — which pages get read, which buttons get tapped: Ahrefs Analytics, and PostHog, the same service the app uses, so that a tap on "Get Rank 100" and a game played afterwards can be counted as one journey. PostHog receives the page you are on, the page that sent you there, and a short list of named events — the App Store link was tapped, an invite was opened in the app, the support link was followed — and the invite code in an invite link's address is removed before the event is sent. When you open a friend's link we count, without identifying you, whether shared links get opened and played: the page's events carry a short code worked out from the link, never the link itself. The page a friend link opens also asks our server for the first word of the sender's display name and whether the score in the link is theirs for today, and shows both for a link sent in a message; for a link posted to a Story, our server returns neither. Every event also carries your browser, operating system and kind of device, and your screen size, language and time zone.
Neither one sets a cookie, and neither stores anything on your device, so there is nothing here to consent to and no banner to dismiss. Neither is given your name, your email, or anything you typed, and because nothing is stored on your device, neither gives your browser an ID that carries over from one visit to the next. Like every request a browser makes, both arrive carrying your IP address. Ahrefs may use it to estimate your general location. PostHog keeps it with each event, along with the approximate location it estimates from it, as it does for the app (see Analytics and crash reporting above), so two visits from the same IP address can be matched to each other. Neither is told who you are. If your browser sends "Do Not Track", PostHog is not loaded at all.
Suggesting a list
The website has one voluntary form, at rank100.app/suggest, for telling us about a ranking you think would make a good round. It asks for the list you have in mind and a link to where its numbers are published. Both are about a list, not about you.
- The email field on that form is optional, and nothing depends on it. It exists only so we can ask you a follow-up question about your suggestion. It gets no other mail.
- It is stored with Supabase, alongside the game data, and is not linked to any game account or anonymous ID.
- Suggestions are never shown to other players.
- Sending the same suggestion twice does nothing: it is stored once.
Changes
If we change this policy we will update the date at the top. If a change is significant — for example turning on analytics — we will say so in the app.