Why spreadsheet imports go wrong

A budget spreadsheet is built for a person to read. An import file is built for a parser. The usual problems are predictable: a single column of positive numbers where the app needs signs, a mix of date formats typed by hand, subtotal rows, merged cells, and one tab that mixes three accounts. None of these is hard to fix, but each app wants a slightly different shape, so the fix depends on where you are going.

The four apps compared here all document a CSV route. The table below collects the rules from each vendor's import pages, so you can shape one clean file and adapt it in minutes rather than discovering the rules one failed upload at a time.

Per-app CSV requirements

Read across a row to compare apps on one rule. "Not stated" means the page we read did not say, not that there is no rule; test a small file to find out.

Per-app CSV requirements
RuleYNABMonarchLunch MoneyPocketSmith
Fields mappedDate, Payee, Memo, Outflow, Inflow [1]Date, Amount, Account (Account optional if importing into one account) [2]date, payee or description, amount [3]Date, Amount, Merchant [4]
Optional fieldsMemo [1]Category, Tags, Notes [2]notes, categories, tags [3]Categories, labels, notes [4]
Amount formatSeparate Outflow and Inflow; Swap option if reversed [1]One column; debits negative or in parentheses [2]Signed column, debit and credit columns, or amount plus type [3]Signed; tick reversed if expenses import as income [5]
DatesNot stated; adjusts to local time [1]Any standard US format [2]YYYY/MM/DD or YYYY-MM-DD preferred [3]Keep the bank's format; Excel can change it [6]
Categories on importNo [1]Yes [2]Yes, matched or created [3]Yes, optional [4]
Size guidanceNot recommended beyond one year old [1]Split by account, then date range if too large [7]3MB file; 10,000 rows at a time [3]Not stated
DuplicatesSkips same date and amount when importing regularly [1]Choose an overlap option [2]Skip Duplicates: same date, payee and amount [3]Choose an overlap option [4]
WhereWeb or iPad, not phones [1]Web only [2]Transactions page, Import [3]Account Summary or Quick import [4]
UndoDeleted imports cannot be re-imported into that account [1]Cannot be undone [2]Review screen before import [3]Replace option overwrites edits on overlapping rows [4]

A sample layout that adapts to all four

Keep one master tab in this shape and generate an export copy per app. Dates in ISO order (year-month-day) are unambiguous and are what Lunch Money prefers. [3] Amounts are signed, with money out negative, which is what Monarch requires. [2] Account sits in its own column so you can filter to one account per file. The six rows below are invented.

A sample layout that adapts to all four
DateAccountPayeeAmountCategoryNotes
2026-09-01CheckingEmployer payroll2400.00Paycheck
2026-09-02CheckingCity Apartments-1650.00RentSeptember
2026-09-04VisaCorner Market-86.42Groceries
2026-09-06CheckingTransfer to savings-300.00Transfer
2026-09-06SavingsTransfer from checking300.00Transfer
2026-09-12VisaCorner Market refund12.50GroceriesReturned item

Adapting the master file for each app

YNAB: filter to one account, because the import screen asks you to confirm the single account the rows go into. Split Amount into two columns: Outflow holds the absolute value of negatives, Inflow holds positives. In a spreadsheet, Outflow is =IF(D2<0,-D2,"") and Inflow is =IF(D2>0,D2,""). Drop the Category column, since YNAB file-based import does not take categories, and map Notes to Memo. [1]

Monarch: keep the file as is, but switch the date column to a US format such as MM/DD/YYYY to stay inside its stated "standard US-based date format". Account, Amount and Date are the required headers; Category and Notes map directly. [2] If the upload is refused as too large, save one file per account. [7]

Lunch Money: keep ISO dates and the signed Amount column, rename Payee to payee and Category to categories, and leave Account out because you choose the destination account when uploading. [3] Save the column configuration on the review screen so the next upload skips mapping. [3]

PocketSmith: map Date, Amount and Payee as Merchant. PocketSmith says to prefer OFX, QFX or QIF when a bank offers them and use CSV only when they are not available; a spreadsheet you built yourself is the case where CSV is the only option. [8] If expenses arrive as income, re-import with the reversed option. [5]

Cleanup checklist before the first upload

The five-row test is the most useful habit on the list. In the sample above, a correct import shows spending of 1,723.92 (rent, groceries, less the refund) and income of 2,400.00 when the transfer category is excluded, and the transfer pair nets to zero. If an app shows 2,023.92 of spending, the outgoing transfer was counted as an expense.

  • Work on a copy. Keep the original sheet untouched.
  • Delete subtotal rows, blank rows, notes rows and merged cells.
  • One header row only, with plain names (Date, Account, Payee, Amount).
  • Every row has a date, a payee or merchant and an amount; Lunch Money lists rows missing any of these as malformed. [3]
  • Convert amounts to plain numbers: no currency symbols, no thousands separators, money out negative.
  • Make dates one consistent format, and do not reopen the CSV in Excel before importing. [6]
  • Split by account. Even where a combined file is allowed, per-account files are easier to check.
  • Pair your transfers: both sides present, both in a transfer category.
  • Export as CSV (comma-separated, UTF-8) and open it in a text editor to check it.
  • Import five rows first, compare totals with the sheet, then import the rest.

Which app is most forgiving of a spreadsheet

On documented features alone, Lunch Money and Monarch are the easiest homes for a spreadsheet with categories, because both import a category column and both let you check mappings before committing. [3][2] Lunch Money adds three amount notations and a preview of malformed lines; Monarch adds overlap handling when the account is already linked. PocketSmith takes categories too, and its replace-on-overlap option makes re-imports tidy at the cost of edits on overlapping rows. [4]

YNAB is the least suited to importing a categorized history, by design: file-based import does not take categories or splits, and YNAB does not recommend importing transactions older than a year. [1] For YNAB, import recent months and start budgeting forward, keeping the spreadsheet as your archive.

Questions before you decide

Can I import my spreadsheet categories?

Into Monarch, Lunch Money and PocketSmith, yes, as an optional column. YNAB says file-based import cannot add categories or split transactions, so YNAB rows arrive uncategorized and you categorize them afterwards.

What date format should my sheet use?

Lunch Money prefers YYYY/MM/DD or YYYY-MM-DD, and Monarch says any standard US date format works. PocketSmith warns that opening a CSV in Excel can change its date order. Test five rows in the app you chose before importing everything.

How much history should I import?

YNAB does not recommend importing transactions more than one year old through file-based import. Lunch Money caps files at 3MB and 10,000 rows per upload, and Monarch asks you to split large files by account and then by date range.

Follow the sources

Provider terms can change. Recheck the linked source before applying or subscribing.

Browse the free decision worksheets