Plain-Text Accounting

Plain-text accounting (PTA) is an approach to bookkeeping where financial data is stored in human-readable text files rather than databases or proprietary formats. Ledger is the original tool in this ecosystem, with Beancount and hledger as the main alternatives.

The core idea: The source of truth is a text file that a human can read, edit, and understand without special software. The accounting tool is a read-only processor — it parses the file and generates reports but doesn’t modify the data. This separation of data from software inverts the relationship users have with most accounting applications, where data lives inside the program and can only be accessed through its interface.

Why it appeals to technical users:

  • Version control: Ledger files are diffable and work naturally with Git. Every change to the books is a commit with an author, timestamp, and message. This creates an audit trail that’s arguably stronger than what most commercial accounting software provides.
  • Portability: No vendor lock-in. If the software disappears, the data is still readable. Migration between PTA tools (Ledger, Beancount, hledger) is straightforward because the formats are similar.
  • Scriptability: Data can be processed with standard text tools — grep, awk, sed, custom scripts. Reports can be automated, transformed, and integrated into other workflows.
  • Simplicity: No database to corrupt, no server to maintain, no sync conflicts. The file is the system.

Trade-offs: PTA tools require comfort with text editors and the command line. They don’t provide bank feeds, invoicing, or payroll. They’re individual tools, not integrated business platforms. For a freelancer who’s also a programmer, this is often fine. For a business with non-technical staff, it isn’t.

The ecosystem: The plaintextaccounting.org community maintains resources across all PTA tools [citation needed]. The tools share philosophical commitments (data ownership, transparency, simplicity) but differ in design decisions — Ledger is flexible and permissive, Beancount is strict and validating, hledger aims for a middle ground with additional reporting features and a web UI.

0 items under this folder.