MeOS

Import statement

# Import statement

Import statement takes a bank or card statement CSV, lets you interpret its columns, and saves the original file and transactions for classification.

## Choose the source and account

Drop a CSV onto the upload area or choose a file. It must be comma-delimited UTF-8, no larger than 10 MB, with a header and at most 5,000 transaction rows. Headers must be present and unique.

Choose its account. You can preview without an account, but must assign one before confirming. A new account entered here is created only when import succeeds. Its currency is the mapping currency.

Optionally select a suggested business. **Multiple businesses / assign individually** requires manual review and prevents rules from automatically committing this statement.

## Interpret the columns

Choose a saved mapping or map manually. Account selection does not choose a mapping.

- Transaction date: the source column containing the date.
- **Date format in uploaded file**: how that date is written, not the app's display format. Choose day/month/year or month/day/year deliberately.
- Description columns: one or more columns joined in file order using the selected separator.
- Amounts: one signed column, or separate money-out and money-in columns.
- Positive amounts: for a signed column, choose whether positive source values mean money in or money out.
- Currency: must match the account.
- Balance and Reference: optional source columns. A balance is not recalculated or used to prove the statement balances.

Normalized positive amounts mean money in; negative amounts mean money out. This does not classify the transaction.

You can adjust a saved mapping for this import without saving the adjustments. Check **Save this mapping for reuse** to create a new mapping or update the selected one when import succeeds.

## Review

Compare each original date with the interpreted date. Expand a transaction description to inspect its original fields. The first three source rows are also available in the original-file preview.

Possible duplicates start unchecked. Include one only if it is a separate transaction you intend to import. Duplicate detection compares source rows already imported for this account; it is a warning to review, not proof that a payment happened twice.

If a row needs attention, check the mapping first. Correct genuinely invalid values in the source file and upload again. Any invalid row blocks confirmation; the importer does not silently skip it.

## Coverage and confirmation

Inferred coverage uses the earliest and latest transaction dates in the file. It does not establish that every day or transaction is present. A stated period must include all parsed transaction dates.

Unparseable dates make coverage provisional and prevent a proposed retained filename. A conflicting stated period leaves the preview available so you can diagnose it.

Once the preview is valid, confirm the import. The retained filename includes the period and account name. Importing the exact same file again does not create another statement for the same account; using it for a different account is rejected.

On success, use **Classify this statement**. Some valid classifications may already have been saved by rules you explicitly put in Commit mode.

An expired or missing upload requires uploading again. There is no pending-upload recovery screen in this version.

Next: [Classify statements](statement-classification.md).

User guide · Finalized documentation stage · 12 October 2026