Beancount vs hledger: ¿Qué herramienta de contabilidad en texto plano es la adecuada para usted?
Si has decidido gestionar tus finanzas con contabilidad en texto plano (plain-text accounting), ya has tomado una decisión inteligente. Tus datos financieros vivirán en archivos legibles por humanos que controlas por completo, rastreados con control de versiones y libres de la dependencia de un solo proveedor (vendor lock-in). Pero ahora surge la siguiente pregunta: ¿qué herramienta deberías usar?
Beancount y hledger son las dos herramientas de contabilidad en texto plano (PTA) más populares hoy en día. Ambas son de código abierto, se mantienen activamente y son capaces de manejar todo, desde presupuestos personales hasta carteras de inversión complejas. Sin embargo, adoptan enfoques fundamentalmente diferentes sobre cómo registrar, validar y analizar tus datos financieros.
Esta guía desglosa las diferencias clave para que puedas elegir la que mejor se adapte a tu flujo de trabajo, nivel de experiencia y necesidades de seguimiento financiero.
La filosofía central: Estricta vs. Flexible
La mayor diferencia entre Beancount y hledger no es una característica, sino una mentalidad.
Beancount es el profesor estricto. Asume que cometerás errores en la entrada de datos e incorpora salvaguardas para detectarlos a tiempo. Cada cuenta debe abrirse explícitamente antes de su uso. Cada transacción debe cuadrar a cero. Las monedas deben seguir un formato rígido. Si algo no parece correcto, Beancount se negará a procesar tu archivo hasta que lo corrijas.
hledger es el amigo comprensivo. Utiliza una sintaxis más relajada, te permite omitir la declaración previa de cuentas e incluso puede inferir entradas de ajuste. Puedes empezar a rastrear tus finanzas con una configuración mínima e ir añadiendo estructura a medida que tus necesidades crezcan.
Ningún enfoque es objetivamente mejor. Si valoras detectar errores antes de que se conviertan en horas de depuración, la rigurosidad de Beancount es una ventaja. Si quieres empezar rápidamente y prefieres la flexibilidad, la permisividad de hledger es una ventaja.
Sintaxis y formato de datos
Ambas herramientas almacenan transacciones en archivos de texto plano, pero las reglas de sintaxis difieren significativamente.
Sintaxis de Beancount
2026-03-15 * "Whole Foods" "Weekly groceries"
Expenses:Food:Groceries 85.42 USD
Liabilities:CreditCard:Visa
Reglas clave:
- Las fechas usan el formato ISO 8601 (
AAAA-MM-DD) - Las monedas deben ser letras mayúsculas (ej.
USD,EUR), sin símbolos como$o€ - Los nombres de las cuentas requieren al menos dos componentes separados por dos puntos (ej.
Expenses:Food) - Las descripciones deben ser cadenas entrecomilladas
- Todas las cuentas deben abrirse explícitamente con una directiva
open
Sintaxis de hledger
2026-03-15 Whole Foods | Weekly groceries
expenses:food:groceries $85.42
liabilities:creditcard:visa
Reglas clave:
- Formatos de fecha más flexibles
- Se permiten símbolos de moneda como
$y€ - Los nombres de las cuentas pueden estar en minúsculas y tener un formato más libre
- Las descripciones no necesitan comillas
- No es necesario declarar las cuentas previamente
Conclusión: La sintaxis más estricta de Beancount implica más trabajo inicial pero menos ambigüedades. La sintaxis relajada de hledger es más fácil para empezar pero requiere más disciplina para mantener la consistencia.
Integridad de datos y validación
Aquí es donde Beancount realmente se diferencia.
Afirmaciones de saldo (Balance Assertions)
Ambas herramientas admiten afirmaciones de saldo: declaraciones que verifican que tu saldo registrado coincide con tu extracto bancario. Pero funcionan de forma diferente.
Beancount utiliza afirmaciones de saldo con fecha que son independientes del orden. Puedes reorganizar tus archivos de transacciones como quieras y las afirmaciones seguirán funcionando correctamente. Las afirmaciones de hledger dependen del orden del archivo, lo que significa que mover transacciones puede romperlas.
Seguimiento de inventario
Para cualquiera que rastree inversiones, esto importa mucho. Beancount impone un registro estricto del inventario: no puedes vender acciones que nunca compraste, y rastrea la base de costo con precisión. Esto evita la "fuga de la base de costo" (cost basis leakage), un error sutil donde los cálculos de ganancias de capital se desvían de la realidad.
hledger maneja materias primas (commodities) y lotes, pero con menos restricciones. Es más flexible, lo que significa que también es más permisivo con errores que podrían pasar desapercibidos hasta la temporada de impuestos.
Categorías de cuentas
Beancount requiere que cada cuenta pertenezca a una de cinco categorías: Activos (Assets), Pasivos (Liabilities), Ingresos (Income), Gastos (Expenses) o Patrimonio (Equity). Esta restricción le permite generar automáticamente balances y estados de resultados adecuados.
hledger permite jerarquías de cuentas arbitrarias sin categorías raíz obligatorias. Esto te da más libertad, pero significa que debes seguir convenciones manualmente para obtener informes financieros significativos.
Interfaz de usuario e informes
Beancount + Fava
La característica más destacada de Beancount es Fava, una interfaz web pulida que proporciona:
- Gráficos y diagramas interactivos (tendencias de patrimonio neto, desgloses de gastos, ingresos frente a gastos)
- Visualizaciones de mapa de árbol (treemap) para categorías de gasto
- Potente filtrado por cuenta, etiqueta, período de tiempo y beneficiario
- Un lenguaje de consulta para informes personalizados
- Un editor integrado para tus archivos de libro mayor
Fava es ampliamente considerada la mejor interfaz de usuario en el ecosistema de contabilidad en texto plano. Si eres una persona visual que busca tableros y gráficos, este es un punto importante a favor de Beancount.
Interfaces de hledger
hledger adopta un enfoque de múltiples interfaces:
- CLI: Informes detallados por línea de comandos con docenas de comandos integrados (
balance,register,incomestatement,cashflowy más) - hledger-ui: Una interfaz de usuario basada en terminal para explorar cuentas y transacciones de forma interactiva
- hledger-web: Una interfaz web más sencilla para navegación básica y entrada de datos
La CLI de hledger es más potente de serie que la de Beancount. Si vive en la terminal y desea informes rápidos y automatizables mediante scripts, hledger cumple con creces.
Rendimiento
hledger está escrito en Haskell y procesa aproximadamente 25,000 transacciones por segundo. Para la mayoría de los usuarios de finanzas personales, ambas herramientas son efectivamente instantáneas. Pero si está gestionando un conjunto de datos grande (años de transacciones en múltiples entidades), la velocidad bruta de hledger le otorga una ventaja.
Beancount (v3) ha sido reescrito en C++ para el analizador principal, mejorando significativamente el rendimiento respecto a la implementación original en Python. Para un uso típico personal o de pequeñas empresas, no notará la diferencia.
Extensibilidad y Complementos
Complementos de Beancount
Beancount tiene un sistema nativo de complementos en Python que es notablemente potente. Los complementos pueden:
- Dividir transacciones automáticamente (por ejemplo, gastos compartidos)
- Generar transacciones recurrentes
- Aplicar reglas de validación personalizadas
- Transformar datos en el flujo de procesamiento
El ecosistema de Python significa que puede aprovechar cualquier biblioteca de Python en sus complementos. Esto hace que Beancount sea altamente personalizable para escenarios financieros complejos.
Extensiones de hledger
hledger ofrece extensibilidad a través de:
- Reglas de importación de CSV para la automatización de extractos bancarios
- Scripts de informes personalizados utilizando la salida de la CLI
- Una API HTTP-JSON para crear integraciones
- Comandos adicionales basados en Haskell
El sistema de importación de CSV de hledger es particularmente bien valorado; facilita la automatización de la importación de extractos bancarios con archivos de reglas que vinculan las columnas del CSV con los asientos de las cuentas.
Primeros pasos y curva de aprendizaje
hledger: Menor barrera de entrada
hledger es generalmente más fácil de empezar a usar:
- Instalación de un único binario (excelente soporte multiplataforma, incluyendo Windows)
- Cree un archivo y comience a registrar transacciones de inmediato
- No es necesario declarar cuentas ni seguir convenciones de nomenclatura estrictas
- Documentación completa y bien mantenida
- Comunidad activa con recursos aptos para principiantes
Beancount: Más configuración, más estructura
Beancount requiere más configuración inicial:
- Instalar Python y Beancount (y Fava para la interfaz web)
- Crear declaraciones de cuenta antes de usarlas
- Seguir reglas de sintaxis estrictas desde el primer día
- Aprender las cinco categorías de cuentas
La contrapartida es que esta inversión inicial rinde dividendos. Un libro mayor de Beancount bien estructurado es más fácil de mantener, validar y auditar a medida que crece.
Comunidad y Ecosistema
Ambos proyectos cuentan con comunidades activas y solidarias:
- Beancount: Lista de correo activa, ecosistema creciente de herramientas de terceros (importadores, complementos, extensiones de Fava) y una fuerte comunidad de desarrolladores de Python
- hledger: Lanzamientos frecuentes (aproximadamente trimestrales), documentación extensa, canales de chat activos y la comunidad más amplia de plaintextaccounting.org
Ambas herramientas se benefician del movimiento más amplio de contabilidad en texto plano, lo que se traduce en recursos compartidos, importadores y conocimiento comunitario.
Migración entre herramientas
Si comienza con una herramienta y desea cambiar más tarde, la migración es posible pero no trivial:
- De hledger a Beancount: Use
hledger print -o tmp.beancountcomo punto de partida, luego ajuste la sintaxis (añada declaraciones de cuentas, corrija formatos de moneda, reestructure nombres de cuentas) - De Beancount a hledger: La herramienta
bean-reportpuede exportar, aunque normalmente se necesitan correcciones manuales
La filosofía compartida de texto plano significa que sus datos nunca están bloqueados. Siempre puede leer y convertir sus archivos, incluso si el proceso requiere algo de limpieza manual.
Tabla de comparación rápida
| Característica | Beancount | hledger |
|---|---|---|
| Lenguaje | Python/C++ | Haskell |
| Rigurosidad de la sintaxis | Estricta | Flexible |
| Declaración de cuentas | Requerida | Opcional |
| Mejor interfaz | Fava (web) | CLI + TUI |
| Seguimiento de inversiones | Excelente | Bueno |
| Sistema de complementos | Complementos de Python | Scripts + API |
| Importación de CSV | Mediante importadores | Reglas integradas |
| Curva de aprendizaje | Más pronunciada | Más suave |
| Aseveraciones de saldo | Independientes del orden | Dependientes del orden del archivo |
| Rendimiento | Rápido (v3) | Muy rápido |
| Soporte para Windows | Bueno | Excelente |
¿Cuál debería elegir?
Elija Beancount si:
- Desea un panel web atractivo para visualizar sus finanzas
- Realiza un seguimiento de inversiones y necesita una gestión precisa de la base de costo
- Prefiere un sistema que detecte errores a tiempo y aplique la coherencia
- Se siente cómodo con Python y desea una potente extensibilidad mediante complementos
- Valora la organización de archivos independiente del orden
Elija hledger si:
- Prefiere trabajar en la terminal con informes rápidos y automatizables mediante scripts
- Quiere empezar rápidamente con una configuración mínima
- Necesita un excelente soporte para Windows
- Prefiere una sintaxis flexible que se adapte a su estilo
- Desea lanzamientos frecuentes y un mantenimiento activo
La pura verdad: ambas herramientas son excelentes. La comunidad de contabilidad en texto plano es acogedora independientemente de la herramienta que utilice, y las habilidades que aprenda con una se transfieren fácilmente a la otra. Elija la que mejor se adapte a su flujo de trabajo, pruébela durante un mes y ajústela si es necesario.
Simplifique su seguimiento financiero con Beancount.io
Ya sea que elija Beancount o hledger, la contabilidad en texto plano le otorga el control de sus datos financieros. Si desea la potencia de Beancount con un panel de Fava alojado, importaciones bancarias automáticas y cero gestión de infraestructura, Beancount.io lo hace sin esfuerzo. Comience gratis y experimente la contabilidad en texto plano sin la sobrecarga de configuración.
