← BalanceWright

How to move your checkbook history to a new app

It takes two things: a CSV file out of the app you are leaving, and the import screen in BalanceWright. The first import is built to take a whole history at once, up to 2,000 rows, before you have paid for anything.

Step 1. Get a CSV out of the old app

The exact taps vary by app, and they change between versions, so we are not going to pretend to know your menu. Look for one of these words:

It usually sits in Settings, or behind the share icon on the register itself.

Several checkbook apps state an export on their store listing. As of August 2026, Checkbook - Account Tracker (Beesoft) lists CSV, QIF and HTML. Balance My Checkbook and The Checkbook list CSV. On Android, Checkbook Plus lists CSV, and Simple Checkbook Ledger lists an Excel spreadsheet file. That is what those listings say, not something we have tested for you, and listings change, so check yours.

If you are offered a choice of formats, choose CSV. If the only option is a spreadsheet file, open it on a computer and use Save As to write a CSV.

Then get the file onto the phone. Email it to yourself and save the attachment, or put it in iCloud Drive, Google Drive, or your Downloads folder. Anywhere the phone's file picker can reach it will do.

Step 2. Settings, then Import from a CSV

In BalanceWright, tap Settings, then under Your data tap Import from a CSV, then Choose a file. If you keep more than one account, open the account you want the history to land in first, because the rows go into the account you have open in the register.

The file does not have to use commas. Semicolons and tabs are read as well, and a CSV saved by Excel is fine. The one hard limit at this step is size: a file over 10 MB is turned away as too big to be a register export, with a message saying so.

Read the preview before you agree to anything

Nothing is written to your register until you tap the button at the bottom, which reads Add and then the number of entries. First you get a screen that shows you four things:

  1. How many entries were read, and the first five of them with payee, date and amount, so you can hold them up against the old app.
  2. Which column it took for what: date, payee, amount, money out and money in when those are separate columns, check number, category and memo. It guesses from your headings, and you tap to change any of them.
  3. How it read your dates. If your dates are written with slashes or dashes, it tells you whether it read them as month/day or day/month. Check one against a statement.
  4. How many lines it could not read, with the first several listed by line number and the reason for each. Those lines are left out rather than guessed at, and you can add them by hand afterwards.

What comes in, and what gets left out

A row needs a real date and a real amount. A payee is optional, so a row with a blank description still comes in as long as the date and the amount are there. Amounts can be written $1,234.56, or in parentheses for money out.

A row is left out when the date cannot be read, when the amount cannot be read, when the amount is zero, or when the row has a figure in both the money out and the money in column, because then there is no way to tell which way the money moved. Anything genuinely ambiguous is left out with a reason instead of guessed at, because a wrong amount you cannot trace is the exact thing this app exists to prevent.

The first import is meant to take all of it

BalanceWright is free until you have balanced your first statement, or written your first hundred entries, whichever comes first. A history of 400 or 900 rows would hit that ceiling instantly, so there is a one-time allowance for bringing a history across:

The 2,000 is a guard against the wrong file, not a squeeze. A decade of a real register is a few thousand lines, and a file far past that usually means the wrong file or the wrong column, which you should see turned away rather than written.

The whole file, or none of it

We do not let the first hundred rows in and quietly drop the rest. A history cut off partway cannot be reconciled against any statement, and you would never see it happen. So the import either takes the file or turns it away, and a refusal always names the reason and ends the same way: your register is unchanged. The rows are written in one go rather than one at a time, so if it fails halfway through, nothing is added and the register is exactly as you left it.

After it lands

Every imported entry arrives marked outstanding until you reconcile it. Get your most recent statement, start a reconcile, and tick off what has cleared. That is the moment the register becomes yours, and it is the honest test of any checkbook app.

If you ever want to leave us the same way, Settings then Export writes your register out as a CSV with the date, payee, check number, category, memo, amount, running balance and status for every row. This same import screen reads that file back: the dates, payees, check numbers, categories, memos and amounts return, the running balance is worked out again from them, and the entries come back in marked outstanding for you to reconcile.