Switching habit trackers: how to bring your history across
The hardest part of switching habit trackers is leaving a long streak behind. You can usually bring it with you: export your history from the old app as a CSV file, reshape it to the columns the new app expects, and import it. This guide shows how, using Streaks as the example, but the same steps work for most trackers that import CSV.
Before you start
- Keep the old app until you've checked the import. Don't delete it or its data first.
- Find its export. Most habit trackers can export a CSV (comma-separated values) file, usually from their settings, under a name like Export, Backup or Data. If yours can only export a PDF or a proprietary backup, a CSV import won't work, and you'll need to rebuild the history by hand or start fresh.
- Have a spreadsheet app ready. Numbers, Google Sheets or Microsoft Excel all work. You'll use it to rearrange the columns.
How habit history is usually stored
Trackers export their history in one of two shapes:
- One row per entry: a habit name, a date and what happened (done, skipped, missed). This is what Streaks imports, so it needs the least work.
- A grid: one row per date, one column per habit, with a mark such as 1, ✓ or 2 for each day. You'll need to turn this into one row per entry. In Excel use Unpivot (Power Query), or in any spreadsheet copy each habit's column under the last, with the habit name beside it.
The format Streaks imports
Streaks imports a CSV file with a header row and one row for each day of each task. Columns are matched by their names in the header row, so the order doesn't matter, and any other columns are ignored.
| Column | What goes in it |
|---|---|
title | The task's name. Every row for a task needs exactly the same title, including capital letters. Rows without a title are ignored. |
entry_type | What happened that day: completed_manually, skipped_manually or missed_manually. |
entry_date | The date as a number in YYYYMMDD form. 1 May 2024 is 20240501. |
icon | Optional. The name of a Streaks icon. If it's blank or not recognised, the task gets the Streaks icon, and you can choose one after importing. |
page | Optional. Which page the task goes on, counting from 0 for the first page. |
task_id | Leave blank. If you fill it in, rows are grouped into tasks by this instead of by title. |
The three entry types decide the streak the same way they do in the app:
completed_manuallyadds one to the streak.skipped_manuallykeeps the streak the same as the day before. Use it for planned days off.missed_manuallyresets the streak to zero.
A small file looks like this:
title,entry_type,entry_date
Read 20 Pages,completed_manually,20261017
Read 20 Pages,skipped_manually,20261018
Read 20 Pages,completed_manually,20261019
Go for a Walk,completed_manually,20261018
Go for a Walk,missed_manually,20261019
To see a complete example, open the import screen in Streaks (below), which offers a sample file to download. Or create a task, mark a few days on its calendar, and export it with Settings > Manage Data > Export Data > CSV. Exports include some extra columns you can leave blank.
Reshape your export, step by step
- Open the old app's CSV in your spreadsheet app.
- Rename the habit column to
title, or add atitlecolumn and fill in the habit's name. - Convert the dates. In Google Sheets or Excel, if the date is in column B,
=TEXT(B2,"yyyymmdd")gives20240501. Fill it down, then copy the column and paste it back as values, so the file holds the numbers and not the formula. Check the old app's date order first: 05/01/2024 is 1 May in some countries and 5 January in others. - Add an
entry_typecolumn and translate the old app's marks: done becomescompleted_manually, a rest or skip day becomesskipped_manually, and a failed day becomesmissed_manually. A formula such as=IF(C2=1,"completed_manually","missed_manually")saves typing. - Decide what to do with days that have no entry. If the old app only exported the days you did a habit, add rows for the days off you planned as
skipped_manually, so they don't break the streak. - Remove duplicate rows. Keep one entry per task per day: if there are more, only one is kept.
- Delete the old columns you don't need, or leave them: unknown columns are ignored.
- Export or download the sheet as CSV, with commas between values. Some spreadsheet apps use semicolons in some regions; Streaks needs commas.
Import into Streaks
Importing replaces your current tasks. Before it starts, Streaks asks you to confirm: "Select OK to delete your existing data and import new data." Your active tasks are deleted and replaced by the ones in the file. Archived tasks are kept. So import before you set up other tasks, or, if you already have tasks in Streaks, export them first and add them to the same file.
- Save the CSV file somewhere you can reach from your iPhone or iPad, such as iCloud Drive or the Files app. The file name must end in
.csv. - In Streaks, open Settings > Manage Data > Import Data.
- Choose the file, and tap OK to confirm.
- Check your tasks and their calendars. If something doesn't look right, fix the file and import it again: importing again replaces the tasks rather than adding a second copy.
After importing
Imported tasks start out as simple daily tasks that need doing every day. For each one:
- Set its task days. If it was "three times a week" in the old app, change it on the Edit Task screen. See Task Days and Frequency.
- Choose an icon, if you didn't include one.
- Convert it to a timed, negative or Health task if that suits it. A step or workout habit can be linked to the Health app so it completes itself from now on. See How to track habits automatically with Apple Health.
- Check its reminders. Imported tasks get Streaks' default reminders, which you can change on the task's Notifications screen.
Things that don't come across
- Notes. Daily notes in a CSV file aren't imported. Keep the old export if you want to refer back to them.
- Future dates. Entries dated after today are skipped.
- Settings from the old app, such as reminder times and schedules. Set these up again in Streaks.
- Rows Streaks can't read, such as a misspelled entry type or an impossible date, are left out without a warning. If a day is missing after the import, check its row.
- More than 24 tasks. Streaks shows up to 24 tasks, six to a page, so import the ones you're still doing and leave the rest in the old app's export.
Moving between devices, or back to Streaks
You don't need a CSV to move Streaks to a new iPhone: your tasks sync with iCloud, and Streaks keeps its own backups (see Restore Tasks From Backup). A .streaks backup file from Export Data keeps everything, including notes and settings, and imports from the same screen. To take your history elsewhere, export it as CSV, which any spreadsheet can open.
Related help
- Import Data From Other Apps
- Export Task Data
- Restore Tasks From Backup
- Task Days and Frequency
- Task Icons