Privacy notice
Last updated 21 September 2026
Police Law Prep is run by one person. This notice says plainly what is collected, why, how long it is kept, and what you can ask for. It is written to meet the UK GDPR, and it is short because very little is collected.
Who is responsible
The data controller is A Large Company Ltd, registered in England & Wales, company no. 17290014, at 71-75 Shelton Street, Covent Garden, London, WC2H 9JQ.
For anything to do with your data, email alexander@alargecompany.com. A real person reads it.
What is collected, and why
| What | Why | Lawful basis |
|---|---|---|
| Your email address, given at checkout or when you create or use an account | To create and secure your account, link it to your purchase, send account and access emails, answer support emails, and issue refunds | Performance of our contract |
| Your sign-in information — a password verifier held by Supabase, or your Google account identifier, email, name, and profile picture if you choose Google. If you choose Apple in the iOS app, your Apple account identifier and email address, including a private relay address if you choose Hide My Email. We store an encrypted Apple authorisation token to revoke Apple access when you delete your account. | To confirm your identity and sign you in. We cannot see your password | Performance of our contract |
| Your account identity and purchase record — account identifier, Stripe order reference, entitlement, and a one-way hash of any access code | To let your account or code log you in, stop refunded access being reused, and keep the company's accounts | Contract, and legal obligation for accounting records |
| If you subscribe through the iOS app: your App Store transaction record — the transaction's original transaction identifier, the product bought, the purchase and expiry dates, whether it was a Sandbox or Production purchase, and the subscription status events we store (renewed, cancelled, refunded, billing retry, revoked). Apple sends us this record when you buy, restore, renew, cancel or get a refund, through a signed message and through Apple's own App Store Server Notifications | To grant and keep your study access current, and to end access when Apple reports a cancellation, refund or billing failure. We store the transaction identifier against your account; we never receive your card details, which Apple's own checkout handles entirely | Contract, and legal obligation for accounting records |
| Referral records — referral code, referring and referred account identifiers, an opaque checkout reservation, Stripe session, subscription, invoice, payment and event references, snapshotted offer terms, each applicable reward state and non-secret fulfilment reference | To reserve a limited pilot place, attribute a paid referral, verify the required payment count, prevent duplicate or self-referrals, operate any hold period, fulfil rewards and review refunds | Performance of the referral offer and our legitimate interests in fraud prevention and financial records |
How you first reached the site in that browser tab — utm_source, utm_medium, utm_campaign, utm_term, utm_content, gclid, gbraid, wbraid, fbclid, msclkid, the external referring website's host name, and the first landing path |
To connect a completed sale to its source and measure which promotion led to sales. Query text other than these named fields is not kept | Legitimate interests in measuring sales and avoiding ineffective promotion |
| Your card details | Never collected or seen. Payment happens entirely on Stripe's own checkout page, or in Apple's own App Store checkout | — |
| Your study progress — what you've answered, what you've got wrong, your readiness estimate, and notes or mnemonics you type | To run the app and sync your progress across devices. Signed-in progress is stored on our systems; browser storage also keeps a local copy | Performance of our contract |
| Your chosen exam sitting — your account, exam workspace and confirmed sitting dates. It does not include a state fingerprint, answers, scores, notes or study totals | To send one factual reminder before that sitting. The reminder contains no promotion and tells you to check the official booking details | Performance of our contract and legitimate interests in providing useful service information |
| Your optional post-exam email choice — the sitting, consent version and time, and a one-way code for the account email address | To send one email after that sitting asking how it went, only if you tick the separate box. This choice does not permit a testimonial, public review request or referral request | Consent, withdrawable before the email is sent |
| Your exam outcome feedback record — the exam outcome, difficulty choice, optional written answers, result choice, follow-up choice and results-email choice | To understand how the exam compared with preparation and, only where you choose it, send a results follow-up email. The feedback page is available from a private 21-day signed link and does not require an account session | Consent for the results email; legitimate interests in improving the service for the feedback record |
| Security records — IP address, browser information, sign-in time and service logs | To secure accounts, prevent abuse, diagnose faults and respond to incidents | Legitimate interests in protecting users and the service |
| Your onboarding answers — the UK territorial police force area that best describes you, or Other or Prefer not to say, and your optional answer about where you would most likely hear about an exam resource | To understand learner distribution and decide which product-research channels to test. We use only aggregate totals for these decisions and for the protected internal learner map | Legitimate interests in understanding and improving the service and its distribution |
| Your optional learner-research answers — your main preparation difficulty, usual protected study time, the broad resource types you use, and up to 500 characters about the hardest part of preparation | To choose which study problem, session-length design, compatibility work and feature themes to test. The structured results are reviewed in aggregate. The written answer is reviewed for themes without being joined to location, exam or activity data | Legitimate interests in understanding and improving the service |
| Your optional question-match answer — whether the practice questions matched what you expect in your exam (yes, partly, no or cannot judge yet), the exam it was about, and up to 200 characters if you add a line | To judge whether the practice questions are pitched at the right level. The answers are reviewed in aggregate by exam. The one-line comment is read for themes. No email address is stored with it | Legitimate interests in understanding and improving the service |
| Anonymous page-view counts | To see which pages people find useful. Cookieless and aggregated — no profile of you is built | Legitimate interests in understanding basic site use |
| Anonymous funnel-step counts for the 17 fixed meanings listed below | To see where people stop in the purchase and study journey. Cookieless and aggregated through Vercel Web Analytics; no profile of you is built. Reports are kept for up to twelve months on our Pro plan | Legitimate interests in understanding and improving the service |
| Google Ads cookie-based conversion measurement — only if you press Accept on the cookie banner | To let Google Ads count that an accepted advert visit led to a sale | Consent, withdrawable at any time |
| Your email address for occasional updates, only if you choose these emails at checkout or in the paid app | To send a welcome email, a quiet-account check-in if you haven't studied in a while, and a weekly progress email — each sent only with your current choice | Consent, withdrawable at any time |
| Whether you saw, dismissed or selected an in-app announcement, stored against an opaque code derived from your signed-in account or access code | To show each relevant announcement without repeatedly interrupting you | Legitimate interests in communicating service and product updates inside the service |
| Feedback you send from the app — the message, the type you chose, the exam workspace, and your account email so Alex can reply | Emailed to Alex through Resend and kept in the support mailbox, so he can read it and reply. It is not stored in the app database | Legitimate interests in running and improving the service |
| A public contact request — your reply email, request type and message. The form also creates one-way IP and email keys in temporary function memory for abuse control | To send your request to Alex through Resend, let him reply, and limit automated submissions. The site does not store the submission in its database. Temporary throttle keys control a ten-minute rate window | Steps at your request before a contract and performance of our contract for access, billing and support requests; legitimate interests in answering feedback, organisation enquiries and other requests, and in preventing abuse |
The 17 funnel-step counts have these exact meanings:
funnel_landing_view— the marketing landing page was opened.funnel_buy_view— the purchase page was opened.funnel_checkout_intent— the person pressed the payment button.funnel_checkout_created— the server created a Stripe Checkout session.funnel_checkout_failed— the attempt to start Stripe Checkout failed.funnel_account_required— the shared purchase required account sign-in.funnel_account_create_requested— an account-creation request was accepted.funnel_account_access_confirmed— an entitled account gained access.funnel_purchase_confirmed— Stripe payment was confirmed and the purchase was claimed.funnel_workspace_open— a paid exam workspace was opened.funnel_first_study_action— the first paid study answer was recorded.funnel_free_first_study_action— the first free study answer was recorded.funnel_free_upgrade_intent— a buy link was selected in the free workspace.funnel_referral_feature_view— the referral feature was shown on the progress screen or exam catalogue.funnel_referral_use_intent— a referred browser opened a valid QR referral route.funnel_ongoing_practice_selected— ongoing practice was selected for an exam.funnel_ongoing_practice_first_action— the first graded ongoing-practice answer in that page visit was recorded.
An email address and account identifier are needed to create and secure an account. Without them, account sign-in and cross-device sync cannot work. Google sign-in is optional because email and access-code sign-in remain available.
The police force area and research-channel answers are not needed to provide your subscription. Prefer not to say completes the force-area question, and the research-channel question can stay empty. Neither answer changes your access, price, study content, emails or how you are treated as an individual.
These answers support an internal learner map and aggregate product research only. Police Law Prep does not publish the map or individual answers. Any later public map will need a new privacy and disclosure-risk review before publication.
The later learner-research prompts are optional and appear only after study activity. You can skip each prompt permanently. These answers do not change your access, price, emails, study results or individual treatment.
The question-match prompt is optional and appears on Today after your first completed session or mock. If you ignore it, we show it at most one more time, at least a day later, then stop asking. You can also skip it permanently. We delete the one-line comment after 88 days. We delete the whole record when your access ends or you delete your account. The answer does not change your access, price, emails, study results or individual treatment.
Cookies
The iOS app stores sign-in credentials in the device Keychain. It keeps downloaded exam material and saved study progress on the device. A downloaded exam needs an online access check at least every 72 hours, or earlier when access ends. Offline answers wait on the device until a connection returns. Signing out removes access to downloaded material. Unsynced progress can remain protected on the device so that the same account can recover it after sign-in. Confirmed account deletion removes that account's local study data.
The site stores your sign-in session and a local copy of your study progress in your browser. This includes the Supabase session, the short-lived nie_sess access-token cookie, the one-year nie_auth access-code cookie where used, and nie2_state study data. Signed-in progress also goes to our systems so it can sync across devices. This storage is strictly necessary to provide the service and needs no consent. Signing out asks the browser to remove local paid study data and the paid app cache. If the browser blocks removal, clearing the site's browser data removes them.
The site stores the named first-visit source fields in sessionStorage. This first-party record stays in that browser tab and disappears when the tab session ends. If you buy, the valid fields go to Stripe with the checkout and into our private purchase record. Refusing Google Ads cookies does not stop this first-party sale-source record.
There are two non-essential cookies, and they are why you see a banner. If you press Accept, Google Ads stores a reference to the advert you clicked (_gcl_aw) and an identifier for the visit (_gcl_au), so that if you later buy, we can tell which advert paid for itself. Nothing is set until you accept, and pressing Decline leaves the site working exactly the same — there is no worse version for saying no.
Your answer is stored as nie_consent for twelve months, then the banner asks again. Vercel's page-view and allowlisted funnel-step measurement does not use cookies. Those counts are aggregated, with no profile built, and are available in our Pro reports for up to twelve months. Google can still receive limited consent-status and request data when its tag loads with consent denied, so it is not described as anonymous.
You can change your mind at any time, as easily as you decided in the first place: reopen the cookie choice. The same link sits in the footer of every page.
Who else sees it
Only the services needed to run the site. Some act on our instructions; Google also handles authentication under its own terms if you choose it:
- Stripe — takes the payment and holds your email, receipt and the valid sale-source fields sent with checkout.
- Vercel — hosts the site and stores the purchase record, its valid sale-source fields, and signed-in study progress.
- Resend — acts as our processor for email delivery. It sends contact requests to Alex, access-code emails and, if you consented, welcome, quiet-account, weekly-progress and post-exam feedback emails. Resend processes the email address and message content in the United States.
- Supabase — stores account identity, purchase entitlement, onboarding, learner-research and question-match answers, bounded study-activity totals, the minimum chosen-sitting projection, and pseudonymised email records. The chosen-sitting projection excludes study detail and email addresses. Email records use a code derived from your email, not the email itself.
- Google — if you choose “Continue with Google”, confirms your identity and shares your basic profile and email address with Supabase.
- Apple — if you choose “Continue with Apple” in the iOS app, confirms your identity and shares your account identifier and chosen email address with Supabase. You can choose Hide My Email. Apple also receives token requests for sign-in and account deletion. If you subscribe through the iOS app, Apple sends us a signed record of the transaction and later sends App Store Server Notifications for renewals, cancellations and refunds; Apple never shares your card details with us.
- Google Ads — only if you accept the cookie banner, and only to count that an advert led to a sale.
- Google Calendar — if you book a call from the app's feedback panel, the booking page is Google's own appointment scheduling service, and Google's own privacy terms apply to that booking.
Police force area, research-channel and later learner-research answers are not sent to Vercel Web Analytics, Google, Stripe or Resend. They are not put in sign-in tokens or exam study-data files.
Your data is never sold, never rented, and never passed to another company for its own marketing. The Supabase database is in London, but providers and their subprocessors can process some data outside the UK. Depending on the provider and destination, transfers use UK adequacy regulations, the UK Extension to the EU–US Data Privacy Framework, or the UK International Data Transfer Addendum to the European Commission's standard contractual clauses. Email us for a copy of the applicable safeguard.
How long it is kept
- Your purchase record and email: for as long as your access is live, then for six years from the end of the financial year, because company law and HMRC require accounting records to be kept that long.
- Sale-source fields: in the browser tab until its session ends. If you buy, they stay with the purchase record for the same period.
- Referral records: conversion, reward and non-secret fulfilment records stay for the same six-year accounting period. If you delete your account, we remove its direct link from this ledger where possible. We keep the ledger and the other person's record. We must first resolve a held or manual-review reward.
- Marketing consent: until you withdraw it.
- Marketing email records: send history for twelve months; snapshots while your access is live; your unsubscribe record until you ask for its deletion.
- Chosen exam sitting: until you change or remove the sitting, reset that exam or delete the account. Ending paid access alone does not delete this minimum record.
- Post-exam email choice: until you withdraw it, change or remove the sitting, reset that exam or delete the account.
- Exam outcome feedback: written answers are purged after 90 days. The outcome record is removed after 24 months from saving, or earlier when you ask for deletion. The signed feedback link expires after 21 days.
- In-app announcement interactions: while the announcement record is needed, or until you ask for deletion.
- Feedback messages: kept in the support mailbox under the same retention as other business email, then deleted.
- Public contact requests: not stored in the site database. One-way throttle keys control a ten-minute window. They stay only in temporary function memory; expired entries are removed when that function next handles a request, or when the instance ends. Resend currently retains email delivery data for 30 days. The delivered request stays in the support mailbox under the same retention as other business email, then is deleted.
- Account and study progress: while your access is live. After access ends, it is reviewed annually and deleted when it is no longer needed, or earlier when you ask, unless a legal duty requires limited records to remain.
- Onboarding answers: while your access is live, then deleted when your final active access ends, or earlier when you make a valid deletion request. We also run a twelve-month backstop for missed or older records. A reviewed aggregate can remain only where it cannot reasonably identify or be linked back to you.
- Structured learner-research answers and prompt choices: while your access is live, then deleted when your final active access ends, or earlier when you make a valid deletion request.
- Written learner-research answer: for no more than 90 days after submission, and less if your final active access ends or you make a valid deletion request. After theme review, only non-identifying aggregate themes can remain for up to twelve months.
- Question-match answer: while your access is live, then deleted when your final active access ends, or earlier when you make a valid deletion request.
- One-line question-match comment: for no more than 88 days after submission, and less if your final active access ends or you make a valid deletion request.
- An account without purchase access: for twelve months after its last activity, unless you ask us to delete it sooner.
- Security logs: according to each hosting or authentication provider's operational retention period, then deleted or anonymised.
Your rights
You can ask for a copy of what is held about you, ask for it to be corrected, ask for it to be deleted, ask us to restrict or stop using it, ask for it in a portable format, and object to how it is used. Where processing rests on your consent, you can withdraw that consent at any time without affecting what came before.
In the exam catalogue, use About you to replace your current onboarding answers. Use Research answers to replace or remove later learner-research answers. Use the feedback page to change your exam outcome answer or withdraw the results email. Use Download account data to download the current onboarding, learner-research, question-match and exam outcome records and account-access summary as JSON. Each exam's separate download contains only that exam's study data. Email us if you want help to correct or remove an answer.
To stop marketing email, use Email preferences in the paid app, use the unsubscribe link in any message, or reply saying stop. It is acted on straight away.
To change the post-exam feedback email choice, choose the sitting again in the paid app and leave its separate box unticked. The unsubscribe link also stops it.
Use Delete account in the app to request permanent account deletion. Access stops when the request is recorded. We complete deletion within seven calendar days and process cancellation for any linked Police Law Prep subscription. If you subscribed through the iOS app, we cannot cancel the Apple side of it; cancel it yourself in your Apple Account subscription settings, or Apple will keep charging it after your Police Law Prep account is deleted.
The deletion request keeps your account identifier and email only while we complete the work. After completion, it keeps no account identifier or email. A one-way receipt code and completion dates remain for 30 days so that the status page can confirm completion.
Email alexander@alargecompany.com for other data rights. There is no charge and a reply is due within one month.
We may ask you to confirm the signed-in email address, or your Stripe or App Store receipt, before we act on a request. This protects your account from another person.
Your right to object: you can object at any time to processing based on legitimate interests. Email us and explain which processing concerns you. We will stop unless there is a compelling lawful reason to continue.
Removing Police Law Prep from your Google Account stops future Google sign-in. It does not delete the account or records. Email us to request that separate deletion.
Complaints
If something has gone wrong, please raise it directly first — it is likely to be fixed faster. You also have the right to complain to the Information Commissioner's Office at ico.org.uk/make-a-complaint, or on 0303 123 1113.
Automated decisions
The app automatically analyses your answers to calculate a readiness estimate. This is profiling for study feedback, but it does not make legal or similarly significant decisions about you. The estimate is not used for advertising or pricing.
Changes
If this notice changes, the date at the top changes with it. Anything that materially affects you will be sent to you by email rather than quietly edited in.