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