PRIVACY

Count what helps.
Leave out who you are.

Your imported workout files are processed in this browser and are never uploaded by our analyzer. Optional reading analytics and submitted choices help us decide what to improve.

Clothbound books, a blank scroll, a brass key and a partly open glass drawer.
AI-generated conceptual illustration

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.

Google sign-in and purchases

Google sign-in uses Firebase Authentication in the existing lab-meditation project, on its free Spark plan. The browser stores your sign-in session through Firebase until you sign out. This site stores an internal account ID, Firebase project and UID, purchase attempts, provider order IDs and access/revocation records in a dedicated Cloudflare D1 database. Basic Google profile/email may appear on your device; they are not used as proof of purchase. Firebase sends Google the identity token to verify your session. Waffo handles payment and applicable billing details; this site does not receive card numbers. Anonymous free reading loads no Google SDK. This identity/commerce storage is separate from optional anonymous reading statistics. For purchase support use the merchant contact on your Waffo receipt.