1M Finance 1M Finance

CSV Format Guide

How to structure a CSV for import into 1M Finance

Last updated: May 19, 2026

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. For reliable imports, include the account and category sections used by your transactions.

Quick start: Download the sample below or export your current data first from Profile & Settings → Data Management → Import & Export → Export Data. Edit that CSV shape, then import it from Profile & Settings → Data Management → Import & Export → Import from 1M Finance.

If your app is in Spanish: Perfil y ajustes → Gestión de datos → Importar / Exportar → Importar desde 1M Finance.

Download a starter CSV

This sample includes accounts, categories, income, expenses, a normal transfer, an expense transfer, budgets, and one recurring template. It is intentionally small so you can edit it as a starting point.

Download sample CSV

File Structure

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

ACCOUNTS → CATEGORIES → TRANSACTIONS → BUDGETS → RECURRING_TRANSACTIONS

TRANSACTIONS contains the rows you want to import. Include ACCOUNTS and CATEGORIES for the names referenced by those transactions so the import can map them correctly. BUDGETS and RECURRING_TRANSACTIONS are optional.

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. Include every account name referenced by 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 Debt account limit/balance floor. Exported values are usually negative for credit cards or loans, such as -3000.0.
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 USD equivalent snapshot. Keep this column from an export or fill it with the same amount for USD files.
Amount Home Currency Number Optional Home currency equivalent snapshot. Keep this column from an export or fill it with the same amount when your file currency is your home currency.
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.

How transaction types work

  • income — Money enters the From Account. Use an income category such as Salary.
  • expense — Money leaves the From Account. Use Category and optional Subcategory to describe the spending.
  • transfer — Money moves from From Account to To Account. Leave Category and Subcategory blank. This should not count as spending.
  • expenseTransfer — Money moves between accounts and also counts as an expense. Use this for loan or card payment patterns where the destination account balance changes but the payment should appear in spending.

Examples

SECTION,,,,,,,,,,,,,
TRANSACTIONS,,,,,,,,,,,,,
Date,Type,From Account,To Account,Category,Subcategory,Amount,Currency,To Account Amount,To Account Currency,Amount USD,Amount Home 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-20,expenseTransfer,Checking,Credit Card,Card Payment,,250.0,USD,250.0,USD,250.0,250.0,Credit card payment,
2025-01-10,transfer,Checking,Euro Account,,,1000.0,USD,920.0,EUR,1000.0,1000.0,Travel fund top-up,

For a same-currency transfer, set Amount, Currency, To Account Amount, and To Account Currency to the same value and currency. For a cross-currency transfer, Amount and Currency describe what left the source account, while To Account Amount and To Account Currency describe what arrived in the destination account. Transfers normally leave Category and Subcategory blank, except expenseTransfer.

The Recurring Ref column links a transaction back to a recurring template (for example, 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. Missing account or category mappings can cause affected rows to be skipped.

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 home currency from transaction frequency.
  • Keep Amount USD and Amount Home Currency populated when possible. For a single-currency USD starter file, they can match Amount.

Numbers: For hand-written files, use dot decimals such as 1234.56 and avoid thousands separators. If a spreadsheet rewrites values with local separators, export back to CSV and check the raw file if import results look wrong.

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