Skip to content

Glossary ​

Definitions of terms used throughout the Plain Text Accounting Standards.

A ​

Account ​

A named container for tracking financial positions. Consists of colon-separated components starting with a root type. The five standard root types are: Assets, Liabilities, Equity, Income, Expenses.

Example: Assets:Bank:Checking

Amount ​

A quantity paired with a commodity/currency. Represents a specific value in a specific denomination.

Example: 100.00 USD

Assertion (Balance Assertion) ​

A directive that verifies an account's balance matches an expected value at a specific date.

Example: 2024-01-15 balance Assets:Checking 1000 USD

Augmentation ​

Adding units to an inventory. The opposite of reduction. Creates a new lot or merges with an existing identical lot.

B ​

Booking ​

The process of matching a reduction (sale/withdrawal) against existing lots in an inventory. Common methods include STRICT, FIFO, LIFO, AVERAGE, and NONE.

Booking Method ​

Algorithm for selecting which lot(s) to reduce when multiple lots match:

  • STRICT: Requires unambiguous match; error if multiple lots match
  • FIFO: First In, First Out; oldest lots first
  • LIFO: Last In, First Out; newest lots first
  • AVERAGE: Weighted average cost basis
  • NONE: No matching; allows mixed-sign inventories

C ​

Commodity ​

An identifier for a denomination. MAY represent fiat currency (USD, EUR), stocks (AAPL, GOOG), crypto (BTC), or custom units (VACHR). Also called "currency" in some contexts.

Cost ​

The acquisition price of a position, including per-unit price, currency, date, and optional label. Stored with positions to track cost basis.

Syntax: {100.00 USD, 2024-01-15, "lot-1"}

Cost Basis ​

The total acquisition cost of a position. Used for calculating capital gains.

Formula: units × cost_per_unit

Cost Specification ​

A pattern for matching lots during reduction. MAY partially specify cost, date, and/or label.

D ​

Decimal ​

An exact decimal number (not floating point). Used for all financial calculations to avoid rounding errors.

Directive ​

A dated instruction in a journal file. Common types include: transaction, balance, open, close, commodity, pad, event, note, document, price.

Double-Entry Bookkeeping ​

An accounting method where every transaction affects at least two accounts, with debits equaling credits. The fundamental principle underlying plain text accounting.

F ​

Flag ​

A character indicating transaction status:

  • * - Complete/cleared
  • ! - Pending/incomplete

I ​

Interpolation ​

Automatically calculating a missing posting amount to make a transaction balance. At most one posting per currency MAY be interpolated.

Inventory ​

A collection of positions (lots) held in an account. Tracks units, costs, dates, and labels for each lot.

J ​

Journal ​

A file containing accounting directives. The primary input format for plain text accounting tools.

L ​

Ledger ​

The complete processed state of a journal file, including all directives, computed inventories, validation errors, and options.

An identifier connecting related transactions. Syntax varies by format (e.g., ^invoice-123 in Beancount).

Lot ​

A position with a specific cost basis, acquisition date, and optional label. Lots are tracked separately for tax purposes.

M ​

Metadata ​

Key-value pairs attached to directives or postings for custom annotations.

Example: receipt: "photo.jpg"

N ​

Narration ​

The description text of a transaction explaining its purpose.

O ​

Operating Currency ​

A currency designated as primary for reporting. Multiple MAY be specified.

P ​

Pad ​

A directive that automatically generates a balancing transaction to satisfy a subsequent balance assertion.

Payee ​

The other party in a transaction (merchant, employer, etc.).

Plain Text Accounting (PTA) ​

A method of tracking finances using human-readable text files. Characterized by:

  • Simple, version-control-friendly file formats
  • Command-line tools for processing and reporting
  • Double-entry bookkeeping principles

Position ​

Units of a commodity held at a specific cost. The building block of inventories.

Structure: units: Amount, cost: Option<Cost>

Posting ​

A single line within a transaction, specifying an account and amount change.

Price ​

The current market value of a commodity in terms of another commodity. Used for valuation, not for transaction balancing.

Syntax: @ 150.00 USD (per-unit) or @@ 1500.00 USD (total)

R ​

Reduction ​

Removing units from an inventory. Triggers the booking algorithm to match against existing lots.

Root Type ​

One of the standard account categories. Traditionally: Assets, Liabilities, Equity, Income, Expenses.

S ​

Scale ​

The number of decimal places in a number. Used for inferring tolerance.

Example: 100.00 has scale 2; 100 has scale 0.

Span ​

A range of bytes or characters in source code, used for error reporting.

Source Location ​

File path, line number, and column pointing to a position in source code.

T ​

Tag ​

An identifier for categorizing transactions. Syntax varies by format (e.g., #vacation-2024 in Beancount).

Tolerance ​

The maximum acceptable difference when checking if values are equal. Often inferred from decimal precision.

Transaction ​

The primary directive type representing a financial exchange between accounts. MUST balance (sum of weights equals zero).

U ​

Units ​

The quantity component of an amount, without the commodity.

W ​

Weight ​

The balancing contribution of a posting to a transaction. Calculated as:

  • Simple amount: units
  • With price: units × price
  • With cost: units × cost
  • With both: units × cost (price ignored for balancing)

Symbols ​

* (Star) ​

Transaction flag indicating "complete" or "cleared".

! (Bang) ​

Transaction flag indicating "pending" or "needs review".

@ (At) ​

Price annotation (per-unit). Example: @ 1.20 CAD

@@ (Double At) ​

Total price annotation. Example: @@ 120.00 CAD

{} (Braces) ​

Cost specification. Example: {100 USD}

\{\{\}\} (Double Braces) ​

Total cost specification. Example: \{\{1000 USD\}\}

~ (Tilde) ​

Explicit tolerance in balance assertions. Example: 1000 USD ~ 0.01