Privacy policy
Last updated: 8 November 2026 (children under 13; feedback you send; counting each device once, the device email and the new-device limit); 20 October 2026 (tap counts and answer timing, and how to turn them off; counting the devices a paid account is used on); 4 October 2026 (saved IA statistics analyses; our own anonymous page counts)
1. Who runs this site?
IB Math Revision is run by Pete Bromfield and our team, based in the UK. If you have any question about your data, just email pbromfield@ibmathrevision.com — our team will read it.
2. What we store, and why
| What | Why we need it | Where it lives |
|---|---|---|
| Your email address | To sign you in, save your progress, and email your receipt / weekly digest. | Firebase Authentication (Google Cloud; see section 5). |
| Your display name + avatar (if you sign in with Google or Microsoft) | To personalise the top-nav. | Firebase Authentication. |
| Which courses you own + purchase dates | To unlock the right content. | Firestore (Google Cloud). |
| Your practice attempts + scores | To show you your progress, streak, and weakest topics. | Firestore. |
| Anonymous router-quiz analytics (browser session ID, quiz answers, chosen stream, whether you bought) | To A/B test whether our quiz actually helps visitors pick the right course. Never linked to your name. | Firestore (preib_router_events). |
| Payment records (last 4 digits of card, amount, invoice) | Legal requirement to keep receipts. | Stripe (never touches our servers). |
| School invoices (when a teacher asks us to invoice their school): the school’s legal name and billing address, the finance contact’s name and email, an optional copy-to email, the PO number and the school’s VAT number or GSTIN, if given | To send the invoice and payment reminders, show it to the school’s Heads of Department, and keep the accounting and tax records the law requires. | Firestore, and Stripe, which issues and emails the invoice. |
| IA modelling: data and models you choose to save (a name, your x and y values, axis labels, the model and its options, its SSR/R², and the criteria checklist you ticked) | Only when you are signed in and press Save in the model-my-data helper, so you can reopen them. Nothing you type there is sent to us otherwise. At most 50 items and 500 points each; rename or delete any item under “My saved models”. If you share your IA progress with your teacher, they see only how many you saved. | Firestore, until you delete them or your account. |
| IA statistics: analyses you choose to save (a name, the columns you used, your question and options, the result summary such as the test statistic and p-value, the criteria checklist you ticked and an optional note) | Only when you are signed in and press Save in Analyse my data, so you can reopen them. Nothing you type or upload there is sent to us otherwise. At most 50 analyses of 2,000 rows each; delete any under “My saved analyses”. If your teacher sets an IA statistics task, they can see your saved analyses (names, results, ticks and notes, not the raw data) while it is set. | Firestore, until you delete them or your account. |
| Graphs you save in the graphing calculator (a name, the lines you typed, your tables, slider and view settings, and any pictures you add to a graph) | Only when you are signed in and press Save, so you can reopen them under “My graphs”. Otherwise your graph stays in your browser (pictures in its local storage) and in any share link you make (share links never include pictures). Pictures are made smaller in your browser first, which removes their hidden details such as location. At most 200 graphs of 100 KB each, up to 5 pictures per graph and 50 MB of pictures per account; rename or delete any of them under “My graphs”. | Firestore (graphs) and Cloud Storage (pictures), until you delete them or your account; overwriting a graph without a picture deletes it. |
| Your devices: a random device ID your browser makes, a label such as “Chrome on Windows” (worked out from the browser’s user-agent, which we don’t keep), when each device was first and last used, and which of our four sites it was used on, and a scrambled code for the network it was used on | Accounts are personal and can be used on up to 5 devices; this is how we count them. To protect paid accounts, we also note how many different devices an account is used on, so we can spot a shared login. So that one phone or laptop counts once, we keep a scrambled code for the network each device was used on (made from the first part of its IP address, and different for every account); we never keep the IP address itself or your location. We keep an eye on account use: if we suspect an account is being shared, we may email you about it, and the account may be paused while we review it. Teacher, school and class accounts are not limited. You can see and remove your devices on your account page. No other fingerprinting. | Firestore; the device ID also sits in your browser’s local storage. A device unused for 60 days is deleted automatically. |
| Feedback you send: the “Report a problem” form, “Was this useful?” thumbs and comments, and the “Feedback” link. We keep your message or rating, the page you were on, and your email address if you are signed in or give one | To fix problems, improve the site and reply to you. “Report a problem” messages are also emailed to us. | Firestore; “Report a problem” messages also reach our inbox through Resend. |
Emails we send. Straight away, when they happen: sign-in links, receipts and invoices, payment and subscription notices, parental consent, class joins and messages a teacher sends to their class. A homework reminder for work due soon comes at most once a day. Everything else (homework round-ups, progress, class summaries) is gathered into one email on Sunday morning, and revision tips are in it only if you asked for them. Every weekly email has a one-click unsubscribe; receipts and sign-in links still arrive.
3. Who else sees your data
We share as little as possible. The third parties involved are:
- Firebase — hosts our sign-in, database, file storage and cloud functions (Google).
- Google Gemini — AI marking and feedback: when you ask for it, the question and your answer (or a photo of your working) are sent to it to write the feedback.
- Emergent (emergentagent.com) — stores some uploaded files, such as photos of written work and class handouts.
- Crisp (crisp.chat) — the live chat. Nothing from Crisp loads until you press “Chat with us”. Then Crisp's chat window loads from Crisp's servers, keeps a chat session ID in your browser and, if you send a message, stores it and any email address you give.
- ipapi.co — only if you click “Accept all” in the cookie banner: at most about once an hour per visit, our site asks this geolocation service for the approximate location of your internet connection and records the country and city with the page you visited, so we can see where visitors come from. We don't store coordinates or link it to your account.
- Stripe — processes card payments. We never see your card number.
- Resend — sends transactional emails (receipts, weekly digests). We give them your email address and the email body.
- A parent or guardian you link (or who asks and you approve): they see your practice, topics, homework and test scores on a read-only parent dashboard, and can choose a weekly summary email of the same. That email is off until they turn it on; the dashboard first says what it contains and how to stop it, it carries no advertising, and we record when it is turned on or off (the last 20 changes) and which notice was shown. It stops from the dashboard or the one-click link in any email. You can stop sharing with a parent at any time from your account page.
- No advertising networks. No Meta / TikTok / Google Ads pixels. No profiling.
4. Cookies
Only a handful:
- Firebase auth cookies — keep you signed in.
localStorage— remembers your quiz result, A/B variant, free-preview counter, and "snooze the banner" choice. Never sent to us.- Device ID — a random ID in local storage that identifies this browser as one of your (up to 5) devices. It is sent to us only while you’re signed in, with each request, and is deleted from our records when you remove the device or don’t use it for 60 days.
- Where you came from — if you arrived from another site or a tagged link (e.g. a newsletter), the site name and campaign tags are kept in your browser for this visit (30 days if you accept analytics cookies), and sent to us only if you sign up for emails, so we know which newsletters and pages help. In the same way we keep the page you first arrived on and the type of site that sent you (a search engine, another site, or none), and add them to your account once when you create one, so we know which pages help people join. If you tapped one of our sign-up buttons in the same tab just before, we add which one (a short tag naming the button, and the page it was on). Not with Do Not Track or Global Privacy Control switched on, and not in this way on cbsemathrevision.com (see that site’s privacy policy).
- Google Analytics — runs only if you click “Accept all” in the cookie banner (IP anonymised, no advertising features). It never runs on the parent dashboard or in our emails.
- Our own page counts — to see which parts of the site help and what is broken, each page sends us a small anonymous note when you leave it: the page address, where the visit came from (for example Google or another page of ours), which kind of link or button was clicked, menu links used, how far down a long page you scrolled, how fast the page loaded, and any error or “page not found”. It has no cookie, no ID and no IP address, is never linked to you or your account, and is only added into daily totals. Only if you click “Accept all”, it also counts what you type into the site search box (never anything with an email address or long number) and which features you used each week (remembered in your browser). Nothing you type into answers or forms is ever sent. Page-level details are deleted after 90 days. Turning on “Do Not Track” or Global Privacy Control in your browser stops it.
- Crisp chat — only after you press “Chat with us”, Crisp keeps a chat session ID in your browser (see section 3).
preib_router_events— anonymous session ID for A/B analytics (browser-only, never tied to your email).
Third-party ad cookies: none. Tracking pixels: none.
Help improve the site: tap counts and answer timing
Two more things help us improve the site. Both are on unless you turn them off.
- Tap counts. On about one page view in four, the anonymous note above also lists which links and buttons on the page were tapped, named by the part of the page they are in and the name we gave them in our code. Now and then it also lists the links and buttons the page showed, so we can see what nobody uses. There is no cookie and no ID, nothing about where on the screen you tapped and nothing you type. The counts are only added into daily totals for each page and are deleted after 90 days. We don’t collect tap counts on cbsemathrevision.com.
- Answer timing. When you answer practice questions while signed in, we note how long you take before your first answer, whether you change your answer and how often you switch between multiple-choice options. We use this only to personalise your practice.
To turn both off: untick “Help improve the site” in My preferences. Answer timing then stays off on every device you sign in on, and tap counts stop in that browser. In any other browser, use this switch.
5. Data sent outside the UK
Some of the companies that run parts of this site store or process your data outside the UK (and, for students in India, outside India):
- Google (Firebase) — sign-in, database, file storage, hosting and our server code. Our server code runs in Google's
us-central1region in the United States, with a few older functions ineurope-west1(Belgium); other Firebase services may keep data in the United States or other Google locations. - Google (Gemini API) — AI marking and feedback. When you ask for it, the question, your answer or a photo of your working is sent to Google's Gemini service, which may process it in the United States or other countries.
- Stripe — card payments, processed in the United States and other countries.
- Resend — a US company that delivers our emails, so your email address and the email itself are processed in the United States.
- Emergent (emergentagent.com) — storage for some uploaded files, such as photos of written work and class handouts; its servers may be outside the UK.
- Crisp (crisp.chat) — live chat, only if you press “Chat with us”; its servers may be outside the UK.
- ipapi.co — visitor location lookup, only if you accept analytics cookies; its servers may be outside the UK.
How we protect it: each provider gets only what it needs for its job; every connection to them is encrypted (HTTPS); card details go straight to Stripe and never reach our servers. We use each provider under the terms it offers its customers, and each publishes its own privacy terms. If you'd like to know more about a transfer, email us.
6. How long we keep it
- Course access + purchase records: as long as you have an active subscription, plus 7 years for tax records (legal requirement).
- School invoice details: as long as needed for accounting and tax records.
- Practice scores + progress: until you ask us to delete them.
- Saved IA models: until you delete them in the helper, or ask us to delete your account.
- Saved graphs (graphing calculator), including pictures you add and save: until you delete them under “My graphs” or delete your account; a picture is deleted when you delete its graph or save the graph without it.
- Anonymous router-quiz events: 30 days rolling.
7. Your rights (UK GDPR)
- Access — ask for a copy of everything we hold about you.
- Correction — ask us to fix anything wrong.
- Deletion — ask us to delete your account and all data. We'll do it within 30 days.
- Portability — ask for your data in machine-readable JSON.
- Complaint — you can complain to the UK Information Commissioner's Office if you're unhappy with how we handle your data.
To exercise any of these, email pbromfield@ibmathrevision.com — no forms, no jargon, just ask.
8. Children under 13
Children under 13 can use the site only with a parent’s or guardian’s consent, or through their school. A school that signs up its students does so under its school agreement with us, and the school gives any consent needed. We don’t ask your age when you sign up, so if you are under 13, ask a parent or guardian before you create an account. If we learn that a child under 13 has an account without that consent, we close it and delete its data. A parent can email us at any time to see or delete their child’s data.
9. Changes
If we change this policy in any meaningful way, we'll email everyone with an active account. Small clarifications will just get a note at the top of this page.