Skip to content

Help wiki Reference

Journal import compatibility

What survives an hledger import, what is reported and what stops it.

Before migration

Keep your source journal and its included files. Import into empty books, preview the report, and compare balances and important assertions before saving. Import is a one-time migration: after it succeeds the database is authoritative and the journal files are no longer watched.

Journal featureKabacus treatment
Transactions, exact amounts, costs and declarationsRead into structured rows; included journals are resolved relative to their including file.
Transaction and posting commentsKept; original spacing and standalone comments do not round-trip.
Too many places for a commodityImport raises its precision and reports the change; writes refuse excess precision.
Secondary dateMoved to the transaction comment as date2:YYYY-MM-DD; ordinary writes refuse a second date.
Automated postings, periodic transactions and P price linesIgnored and reported; they do not create forecasts or automated entries.
Full-line comments, comment blocks, payee and tag directivesIgnored and reported, rather than kept as standalone text.
Tags inside transaction or posting commentsRemain comment text; they do not alter posting dates or account kinds.
alias, apply account, decimal-mark, D and Y / year directivesStop import because ignoring them would change how later lines are interpreted.
Dates without a year or invalid datesRefused; use explicit valid calendar dates.
Missing includes, include cycles or unreadable syntaxStop with an error identifying the source location.

Assertions and differences from hledger

Kabacus uses end-of-day assertions and exact balancing. Its total assertion forms check every commodity, including those held only in subaccounts for ==*. The engine specification calls for reporting assertions that do not hold at end of day during import. Review every import diagnostic rather than assuming an hledger-successful journal has identical semantics.

Verify the result

  1. Review every ignored feature and precision change in the import report.
  2. Compare balances per commodity and account, including money accounts with their subaccounts.
  3. Check card reserves, receivables and any account-kind warnings. Imported names may not match your configured rules.
  4. Keep the original journal and a verified .kabacus copy. The exported journal does not carry all revision history.