Last updated: 1 November 2026
What this covers
"Cookies" here means any technology that stores or reads information on your device: cookies, local storage, IndexedDB, offline cache, and similar.
Your choices
- Essential storage is always on. The site can't work without it.
- Usage statistics are on by default for UK visitors. They help us see how the site is used so we can improve it. You can turn them off at any time; it's free and takes one click.
- Session recordings and ad measurement are off unless you click "Accept".
- Change your choice any time in Privacy settings (link in every page footer). We also respect the Global Privacy Control signal from your browser.
What we use
1. Essential (always on)
| Name | Type | Purpose | Expires |
|---|---|---|---|
seru_consent |
First-party cookie | Remembers your privacy choices | 12 months |
seru.session_token |
First-party cookie (HttpOnly, Secure). Your browser shows it as __Secure-seru.session_token |
Keeps you signed in. Set only when you sign in | 30 days, renewed while you use the site |
seru_signed |
First-party cookie (Secure). Its value is always 1: no ID, no email |
Tells our pages you are signed in, so they show your account straight away instead of the visitor view. Set and removed together with the sign-in cookie | 30 days, renewed while you use the site |
serucoach |
IndexedDB on your device | Saves your answers, practice tests, mistakes to review, downloaded questions and settings. If you don't sign in, this stays only on your device | Until you clear it or delete your account |
seru.* keys (listed below) |
Local storage and session storage on your device | Small settings and states the app needs (listed below) | Until you clear them; session storage ends when you close the tab |
seru-app-v2 |
Service worker cache | Keeps app pages and free questions available when your signal drops | Until you clear it |
| Cloudflare Turnstile | Script that reads browser signals | Stops bots on the sign-in and report forms | Session |
Cloudflare __cf_bm (if set) |
Cookie | Security and bot protection | 30 minutes |
2. Usage statistics (on for UK visitors; you can turn them off)
| Name | Type | Purpose | Expires |
|---|---|---|---|
ph_phc_B5rbPsEBngionVQa64VmuZE8fXnPkZNEDR5iQQvdrnoN_posthog |
First-party cookie and local storage | A random ID so we can count visits and see which pages and features are used, what device types and browsers people use, where visitors come from, page speed, and app errors. Used only to improve this site. Never used for advertising. Shared only with PostHog (EU), which processes it for us | 12 months |
3. With your consent only
| Name | Type | Purpose | Expires |
|---|---|---|---|
| PostHog session recording | Uses the PostHog storage above | Records how pages are used (taps, scrolls). Everything you type is masked. Helps us find confusing screens | Recordings kept up to 30 days |
Outside the UK, usage statistics also run only after you click "Accept".
Cloudflare Web Analytics (our processor): privacy-first page-view statistics, no cookies. It stores nothing on your device.
seru.* keys on your device
These stay in your browser. They are not cookies and are not sent to anyone, except where a line says so.
| Key | Where | What it holds |
|---|---|---|
seru.me |
Local storage | Your email address, your settings and your access end date, saved when you sign in so the app opens fast. Removed when you sign out |
seru.track |
Local storage | Which test you study for: PHV or taxi |
seru.explanation_lang |
Local storage | Your explanation language |
seru.expl_view |
Local storage | Whether explanations show in English, your language or both |
seru.theme |
Local storage | Light or dark mode, if you chose one |
seru.extra_time |
Local storage | Whether you have extra time from TfL, if you turned it on in Account |
seru.nav |
Local storage | Whether the menu shows the study tabs (you bought access), a link to your last results and its score |
seru.ps_notice |
Local storage | That you closed the "your pass ends soon" note on Home, so it stays closed until the last day |
seru.gid |
Local storage | A random ID for this browser, so the progress you made on it stays together. Not sent to anyone while nothing is on sale |
seru.activated, seru.once.* |
Local storage | Markers so that some usage events are counted only once |
seru.evq |
Local storage | Usage events waiting to be sent while you are offline (no personal details). Not used if usage statistics are off |
seru.examday_checklist |
Local storage | The items you ticked on the exam-day checklist |
seru.waitlist |
Local storage | That you joined a waitlist from this browser, with your email shortened (for example a•••n@gmail.com), so the page shows "You're on the list" next time |
seru.bonus |
Local storage | A random signed key we give this browser after you ask for the launch-price email. It opens your extra full practice tests here. Nothing about you, no email |
seru.topo.v1 |
Local storage | Your Topographical practice on this device: routes you drew, map answers, mock tests, readiness and settings. It stays when you sign out, because it is only saved here |
seru.inapp.stay |
Session storage | You chose to stay in an in-app browser (for example WhatsApp's) after our warning |
seru.codesent |
Session storage | A sign-in code was already sent in this tab, so we don't send a second one when the page reloads |
seru.auth |
Session storage | The email address you typed to sign in and which step you are on, so the code step is still there when you come back from your email app. Removed when you sign in or sign out |
seru.flash |
Session storage | A one-line message to show on the next page, such as "Signed in". Removed once shown |
seru.choose |
Session storage | After you sign in with an email link, shows the plan choice once. Removed once shown |
seru.link |
Session storage | The one-time code of a sign-in link, moved out of the address bar while you sign in. Removed once read |
seru.attr |
Session storage | The campaign tags of the link that first brought you to the site in this tab (for example utm_source=google), only while usage statistics are on. Sent with a launch-price request when you leave your email, so we can tell which campaigns bring interest. No ad click IDs. Removed when you close the tab |