Entendiendo las entradas de diario en Beancount
Las entradas de diario son la columna vertebral de la contabilidad de partida doble, y en Beancount, cada transacción *
que escribes es una entrada de diario. Esta guía explica lo esencial —débitos y créditos, asientos de ajuste y asientos de reversión— y muestra cómo se traducen de forma limpia a la sintaxis de texto plano de Beancount. Aprenderás a llevar libros precisos con una ceremonia mínima.
Un repaso rápido: ¿Qué es una entrada de diario?
Una entrada de diario es el registro formal y fechado de una transacción financiera. Se expresa en términos de débitos y créditos que mantienen equilibrada la ecuación contable fundamental:
En un sistema de partida doble, cada transacción afecta al menos a dos cuentas, y el total de débitos debe ser igual al total de créditos. Esta regla simple es lo que hace que los informes financieros posteriores, como el estado de resultados y el balance general, sean confiables y precisos.
Débitos y créditos en un minuto
Los conceptos de débitos y créditos pueden resultar confusos al principio, pero se reducen a unas pocas reglas simples. Piensa de esta manera: "¿de dónde provino el valor?" (crédito) y "¿a dónde fue el valor?" (débito).
Aquí tienes una hoja de referencia de cómo aumentan los cinco tipos de cuentas principales:
Tipo de cuenta | Aumenta con |
---|---|
Activos | Débito |
Gastos | Débito |
Pasivos | Crédito |
Patrimonio | Crédito |
Ingresos | Crédito |
Cómo se ve una entrada de diario en Beancount
Beancount usa directivas de texto simples y legibles para registrar transacciones. Cada transacción debe equilibrarse a cero para cada commodity (por ejemplo, USD, EUR, acción AAPL). Beancount mostrará un error si no lo hace.
Aquí tienes una transacción básica para comprar café:
2025-09-10 * "Coffee Bar" "Team coffee"
Expenses:Food:Coffee 18.00 USD
Assets:Bank:Checking -18.00 USD
Observa cómo las dos anotaciones (líneas con cuentas) suman cero: $18.00 + (-$18.00) = 0
.
Puedes añadir contexto poderoso directamente en la narración usando etiquetas (como #clientX
) para filtrado y enlaces (como ^INV-2025-001
) para conectar entradas relacionadas.
Por ejemplo, así puedes enlazar una factura a su pago:
; Primero, registra la factura que enviaste al cliente
2025-09-15 * "Acme Corp" "Invoice 2025-001 #clientX ^INV-2025-001"
Assets:AccountsReceivable 1000.00 USD
Income:Consulting -1000.00 USD
; Después, registra el pago y enlázalo a la factura original
2025-09-28 * "Acme Corp" "Payment on ^INV-2025-001"
Assets:Bank:Checking 1000.00 USD
Assets:AccountsReceivable -1000.00 USD
La etiqueta #clientX
te permite filtrar fácilmente todas las transacciones de este cliente, y el enlace ^INV-2025-001
crea una conexión entre las dos entradas que puedes seguir en los informes.
Entradas de diario comunes (listas para copiar)
A continuación tienes varias transacciones empresariales habituales formateadas para Beancount.
El propietario invierte efectivo
Un propietario aporta fondos personales para iniciar el negocio.
2025-01-01 * "Owner" "Initial capital contribution"
Assets:Bank:Checking 10000.00 USD
Equity:Owner-Capital -10000.00 USD
Venta al contado con impuesto sobre ventas
Un cliente paga en efectivo por un producto, incluyendo un impuesto del 8 % que deberás remitir al gobierno más adelante.
2025-01-05 * "Walk-in Customer" "Cash sale with 8% tax"
Assets:Cash 108.00 USD
Income:Sales -100.00 USD
Liabilities:Tax:Sales -8.00 USD
Venta a crédito (factura) y cobro
Prestas un servicio y facturas al cliente, luego recibes el pago después.
2025-01-10 * "Acme Corp" "Consulting invoice ^INV-2025-002"
Assets:AccountsReceivable 2500.00 USD
Income:Consulting -2500.00 USD
2025-01-30 * "Acme Corp" "Payment on ^INV-2025-002"
Assets:Bank:Checking 2500.00 USD
Assets:AccountsReceivable -2500.00 USD
Gasto con tarjeta de crédito
Compras suministros de oficina usando la tarjeta de crédito de la empresa.
2025-01-12 * "OfficeMax" "Supplies on credit card"
Expenses:Office:Supplies 75.00 USD
Liabilities:CreditCard -75.00 USD
Nómina (modelo simple)
Ejecutas la nómina, registrando el gasto bruto de salarios, las retenciones de impuestos del empleado y el pago neto desde tu banco.
2025-01-31 * "Payroll" "January wages and withholdings"
Expenses:Payroll:Wages 2000.00 USD
Liabilities:Taxes:Withheld -400.00 USD
Assets:Bank:Checking -1600.00 USD
Depreciación mensual
Registras el gasto de depreciación mensual de un activo, como una laptop.
2025-01-31 * "Depreciation" "Laptop, straight-line"
Expenses:Depreciation 100.00 USD
Assets:Equipment:AccumDepr -100.00 USD
Gasto anticipado y amortización mensual
Pagas por un año completo de seguro por adelantado, luego reconoces el gasto de un mes.
; 1. Pago de la póliza anual
2025-01-01 * "InsureCo" "Annual insurance premium"
Assets:Prepaid:Insurance 1200.00 USD
Assets:Bank:Checking -1200.00 USD
; 2. Reconocer un mes de gasto al final de enero
2025-01-31 * "InsureCo" "Amortize 1/12 of insurance"
Expenses:Insurance 100.00 USD
Assets:Prepaid:Insurance -100.00 USD
Ingresos no devengados y reconocimiento mensual
Un cliente paga por adelantado una suscripción de 3 meses. Registras el efectivo y luego reconoces un mes de ingreso.
; 1. Cliente paga por adelantado el servicio
2025-02-01 * "Subscriber" "3-month plan prepaid"
Assets:Bank:Checking 300.00 USD
Liabilities:Unearned:Subs -300.00 USD
; 2. Reconocer un mes de ingreso después de prestar el servicio
2025-02-28 * "Recognition" "Recognize month 1 of 3"
Liabilities:Unearned:Subs 100.00 USD
Income:Subscriptions -100.00 USD
Provisión para deudas incobrables y cancelación
Creas una provisión para facturas potencialmente incobrables y luego cancelas una factura específica que sabes que no se pagará.
; 1. Crear una provisión del 2 % de Cuentas por Cobrar
2025-03-31 * "Provision" "2% of A/R for doubtful accounts"
Expenses:BadDebt 200.00 USD
Assets:AllowanceForDoubtful -200.00 USD
; 2. Cancelar una factura específica que no se pagará
2025-04-15 * "Write-off" "Customer XYZ invoice"
Assets:AllowanceForDoubtful 150.00 USD
Assets:AccountsReceivable -150.00 USD
Inventario periódico y ajuste de COGS
Al final de un período, calculas el costo de los bienes vendidos (COGS) ajustando tu cuenta de inventario.
2025-03-31 * "COGS adjustment" "Periodic inventory method"
Expenses:COGS 4500.00 USD
Assets:Inventory -4500.00 USD
Asientos de ajuste vs. asientos de reversión
Los asientos de ajuste se registran al final de un período contable (mes o trimestre) para alinear correctamente ingresos y gastos al período en que realmente se ganaron o incurrieron. Esto incluye acumulaciones, diferimientos y estimaciones como la depreciación.
Los asientos de reversión son opcionales y se hacen el primer día del nuevo período, invirtiendo exactamente un asiento de ajuste del período anterior. Su objetivo es simplificar la contabilidad. Al revertir una acumulación, puedes registrar la transacción de efectivo posterior de forma estándar sin tener que recordar dividirla contra la cuenta de pasivo.
Ejemplo: acumulación y reversión de servicios públicos
Supongamos que necesitas registrar el gasto de servicios públicos de enero, pero la factura no llega hasta febrero.
; 1. Acumular el gasto estimado al final de enero
2025-01-31 * "Accrual" "Estimate January utilities expense"
Expenses:Utilities 500.00 USD
Liabilities:Accrued:Utilities -500.00 USD
; 2. (Opcional) Revertir la acumulación el primer día del siguiente período
2025-02-01 * "Reversal" "Undo January utilities accrual"
Liabilities:Accrued:Utilities 500.00 USD
Expenses:Utilities -500.00 USD
; 3. Registrar el pago real cuando llegue en febrero
; La factura real es de $520. Gracias a la reversión, puedes
; registrar el importe completo en la cuenta de gasto sin problemas.
; El gasto neto de febrero será $520 - $500 = $20.
2025-02-10 * "City Utilities" "Payment for January bill"
Expenses:Utilities 520.00 USD
Assets:Bank:Checking -520.00 USD
Nota: El ejemplo en el esquema muestra dividir el pago final. El método de asiento de reversión es una alternativa que simplifica la entrada de pago final.
Lista de verificación para cada entrada de diario en Beancount
Sigue estos pasos para asegurarte de que tus entradas sean limpias y correctas:
- Comienza con la fecha (AAAA-MM-DD) y una bandera de transacción (
*
). - Añade un beneficiario y una narración descriptiva. Usa
#etiquetas
y^enlaces
para facilitar la búsqueda. - Incluye al menos dos líneas de anotación que equilibren a cero para cada commodity.
- Usa nombres de cuentas correctos bajo los cinco tipos:
Assets
,Liabilities
,Equity
,Income
,Expenses
. - Opcionalmente, agrega metadatos como
document: "invoices/INV-2025-001.pdf"
para trazabilidad.
Errores comunes (y cómo Beancount ayuda)
- Anotaciones desbalanceadas: Si tus débitos y créditos no suman cero, Beancount rechazará la entrada. Esta es una característica central que previene errores. Incluso puedes dejar una cantidad en blanco y Beancount la calculará automáticamente.
- Signo incorrecto en una cuenta: Es fácil olvidar que
Income
,Equity
yLiabilities
aumentan con créditos (normalmente números negativos en Beancount). Si lo haces mal, tus informes se verán extraños, pero la regla de balance sigue proporcionando una red de seguridad. - Enlaces faltantes entre entradas: Olvidar enlazar una factura con su pago dificulta el seguimiento de lo que está pendiente. Usar
^enlaces
de forma consistente soluciona esto al crear una pista auditable.
¿A dónde ir después?
- Lenguaje Beancount y reglas de balance: Profundiza en la documentación oficial.
- Hoja de referencia de sintaxis: Un práctico resumen de todas las directivas de Beancount.
- Introducción a débitos/créditos: Un buen punto de partida si eres nuevo en las reglas contables.
- Asientos de ajuste/reversión: Artículos más detallados sobre la teoría contable.
Apéndice: Mapa de términos contables → Beancount
Esta guía rápida de traducción te ayuda a mapear instrucciones contables a la sintaxis de Beancount.
Instrucción contable | Acción en Beancount |
---|---|
Debitar un gasto | Monto positivo a una cuenta Expenses: |
Acreditar un pasivo | Monto negativo a una cuenta Liabilities: |
Acumular ingresos | Assets:AccountsReceivable + Income:* - |
Diferir ingresos | Assets:Bank:* + Liabilities:Unearned:* - |
Reconocer ingresos diferidos | Liabilities:Unearned:* + Income:* - |
Con estos patrones y ejemplos, puedes modelar de forma limpia casi cualquier evento empresarial en Beancount, asegurando que tus informes financieros coincidan sin sorpresas.