Data Retention & Deletion Policy
This policy defines how Pocket Piggy collects, retains, and deletes user data across all systems. It ensures compliance with applicable data privacy laws and reflects our commitment to data minimization and user control.
Pocket Piggy is a privacy-first application. Its foundational principle is that financial data never leaves the user's device. This policy covers both on-device and server-side data.
| Data Category | Storage Location | Retention Period | Deletion Trigger |
|---|---|---|---|
| HIGH Transactions (Plaid & manual) | Device only (AES-256 Hive) | Until user action | App uninstall or account deletion |
| HIGH Budget data | Device only (AES-256 Hive) | Until user action | App uninstall or account deletion |
| HIGH Account balances | Device only (AES-256 Hive) | Until user action | App uninstall or account deletion |
| HIGH Plaid access tokens | Server (Firestore, Google KMS) | Until user action | Bank disconnect or account deletion |
| User profile (name, email) | Cloud Firestore | Until user action | Account deletion request |
| Gamification progress (XP, achievements) | Cloud Firestore | Until user action | Account deletion request |
| User preferences & settings | Device (SharedPreferences) + Firestore | Until user action | App uninstall (device) or account deletion (server) |
| Subscription status | Cloud Firestore + RevenueCat | Until user action | Account deletion request |
| Vendor category memory (learned associations) | Device only (AES-256 Hive) | Until user action | App uninstall or account deletion |
| Analytics events (non-PII) | Firebase Analytics | 14 months (automatic) | Automatic expiration (anonymized) |
| Cloud Function logs | Google Cloud Logging | 30 days (automatic) | Automatic expiration |
| Crash reports | Firebase Crashlytics | 90 days (automatic) | Automatic expiration |
Users can delete their entire account through Settings > Account > Delete Account. This triggers:
Account deletion is immediate and irreversible. Users are warned with a confirmation dialog before proceeding.
Users can disconnect their bank without deleting their account through Settings > Bank Sync. This triggers:
Before deletion, users can export their data in two formats (Pro feature):
Export files are generated on-device and saved to the user's device storage. No export data is transmitted to any server.
| Provider | Data Shared | Provider's Retention | Deletion Process |
|---|---|---|---|
| Plaid | Access tokens (server-side) | Per Plaid's policy | Token revoked on disconnect or account deletion |
| Firebase / GCP | User profiles, non-financial data | Until deleted | Cascading delete on account deletion |
| RevenueCat | Anonymous user ID, purchase receipts | Per RevenueCat's policy | User ID disassociated on account deletion |
| OpenAI | Vendor names only (no PII) | Not retained (API usage, zero data retention) | No persistent data to delete |
| Firebase Analytics | Non-PII usage events | 14 months (anonymized) | Automatic expiration |
This policy is reviewed and updated at minimum annually, or whenever significant changes are made to data handling practices, third-party integrations, or storage architecture.