Default Directive¶
The D or default directive sets the default commodity format.
Syntax¶
D AMOUNT
Examples¶
US Dollar Default¶
D $1,000.00
2024/01/15 Transaction
Expenses:Food 50.00
; Interpreted as $50.00
Assets:Checking
Euro Default¶
D 1.000,00 EUR
2024/01/15 Transaction
Expenses:Food 50,00
; Interpreted as 50,00 EUR
Assets:Checking
Purpose¶
The default directive specifies:
- Default commodity - For amounts without explicit commodity
- Display format - How amounts are formatted
Format Components¶
Symbol Position¶
D $1,000.00 ; Symbol prefix
D 1,000.00 USD ; Symbol suffix
Thousand Separator¶
D $1,000.00 ; Comma separator
D $1.000,00 ; Period separator
D $1 000.00 ; Space separator
Decimal Separator¶
D $1,000.00 ; Period decimal
D $1.000,00 ; Comma decimal
Precision¶
D $1,000.00 ; 2 decimal places
D $1,000.000 ; 3 decimal places
D $1,000.0000 ; 4 decimal places
Behavior¶
Without Default¶
; No default - commodity required
2024/01/15 Transaction
Expenses:Food 50.00 USD ; Must specify
Assets:Checking -50.00 USD ; Must specify
With Default¶
D $1,000.00
2024/01/15 Transaction
Expenses:Food 50.00 ; Assumes USD
Assets:Checking ; Balances in USD
Multiple Defaults¶
The last default wins:
D $1,000.00
; US transactions
2024/01/15 US Store
Expenses:Food 50.00
Assets:USD:Checking
D 1.000,00 EUR
; European transactions
2024/01/16 EU Store
Expenses:Food 50,00
Assets:EUR:Checking
Interaction with Commodities¶
Commodity Directive¶
commodity $
format $1,000.00
D $1,000.00
; Both affect USD formatting
Explicit Overrides Default¶
D $1,000.00
2024/01/15 Transaction
Expenses:Food 50.00 EUR ; Uses EUR, not default
Assets:Checking
Use Cases¶
Personal Finance (US)¶
D $1,000.00
2024/01/15 Groceries
Expenses:Food 150.00
Assets:Checking
2024/01/15 Gas
Expenses:Transportation 45.00
Assets:Checking
European Finance¶
D 1.000,00 €
2024/01/15 Lebensmittel
Ausgaben:Essen 50,00
Vermögen:Girokonto
Multi-Currency with Default¶
D $1,000.00
; Default USD transactions
2024/01/15 Local Store
Expenses:Food 50.00
Assets:Checking
; Explicit foreign currency
2024/01/16 European Purchase
Expenses:Shopping 100.00 EUR
Assets:Euro:Account
Display Format Examples¶
US Dollar¶
D $1,000.00
; Amount: 1234.56
; Displays: $1,234.56
Euro (European)¶
D 1.000,00 €
; Amount: 1234,56
; Displays: 1.234,56 €
Japanese Yen¶
D ¥1,000
; Amount: 1234
; Displays: ¥1,234
Bitcoin¶
D 1.00000000 BTC
; Amount: 0.12345678
; Displays: 0.12345678 BTC
Precision Handling¶
D $1,000.00
; Input with more precision is preserved internally
2024/01/15 Transaction
Expenses:A 33.333333
Expenses:B 33.333333
Expenses:C 33.333334
Assets:Checking -100.00
; But displayed per format: $33.33
Best Practices¶
- Set default early in main file
- Match local currency conventions
- Use consistent formatting throughout
- Consider multi-currency needs
- Document currency assumptions
Example: Regional Settings¶
US Setup¶
; US formatting
D $1,000.00
commodity $
note US Dollar
commodity EUR
format 1,000.00 EUR
note Euro (displayed US-style)
European Setup¶
; European formatting
D 1.000,00 €
commodity €
note Euro
commodity USD
format 1.000,00 USD
note US Dollar (displayed EU-style)
Command Line Override¶
# Override display format
ledger -f journal.ledger --price-db prices.db balance