Draft · last updated

Privacy policy

You can study without giving an email address. Revision progress is saved locally first and can sync under an anonymous or linked identity. Optional analytics are separate and require your consent.

These are honest drafts. Everything they say about how Lanekind behaves is true of the code running this site, and every gap marked Placeholder, for the operator to supply: like this is a fact only the operator can supply. No solicitor has reviewed them yet, so do not treat them as settled terms.

The short version

Four things that are true before you read another word.

You can revise without giving an email addressNo email, no name, no sign-up. An account is an upgrade you take when you want your work to survive a lost phone.
Your answers live in this browser firstWhen the service is connected, progress can sync under your anonymous identity as well as a linked account. This website can need a connection to load pages or a new session.
No free text is ever sent to the analyticsNot a search, not a question, not an answer, not an email address. Every property that leaves is an id or a value from a fixed list.
Optional analytics need your consentThe analytics library is not loaded until a choice exists, and no answer is not a yes.

Who is responsible for it

The data controller is the company running Lanekind, and the codebase does not know its name.

The controller

Six facts the operator must supply before this policy is published.

Registered name
Placeholder, for the operator to supply: the operating company’s full legal name
Registered address
Placeholder, for the operator to supply: the registered office address
Company number
Placeholder, for the operator to supply: the companies-register number and the register it sits on
VAT
Placeholder, for the operator to supply: the VAT number, or that the operator is not VAT registered
Contact address
Placeholder, for the operator to supply: the email address that reaches a person
Governing law
Placeholder, for the operator to supply: the law and the courts that decide a dispute

Whether the operator is required to register with the Information Commissioner’s Office and pay the data-protection fee, and the registration number if so, is Placeholder, for the operator to supply: the operator’s ICO registration, to be stated here. Whether a data protection officer is required is Placeholder, for the operator to supply: a judgement for the operator.

What is stored, and what is synced

Two different questions with two different answers, and the second one is much shorter than the first.

Everything Lanekind knows about your revision is written into this browser first: every answer, your plan, your bookmarks, your theme. That is not a privacy gesture: it keeps completed work available if a request fails. Loading web pages and new sessions can still require a connection. The mobile app bundles the question and reference bank for offline study.

When the sync service is configured, the rows below are sent under your identity even before you add an email address. Signing into the same linked account on another device makes completed work and your plan available after sync. Unfinished session and mock drafts stay on the device where you started them. The database names below also help identify exported data.

answer_events
One row per answer: which question, which option you picked, whether it was right, when, and on which device. This is the log everything else is worked out from.
category_activity
Which days you studied which licence. It is what makes a paused category stop advancing rather than punishing you for a week off.
session_history
Your finished sessions, frozen with what they were made of so a result can be redrawn years later.
test_history
Your finished practice runs and mock tests, with the date, score and the saved paper, selections and explanations where available.
flagged_questions
The questions you bookmarked.
plan
Your test date, how many minutes a day you chose, and when you started.
settings
Your theme, your text size and whether reminders are on. Nothing else.
readiness_snapshots
The progress estimate recorded at a completed session, with its evidence and coverage.
hazard_progress
Your best score, attempt count and latest attempt time per clip. Detailed tap-by-tap replays stay on the device where you practised.
drive_attempt
Driving or parking attempts and their outcome. These are separate from your theory-question answer history.
reference_read
The Highway Code rules, dated Code updates and articles you marked as read.

Alongside those, the account itself holds your email address if you gave one, and a record of whether Premium is on: which product, which rail it was bought on, when it expires, and the events the payment processor sent us. That record is written by a webhook, never by your browser, and your browser only ever reads it.

Everything else stays here. The queue of rows waiting to be sent, the bookmark of how far the last sync got, the cached copy of your subscription status and your answer to the cookie question are all local and none of them is ever uploaded. The cookie and local-storage policy lists every key by name and says which side of that line it falls on.

What is never sent

120 characters, maximum

This is enforced by code, not by a promise, and it is the part of this policy worth checking.

Every analytics property this product is capable of sending is declared in advance, with the exact kind of value it may hold: a number, a true or false, an id, or one string out of a fixed list. Anything arriving at the boundary that does not match the declaration is dropped there, and the rules it is checked against are these:

  • An event whose name is not in the catalogue is dropped whole. There is nothing to interpret it as.
  • A property nobody declared is removed, and the rest of the event still goes. A funnel missing one dimension is still a funnel; a funnel missing its rows is a hole nobody notices for a quarter.
  • Any string containing an @ is dropped. Every legitimate string value is an id or a fixed word, so none of them contains one — and an address is the single most likely personal datum to be pasted into a tracking call by accident.
  • Any string longer than 120 characters is dropped. No declared property is a sentence, so anything that long is prose, and prose is a leak.
  • A value that should have come from a fixed list and did not is dropped.

The consequence, in plain terms: we cannot send what you typed, because there is nowhere for it to go. A search records how many results came back and not what you searched for. An answered question records its topic and whether you were right, not its wording or the option you touched. The web checkout asks for an email address and the event that fires carries the offering and the package, with no property for the address at all.

What the analytics do count

60 events

The whole catalogue, grouped into things a person would recognise. The counts are read from it, so this table cannot fall behind the code.

