Privacy Policy
Last updated: 5 October 2026
1. Who We Are
Cycli ("we", "us", "our") is an independent mobile application for menstrual cycle tracking. Questions about this policy can be sent to cycli@magnalucra.com.
2. Data We Collect
We distinguish between data stored on your device and data that passes through our servers.
On-device only (we never see this, unless you share a profile as described below):
- Cycle dates, phase information, and symptom logs
- Profile details — name, date of birth, tracking mode
- App preferences and settings
Technical diagnostics and optional usage reporting:
- First-party technical error reports — Cycli's own server and on-device log may receive JavaScript/render error messages, stack traces, device platform (iOS / Android / web), and app version to improve stability. The server filters common sensitive patterns. It does not capture every native OS termination. This first-party reporting continues independently of the optional choice below.
- Usage statistics, category titles and Sentry diagnostics — one optional switch at the end of the in-app Privacy Policy covers all three. Sharing is enabled by default for eligible users, without a separate confirmation button. Turning it off stops future optional reports and saves your choice for future sessions. Existing opt-outs stay off.
- Category titles — while usage sharing is on, reports can include category titles, including newly created titles. Titles are entered by you, may contain personal or health information, and are not guaranteed to be anonymous. We do not attach user/device identifiers or include profile information, cycle dates, symptom records, or notes in usage reports.
Mixpanel — optional general feature counts:
- While usage sharing is on for an eligible user, our server sends allowlisted general feature-use events to Mixpanel's EU ingestion endpoint: navigation, profile-management actions, category settings, sharing controls, and backup controls. Events include the feature name, platform, app version, collection time, environment, and reporting-policy version.
- We do not send category titles or category events, health logs, cycle dates, profile details, note contents, sharing credentials, technical error reports, or persistent user/device identifiers to Mixpanel. Note, intensity, and phase-recommendation usage are also excluded. Each event has a separate technical identifier for delivery; it is not a user identifier.
- Your device does not contact Mixpanel directly. We do not forward its IP address, and geolocation enrichment and user profiles are disabled. Automatic screen tracking, session replay, advertising tracking, and identity linking are not enabled. These reports count actions, not unique people. Category-title reporting remains in Cycli's existing reporting system, not Mixpanel.
Stored on our servers only when you share a profile:
Sentry — optional limited JavaScript error diagnostics: While usage sharing is on for an eligible user, the app contacts Sentry directly for JavaScript and rendering errors. Each event contains a fixed error class and fixed message, platform, app version, production environment, and an event-local ID. It does not send free-text error messages or stacks, health data, category titles, notes, user/device IDs, request URLs, or IP enrichment. Native crash capture, replay, breadcrumbs, logs, sessions, screen tracking, profiling and tracing are disabled. Sentry never receives the raw first-party technical error reports. Turning off optional sharing stops future Sentry reports, not reports already received; retention follows Sentry project settings. With no persistent identifier, individual reports may not be identifiable for deletion.
- A minimised copy of the profile data you choose to share: display name and colour, profile settings needed for cycle calculations, and the calendar data permitted by the sharing level. A period-only share contains period dates only.
- A randomly generated device identifier used to authenticate updates to shared profiles
- We do not store local profile IDs, sharing credentials, device-only preferences, or edit and sync timestamps in the shared profile copy
Pro upgrades and subscriptions are not offered in this release. The billing service is inactive while upgrades are unavailable.
3. How We Use Your Data
- Cycle records and health logs are processed on your device unless you choose to share a profile. Optional usage reports can also include health-related category titles, but not your full logs
- Crash reports are used solely to identify and fix app stability issues
- Optional usage statistics, including the category titles covered by the same switch, are used solely to understand which features are valued, so we can improve the app
- Shared profile data is used solely to allow another device to receive that profile, and is removed when the sharing device stops sharing
- We do not sell, rent, or share any personal data with advertisers or data brokers
- We do not intentionally collect identifiers, profile information, cycle dates, or notes in optional analytics. User-entered category and symptom titles may still contain sensitive information and are not guaranteed to be anonymous
4. Data Retention
- On-device data persists until you delete the app or clear app data
- Shared profile data is retained only while its share code is active. When the device that created the share selects Stop Sharing, the server copy is deleted
- Turning off usage sharing stops future usage reports; it does not delete reports already received. Mixpanel retention is governed by the project's retention settings. Because usage reports do not contain persistent user/device identifiers, we cannot reliably identify all reports from a particular person. Contact us with questions about retained reports.
5. Your Rights
Depending on where you live, you may have the right to access, correct, or delete your data. You can edit or delete local cycle data directly in the app. For shared profile data on our servers, contact us and we will delete it promptly.
6. Children
Cycli can be used by children aged 9 and over, ideally together with a parent or guardian. The first profile must belong to the app user. Its date and year of birth establish a separate age-screening record stored only on the device; profile birth dates remain subject to the profile sharing and export choices described above. For users under 16, we do not collect usage statistics or send third-party error reports. Users under 16 can share a profile only after a parent or guardian confirms it in the app. Period dates only is preselected for them. Shared data is stored on our server only while sharing is active and is deleted when sharing stops. Parents or guardians can contact cycli@magnalucra.com to ask questions or request deletion of any shared data. We do not knowingly collect personal data from children under 16 beyond what is described in this policy.
Before age screening is complete and on devices restricted for children, first-party error reports are also disabled. Following or viewing a profile shared by someone else remains available. With a full saved birth date, age restrictions end on the 16th birthday. Older year-only records remain restricted until eligibility is certain, or the user completes their own first profile with a birthday matching the saved year. Usage sharing then follows the saved preference, including any opt-out; eligible users without an opt-out have sharing enabled by default. Existing categories are not added or removed on a birthday. The in-app confirmation is a self-declaration, not legally verified parental consent.
7. Security
Shared profile data is stored in a secured database. Share codes are generated with a cryptographically secure random source, and repeated lookup attempts are rate limited, so codes cannot practically be guessed. Cycle records and health logs stay on your device except for profile data you choose to share. Optional usage reporting can include category titles, which may contain health information, while usage sharing is on. Category titles are not forwarded to Mixpanel.
8. Changes to This Policy
We may update this policy periodically. Significant changes will be communicated via an in-app notice. The "last updated" date at the top of this page always reflects the current version.
9. Contact
For privacy questions or data deletion requests, email cycli@magnalucra.com.