Skip to main content

How long data is kept

Retention of every kind of record Assetli stores, what happens when you delete something, and what still exists in backups afterwards.

Last updated: September 16, 2026

Retention periods below are taken from the database indexes and constants in the code on the date above. Where a period is not controlled by the application, the table says so.

Your content

DataKept
Accounts, transactions, investments, properties, vehicles, valuables, budgets, goals, subscriptions, loans, utility readingsUntil you delete the record, or your account
Uploaded files (statements, photos, documents)Until you delete them, or your account; the file is removed from object storage, not only unlinked
In-app AI conversationsUntil you delete them
Saved property checksUntil you delete them
Property checks run without an accountNot saved to any account; the result is cached for 7 days by a fingerprint of the listing text
Notifications30 days
Saved calculator plansUntil you delete them

Security and access records

DataKept
Sign-in session (cookie)7 days
OAuth access token (MCP, mobile)1 hour
OAuth refresh token60 days, replaced on every refresh; all tokens of a connector are revoked immediately when you remove it
OAuth authorisation code10 minutes, single use
Google Sheets add-on tokens1 hour access, 30 days refresh
MCP audit log (write calls only)365 days
Email verification link24 hours
Password reset link60 minutes
Failed sign-in attemptsCounted within a 15-minute window; a lockout lasts 15 minutes
Rate-limit counters24 hours
Two-factor secret and backup codesUntil you disable two-factor authentication or delete the account

Operational records

DataKept
Database backupMade daily, encrypted with AES-256, kept 30 days on GitHub
Hosting request logs and function output (Vercel)Per the Vercel plan; not controlled by the application
AI usage counters (budget, operations)Reset monthly
Payment recordsHeld by Stripe under its own rules

Deleting your account

Settings → Delete account removes, in one operation: the user record, every profile, and every record keyed to you in every collection, including records owned through a shared-expense group or a Family Legacy contact, failed sign-in attempts keyed to your email, and every file in object storage. The confirmation phrase is required.

Two things survive that deletion for a limited time and are outside our live database:

  • Backups. A daily backup taken before the deletion still contains your data until it expires, at most 30 days. Backups are encrypted and used only to restore the whole database after a failure.
  • Payment records at Stripe, under Stripe’s own retention obligations.

Emails already sent cannot be recalled from Resend or from your inbox.

Exporting your data

Settings → Export data produces a file with every record you own across all collections, excluding authentication secrets and transient logs. You can export as often as you like.