Actual CSV: Amount and Split_Amount are different totals

Updated · 2 min read

If an Actual Budget CSV contains both Amount and Split_Amount, do not add the two columns together. In the reviewed v26.10.0 query-export implementation, a split parent has Amount zero and carries its total in Split_Amount; the children carry their individual amounts in Amount. Adding both representations counts that split twice.

This guide checks an existing export, not a universal schema for every Actual output. A bank PDF prepared with LocalExtract supplies transaction rows, not Actual parent/child identifiers or split categories.

The desktop apps export date, description, and amount as CSV. Open CSV in Excel to save an XLSX workbook. Statement support varies: verify the result against your own PDF.

Identify the export route before calculating

Actual’s v26.10.0 exporter source contains separate export functions. The exportQueryToCSV path requests all split rows, sets parent Amount to zero and puts the parent total in Split_Amount. Child rows carry Amount and a zero Split_Amount. Notes identify the parent and numbered children.

That differs from raw API/CLI transaction records. The CLI documentation tells users to filter is_parent: false when summing those records. Do not assume that a raw-record filter and the two-column CSV representation are interchangeable. Establish which file and fields you actually have.

If your export lacks these columns or uses another route/version, inspect that route before applying this calculation. The source-code review here does not establish the layout of every download button.

Keep the parent total as a control, not another expense

The following invented extract follows the reviewed query-export representation. All amounts are EUR and describe one parent payment of 90.00 split into two categories.

Teaching rowAmountSplit_AmountMeaning
Parent P0.00−90.00Contextual total
Child A−55.000.00First allocated part
Child B−35.000.00Second allocated part

Summing Amount yields −90.00, not −180.00. Adding the parent’s Split_Amount to that sum produces the double-counted −180.00 control. Keep the parent total to check that its identified children sum to the same value; do not make it an extra additive expense.

The synthetic export-grain worksheet includes an incomplete-child case: 55.00 plus 30.00 does not explain a 90.00 parent. A correct grand total elsewhere cannot repair that particular split. Python checks these defined representations; it does not run Actual’s exporter.

Preserve split identity and coverage

Keep account, date, original notes and parent/child relationships together. The split-transaction guide requires child amounts to sum to the parent. A row count that includes contextual parents is not the same as a count of original bank events or category allocations.

Use the invoice-join guide for the related but different problem of repeated amounts after expanding a join. Do not “deduplicate” Actual children by their shared date or payee; that can remove genuine category parts.

LocalExtract processes one PDF into date,description,amount CSV. It does not export Actual budgets, create splits or recover missing child rows. Download for PDF source preparation.

Official documentation and the pinned v26.10.0 implementation checked October 16, 2026; actual export execution remains unverified.

LocalExtract Team

We build LocalExtract, a desktop bank statement converter. Questions or corrections? Contact · Editorial policy

Continue with a related guide