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.
Link
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