Gastos acumulados en Beancount: Guía práctica (con ejemplos de libro contable copy-paste)
Los gastos acumulados suenan abstractos hasta que los cierres de fin de mes empiezan a apilarse. Son una piedra angular de la contabilidad de acumulación adecuada, garantizando que tus informes financieros reflejen la realidad económica, no solo cuando el efectivo cambia de manos. Aquí tienes una guía clara, centrada en Beancount, de qué son, por qué importan y exactamente cómo registrarlos, revertirlos e informarlos en tu libro contable de texto plano.
TL;DR ⚡
- Los gastos acumulados son costos que has incurrido en este período pero que aún no has pagado. Se registran como una obligación hasta que salga el efectivo.
- En Beancount, esto es simple: debitas una cuenta
Expenses:
y acreditas una cuentaLiabilities:Accrued:
. Más tarde, eliminas la obligación cuando pagas.- Para informar, puedes ver lo que debes a una fecha específica ejecutando un
bean-query
conCLOSE ON
yCLEAR
para obtener una instantánea limpia del balance.
¿Qué es un gasto acumulado?
Un gasto acumulado es un costo que una empresa ha incurrido, pero que aún no ha pagado. Se registra cuando se recibe el servicio o se incurre el costo, incluso si la factura no ha llegado o el pago aún no es exigible. Esta práctica sigue el principio de correlación de la contabilidad de acumulación, que dicta que los gastos deben registrarse en el mismo período que los ingresos que ayudaron a generar.
Ejemplos comunes incluyen:
- Salarios devengados por los empleados al final de un mes pero pagados el siguiente.
- Servicios públicos (electricidad, agua) que usaste en diciembre pero que no se facturarán hasta enero.
- Intereses de un préstamo que se han acumulado durante el mes pero que aún no se han retirado de tu cuenta.
Al registrar estos costos cuando ocurren, obtienes una imagen mucho más fiel del desempeño financiero de tu empresa para ese período.
Cómo lo ve Beancount (en 30 segundos)
Beancount es un sistema de contabilidad de doble entrada en texto plano. Todo es una directiva o transacción fechada en un archivo de texto. El sistema se basa en cinco tipos de cuentas principales: Activos, Pasivos, Patrimonio, Ingresos y Gastos.
Las entradas siempre se ordenan por fecha. Un detalle clave es que las aserciones balance
se verifican antes de que se procesen las transacciones del mismo día. Esto es importante al colocar verificaciones y asientos de reversión.
Finalmente, el lenguaje bean-query
ofrece una forma poderosa, similar a SQL, de generar informes. Con operadores como OPEN ON
, CLOSE ON
y CLEAR
, puedes crear vistas precisas “a fecha” para los estados financieros.
Tu plan de cuentas (sugerido)
Un plan de cuentas limpio y jerárquico es tu mejor aliado. Para los gastos acumulados, la estructura es sencilla. Necesitarás:
- Una cuenta de gasto: p. ej.,
Expenses:Utilities
,Expenses:Payroll:Wages
- Una cuenta de pasivo correspondiente: p. ej.,
Liabilities:Accrued:Utilities
,Liabilities:Accrued:Payroll
- Tu cuenta de efectivo: p. ej.,
Assets:Bank:Checking
Beancount impone los cinco tipos de cuenta de nivel superior. Mantener tus nombres de cuenta organizados facilita las consultas y los informes a futuro.
El patrón básico (sin plugin, sin magia)
Esta es la forma más directa de manejar acumulaciones en Beancount. Implica dos pasos: acumular el gasto al final del mes y eliminar la obligación cuando pagas.
Paso 1: Acumular el gasto al final del mes
En el último día del período, registras el gasto y creas la obligación.
2025-02-28 * "Accrue February electricity" #accrual
Expenses:Utilities 120.00 USD
Liabilities:Accrued:Utilities
Paso 2: Eliminar la acumulación al pagar
Cuando llega la factura y la pagas, no vuelves a tocar la cuenta de gasto. En su lugar, debitas la cuenta de pasivo para eliminarla.
2025-03-05 * "Pay Feb electricity - City Power"
Liabilities:Accrued:Utilities 120.00 USD
Assets:Bank:Checking
Este es el enfoque más limpio para equipos pequeños. Coloca correctamente el gasto en febrero y asegura que no lo cuentes dos veces en marzo. Observa que en Beancount, dejar una cantidad en blanco permite que el sistema balancee automáticamente la transacción.
Alternativa: Asiento de reversión el día 1
Si prefieres el estilo clásico de contabilidad “auto‑reversión”, puedes publicar el opuesto de tu asiento de acumulación el primer día del mes siguiente. Luego, registras la factura real al gasto como lo harías normalmente.
Paso 1: Acumular al final del mes (igual que antes)
2025-02-28 * "Accrue February electricity" #accrual
Expenses:Utilities 120.00 USD
Liabilities:Accrued:Utilities
Paso 2: Revertir el primer día del mes siguiente
2025-03-01 * "Reverse Feb electricity accrual" #reversal
Liabilities:Accrued:Utilities 120.00 USD
Expenses:Utilities
Paso 3: Registrar el pago como de costumbre
2025-03-05 * "City Power - February bill"
Expenses:Utilities 120.00 USD
Assets:Bank:Checking
Aviso sobre verificaciones: Recuerda que las aserciones balance
se evalúan antes de las transacciones del mismo día. Si deseas comprobar el saldo de Liabilities:Accrued:Utilities
, coloca la aserción en 2025-02-28
para confirmar la acumulación o en 2025-03-01
después del asiento de reversión para confirmar que es cero. Colocarla antes de la reversión en 2025-03-01
provocará un error falso.
Seis acumulaciones comunes (patrones copy‑paste) 📋
Aquí tienes ejemplos listos para usar en acumulaciones empresariales habituales.
1. Alquiler no facturado
2025-01-31 * "Accrue January rent" #accrual
Expenses:Rent 3000.00 USD
Liabilities:Accrued:Rent
2. Salarios devengados pero no pagados
2025-03-31 * "Accrue March wages" #accrual
Expenses:Payroll:Wages 8500.00 USD
Liabilities:Accrued:Payroll
3. Pago de vacaciones (PTO) devengado
2025-03-31 * "Accrue PTO earned in March" #accrual
Expenses:Payroll:PTO 900.00 USD
Liabilities:Accrued:Payroll
4. Intereses acumulados sobre un préstamo
2025-02-29 * "Accrue monthly loan interest" #accrual
Expenses:Interest 210.00 USD
Liabilities:Accrued:Interest
5. Honorarios profesionales (auditoría/legal)
2025-12-31 * "Accrue year-end audit fees" #accrual
Expenses:Professional:Audit 4200.00 USD
Liabilities:Accrued:Professional
6. Servicios públicos usados pero no facturados
2025-04-30 * "Accrue April utilities" #accrual
Expenses:Utilities 95.00 USD
Liabilities:Accrued:Utilities
Informes: “¿Qué debo a una fecha determinada?”
bean-query
es tu herramienta para obtener respuestas. Aquí tienes cómo obtener una instantánea adecuada del balance de tus gastos acumulados.
Obtener todos los saldos de pasivos acumulados al final del período
Esta consulta te da el saldo de cada cuenta de pasivo acumulado al 31 de marzo de 2025.
bean-query main.beancount '
SELECT account, UNITS(SUM(position)) AS balance
FROM OPEN ON 2025-01-01 CLOSE ON 2025-04-01 CLEAR
WHERE account "^Liabilities:Accrued"
GROUP BY 1
ORDER BY 1;
'
OPEN ON
establece los saldos iniciales al comienzo del período.CLOSE ON
trunca las transacciones antes de esa fecha (es exclusivo). Por eso usamos2025-04-01
para obtener datos hasta e incluyendo2025-03-31
.CLEAR
anula Ingresos y Gastos, dándote una vista limpia del balance (Activos, Pasivos, Patrimonio).
Ver un registro de todas las anotaciones de acumulación
Si deseas ver el historial bruto de transacciones para tus cuentas de acumulación:
bean-query main.beancount '
SELECT date, payee, narration, position
WHERE account "^Liabilities:Accrued"
ORDER BY date;
'
Obtener un total único de todas las acumulaciones
Para un resumen rápido del total que debes:
bean-query main.beancount '
SELECT UNITS(SUM(position)) AS total_accruals
FROM OPEN ON 2025-01-01 CLOSE ON 2025-04-01 CLEAR
WHERE account "^Liabilities:Accrued";
'
Controles y “gotchas” específicos de Beancount
- Momento de las aserciones de balance: Como se mencionó, las aserciones verifican el balance al inicio del día.
2025-03-01 balance …
se ejecuta antes de cualquier transacción del2025-03-01
. Planifica en consecuencia. - Nomenclatura y jerarquía: Un árbol ordenado como
Liabilities:Accrued:*
no es solo estética. Facilita tus consultas y hace que tus informes sean instantáneamente comprensibles. - Uso cuidadoso de
pad
: La directivapad
puede corregir saldos de apertura, pero evita usarla para “arreglar” acumulaciones recurrentes. Las entradas explícitas proporcionan una pista de auditoría clara. - Informes “a fecha”: Para instantáneas de balance, siempre prefiere
OPEN … CLOSE … CLEAR
enbean-query
. Así evitas que cuentas de ingresos y gastos contaminen tus totales de pasivo.
Prepagado vs. Acumulado (contraste rápido)
Es fácil confundirlos. Son imágenes espejo:
- Gasto acumulado: Servicio consumido ahora, efectivo pagado después. Genera un pasivo.
- Gasto prepagado: Efectivo pagado ahora, servicio consumido después. Genera un activo.
La lógica contable es la misma en Beancount; solo cambian las cuentas (Assets:Prepaid:*
vs. Liabilities:Accrued:*
).
Plantilla lista para usar (inicio del archivo)
Estos son los directivos open
que necesitarás para los ejemplos usados en este artículo. Añádelos al principio de tu archivo de libro contable una sola vez.
; --- Accounts (open once) ---
2025-01-01 open Assets:Bank:Checking
2025-01-01 open Expenses:Utilities
2025-01-01 open Expenses:Payroll:Wages
2025-01-01 open Expenses:Interest
2025-01-01 open Expenses:Professional:Audit
2025-01-01 open Liabilities:Accrued:Utilities
2025-01-01 open Liabilities:Accrued:Payroll
2025-01-01 open Liabilities:Accrued:Interest
2025-01-01 open Liabilities:Accrued:Professional
Notas finales
Si llevas tus libros bajo base de efectivo, no registrarás acumulaciones en absoluto: los gastos se registran simplemente cuando se pagan. Si trabajas bajo base de acumulación, usar los patrones anteriores es esencial para correlacionar costos con el período en que consumiste el servicio.
Los ejemplos aquí ofrecen una guía educativa general. Consulta siempre a tu contador público certificado para tratamientos específicos de la industria, especialmente en cuanto a bonos, impuestos sobre nómina y umbrales de capitalización.