Directive
A directive is any dated entry in a Beancount file. Unlike Ledger, where directives are optional configuration, Beancount treats everything as a directive — transactions, account openings, balance assertions, price entries, and metadata all follow the same pattern: a date followed by a directive type.
Core directives:
open— declares an account. Accounts can’t be used before they’re opened.close— closes an account. No postings are allowed after this date.txn(or*) — a transaction with balanced postings.balance— asserts that an account’s balance equals a specific amount on a date.pad— inserts an automatic balancing entry between two accounts.price— records a commodity price for a given date.note— attaches a text note to an account on a date.document— links a file (receipt, statement) to an account on a date.event— records a life event (e.g., address change) for tracking purposes.commodity— declares and configures a commodity.
The strict directive model means Beancount rejects anything it doesn’t recognize, which catches typos and formatting errors at parse time rather than silently ignoring them.