Your choice
Optional reading analytics are off until you choose to allow them.
Optional reading analytics
After you allow it, we count the page category, active reading milestones of 15, 45 and 120 seconds, scroll milestones, download-link clicks, original-source clicks (research or creator), source-ledger navigation and a small set of navigation and analyzer button clicks (sample, file picker, CSV and chart). These button counts do not include the file type or any workout data, and do not prove a successful import, download or saved file. Hidden tabs and periods without recent activity do not add reading time. For knowledge pages we also count a broad entry category: direct/unknown, internal, search, X, Pinterest, Reddit, Substack or other. Recognized utm_source labels take precedence over the referring hostname; no campaign text, referrer URL or query is stored. Source-click counts mean a link was selected, not that an external page loaded or was read. Entry counts cannot attribute later actions to a campaign or identify a conversion funnel. We do not store full URLs, searches, referrer URLs, IP addresses, account IDs, precise locations or a visitor identifier in our analytics database. Counts do not identify unique people or prove a file was saved.
Feedback you choose to send
Pressing Send feedback or Send my choice submits only the displayed options and page category. This works independently of optional reading analytics. We show Received only after the server confirms storage. The feedback form has no free-text health field, email collection, payment or waitlist. Purchases use the separate process explained below. A failed request does not count as confirmed receipt.
Where data goes and how long it stays
Our same-origin Cloudflare service stores daily aggregate counts. It does not keep an event-by-event or person-by-person history. Each write and owner report clears aggregates older than the 35-day window; if collection is inactive, cleanup runs when writes or reporting resume. Cloudflare separately processes normal requests and may retain infrastructure logs under its own policies. We have disabled application request logging and use no third-party tracking SDK.
Browser storage
One local preference remembers allow or deny; it is not a tracking identifier. The expanded knowledge-page categories require a fresh choice even if you allowed the earlier tool-only version. Internal acceptance checks use a fixed QA marker for the current tab session and are excluded from audience reports. Global Privacy Control and Do Not Track disable optional browsing analytics. You can turn analytics off here or clear the preference in your browser. Aggregate counts already submitted cannot be attributed to you for individual deletion.
Workout files stay on your device
The analyzer reads files only after you choose or drop them. It uses timestamps, heart rate, sport and explicit timer events to calculate results in browser memory. It does not send file contents, file names, dates, zone limits, goals or calculated totals to our server. GPS, names and device identifiers are not used in the review. No workout records or zone settings are saved in browser storage. Clear all records, refresh or leave the page to remove the working copy; returning with Back does not restore it. We do not control copies you downloaded, your original files or browser and operating-system behavior.
CSV, SVG and printed reviews contain your displayed workout summary, dates and settings. Download and share them deliberately. There is no public result link or direct Apple Health connection. The fictional sample is labelled throughout.
Local tools and downloads
Check answers, image exports and manual feedback notes stay in your browser unless you deliberately share them elsewhere. Clean share links omit your answers. Do not add medical or personal information to links. The App preview uses fictional records and does not access Apple Health.
Questions and problems
You can send anonymous product choices through the feedback page. A public support address is being prepared; anonymous submissions cannot receive a personal reply.
