Ledger est un puissant outil en ligne de commande pour la comptabilité en partie double au format texte brut. En gérant vos finances dans des fichiers journaux lisibles, Ledger vous permet de calculer les soldes, générer des registres et éditer des rapports financiers détaillés.
Concepts fondamentaux et prise en main
L'équation comptable en partie double
Dans Ledger, chaque transaction se compose de deux écritures ou plus dont la somme doit obligatoirement être égale à zéro :
$$\text{Assets} + \text{Expenses} = \text{Liabilities} + \text{Equity} + \text{Income}$$
Assets:Checking -$600.00 ; Asset decreases (credit)
Expenses:Rent $600.00 ; Expense increases (debit)
---------------------------------
Solde net = 0,00 $
Aperçu des commandes principales
| Commande | Forme complète | Description |
|---|---|---|
ledger bal |
ledger balance |
Calcule et affiche les soldes actuels des comptes |
ledger reg |
ledger register |
Liste chronologiquement les écritures avec solde progressif |
ledger print |
ledger print |
Formate et affiche les écritures brutes du journal |
ledger csv |
ledger csv |
Exporte les écritures filtrées au format CSV standard |
ledger payees |
ledger payees |
Liste tous les bénéficiaires uniques présents dans le journal |
ledger accounts |
ledger accounts |
Liste l'ensemble des comptes et leur hiérarchie |
Syntaxe du journal de transactions
Structure de base d'une transaction
2024/01/03 * (CODE#001) Landlord John ; tag:rent
Expenses:Rent:Apartment $600.00
Assets:Checking:MainBank
- Décomposition de la ligne d'en-tête ::
2024/01/03 * (CODE#001) Landlord John ; tag:rent
^ ^ ^ ^ ^
Date State Code/Check# Payee/Description Comment & Tags
- Élision automatique : Ledger déduit automatiquement le montant d'une écriture pour équilibrer la transaction.
Indicateurs d'état des transactions
| Drapeau | État | Description et usage type |
|---|---|---|
| (None) | Non rapproché | Nouvelles transactions non encore vérifiées sur relevé bancaire |
! |
En attente | Opérations engagées en attente de règlement |
* |
Rapproché | Transactions vérifiées et enregistrées sur le compte bancaire |
Dates auxiliaires
Le signe égal permet de dissocier la date de l'événement de la date de valeur effective :
; Format: EventDate=SettlementDate
2024/01/01=2024/01/15 Consulting Client A
Assets:AccountsReceivable $1,000.00
Income:Consulting
Assertions et affectations de solde
- Assertion de solde (= $VALUE) : vérifie que le solde cumulé correspond précisément à la valeur indiquée.
- Affectation de solde (= $VALUE) : calcule automatiquement le montant nécessaire pour atteindre le solde.
; 1. Balance Assertion
2024/01/01 * Restaurant
Expenses:Food:Dinner $20.00
Assets:Cash -$20.00 = $500.00
; 2. Balance Assignment
2024/01/01 * Opening Balance
Assets:Cash = $500.00
Equity:OpeningBalances
Account Declarations & Validation
account Expenses:Food
note Dining and grocery expenses
alias food
payee ^(KFC|McDonalds|Starbucks)$
check commodity == "$"
assert commodity == "$"
default
account Assets:Cash
alias cash
Commodities & Currencies
; 1. Per-unit cost (@ symbol)
2024/05/31 * Farmers Market
Expenses:Food:Apples 10 APPLE @ $1.50
Assets:Checking -$15.00
; 2. Total cost (@@ symbol)
2024/06/01 * Brokerage
Assets:Investments:AAPL 5 AAPL @@ $950.00
Assets:Checking -$950.00
; 3. Explicit currency price history
P 2024/06/01 00:00:00 EUR $1.0850
Directives
; Global default currency
D $1,000.00
; Set default year
Y2024
Including Sub-Journals
include accounts.journal
include 2023.journal
include 2024.journal
account Business
include company_expenses.journal
end
Budgeting
~ Monthly
Expenses:Rent $600.00
Expenses:Food $400.00
Expenses:Utilities $100.00
Expenses $100.00
Assets
~ Yearly
Expenses:Insurance $1,200.00
Assets
ledger bal --budget Expensesledger bal --unbudgeted Expenses
Expressions de périodes
Ledger fournit des filtres temporels en langage naturel avec l'option -p ou --period.
Syntax Structure
[INTERVAL] [BEGIN] [END]
Intervalles
| Intervalle | Signification |
|---|---|
every day / daily |
Daily |
every week / weekly |
Weekly |
biweekly |
Every two weeks |
every month / monthly |
Monthly |
every quarter / quarterly |
Quarterly |
every year / yearly |
Yearly |
every N days/weeks/months |
Custom interval |
Period Filtering Examples
ledger reg -p "since last month"
ledger reg Expenses -p "every month from 2024 to 2024/12/31" -M
ledger bal -p "from 2024/01/01 until this month"
ledger bal Expenses:Food -p "last quarter"
Expressions de requête et filtrage
| Syntax | Cible | Exemple | Description |
|---|---|---|---|
Account |
Account name | ledger bal Assets |
Substring/regex match |
^Account |
Root account | ledger bal ^Expenses |
Accounts starting with Expenses |
@Payee |
Payee name | ledger reg @Starbucks |
Match payee field |
%Tag |
Tag presence | ledger reg %reimburse |
Match tagged transactions |
%Tag=Value |
Tag value | ledger reg %project=alpha |
Match tag key-value pairs |
=Note |
Memo note | ledger reg =taxi |
Match memo text |
#Code |
Transaction code | ledger reg #1042 |
Match check or order number |
Logique booléenne
ledger reg Expenses:Food and @Starbucks and not dining
ledger bal Rent or Transportation
ledger bal Expenses and not \( Drinks or Food \)
Options de filtrage courantes
| Drapeau | Option | Description |
|---|---|---|
-b DATE |
--begin DATE |
Filter transactions on or after date |
-e DATE |
--end DATE |
Filter transactions before date |
-C |
--cleared |
Only cleared transactions (*) |
-U |
--uncleared |
Only uncleared transactions |
--pending |
--pending |
Only pending transactions (!) |
-R |
--real |
Exclude virtual postings |
-r |
--related |
Show the offsetting balancing postings |
Rapports et export de données
-s, --subtotal # Calculate subtotals for grouped postings
-n, --collapse # Collapse multi-line postings into one line
--flat # Render account tree as a flat list
--tail N # Limit output to last N lines
--invert # Invert numerical signs (display expenses as positive)
-X CUR, --exchange CUR # Convert foreign holdings to specified currency at latest rate
# Export all entries to CSV
ledger csv > report.csv
# Export this month's dining expenses
ledger csv Expenses:Food -p "this month"
Exemples pratiques
# Current assets vs liabilities
ledger bal ^Assets ^Liabilities
# Net revenue this month with positive expenses
ledger bal ^Expenses ^Income -p "this month" --invert
# Top 10 largest expenses
ledger reg Expenses -S amount --tail 10
# Monthly average daily expenses
ledger reg Expenses -M -n --average