Account Directive¶
The account directive declares an account and its properties.
Syntax¶
account ACCOUNTNAME
[SUBDIRECTIVE]...
Basic Declaration¶
account Assets:Checking
account Expenses:Food
account Liabilities:Credit Card
Purpose¶
Account directives serve several purposes:
- Validation - Only declared accounts can be used
- Documentation - Describe account purpose
- Type inference - Specify account type
- Completion - Enable editor autocomplete
Subdirectives¶
Type Subdirective¶
Explicitly set the account type:
account Assets:Crypto
type: Asset
account Revenue:Sales
type: Revenue
Valid types: Asset, Liability, Equity, Revenue, Expense, Cash
Alias Subdirective¶
Define shorthand names:
account Assets:Bank:First National Checking
alias: checking
alias: fnc
Usage:
2024-01-15 Deposit
checking $100 ; Expands to Assets:Bank:First National Checking
Income:Salary
Note Subdirective¶
Add description:
account Assets:Emergency Fund
note: 6 months of expenses for emergencies
account Expenses:Medical
note: Healthcare costs including insurance and copays
Default Subdirective¶
Mark as default account:
account Assets:Checking
default
Account Types¶
Automatic Type Inference¶
hledger infers type from account name prefix:
| Prefix | Type |
|---|---|
assets: |
Asset |
liabilities: |
Liability |
equity: |
Equity |
revenues: |
Revenue |
income: |
Revenue |
expenses: |
Expense |
Explicit Type¶
Override inference with type subdirective:
account Investments:Retirement
type: Asset
account Opening Balances
type: Equity
Hierarchical Declaration¶
Declare parent and children separately:
account Assets
account Assets:Bank
account Assets:Bank:Checking
account Assets:Bank:Savings
Or use indentation (visual grouping only):
account Assets
account Assets:Bank
account Assets:Bank:Checking
account Assets:Bank:Savings
Account Names¶
Valid Characters¶
- Letters (Unicode supported)
- Numbers
- Spaces
- Colons (as separator)
- Most punctuation except
;,[,],(,)
Examples¶
account Assets:Bank:Checking
account Liabilities:Credit Cards:Visa
account Expenses:Food & Dining
account Assets:Währung:EUR
account Assets:日本円
Validation Mode¶
With --strict or --pedantic:
; Undeclared account causes error
2024-01-15 Transaction
Expenses:Foood $50 ; Error: undeclared
Assets:Checking
Multiple Declarations¶
Account can be declared multiple times:
account Assets:Checking
; Later in file or included file
account Assets:Checking
note: Primary checking account
alias: checking
Properties are merged.
Complete Example¶
; ===== Account Declarations =====
; Asset accounts
account Assets
type: Asset
note: All owned resources
account Assets:Bank:Checking
alias: checking
note: Primary transaction account
account Assets:Bank:Savings
alias: savings
note: Emergency fund
account Assets:Investments:Brokerage
alias: brokerage
note: Stock investments
; Liability accounts
account Liabilities:Credit Card:Visa
alias: visa
type: Liability
account Liabilities:Mortgage
type: Liability
note: Home loan 30-year fixed
; Equity
account Equity:Opening Balances
type: Equity
; Income
account Income:Salary
type: Revenue
alias: salary
account Income:Interest
type: Revenue
; Expenses
account Expenses:Food:Groceries
type: Expense
alias: groceries
account Expenses:Food:Restaurants
type: Expense
alias: dining
account Expenses:Housing:Rent
type: Expense
account Expenses:Utilities
type: Expense
Command Line¶
# List all accounts
hledger accounts
# Check for undeclared accounts
hledger check accounts
# Use strict mode
hledger bal --strict