What it is aboutWhat it recordsEvents
Opening the app, and which screen you are onThat the app was opened, whether it was the first time, the name of the route — never the URL — and the test id of a button that was pressed.3
Setting upWhich licence you are revising for, how many minutes a day you chose, and whether you finished setting up or left part-way.5
The daily sessionThat a session started, resumed, finished or was abandoned, with how many items it held, how many you got right and how long it took.4
Answering a questionThe topic, whether you were right, whether it was the first time you had seen it, and how many times running you have had it right. Never the question, never the answer, never the wording of either.1
Practice runs and mock testsHow many questions, how many correct, how long, the percentage, and whether it was a pass.6
Hazard clips and 3D drivesWhich clip or scene, the score out of the maximum, the outcome, and whether it ran inside a session.5
Reading and searchingWhich rule or sign was opened, by its id. A search records only how many results came back — there is no property for what you typed, and there will not be one.3
Your predicted score and your run of daysThe predicted percentage when there is enough evidence for one, that it was withheld when there is not, your streak, and — if you tell us — how the real test went.5
The paywall, buying and restoringWhich offering and package you were shown and chose, whether a purchase started, completed, failed or was cancelled, and why it failed. The web checkout takes an email address; the event records only that the step happened.20
Billing that needs fixingThat a card was declined and a grace period started, that it was resolved, and that we told you about it.5
Where you arrived fromWhether an advert brought you here and which campaign, plus your answer to the iPhone tracking prompt. It carries no advertising identifier of its own.3

On top of the events, 15 facts are kept against you as a person rather than as a moment: which licence you are revising, your minutes a day, your streak, your predicted score, whether Premium is on, and — if an advert brought you here — which campaign it was. There is no name and no email address among them.

Four settings in the analytics client are decisions rather than defaults, and all four follow from the same rule. Automatic click capture is off, because the text of a clicked element in this product is very often a DVSA answer. Session recording is off, for the same reason with pictures. Automatic page-view capture is off, because a URL can carry a search term. And a person profile is only ever created for somebody already identified — by their anonymous account id, which is a random identifier and nothing else.

The analytics are processed in the European Union: the client sends to https://eu.i.posthog.com.

Why we are allowed to hold it

Each purpose has one lawful basis, and only one of them is your consent — which is the one you can take back.

What forWhat it usesLawful basis
Running the app in this browserYour answers, your plan and your preferences, held locally. Nothing is sent.No transfer, so no basis is engaged.
Keeping your account and syncing your workThe seven tables above, your email address, and the anonymous id behind them.Performance of a contract — providing the service you asked for.
Taking payment and unlocking PremiumYour email address, the product and offering, and the entitlement record the processor writes back.Performance of a contract, and a legal obligation for the records tax law requires.
Understanding how the app is usedThe events above, against a random account id.Your consent, given on the cookie page and withdrawable in the same place.
Keeping the service up and stopping abuseRequest logs held by the hosting and database providers.Legitimate interests — running a service that stays available and is not scraped.

Where the basis is legitimate interests you can object, and we have to stop unless there is a reason that outweighs yours. Where it is consent you can withdraw it at any moment, and withdrawing has to be as easy as giving — which is why it is the same control in the same place, at the same size.

Who else touches it

No advertising networks

Each of them does one job, and each is named. None of them is an advertising network, and none of them is sold your data.

WhoWhat they doWhere
SupabaseThe database and the sign-in service. It holds your account, your email address if you gave one, and every synced row.Placeholder, for the operator to supply: the Supabase project region
PostHogThe analytics, and only once you have agreed. It receives the events above against a random id.European Union — https://eu.i.posthog.com
RevenueCatRecords whether Premium is on and which offer you were shown, so a subscription bought on a phone works on this site too.Placeholder, for the operator to supply: the RevenueCat data region
Dodo PaymentsThe merchant of record for anything bought on this website. They take the card on their own domain — Lanekind never receives a card number.Placeholder, for the operator to supply: the Dodo Payments processing region

Apple and Google also see a subscription bought inside the mobile apps, under their own terms rather than ours. Whether any of the four above moves data outside the United Kingdom, and on what transfer mechanism, is Placeholder, for the operator to supply: to be confirmed against each provider’s current terms. Nothing is sold, and nothing is shared with an advertising network.

How long it is kept

Honestly: for as long as your account exists, because your answer log is the product.

The answer log is append-only by design. A question comes back around because of what it already knows about you, so pruning it would quietly damage the thing you are paying attention to. It is kept while your account exists and goes when the account goes.

There is no automatic deletion schedule today, and saying there is one would be an invention. Deleting your account removes every table at once — the account is deleted at the source and every row hangs off it, so one delete takes the lot rather than eighteen deletes half-succeeding. Payment records held by the merchant of record outlive that, because tax law requires them to.

How long the analytics project keeps an event is Placeholder, for the operator to supply: the retention window set in the PostHog project. It should be stated here as a number of months, and it should be short.

Your rights, and the two that are buttons

Most privacy policies describe the right to a copy and the right to erasure. Two of these are screens in the product.

Under UK data protection law you can ask for a copy of what we hold, ask us to correct it, ask us to delete it, ask us to stop or restrict what we do with it, ask for it in a portable form, and object to anything we do on the basis of legitimate interests. Where we rely on consent you can withdraw it without giving a reason and without losing anything you have already done.

Anonymous identities can hold synced records too. Clearing browser data removes the local copy, not necessarily the server copy; use the deletion flow while you can still access that identity. The export screen downloads your current local data as files. Let sync finish first if you want it to include completed work from your other devices. Older results may hold only a summary where no detailed paper was saved.

We answer a request within one month. If you are not happy with how we answer, complain to the Information Commissioner’s Office.

Getting in touch

One address, and the two documents that go with this one.

Write to Placeholder, for the operator to supply: the operator’s contact email address about anything on this page. This policy was last written on 2 September 2026; when it changes in a way that affects you, that date changes and the change is announced in the app.

Back to the legal index