Features

The majority of features from ledger and hledger are supported by ledger2beancount.

Fully supported

  • Accounts
    • Account declarations (account ...)
    • Conversion of invalid account names
    • Mapping of account names
    • Directive apply account
    • Account aliases (the alias directive and the alias sub-directive of account declarations)
  • Balance assignments
  • Balance assertions
  • Comments
    • Comments in and outside of transactions
    • Directives comment and test
  • Commodities
    • Commodity declarations (commodity ...)
    • Commodity symbols like $, £ and
    • Commodities placed in front and after the amount
    • Conversion of invalid commodities
    • Mapping of commodities
  • Directives
    • bucket / A
    • include
    • Year / Y, apply year
  • Flags
    • Transaction state (transaction flags)
  • Inline maths
    • Lots
    • Lot dates
    • Lot notes
    • Per unit and total costs and prices
    • Conversion of ledger price to beancount cost
  • Metadata
  • Payees
    • Obtain payee from metadata
    • Split payee into payee and narration
    • Assign payee based on narration
  • Tags
    • Directive apply tag
    • Mapping #tags to ^links

Partly supported

  • Amounts
    • Amounts without commodities (not supported in beancount)
    • Decimal comma (not supported in beancount)
  • Dates
    • Dates on posting-level (no equivalence in beancount)
    • Auxiliary dates (no equivalence in beancount)
    • Effective dates (no equivalence in beancount)
  • Deferred postings (no equivalence in beancount)
  • Directives
    • define and def (no functions)
    • eval: skipped (not supported in beancount)
    • import: skipped (not supported in beancount)
    • payee: skipped (not needed in beancount)
    • python: skipped (not supported in beancount)
    • tag: skipped (not needed in beancount)
    • value: skipped (not supported in beancount)
  • Fixated prices (=$10 and the fixed directive)
  • Lot value expressions (no equivalence in beancount)
  • Tags and links on posting-level (not supported by beancount)
  • Transaction codes: stored as metadata (no equivalence in beancount)
  • Virtual postings: can be skipped or converted to real postings
  • Virtual posting costs: recognised but skipped (no equivalence in beancount)

Unsupported in beancount

The following features are not supported in beancount and therefore commented out during the conversion from ledger to beancount:

  • Automated transactions
  • Checks and assertions (check and assert)
  • Commodity conversion (C AMOUNT1 = AMOUNT2)
  • Commodity format (D AMOUNT)
  • Commodity pricing: ignore pricing (N SYMBOL)
  • Timeclock support (I, i, O, o, b, h)
  • Periodic transactions

Supported features from hledger

The following syntax from hledger is supported if the hledger configuration variable is set:

  • Account aliases can be regular expressions
  • Amounts
    • All digit group marks (space, comma, and period) are supported
    • Number format can be specified via commodity and D directives
  • Narration: support for payee | note format
  • Posting dates: date and date2
  • Tags: tag1:, tag2:, tag2: info
  • Balance assertions
    • Sub-account balance assertions
    • Total balance assertions: recognised but no equivalent in beancount
  • Directives
    • D (set default commodity)
    • end aliases