reckoner.fit

Cookie policy

Last updated 1 August 2026

This page lists every cookie reckoner.fit sets, and everything else the site keeps in your browser. Two cookies are always allowed: one keeps you signed in, the other remembers the answer you gave the banner. The site also uses Google Analytics to see how it is used, and that sets cookies of its own, so it runs only if you accept. Reject and none of it loads. All of it is set out below.

The short version.

Who is asking

reckoner.fit is operated by Inner Skill Set, registered in the Netherlands with the Kamer van Koophandel under number 75619563. Anything on this page, including a complaint about it, reaches a person at hello@reckoner.fit. The wider picture of what is held about you, where, and for how long, is the privacy policy.

What a cookie is here

A cookie is a small piece of text a site asks your browser to keep and send back on the next request. That round trip is what lets a website recognise you across page loads. It is also what makes cookies useful for following people around the internet, which is why the law treats them carefully and why most sites greet you with a consent wall. Reckoner uses the first property and not the second.

The cookies

NameWhat it doesSet whenLasts
rk_session Holds your session token, which is how the server knows which account a request belongs to. Without it, every page would ask you to sign in again. Strictly necessary, so it needs no consent. You complete a sign-in with an emailed code. Never before that. 90 days, or until you sign out, whichever comes first
rk_analytics_consent Holds one word, granted or denied, which is your answer to the analytics banner. It is what stops the banner asking again on every page. It holds no identifier of any kind and nothing is derived from it. Strictly necessary in the sense that matters here: without it your choice could not be honoured, so it needs no separate consent of its own. The moment you press Accept or Reject. Never before you answer. 12 months, or until you clear your browser data
_ga Set by Google Analytics to tell one browser from another, so a return visit is not counted as a new person. First-party, readable only on reckoner.fit. Only after you accept analytics. Never if you reject or say nothing. 2 years, or until you withdraw consent
_ga_9N6C29TDFS, _ga_J8P5YTRN3V The companion Google Analytics cookies, holding session state. There is one per analytics property and the suffix is the property id: the public pages and the signed-in app are measured separately, and are kept apart deliberately, so a browser that has used both is holding both. Only after you accept analytics. 2 years, or until you withdraw consent

The session cookie is first-party, set by reckoner.fit itself. It carries HttpOnly, so no script on the page can read it, SameSite=Lax, so another site cannot make your browser send it, and Secure, so it travels over HTTPS only. What it holds is a random token, and the server keeps only a SHA-256 hash of that token, so the cookie is a key rather than a record about you. It carries no name, no email address and no training data. Signing out deletes it on the spot, at both ends.

The session cookie is also host-only: it carries no domain, so your browser returns it to exactly the address that set it and to nothing else. The consent cookie is the one exception, and deliberately so. It is scoped to .reckoner.fit so that the answer you give on the public site is honoured on the app at app.reckoner.fit as well, and you are not asked the same question twice. That is safe to share precisely because it holds one word and no identifier. Your session is never shared that way.

Your analytics choice used to be kept in localStorage rather than in a cookie, under the key reckoner-analytics-consent-2. Browser storage is tied to one address, so a choice made on the public site could not be read by the app. Moving it to a cookie fixed that and retired every answer given under the old key, which is why you were asked once more. The old key is deleted from your browser on your next visit.

That is the complete list. If you find a cookie on reckoner.fit that is not on it, that is a bug and we want to hear about it: hello@reckoner.fit.

Your analytics choice

The session cookie is strictly necessary, so under the EU ePrivacy rules it is exempt from consent: it is explained here rather than asked about. The analytics cookies are different. They are not necessary, so they need your consent, and you get a real choice. A banner offers Accept and Reject as equal options. Nothing analytics-related loads until you accept. If you reject, or simply close the page without choosing, none of it ever runs and none of its cookies are set.

You can change your mind whenever you like, and withdrawing is as easy as giving: rejecting after you accepted stops the analytics and clears its cookies on the spot.

A Do Not Track or Global Privacy Control signal from your browser is treated as a standing reject, and the banner does not appear at all.

Legal bases: the session cookie is performance of a contract, Art. 6(1)(b) GDPR; the analytics is your consent, Art. 6(1)(a) and the ePrivacy rules on storage. Both are set out alongside everything else in the privacy policy.

Not cookies, but still your browser

The site stores a few things in localStorage. That is not a cookie: it never travels to the server, it is not attached to requests, and it is readable only by pages on reckoner.fit. The rules that cover cookies cover this too, so here is all of it:

