Threshld — Privacy Policy
Threshld ("the App", "we") is a personal health and recovery tracking app built by Claudiu Cioloca for Android. This policy explains what data the App handles, where it lives, and what control you have over it.
Questions: threshld.app@gmail.com
1. Summary
- Threshld reads health data from Android Health Connect on your device with your explicit permission.
- Raw health records (heart rate, HRV, sleep, steps, workouts, weight, respiratory rate, body temperature, resting heart rate) stay on your device. They are not uploaded to our servers.
- We store a minimal account profile and derived daily scores in Google Firestore so your app state persists across reinstalls.
- We do not sell your data, share it with advertisers, or use it to train AI models.
- You can delete your account and all associated cloud data from inside the app at any time.
2. Data we handle
2.1 Account data (Google Firebase)
- Email address (Google Sign-In or email/password)
- Firebase Auth user ID (UID)
- Display name, if provided
- Subscription state (Play Billing purchase token, entitlement, trial dates)
- Theme preference (System / Light / Dark)
- Selected watch brand — used for onboarding guidance only
2.2 Profile constants you enter (Firestore)
- Age, biological sex, height, weight
- Optional training goals and capacity band
Used to compute recovery, recovery, and capacity scores. Stored so the app works across devices and reinstalls.
2.3 Derived scores (Firestore)
- Daily recovery, recovery, sleep scores
- Acute and chronic training load (ACWR inputs)
- Manually-entered HRV values, when the device hasn't recorded one
Stored under users/{your-uid}/daily_scores/{date}.
2.4 Health Connect data (stays on your device)
| Record type | Purpose |
|---|---|
| Heart rate | HR trends; resting HR estimates; sleep-stage cross-checks |
| Heart rate variability (RMSSD) | Compute recovery and recovery |
| Sleep sessions | Compute sleep score; show sleep stages |
| Steps | Daily activity totals; ACWR training load |
| Exercise / workout sessions | Show workouts; derive training load and zones |
| Weight | Body metrics chart |
| Respiratory rate | Display in vitals |
| Body temperature | Display in vitals |
| Resting heart rate | Display and trends |
With your optional permission, Threshld also writes HRV records to Health Connect when you enter HRV manually, so other Health Connect apps see a single coherent dataset. Revocable at any time.
Raw Health Connect records never leave your device. Cached locally in an on-device SQLite database so the app works offline.
2.5 Diagnostic data
- Firebase Crashlytics may record crashes (stack traces, device model, OS version). No health data is included.
- No third-party analytics, ad SDKs, or tracking pixels.
2.6 What we do NOT collect
- No location (precise or coarse)
- No contacts, photos, microphone, camera, SMS
- Not intended for users under 16
3. How we use your data
- Compute scores and trends locally on your device.
- Sync account state (profile, derived scores, theme, subscription) across reinstalls via Firestore.
- Process subscriptions through Google Play Billing. Purchase tokens verified via our
verifyPurchaseCloud Function. - Diagnose crashes via Firebase Crashlytics.
We do not sell or rent data, share with advertisers / brokers / marketers, use your data to train ML models, transfer Health Connect data to third parties, or use Health Connect data for advertising.
4. Where your data is stored
| Data | Location |
|---|---|
| Raw Health Connect records | Your device only (Health Connect + on-device SQLite cache) |
| Account profile and derived scores | Google Firestore (Firebase project vitals-app-86c74) |
| Auth credentials | Google Firebase Authentication |
| Subscription state | Google Firestore (verified via Google Play Billing) |
| Crash reports | Google Firebase Crashlytics |
Cloud data is processed by Google as our infrastructure provider. See Google Privacy & Terms and Firebase Data Processing terms.
5. Permissions we request
- Health Connect (read) — required. Per-type access, revocable.
- Health Connect (write HRV) — optional, just-in-time when you first enter HRV manually.
- Internet — Firebase Auth, Firestore sync, Play Billing, Crashlytics.
- Post notifications (Android 13+) — up to 3 insight notifications per week. Disable in system settings.
The App does NOT declare ACTIVITY_RECOGNITION, location, contacts, camera, microphone, or SMS permissions.
6. Your rights
- Revoke Health Connect access per type — Android Settings → Health Connect → App permissions → Threshld.
- Sign out — Account → Manage account → Sign out. Local cache is cleared.
- Delete your account — Account → Manage account → Delete account. We remove:
- All documents under
users/{your-uid}in Firestore (includingdaily_scores) - Your Firebase Authentication record
- The on-device cache
- All documents under
EU / UK users have additional rights under GDPR (access, rectification, restriction, objection, portability). California residents have rights under CCPA/CPRA (know, delete, opt-out — we do not sell data). Email threshld.app@gmail.com to exercise.
7. Data retention
- Active accounts: retained while your account exists.
- Deleted accounts: cloud data removed immediately on deletion.
- Crash reports: Firebase Crashlytics defaults (~90 days).
- Subscription receipts: retained while active + reasonable audit window.
8. Children
Threshld is not directed at children under 16 and we do not knowingly collect data from them. If you believe a child has provided data, email threshld.app@gmail.com and we will delete it.
9. Security
- All data in transit uses TLS.
- Firestore access is server-enforced:
request.auth.uid == uid. - Firebase App Check protects backend endpoints.
- Subscription verification runs in a Cloud Function with App Check enforcement.
- Raw Health Connect data never leaves the device.
If you spot an issue, email threshld.app@gmail.com.
10. Changes to this policy
We will update this page when data practices change. The "Last updated" date reflects the most recent change. Material changes will be surfaced in-app before they take effect.
11. Contact
Controller: Claudiu Cioloca
Email: threshld.app@gmail.com
App: Threshld (com.threshld.app)