Ledger es una potente herramienta de línea de comandos para contabilidad por partida doble en texto plano. Al gestionar sus finanzas en archivos de texto legibles por humanos, Ledger le permite calcular balances, generar libros de registro, realizar seguimiento presupuestario y emitir informes financieros.
Conceptos fundamentales y primeros pasos
La ecuación de la contabilidad por partida doble
En Ledger, cada transacción consta de dos o más asientos cuya suma debe equilibrarse estrictamente a cero:
$$\text{Assets} + \text{Expenses} = \text{Liabilities} + \text{Equity} + \text{Income}$$
Assets:Checking -$600.00 ; Asset decreases (credit)
Expenses:Rent $600.00 ; Expense increases (debit)
---------------------------------
Saldo neto = $0.00
Comandos principales
| Comando | Forma completa | Descripción |
|---|---|---|
ledger bal |
ledger balance |
Calcula y muestra los saldos actuales en todas las cuentas |
ledger reg |
ledger register |
Lista cronológicamente los asientos con saldos acumulados |
ledger print |
ledger print |
Formatea e imprime entradas del libro contable |
ledger csv |
ledger csv |
Exporta transacciones filtradas en formato CSV estándar |
ledger payees |
ledger payees |
Lista todos los beneficiarios distintos registrados |
ledger accounts |
ledger accounts |
Lista todas las cuentas y su estructura jerárquica |
Especificación de sintaxis del Journal
Estructura básica de una transacción
2024/01/03 * (CODE#001) Landlord John ; tag:rent
Expenses:Rent:Apartment $600.00
Assets:Checking:MainBank
- Desglose de la línea de encabezado::
2024/01/03 * (CODE#001) Landlord John ; tag:rent
^ ^ ^ ^ ^
Date State Code/Check# Payee/Description Comment & Tags
- Deducción automática: Ledger deduce automáticamente el importe de un asiento para cuadrar la transacción.
Estados de la transacción
| Bandera | Estado | Descripción y uso habitual |
|---|---|---|
| (None) | No conciliado | Transacciones nuevas aún no verificadas con extractos bancarios |
! |
Pendiente | Transacciones iniciadas pendientes de liquidación |
* |
Conciliado | Transacciones conciliadas y liquidadas en la cuenta bancaria |
Fechas auxiliares
El signo igual permite separar la fecha de la transacción de la fecha de liquidación real:
; Format: EventDate=SettlementDate
2024/01/01=2024/01/15 Consulting Client A
Assets:AccountsReceivable $1,000.00
Income:Consulting
Aserciones y asignaciones de balance
- Aserción de balance (= $VALUE): valida que el saldo acumulado de la cuenta coincida exactamente.
- Asignación de balance (= $VALUE): calcula la diferencia necesaria para ajustar el saldo.
; 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
Expresiones de período
Ledger proporciona filtros temporales en lenguaje natural mediante la opción -p o --period.
Syntax Structure
[INTERVAL] [BEGIN] [END]
Intervalos
| Intervalo | Significado |
|---|---|
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"
Expresiones de consulta y filtros
| Syntax | Objetivo | Ejemplo | Descripción |
|---|---|---|---|
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 |
Lógica booleana
ledger reg Expenses:Food and @Starbucks and not dining
ledger bal Rent or Transportation
ledger bal Expenses and not \( Drinks or Food \)
Banderas de filtrado habituales
| Bandera | Opción | Descripción |
|---|---|---|
-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 |
Informes y exportación de datos
-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"
Ejemplos prácticos
# 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