Ir al contenido principal

Beancount vs hledger: ¿Qué herramienta de contabilidad en texto plano es la adecuada para usted?

· 10 min de lectura
Mike Thrift
Mike Thrift
Marketing Manager

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.

2026-03-17-beancount-vs-hledger-comparison-plain-text-accounting

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, cashflow y 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.beancount como 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-report puede 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ísticaBeancounthledger
LenguajePython/C++Haskell
Rigurosidad de la sintaxisEstrictaFlexible
Declaración de cuentasRequeridaOpcional
Mejor interfazFava (web)CLI + TUI
Seguimiento de inversionesExcelenteBueno
Sistema de complementosComplementos de PythonScripts + API
Importación de CSVMediante importadoresReglas integradas
Curva de aprendizajeMás pronunciadaMás suave
Aseveraciones de saldoIndependientes del ordenDependientes del orden del archivo
RendimientoRápido (v3)Muy rápido
Soporte para WindowsBuenoExcelente

¿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.