KeyWhat it holds
reckoner-theme Auto, light or dark, so the site does not flash the wrong colours on the next page
reckoner-analytics-consent-2 Where your answer to the analytics banner used to be kept. Nothing writes it now: the answer is the rk_analytics_consent cookie described above. It is named here because a browser that visited before the change was still holding one, and it is deleted on the next visit
reckoner-diet, reckoner-veg, reckoner-allergens Your diet preference and allergen filters on the Fuel page. reckoner-veg is an older key kept only so an existing choice is not lost
reckoner-meal-picks, reckoner-meal-pins, reckoner-custom-dishes The meals you picked, the ones you pinned, and any dish you built yourself. The server never sees these
reckoner-sex Which strength standard the Where you stand page grades your lifts against. Written only when the site is running without a server behind it, so a page can draw before anything answers
reckoner-bw, reckoner-goal, reckoner-bodyweight_kg, reckoner-height_cm, reckoner-age A local copy of profile values that earlier versions of the Where you stand and Fuel pages kept for their sliders. Nothing writes these now. They are named here because a browser that visited one of those pages is still holding them

None of it identifies you to anyone else, and clearing your browser data removes all of it. Your meal and diet choices exist only here, so clearing them deletes them for good.

Analytics

If you accept, Reckoner uses Google Analytics 4 to see which features people actually use, so what gets built next follows behaviour instead of opinion. It sets the _ga cookies listed above and loads Google's tag from googletagmanager.com. It runs only after you accept, and never on this page, the privacy policy, the terms or the admin console.

It is configured to stay narrow. Google Signals and advertising personalisation are both turned off, so the data cannot be joined to an advertising profile and cannot follow you from reckoner.fit to any other site. Your IP address is truncated before it is stored, and Google uses it only to derive an approximate location, which it does not pass on to us.

There are two separate analytics properties, one for the public pages and one for the signed-in app. That split is the point rather than an accident: data retention, deletion and every sharing setting are decided per property, so keeping the two apart is what makes the limits below checkable rather than merely stated.

What the analytics can and cannot see

Never sent, and it is the code that stops it, not a policy somebody remembers. Every event goes through one function, and that function drops any parameter that is not on a fixed list for that event and rejects any value that is not a number, a true or false, or a member of a fixed set of words. There is no second route to Google. That single rule is what makes it structurally impossible for a name, an email address or anything you typed to leave the page.

What that leaves is which page or screen you opened, that a feature was used, your browser and device type, and the approximate location Google derives from an IP address it truncates. If you find something we count that is not described here, that is a bug and we want to hear about it: hello@reckoner.fit.

Reject, and none of this happens: no cookies, no tag, no request to Google. There is no cookieless fallback standing in for it and no "legitimate interest" version of it running quietly underneath. The same is true if your browser sends a Do Not Track or Global Privacy Control signal.

Other people's cookies

One, and only if you accept: Google Analytics, described above, sets its _ga cookies once you opt in. Reject and there are none. No ad network, no social widget, no embedded video, no comment system, no consent-management platform. Nothing else on reckoner.fit sets a cookie except reckoner.fit itself.

Two things can be loaded from outside reckoner.fit. Once you accept analytics, the Google tag is fetched from googletagmanager.com on every page except the three policy pages, the admin console and our own internal pages, so it never loads here at all. The second is an icon font from the public CDN cdn.jsdelivr.net, which the app draws the glyphs in its menus with. Signed out, this page loads nothing from anywhere but reckoner.fit. Signed in, the top bar carries your account menu, and its glyphs come from that font, so your browser fetches it here as it already does on every other page of the app. Your browser's IP address is visible to each of them when it fetches their file, and the font CDN receives nothing else about you.

The watch app

The Connect IQ app has no browser and no cookie jar. When you pair a watch it receives its own long-lived token, which lives in the watch app's own storage and is sent as an ordinary authorization header. You can revoke it at any time on the Devices page, which kills it immediately. It is not a cookie and nothing on this page applies to it.

Controlling cookies yourself

Every browser lets you see the cookies a site has set, delete them, and block them ahead of time. It is usually under Settings, then Privacy, and you can normally get there fastest from the padlock in the address bar while you are on the site. Some browsers block third-party cookies by default, which changes nothing here, because there are none to block.

Deleting rk_session, or blocking cookies for reckoner.fit, signs you out. Nothing else breaks, and nothing is lost: your training history lives on the server, so signing back in brings it all with you. Deleting rk_analytics_consent forgets your answer, so the banner asks again, and until you answer, nothing analytics-related runs. Blocking localStorage as well costs you the theme choice and the food preferences above, and those really are only in the browser.

Changes

If Reckoner ever sets another cookie, it will be on this page before it is in your browser, and the date at the top will change with it. Anything that needs your consent will ask for it properly rather than assume it. The current version is always at https://reckoner.fit/cookies.