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.

ColumnWhat goes in it
titleThe task's name. Every row for a task needs exactly the same title, including capital letters. Rows without a title are ignored.
entry_typeWhat happened that day: completed_manually, skipped_manually or missed_manually.
entry_dateThe date as a number in YYYYMMDD form. 1 May 2024 is 20240501.
iconOptional. 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.
pageOptional. Which page the task goes on, counting from 0 for the first page.
task_idLeave 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_manually adds one to the streak.
  • skipped_manually keeps the streak the same as the day before. Use it for planned days off.
  • missed_manually resets 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

  1. Open the old app's CSV in your spreadsheet app.
  2. Rename the habit column to title, or add a title column and fill in the habit's name.
  3. Convert the dates. In Google Sheets or Excel, if the date is in column B, =TEXT(B2,"yyyymmdd") gives 20240501. 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.
  4. Add an entry_type column and translate the old app's marks: done becomes completed_manually, a rest or skip day becomes skipped_manually, and a failed day becomes missed_manually. A formula such as =IF(C2=1,"completed_manually","missed_manually") saves typing.
  5. 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.
  6. Remove duplicate rows. Keep one entry per task per day: if there are more, only one is kept.
  7. Delete the old columns you don't need, or leave them: unknown columns are ignored.
  8. 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.

  1. 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.
  2. In Streaks, open Settings > Manage Data > Import Data.
  3. Choose the file, and tap OK to confirm.
  4. 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

More guides

Streaks is a habit tracker for iPhone, iPad, Apple Watch, Mac and Apple Vision Pro. A one-time purchase, with no subscription.

Download on the App Store