Consumer Health Data Privacy Policy

Effective date: September 30, 2026

Chart35 is designed so fertility observations stay on your device unless you choose encrypted Sync, provider sharing, or to import a paper chart from a photo. We do not sell consumer health data, use it for advertising, or use geofencing around health-care facilities. This policy supplements the Chart35 Privacy Policy.

1. Consumer health data we collect

CategorySourceWhy we use it
Fertility observations, cycle dates, pattern settings, intercourse flags, and notesYou enter this on your deviceLocal charting. If you choose Sync, the device encrypts it before upload; the server cannot read the content.
Derived chart information such as cycle boundaries and peak-day marksCalculated on your device from your entriesDisplay and analyze your chart locally; include it in an encrypted backup if you choose Sync.
Filtered provider-share chartYou expressly create a share linkShow the selected read-only chart to anyone holding the time-limited link. Free-text notes are excluded; charted intercourse indicators remain in the share.
A photo of a paper chart and the reading made from itYou choose a photo to import and tap “Send photo to OpenAI”Turn your paper chart into proposed observations you review. The device crops out the name and practitioner header and strips metadata first. The photo goes through our server to OpenAI, which reads it; our server does not store the photo or the reading. The reading is a proposal: you review it before anything is saved to your chart.
Account and encrypted-sync metadataYou provide account details; our server records sync time/statusAuthentication, encrypted backup, multi-device continuity, security, export, and deletion.
Billing relationship and subscription status, which may reveal an association with a fertility appYou select a plan; Stripe returns customer/subscription status; Google Play supplies a one-use token for an eligible US Android external linkStart and manage Chart35 Sync, prevent duplicate subscriptions, enforce entitlement, send required notices, maintain consent evidence, and make required Play external-transaction/refund reports.
App/site usage signalsYour browser, only after analytics opt-inAggregate product improvement. Collected by Umami, which we host ourselves; no third party receives them, and no chart entry or user ID is sent.

2. How consumer health data is shared

We share only what is necessary for a function you request:

We do not sell consumer health data, share it for cross-context behavioral advertising, combine it with data-broker profiles, or permit a processor to use it for an unrelated purpose.

3. Your choices and rights

Subject to applicable law, you may ask us to:

You can export local chart data, revoke sharing, and delete your account in Chart35 Settings. You may also email jacob@stephens.page with the subject “Consumer Health Data Request.” We may verify that you control the relevant account. We will respond within the period required by applicable law. If we deny a request, our response will explain why and how to appeal by replying with “Appeal.” You may contact the Washington State Attorney General if an appeal is denied.

4. Consent

Charting locally does not send observations to us. Creating an account and choosing Sync causes the device to upload end-to-end encrypted data. Creating a provider-share link is a separate action. Importing a paper chart from a photo is another: nothing is sent until you tap “Send photo to OpenAI”, and the first time on a device the App explains what is sent, to whom, and what is kept before anything leaves it. Before Stripe Checkout, Chart35 presents a separate unchecked consent describing automatic renewal, the billing information sent to Stripe, and the limited Google Play reporting used for eligible Android link-outs. You may withdraw future consent, but withdrawal does not affect processing already completed or records we must retain by law or Play program obligations.

5. Security and retention

Synced chart content is encrypted on your device with AES-256-GCM before upload. Transport uses HTTPS. Passwords are hashed. Billing webhook signatures are verified, and Chart35 stores compact event references rather than full Stripe payloads. Raw Google Play reporting tokens are deleted after a successful initial report. Chart35 keeps no chart photo or reading; OpenAI may keep them for up to 30 days for abuse monitoring. Account-linked health and entitlement records are deleted with the account. Stripe, Google Play, and legally required consent/transaction records may be retained for the periods described in the Privacy Policy.

6. Changes and contact

We will post material changes before collecting, using, or sharing additional categories of consumer health data and will obtain affirmative consent when required. Questions and requests: jacob@stephens.page.