1. What is stored on your device

- IndexedDB: fit sessions; locally named bike profiles; exact component manufacturer/model/variant plus rider-saved HTTPS manual, procedure, torque and service references; user-created dated passport snapshots and their factual local comparisons; camera-session material-setup snapshots and fingerprints used to compare confirmed dates; guided coordinate, structured cockpit-datum and contact-detail readings; the named saddle/bar points, levelling and reach/drop methods; resolved saddle/hood angles; hood-height and stem/spacer component context; optional profile-to-fit links; crank/cleat/saddle/cockpit/handlebar-control, saddle-tilt, hood-position and stem/spacer history events; pending frozen plans; local post-ride follow-up source, ride target, optional date boundary, progress and dismissal state; short manual/work-order references; per-step installation confirmations and repeated final coordinate re-checks; derived pose landmarks, analyses, multi-recording agreement checks, typed adjustments and ride check-ins.
- localStorage: the current local session identifier; your preferred units; the last calculator result query needed for the on-page “continue” shortcut; a one-bit dismissal of the optional install hint; and—only after you explicitly save a bike-to-bike transfer—a versioned working draft keyed to that journal entry. The draft contains the frozen source/target passport snapshots, selected fields, workflow step, keep/revert choice, safety-stop text and unfinished repeated readings needed to resume without silently rebuilding the plan.
- sessionStorage: a one-time calculator-to-camera fit-plan handoff, removed after it is read or when the tab session ends. Its values are included in the full Settings export and Delete all data control while it exists.
- URL fragment / browser history: the camera comparison may place opaque local bike/session identifiers after # so a selection can survive reload without sending those identifiers in the HTTP request. No angles, passport values or health inputs are placed there. Your browser may keep the fragment in local history.
- Cache Storage / service worker: public application files used to make repeat visits faster and selected screens available offline.
When you choose the phone inclinometer, raw device-orientation readings are held transiently in memory while the measurement screen is open. They are not written to browser storage; only a resolved angle you explicitly save can become part of a local bike profile or trial.
OpenBikeFit currently sets no advertising, cross-site tracking or audience-measurement cookies.
A transfer working draft is usable for 30 days. It is removed when the transfer is completed, reverted, stopped or discarded, when you choose Delete all data, or the next time the tool reads it after expiry. The related IndexedDB journal event remains until you discard it or delete local data.
Pending crank-swap, cleat, saddle fore–aft and saddle-tilt journal plans are also eligible for resume. They do not create an additional localStorage draft: the frozen plan and installation record stay in IndexedDB, while unfinished final readings deliberately stay in the open page only and restart blank after a refresh.
The mechanic work order is assembled in page memory from the bike and journal entries you select. It becomes a device file or print job only when you choose an export or print control; OpenBikeFit does not keep a separate server or browser-storage copy. Follow-up queue items remain in the existing bike journal until you delete the item, its bike profile, or all local data. They do not create notifications or background network requests.
2. Why no consent banner appears
This storage is used only to provide features you explicitly request: preserving your local fit, remembering units, carrying a result to the next step and running the installable/offline app. We do not load optional tracking storage, so there is no non-essential category to accept or reject. If that changes, optional technology will stay off until an appropriate choice is obtained and this notice is updated.
This classification is limited to storage needed for the particular service you request; it is not a claim that every first-party technology is automatically exempt. It follows the necessary-service exception inArticle 399(3) of Poland's Electronic Communications Lawand the technology-neutral scope described by theEDPB's final Guidelines 2/2023.
3. Your controls

Use Settings & privacy to inspect, export or delete all fit sessions, bike profiles, component references, crank-swap and other pending plans, follow-up queue items, transfer working drafts, installation confirmations and bike-history events. Browser settings can also remove or block this site's storage. Blocking it may prevent progress from surviving a refresh, but the public guides and calculator can still be read.
4. Network requests are not cookies
Loading the site necessarily sends a request to Cloudflare. Starting camera analysis additionally downloads the MediaPipe runtime/model from jsDelivr and Google-hosted storage. These requests do not contain your camera video or fit record, but the receiving host sees normal connection metadata. See the Privacy policyfor the controller, legal bases and your rights.