1M Finance uses a sectioned CSV format. Each section starts with a SECTION marker row, followed by a section name, then column headers, then data rows. Sections are optional — you can import just transactions if that's all you have.
Quick start: Export your current data first (Settings → Import & Export → Export) to see a working example of the format.
A file can contain up to five sections, in this order:
TRANSACTIONS is the only required section. All others are optional. If you omit ACCOUNTS or CATEGORIES, the app creates them automatically from the names used in your transactions.
Each section follows this pattern:
SECTION,,,,,
SECTION_NAME,,,,,
Column Header 1,Column Header 2,...
data row 1
data row 2
If you're building this in a spreadsheet, just leave the extra cells in the SECTION rows blank. The app ignores them.
Define your financial accounts. If omitted, the app creates accounts from names referenced in your transactions.
| Field | Type | Required | Notes |
|---|---|---|---|
| Account Name | Text | Yes | Unique name for the account |
| Account Type | Text | Yes | regular, savings, or debt. Aliases like checking, cash, investment, credit, loan are also accepted. |
| Starting Balance | Number | Yes | Balance at the start of tracked history |
| Current Balance | Number | Yes | Current balance (recalculated on import) |
| Currency | Text | Yes | 3-letter ISO code: USD, EUR, GBP, BTC, XAU, etc. |
| Include In Total | Boolean | Yes | true or false — include in net worth |
| Display In Expenses | Boolean | Yes | true or false — show in expense charts |
| Is Archived | Boolean | Yes | true or false |
| Max Credit Balance | Number | Optional | Credit limit (debt accounts only) |
| Description | Text | Optional | Short description for your reference |
| Color | Integer | Optional | Numeric color code (e.g. 4280391411). Leave blank — the app picks one for you. |
| Initial Balance Date | Date | Optional | yyyy-MM-dd format. When the starting balance was set. |
SECTION,,,,,,,,,,,
ACCOUNTS,,,,,,,,,,,
Account Name,Account Type,Starting Balance,Current Balance,Currency,Include In Total,Display In Expenses,Is Archived,Max Credit Balance,Description,Color,Initial Balance Date
Checking,regular,0.0,5200.0,USD,true,true,false,,Main checking,4280391411,
Savings,savings,1000.0,8500.0,USD,true,true,false,,Emergency fund,4283215168,
Credit Card,debt,0.0,1200.0,USD,true,true,false,5000.0,Visa card,4294930688,
Euro Account,regular,500.0,250.0,EUR,true,true,false,,Travel fund,4284890654,2024-06-01
Define expense and income categories. If omitted, the app creates categories from names used in your transactions.
| Field | Type | Required | Notes |
|---|---|---|---|
| Category Name | Text | Yes | Unique name for the category |
| Category Type | Text | Yes | expense or income |
| Color | Integer | Optional | Numeric color code. Leave blank — the app picks one for you. |
| Is Archived | Boolean | Yes | true or false |
| Parent Category | Text | Optional | Name of the parent category for subcategories. Parent must appear before its children. |
SECTION,,,,,
CATEGORIES,,,,,
Category Name,Category Type,Color,Is Archived,Parent Category
Food & Dining,expense,4294924066,false,
Transportation,expense,4282339765,false,
Salary,income,4283215168,false,
Coffee,expense,4294924066,false,Food & Dining
Fuel,expense,4282339765,false,Transportation
In this example, Coffee is a subcategory of Food & Dining, and Fuel is a subcategory of Transportation. Parents must be listed before their subcategories.
This is the only section you must include. Each row is one transaction.
| Field | Type | Required | Notes |
|---|---|---|---|
| Date | Date | Yes | yyyy-MM-dd (recommended), dd/MM/yyyy, or MM/dd/yyyy. The app auto-detects the format; use yyyy-MM-dd to avoid ambiguity. |
| Type | Text | Yes | expense, income, transfer, or expenseTransfer |
| From Account | Text | Yes | Account name (must match ACCOUNTS section). For income, this is the account that receives the money. |
| To Account | Text | Transfers | Destination account for transfers |
| Category | Text | Non-transfers | Category name (must match CATEGORIES section) |
| Subcategory | Text | Optional | Subcategory name, if applicable |
| Amount | Number | Yes | Transaction amount (positive number) |
| Currency | Text | Yes | 3-letter ISO code matching the source account |
| To Account Amount | Number | Optional | Amount received in destination account (cross-currency transfers) |
| To Account Currency | Text | Optional | Currency of the destination account (cross-currency transfers) |
| Amount USD | Number | Optional | Pre-calculated USD equivalent. App recalculates if missing. |
| Amount Preferred Currency | Number | Optional | Pre-calculated preferred currency equivalent. App recalculates if missing. |
| Notes | Text | Optional | Free text description |
| Recurring Ref | Text | Optional | Links this transaction to a recurring template. Auto-populated on export — do not edit manually. |
SECTION,,,,,,,,,,,,,
TRANSACTIONS,,,,,,,,,,,,,
Date,Type,From Account,To Account,Category,Subcategory,Amount,Currency,To Account Amount,To Account Currency,Amount USD,Amount Preferred Currency,Notes,Recurring Ref
2025-01-03,expense,Checking,,Food & Dining,,52.0,USD,,,52.0,52.0,Trader Joe's,
2025-01-15,income,Checking,,Salary,,3200.0,USD,,,3200.0,3200.0,Monthly salary,RT-1
2025-01-15,transfer,Checking,Savings,,,500.0,USD,500.0,USD,500.0,500.0,Monthly savings,
2025-01-10,transfer,Checking,Euro Account,,,1000.0,USD,920.0,EUR,1000.0,1000.0,Travel fund top-up,
Notice that the cross-currency transfer (USD → EUR) sets both To Account Amount and To Account Currency to record the exchange rate. The Recurring Ref column links back to a recurring template (e.g. RT-1 matches the salary template below).
Set monthly budget targets per category. One row per category per month.
| Field | Type | Required | Notes |
|---|---|---|---|
| Category Name | Text | Yes | Must match a category from the CATEGORIES section |
| Amount | Number | Yes | Monthly budget amount |
| Currency | Text | Yes | 3-letter ISO code |
| Year | Integer | Yes | e.g. 2025 |
| Month | Integer | Yes | 1–12 |
SECTION,,,,,
BUDGETS,,,,,
Category Name,Amount,Currency,Year,Month
Food & Dining,550.0,USD,2025,3
Transportation,250.0,USD,2025,3
Entertainment,150.0,USD,2025,3
Set up transactions that repeat automatically.
| Field | Type | Required | Notes |
|---|---|---|---|
| Notes | Text | Optional | Description of the recurring transaction |
| Type | Text | Yes | expense, income, transfer, or expenseTransfer |
| From Account | Text | Yes | Account name |
| Category | Text | Non-transfers | Category name |
| Amount | Number | Yes | Transaction amount |
| Currency | Text | Yes | 3-letter ISO code |
| Frequency | Text | Yes | daily, weekly, monthly, or yearly |
| Interval | Integer | Yes | Repeat every N periods (e.g. 1 = every month, 2 = every other month) |
| Start Date | Date | Yes | yyyy-MM-dd |
| End Date | Date | Optional | yyyy-MM-dd — when to stop recurring |
| Max Occurrences | Integer | Optional | Stop after N occurrences |
| Auto Create | Boolean | Yes | true to create transactions automatically |
| Is Active | Boolean | Yes | true or false |
| To Account | Text | Transfers | Destination account for recurring transfers |
| To Account Currency | Text | Optional | Currency of the destination account (cross-currency recurring transfers) |
| Ref | Text | Optional | Unique identifier for this template (e.g. RT-0). Used to link transactions back to their recurring template. |
SECTION,,,,,,,,,,,
RECURRING_TRANSACTIONS,,,,,,,,,,,
Notes,Type,From Account,Category,Amount,Currency,Frequency,Interval,Start Date,End Date,Max Occurrences,Auto Create,Is Active,To Account,To Account Currency,Ref
Monthly rent,expense,Checking,Housing,1200.0,USD,monthly,1,2025-01-01,,,true,true,,,RT-0
Monthly salary,income,Checking,Salary,1600.0,USD,monthly,1,2025-01-01,,,true,true,,,RT-1
Make sure every row has a value (or an empty comma) for each column in the header. Rows with missing columns are silently skipped during import.
Account names and category names in your transactions must exactly match (case-sensitive) the names defined in the ACCOUNTS and CATEGORIES sections. If you skip those sections, the app creates entries automatically from the names used in transactions.
Encoding: Save your file as UTF-8 CSV for best results. If values contain commas, wrap them in double quotes (e.g. "Food, Drink & Dining").