| Data Type | Where Stored | Retention Period | Deletion Trigger |
|---|---|---|---|
| Account credentials (email, hashed password, OAuth tokens) | Firebase Auth | Until account deletion + 30 days | Account deletion request |
| Senior profile (name, age range) | Firestore: users/{uid} | Until account deletion + 30 days | Account deletion request |
| Caregiver profile (name, relationship) | Firestore: users/{uid} | Until account deletion + 30 days | Account deletion request |
| Family Memory photos | Firebase Storage: memories/{seniorId}/ | Until deleted by caregiver or account deletion + 30 days | Caregiver deletes memory OR account deletion |
| Caregiver voice messages | Firebase Storage: memories/{seniorId}/voice/ | Until deleted by caregiver or account deletion + 30 days | Caregiver deletes memory OR account deletion |
| Caregiver voice questions | Firebase Storage: memories/{seniorId}/questions/ | Until deleted by caregiver or account deletion + 30 days | Caregiver deletes memory OR account deletion |
| Senior voice replies | Firebase Storage + Firestore: users/{uid}/voiceReplies/ | 12 months rolling | Auto-purge after 12 months |
| Daily session records (brain scores, wellness answers, mood, completion) | Firestore: users/{uid}/sessions/{date} | 24 months rolling | Auto-purge after 24 months |
| Streak data | Firestore: users/{uid} | Until account deletion | Account deletion request |
| Push notification tokens | Firestore: users/{uid}.expoPushToken | Until token expires or account deletion | Expo token expiry or account deletion |
| AI-generated prompts | Firestore: memories/{seniorId}/items/{id}.aiPrompts | Same as parent memory doc | Memory deletion or account deletion |
| Memory lastShownAt timestamps | Firestore: memories/{seniorId}/items/{id} | Same as parent memory doc | Memory deletion or account deletion |
| Analytics events | Firestore: events/ | Anonymized after 90 days; raw data deleted after 90 days | Auto-purge at 90 days |
| Support email correspondence | Google Workspace (Gmail) | 2 years from last correspondence | Manual deletion after 2-year mark |
| Aggregated / anonymized analytics | Internal only | Indefinite (no personal identifiers) | Not applicable |
You do not need to wait for a scheduled purge. You can delete data earlier:
In limited circumstances, we may be required to retain data beyond our standard retention periods to comply with a legal obligation, court order, regulatory investigation, or to preserve evidence in connection with an active legal dispute. In such cases, we will retain only the minimum data required and for no longer than legally necessary.
Data shared with third-party services (Firebase/Google, Anthropic) is subject to those services' own retention policies. We send minimal data to Anthropic (name, relationship, caption, category only) and do not control Anthropic's retention period for API request logs. See our Privacy Policy for links to each vendor's policy.
Questions or deletion requests: joy@joyhealthtechnologies.com
Related: Data Deletion Policy · Account Deletion Policy · Privacy Policy