Cookies and local storage
Last updated: 13 November 2026
The short version: no marketing or advertising cookies, no third-party analytics, no ad pixels, no tag managers, no tracking across other sites. The only third-party code we load is Google reCAPTCHA Enterprise, and only to confirm a form submission isn’t automated: we use the single token it issues solely to verify that submission. What the app does store on your device is listed below: most of it exists to keep you signed in, to satisfy HMRC’s legal fraud-prevention requirements, to make the app quicker to use, or to remember what you’ve already dismissed. The one non-essential item (time measurement) is off until you choose to turn it on, which is why there is no cookie banner: there is nothing here to consent to by default.
| What | Type | Purpose | Lifetime |
|---|---|---|---|
| Sign-in session | Browser storage (IndexedDB) | Keeps you signed in securely between visits | Until sign-out |
| Offline copy of your records | Browser storage (IndexedDB) | A copy of the records you’ve opened in the app, so it loads quickly and keeps working through a dropped connection | Deleted when you sign out or delete your account. Other open QuarterFile tabs share this copy, so it is deleted from them at the same moment |
| qf.signInAttempt | Local storage | Only while you sign in with an emailed code: the reference for that sign-in attempt and the email address you typed, so the code screen survives a page refresh | Emptied as soon as your code is accepted, and removed at sign-out |
| qf.businessId | Local storage | Which of your businesses you last had open, so the app reopens on it | Until sign-out |
| qf.deviceId | Local storage | A random device identifier HMRC legally requires with every filing (fraud prevention). Created once, used only when talking to HMRC. It holds nothing about you or your records. | Until you clear browser data. Kept at sign-out on purpose: HMRC’s rules need a device identifier that stays the same between sessions |
| qf.tot.* | Local storage | Only written if you switch time measurement on. Measures your own active preparation time and typed/imported line counts for the quarter you’re working on, shown back to you on your receipt (“this quarter took you N minutes”). First-party only; never advertising. | Cleared when the quarter is filed, when you switch measurement off, or when you sign out |
| qf.lastTxDate.* | Session storage | The date of the last transaction you typed in for each business, so the next new row starts on that date | Until you close the tab, or sign out |
| qf.hint.* / qf.endScreen.* / qf.tasteOverLogged | Local/session storage | Remembers which in-app tips you dismissed so they never reappear, which end-of-filing screen you last saw, and that we’ve already noted a one-off in-app message this session | Until you clear browser data (the session ones, until you close the tab). qf.tasteOverLogged is also removed at sign-out |
| Google reCAPTCHA Enterprise | Cookies and script, from Google | Loads on our forms only to confirm a submission isn’t automated. We use the token it issues solely to verify that submission. | Set by Google while the check runs |
| HMRC connection handoff | Cookie | Set when you start the HMRC connection and checked when HMRC sends you back, so only the browser that began the connection can finish it. | 15 minutes |
| Stripe (checkout only) | Cookies, on Stripe’s pages | Fraud prevention during payment | Set by Stripe at checkout |
Signing out clears your account from this device. It deletes the offline copy of your records and every item above that belongs to your account: qf.signInAttempt, qf.businessId, qf.tot.*, qf.lastTxDate.* and qf.tasteOverLogged. Deleting your account does the same. What stays is qf.deviceId, which HMRC’s fraud-prevention rules need, and qf.hint.* and qf.endScreen.*, which only remember what you dismissed or last saw and say nothing about your records.
The time measurement (qf.tot.*) is off unless you turn it on. It isn’t needed to run the app: nothing is stored and nothing is measured until you switch it on in Settings, under “Your data”. Switch it off again whenever you like, and measuring stops there and then. It exists because a receipt that says “this quarter took you 11 minutes” should be your own measured number.
Separately from all of this, HMRC legally requires certain device information when we file to their APIs. That’s explained in the fraud-prevention section of our privacy policy.