Previsión de Transacciones Futuras en Beancount
Beancount puede proyectar transacciones recurrentes futuras utilizando el plugin fava.plugins.forecast. Esto le permite visualizar el impacto futuro de los ingresos y gastos regulares, como salarios, alquileres y suscripciones, en sus informes financieros.

Paso 1: Habilitar el Plugin de Previsión
Primero, necesita habilitar el plugin añadiendo la siguiente línea en la parte superior de su archivo ledger de Beancount:
plugin "fava.plugins.forecast"
Paso 2: Crear una Transacción de Previsión
Para prever una transacción recurrente, cree una sola entrada de transacción utilizando el indicador # (en lugar de * o !) y añada una etiqueta de previsión especial a la narración.
La estructura básica se ve así:
YYYY-MM-DD # "Narración [FRECUENCIA CONDICIONES]"
Account:One 100.00 USD
Account:Two -100.00 USD
El plugin de previsión utilizará esta entrada como plantilla para generar transacciones futuras en sus informes.
Entendiendo la Sintaxis de la Previsión
La etiqueta de previsión en la narración sigue un formato específico: [FRECUENCIA CONDICIONES].
Frecuencia
La parte de FRECUENCIA es obligatoria y define con qué frecuencia se repite la transacción. Debe estar en mayúsculas.
DIARIOSEMANALMENSUALTRIMESTRALANUAL
Ejemplo: Un Pago Mensual de Alquiler Esta transacción se proyectará para que ocurra el día 1 de cada mes, a partir de enero de 2024.
2024-01-01 # "Pago de alquiler [MENSUAL]"
Expenses:Housing:Rent 2500.00 USD
Assets:Checking -2500.00 USD
Condiciones (Opcional)
Puede añadir CONDICIONES opcionales para controlar la duración y el patrón de la previsión.
1. Establecer una Fecha de Finalización con UNTIL
Utilice UNTIL AAAA-MM-DD para detener la previsión en una fecha específica.
-
Ejemplo: Una suscripción al gimnasio que termina este año.
2024-01-15 # "Suscripción al gimnasio [MENSUAL UNTIL 2024-12-31]"
Expenses:Health:Gym 80.00 USD
Assets:Checking -80.00 USD
2. Limitar las Ocurrencias con REPEAT
Utilice REPEAT n TIMES para generar la transacción un número específico de veces.
-
Ejemplo: Un préstamo de coche con 36 pagos restantes.
2024-01-25 # "Pago del coche [MENSUAL REPEAT 36 TIMES]"
Expenses:Transportation:CarPayment 450.00 USD
Liabilities:Auto-Loan -450.00 USD
3. Crear Patrones Irregulares con SKIP
Utilice SKIP n TIME/TIMES para saltar intervalos. Esto es útil para cosas como los cheques de pago quincenales.
-
Ejemplo: Un salario quincenal (ocurre cada dos semanas).
2024-01-05 # "Salario quincenal [SEMANAL SKIP 1 TIME]"
Assets:Checking 3000.00 USD
Income:Salary -3000.00 USD
Ejemplo Práctico: Un Presupuesto Mensual
Puede combinar múltiples previsiones para proyectar todo su presupuesto, incluyendo varios flujos de ingresos y gastos.
plugin "fava.plugins.forecast"
; === INGRESOS ===
2024-01-05 # "Salario quincenal [SEMANAL SKIP 1 TIME]"
Assets:Checking 3000.00 USD
Income:Salary -3000.00 USD
; === GASTOS ===
2024-01-01 # "Alquiler [MENSUAL]"
Expenses:Housing:Rent 2500.00 USD
Assets:Checking -2500.00 USD
2024-01-01 # "Comestibles [SEMANAL]"
Expenses:Food:Groceries 150.00 USD
Assets:Checking -150.00 USD
2024-01-15 # "Seguro de coche [TRIMESTRAL REPEAT 4 TIMES]"
Expenses:Insurance:Auto 450.00 USD
Assets:Checking -450.00 USD
Una vez que añada estas entradas, sus informes, como el Estado de Resultados y el gráfico de Beneficio Neto, incluirán automáticamente los datos proyectados, dándole una visión clara de su futuro financiero.
Resolución de Problemas y Mejores Prácticas
-
¿No Aparecen las Previsiones?
- Asegúrese de que
plugin "fava.plugins.forecast"esté en su archivo ledger. - Utilice el indicador
#para la transacción, no*. - Compruebe si hay errores tipográficos en la etiqueta de frecuencia (por ejemplo,
[MENSUAL]no[Mensual]o[MENSUAL]).
- Asegúrese de que
-
Mejores Prácticas
- Sea Descriptivo: Utilice narraciones claras para que sepa para qué es cada previsión.
- Revise Regularmente: Actualice sus previsiones (por ejemplo, para un aumento de salario o un cambio de alquiler) para mantenerlas precisas.
- Utilice Condiciones de Finalización: Para las transacciones que no son permanentes (como préstamos o suscripciones), utilice
UNTILoREPEATpara evitar que se pronostiquen indefinidamente.