Actual Budget merge: preserve manual payment notes
Updated · 3 min read
Before merging a manually entered payment with an imported row in Actual Budget, establish that they represent the same payment and preserve both versions of any important notes. Actual chooses one transaction to keep; merging is not a promise to concatenate every populated field.
Limit this review to a confirmed pair in the same Actual account and currency. Do not merge movements from different accounts solely because the amounts are equal.
This guide concerns two existing register rows, not deduplicating an entire bank file. If the bank source is PDF-only, LocalExtract can prepare a local CSV; it cannot identify an Actual transaction or preserve budget annotations automatically.
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.
Determine which row Actual will keep
The official merge instructions require exactly two matching transactions with the same amount. Select the evidenced pair, then use G or the transaction menu’s merge action. The option is not a bulk deduplication rule for every equal payment.
Actual gives priority to a bank-synced transaction over a non-synced one, then to a file-imported transaction over a non-file-imported one. If neither priority decides it, the earlier-dated transaction is kept. Review these origins before relying on the date you typed manually.
Empty fields in the kept row are filled from the dropped row. The latter is deleted. The documented fill-empty rule does not promise that two different, already-populated notes will be combined, nor does it establish which description best supports your work.
Preserve the conflicting context before merging
This synthetic pair represents one explicitly identified payment of EUR 64.00. The imported row contains the note “Bank narrative”; the manual row contains “Project A receipt checked”. Both notes are populated, so preserve the project annotation in your review record before an authorized merge.
| Field | Imported row I | Manual row M |
|---|---|---|
| Amount | −64.00 EUR | −64.00 EUR |
| Origin | File import | Manual entry |
| Note | Bank narrative | Project A receipt checked |
| Evidence identity | Payment P-A | Payment P-A |
Under the source-priority rule, I is kept. An empty category could be filled from M; that does not prove that M’s populated note will appear in I. Compare the resulting record with the annotation you preserved and make any necessary reviewed note correction separately.
The synthetic kept/dropped worksheet also contains two different payments of 64.00. They remain separate even though their dates and amounts look similar. Its Python reference checks model selection and field conflicts only; Actual itself has not been executed.
Separate automatic import matching from a reviewed merge
Actual’s import documentation describes matching by imported identifiers and then nearby dates, amounts and payees. It favours imported data when it associates a manual entry with an import. Check the result and source identity rather than treating an automatic suggestion as independent confirmation.
Use the source-overlap guide when the problem lies in multiple exported files. The register task here is preserving context while consolidating one confirmed pair. LocalExtract converts one PDF into date,description,amount CSV and does not merge Actual records or synchronize the budget. Download for a PDF source.
Official Actual Budget documentation checked October 16, 2026.
LocalExtract Team
We build LocalExtract, a desktop bank statement converter. Questions or corrections? Contact · Editorial policy