This notice describes Interval Timer 1.2.0, including optional yearly or lifetime Pro and the removal of Firebase Crashlytics. Older installed versions may continue the processing described under previous Crashlytics reports below.
This Privacy Policy describes how Felix Thron ("we", "us", or "our") collects, uses, and protects your information when you use the Interval Timer mobile application ("App").
1. Information We Collect
1.1 Account Information
No Interval Timer account is required. Settings and workout programs are stored locally. When enabled, Firebase Analytics uses app-instance or installation identifiers and technical device information. These records are pseudonymous rather than guaranteed anonymous. If you contact support, we receive your sender address and the information you choose to include.
1.2 Workout Data
When you use the timer for a workout:
- If saving to Apple Health is enabled and you grant Health access, a completed workout and its metadata (such as work duration, rest duration, rounds, and round-by-round timing) are saved to HealthKit
- With Health permission, heart-rate data can be read from compatible sources such as a paired Apple Watch or supported AirPods during workouts
- The iPhone and Apple Watch keep limited local history references for display and device synchronization. These caches contain summary fields such as program name, completion time, duration, exercise count, and calories, not heart-rate samples or exercise notes
- We do not operate a workout-data server. User-initiated sharing is described in Section 1.11
1.3 Exercise Photos
If you create custom workout programs:
- You may optionally capture photos of exercises using the camera
- Photos are stored locally on your device via SwiftData
- The App does not upload photos or include them in shared-program links. Depending on your Apple backup settings, local App data may be included in an Apple-managed device backup
- Deleting a workout program removes all associated photos
1.4 User Settings
The App stores your preferences locally:
- Timer settings (work duration, rest duration, number of rounds)
- Audio and haptic preferences (voice announcements, sound alerts, haptic feedback)
- Notification preferences (daily reminders)
The iPhone app and widgets share selected settings through Apple's App Group container. Selected settings and limited workout-history references are transferred between the iPhone and Apple Watch through Apple's WatchConnectivity framework and stored locally on each device.
1.5 Apple Watch Data
If you use Interval Timer with an Apple Watch:
- Timer settings are synced to your Watch via Apple's WatchConnectivity framework over local wireless
- Heart rate is read from Watch sensors via HealthKit during workouts
- A limited workout-history cache is stored locally on both devices and synchronized through WatchConnectivity
- WatchConnectivity handles the transfer between your paired devices; we do not operate a server for this communication
1.6 Achievement Data
The App tracks workout milestones locally:
- Workout streaks (consecutive days)
- Badge achievements (e.g., "7-day streak", "30 workouts")
- Milestone values, workout-count ranges, and streak calculations stay on your device. The lifetime-workout count may be seeded from a local HealthKit query covering up to ten years, and the current streak is calculated locally from HealthKit workout dates covering up to 90 days. These values and derived ranges are not sent to Firebase Analytics
1.7 Analytics and Previous Crash Reporting
This release uses optional Firebase Analytics and does not include the Firebase Crashlytics SDK or a Crash reports switch. When Analytics is enabled, the following categories may be processed:
- Device ID: pseudonymous app-instance and installation identifiers used by Firebase services. These are not the IDFA or your Apple ID
- Product Interaction: generic app lifecycle events and the limited onboarding and purchase-flow events described in Section 3.1
- Purchase History: purchase and subscription events. Automatically measured StoreKit events may include product ID, product name, and price
- Coarse Location: general location derived by Google Analytics from a masked IP address. This is separate from the optional workout-start location in Section 1.10
- Other Diagnostic Data: technical diagnostic information declared by the Firebase installation service
These data are not used for cross-app tracking or linked to an Interval Timer account. We use the IDFA-free Analytics SDK variant, disable IDFV collection and advertising storage or personalization signals, and do not set a customer account ID in Firebase. The identifiers remain pseudonymous personal data. App-defined Analytics events are limited to onboarding and Pro purchase, restoration, and entitlement flows. They do not carry workout or health information. Automatic screen reporting is disabled. Section 3.1 explains the data that Firebase may still measure automatically after you opt in.
Previous releases collected crash and performance information through Crashlytics. Historical reports and older installed versions are described separately in Section 3.2.
1.8 Purchases
Apple processes payments for yearly Pro subscriptions and one-time lifetime Pro purchases. StoreKit provides signed transaction and entitlement information that the App uses locally to enable Pro, including the product and transaction identifiers, purchase and expiration dates, subscription status, and revocation or Family Sharing status where applicable. We do not receive your payment-card details. Yearly subscriptions renew automatically unless canceled through Apple. Deleting the App does not cancel a subscription.
If you enable Analytics, Firebase may also measure purchase and subscription events, including product ID, product name, and price. Our own purchase-funnel events use fixed event names and limited status values rather than transaction identifiers or payment details. Apple's privacy notice applies to Apple's payment processing: https://www.apple.com/legal/privacy/.
1.9 AI Coach
The AI Coach (a Pro feature) generates a personalized workout from inputs you select in the app - your goal, available equipment, and target muscle groups. The coaching narrative is produced by Apple's on-device Foundation Models (Apple Intelligence). Your inputs and the generated workout stay on your device; they are not sent to us or to any third-party server. If Apple Intelligence is unavailable on your device, the workout is still built on-device and a written narrative is shown instead.
1.10 Optional Workout Location
If you enable "Save workout location" and grant location permission, the App requests one location at workout start. The captured coordinates and, when available, a city name are saved with the workout in Apple Health. The App uses Apple's reverse-geocoding service to obtain the city name. This feature does not record a route. You can turn it off in the App and change location permission in iOS Settings. Workout coordinates are not passed to our Firebase analytics wrapper.
1.11 User-Initiated Program Sharing
If you share a workout program, the program name, timer mode, rounds, exercise names, timing, and mode-specific settings are encoded in a link. Exercise photos are excluded. Anyone who receives the link can access its contents. If the link opens in a browser, the website host receives the URL and it may be included in request logs. Only share information you intend the recipient to receive.
1.12 Support Messages
If you contact us at felix@interval-timer.de, we receive your email address, message, and any attachments or technical information you choose to send. We use this information to answer and document your support request. Support mail is processed through Google Workspace Gmail. Please include only information needed to explain your request.
2. How We Use Your Information
We use collected information to:
- Provide interval timer functionality
- Log workouts to Apple HealthKit for your fitness history
- Display workout statistics and achievement badges
- Send local notification reminders (if enabled)
- Deliver haptic alerts to your paired Apple Watch during workouts
- Display timer status in widgets and Live Activities
- Understand pseudonymous and aggregate feature usage to prioritize improvements, if you enable Analytics
- Verify and maintain Pro entitlements through StoreKit
- Answer support requests you send to us
3. Third-Party Services
This release uses Firebase Analytics from Google, configured to reduce data collection. Firebase Crashlytics has been removed. The App contains no advertising and does not collect the IDFA or use Firebase data for cross-app tracking. Firebase services still use pseudonymous app-instance and installation identifiers as described below.
3.1 Firebase Analytics
We use Firebase Analytics, provided in the EEA by Google Ireland Limited (Gordon House, Barrow Street, Dublin 4, Ireland), to understand which features are used and how the App performs. Analytics is disabled by default and starts only if you opt in. The integration is configured as follows:
- The advertising identifier (IDFA) is disabled. The IDFA-free SDK variant is used.
- We do not set an account-level user ID. Firebase uses a pseudonymous app-instance identifier; Firebase services may also use installation identifiers. IDFV collection is disabled.
- Ad personalization, ad user data, and ad storage are disabled at the SDK level.
- Our explicit event allowlist covers onboarding and Pro paywall, purchase, restoration, and entitlement flows. Events contain fixed status values; they do not identify which workout or health feature led to a paywall.
- We do not send workout sessions or their timing and counts, exercise or body-zone selections, heart-rate information, Health permissions or settings, HealthKit-derived counts or streaks, achievement data, Coach inputs or results, or workout-content parameters to Analytics. Our explicit screen-view events and automatic screen reporting are disabled. No free-form program names, photos, notes, or raw error messages are included.
When Analytics is enabled, Firebase may automatically measure generic app lifecycle events, session and technical device information, general location derived from a masked IP address, and StoreKit purchase or subscription events. Google's disclosure guidance states that automatically measured purchase events may contain product ID, product name, and price. Analytics events have their own provider-generated timestamps. Our explicit purchase events do not contain transaction identifiers, prices, or free-form purchase data. Google's data handling: https://firebase.google.com/support/privacy.
At account level, Google Analytics sharing for "Google products and services" is switched off. The separate settings for modeling contributions and business insights, technical support, and recommendations for our business are currently switched on. These account settings are separate from the App's disabled advertising identifiers and ad-personalization signals.
Processing only occurs after your explicit consent under § 25 (1) TDDDG and Art. 6(1)(a) GDPR. You can withdraw consent at any time by opening the App's Settings and switching off "Analytics" in the About section.
Turning Analytics off disables collection and resets the local Analytics data and app-instance identifier. The update introducing these restrictions also resets local Analytics data once; an existing explicit Analytics choice is preserved. A local reset does not delete data already uploaded to Google.
3.2 Previous Firebase Crashlytics Reports
This release does not include Firebase Crashlytics and does not capture or submit new reports through that service. There is no Crash reports control in Settings. Removing the SDK does not delete reports that previous releases already uploaded, and users who continue running an older release are not changed by this update.
Historical reports may include Crashlytics or Firebase installation identifiers, session identifiers, timestamps, app and operating-system versions, crash stack traces, technical application state, and information recorded by the earlier implementation. Reports may also contain Analytics breadcrumbs if Analytics was enabled at the time. These previously uploaded reports remain subject to the retention described in Section 5.
3.3 Apple HealthKit
With your permission, the App reads heart-rate data and may write completed workouts, workout metadata, and an optional workout-start location to HealthKit. This data is held in Apple's Health database. Health may sync it to your other devices through iCloud if you enable Health data sync in iOS Settings; Apple controls that processing. Individual HealthKit records, heart-rate measurements, workout coordinates, derived workout counts and streaks, and Health permission or feature status are not sent to Firebase Analytics. Limited workout-history references are separately cached on the iPhone and Apple Watch for display and synchronization.
3.4 Apple Notification Services
Local notifications are scheduled and delivered by iOS on your device. No push notification server is involved.
4. Data Storage and Security
- Workout data is stored in Apple's HealthKit database (on-device, encrypted by iOS)
- Custom workout programs and exercise photos are stored via SwiftData (on-device)
- Settings and achievements are stored locally. The iPhone and widgets use App Group storage; selected settings and limited history references are stored separately on the Apple Watch
- Optional Analytics data and previously uploaded Crashlytics reports described in Section 3 are processed on Google's Firebase infrastructure
- Support correspondence is processed through the mail infrastructure described in Section 1.12
- Website request logs are processed as described in Section 10
- Data on your device is protected by iOS Data Protection. Network traffic to Firebase is TLS-encrypted.
5. Data Retention and Deletion
- Workouts: Stored in HealthKit until you delete them. Delete individual workouts from the History view or through the Apple Health app
- Workout programs: Delete via the Programs view - this removes all associated exercises and photos
- Settings: Persist for the lifetime of the app installation. Reset by deleting and reinstalling the app
- Achievements: Stored until app is uninstalled
- Local history caches: The iPhone and Apple Watch keep bounded summary caches for display and cross-device synchronization. These are separate from the HealthKit record and are removed with the App's local data on the respective device
- Firebase Analytics: The linked Google Analytics property is configured to retain event data for 2 months and user data for 14 months. Reset on new user activity is enabled, so the user-data retention period restarts when new activity occurs. Standard aggregated reports are not governed by the same user-level retention control
- Historical Firebase Crashlytics reports: Removing Crashlytics from this release does not delete earlier uploads. Firebase states that it keeps crash stack traces and associated Crashlytics or Firebase installation identifiers for 90 days before beginning removal from live and backup systems
- Support correspondence: Kept for handling and following up on your request, and where necessary to meet legal obligations or establish, exercise or defend legal claims. You can contact us to request deletion
- Purchases: Apple retains purchase and subscription records under its own policies. Deleting the App does not cancel a subscription
- Uninstalling: Uninstalling stops future collection from that installation and removes local App data from that device. It does not remove HealthKit workouts, Apple purchase records, support messages, data already uploaded to Firebase, data on another paired device, or data retained in Apple-managed backups
6. Children's Privacy
Interval Timer is not directed to children and does not require an account. It does, however, process the optional pseudonymous Analytics data described above and may receive personal information if someone contacts support. Where consent is required and a user is below the applicable digital-consent age, a parent or guardian must provide or authorize that consent.
7. Your Rights
Under GDPR (European Economic Area)
Data controller: Felix Thron, Kuglerstraße 22, 10439 Berlin, Germany. Contact via the email in Section 9.
Legal basis (Art. 6 GDPR + § 25 TDDDG):
- Firebase Analytics (feature usage): consent under § 25 (1) TDDDG together with Art. 6(1)(a) GDPR. Disabled by default; only active after your explicit opt-in. Withdraw at any time in the App's Settings with the "Analytics" switch.
- Support correspondence: our legitimate interest in answering and documenting support requests (Art. 6(1)(f) GDPR); where a request concerns performance of a contract with you, Art. 6(1)(b) GDPR applies.
- HealthKit data (workouts, heart rate): HealthKit records, measurements, and derived workout-count or streak values are processed by the App on your device and are not sent to Firebase Analytics. Apple-controlled Health sync and location services are described above.
Your rights:
- Access: workout history, settings, and achievements are visible inside the App. Firebase records are keyed by pseudonymous identifiers rather than an Interval Timer account, so we generally cannot locate them from your name or email alone.
- Deletion: delete workouts in History, programs in Programs, or uninstall the App. Contact us regarding support correspondence or other data we can identify. We may need information sufficient to locate the relevant record.
- Portability: export workouts as CSV via the share button in History.
- Complaint: you may lodge a complaint with your national data protection authority. Our competent supervisory authority is the Berlin Commissioner for Data Protection and Freedom of Information (Berliner Beauftragte für Datenschutz und Informationsfreiheit, BlnBDI), Alt-Moabit 59-61, 10555 Berlin, https://www.datenschutz-berlin.de.
- Withdrawing consent and privacy choices: open the App's Settings and use the "Analytics" switch in the About section. Turning it off disables collection and resets local Analytics data. This does not itself delete data already uploaded. This release has no Crash reports switch because Crashlytics has been removed.
Right to object (Art. 21 GDPR): Where we process personal data on the basis of legitimate interests, you have the right to object at any time to that processing on grounds relating to your particular situation. Please send any objection to the email address listed in Section 9.
International transfers: Firebase Analytics data and historical Crashlytics uploads may be processed on Google infrastructure outside the EU. Google states that Google LLC is certified under the EU-US Data Privacy Framework and publishes data-processing terms that include Standard Contractual Clauses where applicable. The Google Ads Data Processing Terms have been accepted for our Analytics account. See Google's information about international transfers and service-specific processing: https://firebase.google.com/support/privacy.
Under UK GDPR (United Kingdom)
The UK GDPR mirrors the EU GDPR. UK residents have the same rights listed in the EEA section above. Our competent supervisory authority for UK matters is the Information Commissioner's Office (ICO), Wycliffe House, Water Lane, Wilmslow, SK9 5AF, UK, https://ico.org.uk.
Under CCPA (California)
Interval Timer does not sell personal information and does not share personal information for cross-context behavioral advertising. The Firebase SDKs are configured with ad personalization, ad user data, and ad storage disabled. No advertising identifier is collected.
8. Changes to This Privacy Policy
We may update this Privacy Policy from time to time. We update the date when this notice changes. We will provide additional notice of material changes where appropriate and request new consent when required. Continuing to use the App does not replace consent where consent is required.
9. Contact Information
If you have questions about this Privacy Policy, contact us at:
Felix Thron
Kuglerstraße 22
10439 Berlin
Germany
Email: felix@interval-timer.de
10. Website (interval-timer.de)
Sections 1-9 above describe the Interval Timer App. This website hosts the product page, privacy policy, legal notice, support, FAQ, and fallback page for shared workout links. It sets no cookies, uses no website analytics, and loads no third-party content - all page assets are served from our own domain.
The website is hosted on Google Cloud Run, operated in the EEA by Google Cloud EMEA Limited (70 Sir John Rogerson's Quay, Dublin 2, D02 R296, Ireland), in the europe-west1 region (Belgium). Cloud Run automatically creates request logs in Cloud Logging. To deliver each page and protect against abuse, the hosting infrastructure processes standard request data such as your IP address, request date and time, requested URL, HTTP status, referrer, and browser user-agent. A shared workout link places the encoded program in the URL query; if the fallback page opens in a browser, that URL may therefore appear in request logs. We rely on our legitimate interest in operating a secure, functional website (Art. 6(1)(f) GDPR). You may object on grounds relating to your particular situation (Art. 21 GDPR; see Section 7).
Our hosting project's _Default Cloud Logging bucket retains ordinary request logs for 30 days. Its separate _Required bucket retains required audit logs for 400 days. These periods describe the configured project log buckets.
Google publishes information about its processing terms, subprocessors and international-transfer safeguards at https://cloud.google.com/terms/data-processing-addendum. Google states that Google LLC is certified under the EU-US Data Privacy Framework.