Backup, export & import
Where your data lives
Everything you log is stored in a private database on this phone. The app has no network access at all — it does not request the Internet permission, so it could not phone home even if it wanted to. There is no account, no cloud, no sync, and no analytics.
Two consequences you should act on:
- Backups are yours to make. The app cannot save your data anywhere else on its own. Export a backup file regularly (the backup reminder exists for exactly this) and put it somewhere safe — your own cloud drive, an email to yourself, a computer.
- Uninstalling the app deletes your data with it, like any app-private storage. Export first.
When you export, the file is built in the app's private cache and handed to the Android share sheet — you choose where it goes. Generated files are temporary on the app's side; the copy you share is the one that persists.
Export
Data tab → Export. Choose what, then the format:
| Content tier | What's in the file |
|---|---|
| Data only (default) | The trackers you select — definitions, tags, groups — plus their entries in the date range you set |
| Templates only | Structure only: the selected trackers, their tags and groups, no entries. For giving your setup to someone (or another device) without your history |
| Full backup | Everything: all trackers and entries, plus reminders, check-ins, goals, and settings. No date range, no selection — it is the restore-me file |
Formats:
- JSON — the app's own format, and the only one that can be imported back. This is what a backup is.
- CSV — a spreadsheet-friendly table of your entries, for your own analysis. Export only; it cannot be re-imported.
- PDF — the printable report. Also not a backup.
Templates-only and Full backup are always JSON. The export screen shows a live count of what your current selection covers.
Import
Data tab → Import → "Choose a JSON file." Import is merge-only and additive: it never overwrites or deletes what you have.
- A tracker in the file that matches one of yours (same key and type) is adopted — its entries merge into yours, and your tracker's name, color and settings all stay yours. If the file's tracker is genuinely different, it arrives as a renamed copy instead; nothing is silently combined.
- Entries that are already present (same time, same content) are skipped, so importing the same backup twice adds nothing.
- Before anything is written you get a full preview — every group and tracker in the file, marked already yours / new / renamed copy — and you can untick anything. An unticked tracker is treated as if the file never contained it.
- A backup file adds a switch for restoring the reminders, check-ins, goals, views and settings it carries — on by default, and your choice.
- After a successful import, an Undo banner reverts the whole import — and it survives leaving the screen and restarting the app, until you dismiss it or the next data change claims it.
What import refuses
Import is deliberately strict — a half-read backup would be worse than a refused one:
- CSV files — CSV import was retired; CSV is export-only.
- Old export formats — files written by versions before the current backup format. The fix is to export a fresh file from a current version.
- Files from a newer app version — "Update piptracker to import this."
- Malformed files — a backup file with a missing or mistyped field is rejected whole, with an explanation, rather than half-imported. (Tag links and a few tolerant lists are the exception: a single bad element is dropped, never the file.)
- Ratings on another scale are not refused but converted: if the file was logged on a different rating scale, the preview warns you that its ratings will be converted to your scale and that the rounding cannot be undone. A fresh install restoring a backup simply adopts the file's scale.
Reset
Settings → Reset… offers up to three tiers, each stating what it keeps:
- Delete all entries — history gone, trackers and settings stay.
- Delete all trackers and entries — empties the whole catalog; settings survive.
- Factory reset — everything back to a fresh install, starter set re-seeded. This is always available: you can never be locked out of a working app.
Each asks for confirmation; none of them can be undone. Export first.