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.
| Rule | YNAB | Monarch | Lunch Money | PocketSmith |
|---|---|---|---|---|
| Fields mapped | Date, 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 fields | Memo [1] | Category, Tags, Notes [2] | notes, categories, tags [3] | Categories, labels, notes [4] |
| Amount format | Separate 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] |
| Dates | Not 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 import | No [1] | Yes [2] | Yes, matched or created [3] | Yes, optional [4] |
| Size guidance | Not 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 |
| Duplicates | Skips 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] |
| Where | Web or iPad, not phones [1] | Web only [2] | Transactions page, Import [3] | Account Summary or Quick import [4] |
| Undo | Deleted 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.
| Date | Account | Payee | Amount | Category | Notes |
|---|---|---|---|---|---|
| 2026-09-01 | Checking | Employer payroll | 2400.00 | Paycheck | |
| 2026-09-02 | Checking | City Apartments | -1650.00 | Rent | September |
| 2026-09-04 | Visa | Corner Market | -86.42 | Groceries | |
| 2026-09-06 | Checking | Transfer to savings | -300.00 | Transfer | |
| 2026-09-06 | Savings | Transfer from checking | 300.00 | Transfer | |
| 2026-09-12 | Visa | Corner Market refund | 12.50 | Groceries | Returned 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
- YNAB help: File-Based Import Checked Oct 30, 2026
- Monarch help: Importing Transactions Manually Checked Oct 30, 2026
- Lunch Money help: CSV / PDF Importing Checked Oct 30, 2026
- PocketSmith Learn Centre: Importing bank files into PocketSmith Checked Oct 30, 2026
- PocketSmith Learn Centre: Expense transactions showing as income after import Checked Oct 30, 2026
- PocketSmith Learn Centre: Invalid date error when importing a CSV file Checked Oct 30, 2026
- Monarch help: Importing Large CSV Files Checked Oct 30, 2026
- PocketSmith Learn Centre: Preparing your bank files, accepted file types Checked Oct 30, 2026
Provider terms can change. Recheck the linked source before applying or subscribing.