Transaction balancing is now done in a more robust way, using local precisions only (like Ledger) #2402. Until now, a transaction was required to balance using its commodities's global display precisions. Small imbalances were tolerated by configuring display precisions for the whole journal (with commodity directives). Now, a transaction is required to balance using the precisions in its journal entry only. This means each entry can use the precision it needs, and balancing precision and display precision are independent. (So eg, increasing the display precision with -c no longer breaks the journal.) In practice this requires journal entries to be more accurate, and you will probably need to fix some old entries. There are three main ways to fix an entry: reduce the amounts' precision (use fewer decimal digits, so a lower balancing precision is inferred) make the amounts more accurate (use better decimal digits, so the amounts sum to zero more closely) or (easiest) add an amountless "expenses:rounding" posting (this is not a cheat, it's a more accurate record of what your bank/broker is doing). You can also keep the old transaction-balancing behaviour with --txn-balancing=old , for now. But updating your entries is recommended. The old behaviour could allow small remainders to accumulate over time, in accounts that often have an inexact posting amount or cost amount and are never reconciled - typically equity, revenues, and expenses. You can check for this in your old journals with a command like hledger bal cur:\\$ -c '$1.000000000000' | grep -E '\...0*[1-9]' (show $ account balances, with many decimals, which have a non-zero decimal in the 3rd place or beyond)