1M Finance 1M Finance

CSV Format Guide

How to structure a CSV for import into 1M Finance

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.

File Structure

A file can contain up to five sections, in this order:

ACCOUNTS → CATEGORIES → TRANSACTIONS → BUDGETS → RECURRING_TRANSACTIONS

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.

Accounts

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.

Example

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

Categories

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.

Example

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.

Transactions (required)

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.

Transaction Types

  • expense — Money going out. Requires From Account and Category.
  • income — Money coming in. Requires From Account (the account receiving money) and Category.
  • transfer — Money moving between your accounts. Requires both From Account and To Account. No category needed.
  • expenseTransfer — A transfer that also counts as an expense (e.g. loan payment). Requires From Account, To Account, and Category.

Examples

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).

Budgets (optional)

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

Example

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

Recurring Transactions (optional)

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.

Example

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

Validation & Tips

Complete rows

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.

Name matching

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.

What happens on import

  • Malformed rows are skipped — the import doesn't fail entirely.
  • Starting balances are recalculated automatically for consistency.
  • The app auto-detects your preferred currency from transaction frequency.
  • Amount USD and Amount Preferred Currency are recalculated if missing.

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").

finance.one-m.app
Home · Switch from 1 Money · CSV Guide · Privacy Policy · Terms of Service · Support · Contact