Saltar al contenido principal

5 publicaciones con la etiqueta "teneduría de libros"

Ver todas las etiquetas

Teneduría de Libros vs. Contabilidad: ¿Cuál es la Diferencia y Dónde Encaja Beancount?

· Lectura de 4 minutos
Mike Thrift
Mike Thrift
Marketing Manager

Cuando gestionas un negocio o tus finanzas personales, los términos teneduría de libros y contabilidad a menudo se confunden. Pero comprender sus diferencias —especialmente al usar una herramienta de texto plano como Beancount— puede ayudarte a construir mejores sistemas y a tomar decisiones financieras más inteligentes.

En esta guía, exploraremos los roles de la teneduría de libros y la contabilidad, y cómo Beancount soporta ambas (sí, en serio).

2025-06-27-accouting-vs-bookkeeping

📘 Teneduría de Libros: El Arte del Seguimiento Diario

La teneduría de libros es la capa fundamental de la gestión financiera. Se trata de registrar lo que realmente sucedió —sin suposiciones, sin pronósticos.

La teneduría de libros incluye:

  • Registrar ingresos y gastos
  • Mantener un registro de activos y pasivos
  • Etiquetar transacciones para uso posterior
  • Mantener un libro mayor

En Beancount, esto se ve así:

2025-06-27 * "Stripe Payout"
Assets:Bank:Checking 1,200.00 USD
Income:Sales

Cada transacción es un bloque de construcción. Aún no estás analizando; simplemente estás registrando la verdad, una línea a la vez.

Si recién estás comenzando, Beancount fomenta buenos hábitos de teneduría de libros a través de su estructura explícita y sintaxis legible. Te verás obligado (¡de buena manera!) a rastrear cada centavo y explicar cada transacción.

📊 Contabilidad: Transformando Datos en Conocimiento

La contabilidad se basa en tus registros de teneduría de libros para responder preguntas más profundas:

  • ¿Somos rentables?
  • ¿Cuánto margen de liquidez tenemos?
  • ¿Deberíamos pagar por adelantado ese software o registrarlo como gasto mensual?
  • ¿Cómo minimizamos los impuestos?

En contabilidad, tú:

  • Concilias cuentas y ajustas asientos
  • Generas informes como estados de pérdidas y ganancias
  • Deprecias activos
  • Planificas impuestos y gastos futuros

Con Beancount, puedes analizar tus registros usando herramientas como beancount.io:

  • Navegar balances generales, estados de resultados y gráficos de flujo de caja
  • Visualizar ingresos por categoría
  • Anotar decisiones usando metadatos (ej., tag:viaje-de-negocios)

¿Quieres hacer seguimiento a esa suscripción anual de Zoom?

2025-01-15 * "Zoom Annual Plan"
Expenses:Software 149.90 USD
Assets:Bank:Checking
tag:herramientas-negocio

Más tarde puedes amortizarlo mensualmente o analizarlo durante las sesiones de presupuesto.

👩‍💼 Tenedor de Libros vs. Contador: ¿Quién Hace Qué?

  • Tenedor de Libros: Se enfoca en la precisión. Registra, categoriza y organiza.
  • Contador: Añade interpretación. Asesora, planifica y modela resultados.

Beancount te permite ser ambos, o entregar limpiamente una capa a un profesional.

Por ejemplo:

  • Como fundador, puedes llevar tu propia teneduría de libros con Beancount.
  • En la temporada de impuestos, exportas informes o datos brutos para que tu contador los finalice.

🛠️ Software de Teneduría de Libros y Contabilidad: ¿Dónde Encaja Beancount?

La mayoría de las herramientas convencionales (ej., QuickBooks, Xero) difuminan la línea entre la teneduría de libros y la contabilidad. Beancount adopta un enfoque diferente:

  • Gestionas todo a través de texto plano, almacenado en control de versiones si lo deseas.
  • No hay ocultamiento de transacciones ni magia detrás de escena.
  • Se te anima a entender tus propios libros.

Beancount es ideal para quienes valoran la transparencia, la integridad de los datos y la automatización a través de herramientas de código abierto.

🧠 Por Qué Importa Esta Distinción

Conocer la diferencia entre teneduría de libros y contabilidad te ayuda a:

  • Mantenerte conforme y listo para auditorías
  • Entender dónde invertir tiempo (seguimiento diario vs. conocimientos mensuales)
  • Comunicarte claramente con profesionales financieros
  • Escalar tus sistemas financieros sin ahogarte en la complejidad

🪄 Reflexión Final: Tu Libro Mayor, Tus Reglas

Ya seas un creador individual o el propietario de una pequeña empresa, Beancount te da el poder de gestionar tus libros con precisión —y eventualmente tomar decisiones estratégicas como un Director Financiero (CFO).

Recuerda:

  • Teneduría de Libros = lo que sucedió
  • Contabilidad = lo que significa

Con Beancount, estás construyendo ambas capas con claridad y confianza.

Avísame si deseas una versión imprimible o un seguimiento tutorial.

El Ecosistema Beancount: Un Análisis Exhaustivo

· Lectura de 44 minutos
Mike Thrift
Mike Thrift
Marketing Manager

Funcionalidad Central y Filosofía de Beancount

Beancount es un sistema de contabilidad de partida doble de código abierto que utiliza archivos de texto plano para registrar transacciones. En su esencia, Beancount trata tu libro mayor como un conjunto de datos definido por una gramática simple y estricta. Cada evento financiero (transacciones, aperturas de cuentas, precios de materias primas, etc.) es una directiva en un archivo de texto, que Beancount analiza en una base de datos de entradas en memoria. Este diseño impone el principio de partida doble: cada transacción debe equilibrar débitos y créditos entre cuentas. El resultado es un libro mayor altamente transparente y auditable que puedes controlar por versiones, inspeccionar y consultar con facilidad.

2025-04-15-beancount-ecosystem

Filosofía – corrección y minimalismo: El diseño de Beancount prioriza la integridad de los datos y la simplicidad. Su creador, Martin Blais, describe Beancount como “pesimista” al asumir que el usuario cometerá errores y, por lo tanto, impone verificaciones y restricciones adicionales. Por ejemplo, Beancount no te permitirá eliminar activos que nunca fueron añadidos (evitando saldos negativos de existencias o efectivo) y puede exigir que cada cuenta se abra antes de su uso. Carece del concepto de asientos “virtuales” o automáticamente equilibrados de Ledger, una elección intencional para forzar entradas completamente equilibradas. Beancount, en efecto, “se vuelve estricto” con la corrección con más verificaciones cruzadas de las que proporciona la partida doble básica. Este enfoque cauteloso atrae a usuarios que “no confían demasiado en sí mismos” y quieren que el software detecte sus errores.

Opciones mínimas, máxima consistencia: A diferencia de la miríada de banderas de línea de comandos y opciones de ajuste de Ledger, Beancount opta por el minimalismo. Hay muy pocas opciones globales, y ninguna que cambie la semántica de las transacciones fuera del archivo del libro mayor. Toda la configuración que afecta la contabilidad (como los métodos de base de costo de materias primas o las suposiciones de registro) se realiza en el archivo mediante directivas o plugins, asegurando que la carga del mismo archivo siempre produzca los mismos resultados, independientemente de cómo se generen los informes. Este diseño evita la complejidad de los muchos ajustes de Ledger y las interacciones sutiles entre ellos. La filosofía de Beancount es que una herramienta de contabilidad debe ser una tubería estable y determinista desde el archivo de entrada hasta los informes. Lo logra tratando el libro mayor como un flujo ordenado de directivas que pueden procesarse programáticamente en secuencia. Incluso cosas que Ledger trata como sintaxis especial (como saldos iniciales o declaraciones de precios) son directivas de primera clase en el modelo de datos de Beancount, lo que hace que el sistema sea altamente extensible.

Extensibilidad mediante plugins y lenguaje de consulta: Beancount está implementado en Python y proporciona ganchos para inyectar lógica personalizada en la tubería de procesamiento. Los usuarios pueden escribir plugins en Python que operan sobre el flujo de transacciones (por ejemplo, para aplicar una regla personalizada o generar entradas automáticas). Estos plugins se ejecutan a medida que se procesa el archivo, extendiendo efectivamente la funcionalidad central de Beancount sin necesidad de modificar el código fuente. Beancount también incluye un potente lenguaje de consulta (inspirado en SQL) para segmentar y analizar el libro mayor. La herramienta bean-query trata el libro mayor analizado como una base de datos y te permite ejecutar consultas analíticas sobre él, por ejemplo, sumar gastos por categoría o extraer todas las transacciones para un beneficiario determinado. En Beancount 3.x, esta capacidad de consulta se trasladó a un paquete beanquery independiente, pero desde la perspectiva del usuario, sigue proporcionando informes flexibles mediante consultas tipo SQL.

Texto plano y control de versiones: Como herramienta de contabilidad de texto plano, Beancount enfatiza el control del usuario y la longevidad de los datos. El libro mayor es simplemente un archivo de texto .beancount que puedes editar en cualquier editor de texto. Esto significa que todo tu historial financiero se almacena en un formato legible por humanos, y puedes ponerlo en Git u otro VCS para rastrear los cambios a lo largo del tiempo. Los usuarios a menudo mantienen su archivo Beancount bajo control de versiones para mantener un rastro de auditoría de cada edición (con mensajes de commit que describen los cambios). Este enfoque se alinea con la filosofía de Beancount de que los datos contables, especialmente las finanzas personales o de pequeñas empresas, deben ser transparentes y “a prueba de futuro”, no bloqueados en una base de datos propietaria. En palabras del propio Martin Blais, Beancount es un “trabajo de amor” construido para ser simple, duradero y gratuito para la comunidad. Fue desarrollado por primera vez alrededor de 2007 y ha evolucionado a través de reescrituras importantes (v1 a v2, y ahora v3 en 2024) para refinar su diseño mientras preserva su filosofía central de minimalismo y corrección.

Herramientas, Plugins y Extensiones en el Ecosistema de Beancount

El ecosistema de Beancount ha desarrollado un rico conjunto de herramientas, plugins y extensiones que mejoran la funcionalidad central del libro mayor. Estos cubren la importación de datos, la edición de libros mayores, la visualización de informes y la adición de características contables especializadas. A continuación, se presenta una descripción general de los componentes clave y los complementos en el mundo de Beancount:

Utilidades de Importación de Datos (Importadores)

Una de las necesidades más importantes para el uso práctico es la importación de transacciones de bancos, tarjetas de crédito y otras instituciones financieras. Beancount proporciona un marco de importación y scripts de importación aportados por la comunidad para este propósito. En Beancount 2.x, el módulo integrado beancount.ingest (con comandos como bean-extract y bean-identify) se utilizaba para definir plugins de importación en Python y aplicarlos a los extractos descargados. En Beancount 3.x, esto ha sido reemplazado por un proyecto externo llamado Beangulp. Beangulp es un marco dedicado para importadores que evolucionó de beancount.ingest y ahora es la forma recomendada de automatizar la importación de transacciones para Beancount 3.0. Permite escribir scripts de Python o herramientas de línea de comandos que leen archivos externos (como extractos CSV o PDF) y generan entradas de Beancount. Este nuevo enfoque desacopla la lógica de importación del núcleo de Beancount; por ejemplo, el antiguo comando bean-extract ha sido eliminado en la v3, y en su lugar, sus propios scripts de importación producen transacciones a través de la interfaz CLI de Beangulp.

Decenas de importadores listos para usar existen para diferentes bancos y formatos, aportados por la comunidad. Hay scripts de importación para instituciones de todo el mundo, desde Alipay y WeChat Pay en China, hasta varios bancos europeos (Commerzbank, ING, ABN AMRO, etc.), y bancos de EE. UU. como Chase y Amex. Muchos de estos se recopilan en repositorios públicos (a menudo en GitHub) o en paquetes como beancount-importers. Por ejemplo, el proyecto Tarioch Beancount Tools (tariochbctools) proporciona importadores para bancos suizos y del Reino Unido e incluso maneja la importación de transacciones de criptomonedas. Otro ejemplo es Lazy Beancount, que empaqueta un conjunto de importadores comunes (para Wise, Monzo, Revolut, IBKR, etc.) y proporciona una configuración basada en Docker para una automatización sencilla. No importa qué banco o servicio financiero utilice, lo más probable es que alguien haya escrito un importador de Beancount para él, o puede escribir el suyo propio utilizando el marco de Beangulp. La flexibilidad de Python significa que los importadores pueden manejar el análisis de archivos CSV/Excel, descargas OFX/QIF, o incluso la extracción de datos de APIs, para luego emitir transacciones en formato Beancount estandarizado.

Edición e Integración con Editores

Dado que los libros de Beancount son solo texto, los usuarios suelen aprovechar sus editores de texto o IDEs favoritos para mantenerlos. El ecosistema ofrece plugins de soporte para editores para hacer esta experiencia más fluida. Existen extensiones para muchos editores populares que añaden resaltado de sintaxis, autocompletado de nombres de cuentas y verificación de errores en tiempo real:

  • Emacs Beancount-Mode: Un modo principal de Emacs (beancount-mode) está disponible para editar archivos .beancount, ofreciendo características como el coloreado de sintaxis e integración con el verificador de Beancount. Incluso puede ejecutar bean-check en segundo plano para que los errores en el libro (como una transacción desequilibrada) se marquen a medida que editas.
  • Extensión de VS Code: Una extensión de Beancount en el Marketplace de VSCode proporciona comodidades similares para los usuarios de Visual Studio Code. Soporta resaltado de sintaxis, alineación de cantidades, autocompletado para cuentas/beneficiarios e incluso verificaciones de saldo sobre la marcha al guardar el archivo. También puede integrarse con Fava, permitiéndote iniciar la interfaz web de Fava desde VSCode.
  • También existen plugins o modos para Vim, Atom y otros editores. Por ejemplo, existe una gramática Tree-sitter para Beancount, que impulsa el resaltado de sintaxis en editores modernos e incluso fue adoptada en el componente de editor web de Fava. En resumen, sea cual sea tu entorno de edición, es probable que la comunidad haya proporcionado un plugin para hacer que la edición de archivos Beancount sea conveniente y libre de errores.

Para la entrada rápida de transacciones fuera de los editores tradicionales, también existen herramientas como Bean-add y aplicaciones móviles. Bean-add es una herramienta de línea de comandos que permite añadir una nueva transacción a través de un mensaje o una línea de comando, gestionando sugerencias de fecha y cuenta. En dispositivos móviles, un proyecto llamado Beancount Mobile proporciona una interfaz sencilla para introducir transacciones sobre la marcha (por ejemplo, registrando una compra en efectivo desde tu teléfono). Además, existe un Bot de Telegram de Beancount para capturar transacciones a través de mensajería: puedes enviar un mensaje con los detalles de la transacción, y el bot lo formatea en tu archivo de libro contable.

Interfaces Web y Herramientas de Visualización

(Fava) La interfaz web de Fava proporciona un panel interactivo para Beancount, con informes como un estado de resultados con visualizaciones (mostrado aquí como un mapa de árbol de gastos por categoría) junto con tablas de cuentas y saldos.

La interfaz principal para Beancount es Fava, una interfaz web moderna. Fava se ejecuta como una aplicación web local que lee tu archivo Beancount y produce una experiencia interactiva rica en tu navegador. Ofrece un conjunto completo de informes: balance general, estado de resultados, patrimonio neto a lo largo del tiempo, tenencias de cartera, gráficos de rendimiento, presupuestos y más, todo listo para usar. Los usuarios a menudo citan a Fava como una razón principal para elegir Beancount sobre otras herramientas de contabilidad de texto plano. Con un solo comando (fava ledger.beancount), puedes explorar tus finanzas con gráficos y tablas en lugar de texto. Fava soporta características como: profundizar en las cuentas, filtrar transacciones por beneficiario o etiqueta, un editor de consultas (para que puedas ejecutar consultas de Beancount y ver los resultados en el navegador), e incluso un editor web integrado para tu libro mayor. Es altamente utilizable, haciendo que la contabilidad de texto plano sea accesible para aquellos que prefieren interfaces visuales.

Internamente, Fava está escrito en Python (Flask en el backend) y JavaScript (Svelte en el frontend). Tiene su propio ciclo de lanzamiento y se mantiene activamente. Cabe destacar que Fava ha seguido el ritmo del desarrollo de Beancount; por ejemplo, Fava 1.30 añadió soporte para Beancount v3, cambiando al uso interno de los nuevos paquetes beanquery y beangulp. (Todavía soporta Beancount 2 para libros mayores antiguos.) El enfoque de Fava en la usabilidad incluye detalles agradables como el autocompletado en el editor web, y una interfaz de usuario elegante con modo oscuro y gráficos responsivos. También hay un derivado llamado Fava-GTK, que empaqueta Fava en una aplicación de escritorio para usuarios de GNOME/Linux que prefieren una sensación de aplicación nativa.

Más allá de Fava, existen otras opciones de visualización y análisis. Dado que los datos de Beancount pueden exportarse o consultarse como tablas, los usuarios a menudo aprovechan herramientas como Jupyter notebooks o Pandas para análisis personalizados. Por ejemplo, un usuario describe la extracción de datos de Beancount a través de la interfaz de consulta a un Pandas DataFrame para preparar un informe personalizado. También hay scripts aportados por la comunidad para informes específicos — p. ej., una herramienta de análisis de asignación de cartera o un gráfico de control de procesos para gastos vs. patrimonio neto. Sin embargo, para la mayoría de las personas, Fava proporciona suficiente potencia de informes sin necesidad de escribir código. Incluso soporta extensiones: puedes añadir archivos Python que añaden nuevas páginas de informes o gráficos a Fava. Una extensión notable es fava-envelope para la presupuestación por sobres dentro de Fava. En general, Fava sirve como el centro de visualización principal del ecosistema Beancount.

Utilidades y Scripts de Línea de Comandos

Beancount incluye varias herramientas CLI (especialmente en la rama v2 anterior, algunas de las cuales se redujeron en v3). Estas herramientas operan en su archivo de libro mayor para verificarlo o generar informes específicos en texto o HTML:

  • bean-check: un validador que verifica errores de sintaxis o errores contables en el archivo. Ejecutar bean-check myfile.beancount le alertará sobre cualquier desequilibrio, cuenta faltante u otros problemas, y no producirá ninguna salida si el archivo está libre de errores.
  • bean-format: un formateador que organiza su libro mayor alineando los números en columnas ordenadas, de forma muy similar a ejecutar un formateador de código en el código fuente. Esto ayuda a mantener el archivo limpio y legible.
  • bean-query: una herramienta interactiva de shell o por lotes para ejecutar el lenguaje de consulta de Beancount en su libro mayor. Puede usarla para producir informes tabulares personalizados (por ejemplo, bean-query myfile.beancount "SELECT account, sum(amount) WHERE ...").
  • bean-report: un generador de informes versátil (en v2) que puede generar informes predefinidos (balance general, estado de resultados, balance de comprobación, etc.) en la consola o en archivos. Por ejemplo, bean-report file.beancount balances imprimiría los saldos de las cuentas. (En la práctica, muchos de estos informes de texto han sido reemplazados por la presentación más agradable de Fava.)
  • bean-web / bean-bake: una interfaz web más antigua que serviría los informes en localhost o los "hornearía" como archivos HTML estáticos. Estos se usaban principalmente antes de que Fava se popularizara; bean-web proporcionaba una vista web básica de los mismos informes que bean-report podía generar. En Beancount 3, bean-web ha sido eliminado (ya que Fava es ahora el frontend web recomendado, ofreciendo una experiencia superior).
  • bean-example: una utilidad para generar un archivo de libro mayor de ejemplo (útil para los recién llegados para ver una plantilla de entradas de Beancount).
  • bean-doctor: una herramienta de depuración que puede diagnosticar problemas en su libro mayor o entorno.

Cabe señalar que, a partir de Beancount v3, muchas de estas herramientas se trasladaron fuera del proyecto principal. El paquete central de Beancount se optimizó, y herramientas como el motor de consulta y los importadores se dividieron en paquetes separados (beanquery, beangulp, etc.) para facilitar el mantenimiento. Por ejemplo, la funcionalidad de bean-query ahora la proporciona la herramienta beanquery, que se instala por separado. Desde la perspectiva del usuario, la funcionalidad sigue estando disponible; simplemente se ha modularizado. La comunidad de Arch Linux notó este cambio al actualizar Fava: el paquete de Fava añadió dependencias de beanquery y beangulp para soportar Beancount 3.x. Este enfoque modular también permite que otros miembros de la comunidad contribuyan a estas herramientas auxiliares de forma más independiente del ciclo de lanzamiento de Beancount.

Plugins y Extensiones de Beancount

Una fortaleza destacada del ecosistema de Beancount es el sistema de plugins. Al añadir una línea plugin "module.name" en su archivo de Beancount, puede incorporar lógica Python personalizada que se ejecuta durante el procesamiento del libro mayor. La comunidad ha creado muchos plugins para extender las capacidades de Beancount:

  • Calidad de datos y reglas: Ejemplos incluyen beancount-balexpr que le permite afirmar ecuaciones que involucran múltiples cuentas (ej., Activo A + Activo B = Pasivo X), y beancount-checkclosed que inserta automáticamente aserciones de saldo al cerrar una cuenta para asegurar que el saldo sea cero. Incluso hay un plugin para asegurar que las transacciones en el archivo estén ordenadas por fecha (autobean.sorted) para detectar entradas fuera de orden.
  • Automatización: El plugin beancount-asset-transfer puede generar entradas de transferencia en especie entre cuentas (útil para mover acciones entre corredores manteniendo el costo base). Otro, autobean.xcheck, coteja su libro mayor de Beancount con extractos externos en busca de discrepancias.
  • Transacciones recurrentes y presupuestos: El plugin "repeat" o de interpolación de Akuukis permite definir transacciones recurrentes o distribuir un gasto anual a lo largo de los meses. Para la elaboración de presupuestos, la extensión fava-envelope (utilizada a través de Fava) soporta la metodología de presupuesto por sobres en texto plano. También existe MiniBudget de Frank Davies, una pequeña herramienta independiente inspirada en Beancount para ayudar con la elaboración de presupuestos para uso personal o de pequeñas empresas.
  • Impuestos y reportes: Algunos plugins ayudan con la contabilidad fiscal, como uno que clasifica automáticamente las ganancias de capital en corto o largo plazo. Otro (fincen_114 de Justus Pendleton) genera un informe FBAR para contribuyentes estadounidenses con cuentas extranjeras, ilustrando cómo los datos de Beancount pueden ser aprovechados para informes regulatorios.
  • Repositorios de plugins de la comunidad: Existen conjuntos de plugins curados como beancount-plugins (de Dave Stephens) centrado en elementos como las entradas de depreciación, y beancount-plugins-zack (de Stefano Zacchiroli) que incluyen diversas utilidades como directivas de ordenación.

Además de los plugins, otras herramientas de utilidad que orbitan Beancount abordan necesidades específicas. Por ejemplo, beancount-black es un auto-formateador similar al formateador de código Black, pero para archivos de libro mayor de Beancount. Existe un Beancount Bot (Telegram/Mattermost) para añadir transacciones vía chat como se mencionó, y un flujo de trabajo de Alfred para macOS para añadir rápidamente transacciones a su archivo. Una herramienta llamada Pinto ofrece una CLI "potenciada" con entrada interactiva (como un bean-add mejorado). Para aquellos que migran de otros sistemas, existen convertidores (YNAB2Beancount, CSV2Beancount, GnuCash2Beancount, Ledger2Beancount) para ayudar a importar datos de otras fuentes.

En resumen, el ecosistema de Beancount es bastante extenso. La Tabla 1 a continuación enumera algunas de las principales herramientas y extensiones con sus funciones:

| Herramienta/Extensión | Descripción

Comparación con Ledger, hledger y Sistemas Similares

Beancount pertenece a la familia de herramientas de contabilidad de doble entrada en texto plano, entre las cuales Ledger CLI (Ledger de John Wiegley) y hledger son prominentes. Si bien todos estos sistemas comparten la idea central de archivos de libro mayor en texto plano y contabilidad de doble entrada, difieren en sintaxis, filosofía y madurez del ecosistema. La siguiente tabla destaca las diferencias clave entre Beancount, Ledger y hledger:

AspectoBeancount (Python)Ledger CLI (C++)hledger (Haskell)
Sintaxis y Estructura de ArchivoSintaxis estricta y estructurada definida por una gramática formal (BNF). Las transacciones tienen líneas explícitas fecha bandera "Beneficiario" "Descripción" y asientos con cantidades; todas las cuentas deben ser explícitamente abiertas/definidas. No hay asientos implícitos; cada transacción debe estar equilibrada.Sintaxis más libre. El beneficiario/descripción suele estar en la misma línea que la fecha. Permite cierto balance implícito (por ejemplo, una transacción de un solo asiento puede implicar un segundo asiento a una cuenta predeterminada). Los nombres de cuenta pueden usarse sin declaración previa. Ofrece muchas opciones de línea de comandos que pueden afectar el análisis (por ejemplo, suposiciones de año, reglas de fusión de commodities).Sigue en gran medida la sintaxis de Ledger con pequeñas diferencias. hledger es una reimplementación de las características centrales de Ledger en Haskell, por lo que el formato del diario es muy similar al de Ledger (con algunas extensiones y un análisis más estricto por defecto). Por ejemplo, hledger es un poco más estricto con las fechas y la sintaxis de commodities que Ledger, pero no tan estricto como Beancount.
FilosofíaConservador y Pedante. Enfatiza la detección de errores del usuario y el mantenimiento de la integridad de los datos por encima de todo. Impone muchas verificaciones (aserciones de saldo, seguimiento de lotes) por defecto. Configuración mínima – enfoque de "una forma de hacerlo" para la consistencia. Diseñado como una librería con plugins para la extensibilidad (trata los datos del libro mayor como un flujo a procesar, permitiendo lógica Python personalizada).Optimista y Flexible. Confía en que el usuario ingrese los datos correctamente; menos restricciones incorporadas por defecto. Altamente personalizable con docenas de opciones y banderas de comando para ajustar el comportamiento. Tiende a ser una herramienta monolítica con características incorporadas (informes, gráficos) y utiliza un lenguaje de dominio específico dentro del libro mayor para cosas como transacciones automatizadas y transacciones periódicas. La extensibilidad suele ser a través de scripts externos o el lenguaje de consulta incorporado en lugar de APIs de plugins.Pragmático y Consistente. Busca llevar el enfoque de Ledger a una audiencia más amplia con un comportamiento predecible. hledger por defecto es más consistente (sin suposiciones de balance sin cuentas explícitas) y tiene menos trampas que los modos más indulgentes de Ledger. Tiene un subconjunto de las características de Ledger (algunas de las opciones más exóticas de Ledger no son compatibles), pero añade algunas propias (como una interfaz web y la importación de CSV incorporada). Enfatiza la estabilidad y la corrección, pero sin un sistema de plugins como el de Beancount.
Transacciones y BalanceContabilidad de doble entrada estricta: cada transacción debe tener débitos y créditos totales iguales. No permite asientos desequilibrados ni marcadores de posición (no hay "asientos virtuales" que se auto-equilibren). También impone independencia del orden: el libro mayor puede ordenarse por fecha arbitrariamente porque las aserciones de saldo tienen alcance de fecha, no dependen del orden del archivo. El seguimiento de costos para commodities es riguroso – al vender activos, debe especificar lotes o Beancount aplicará FIFO/LIFO para que no pueda eliminar algo que no agregó.Permite más indulgencia en las transacciones. Ledger permite asientos "virtuales" (usando corchetes [ ] o paréntesis) que no requieren una cuenta de balance explícita – a menudo se usan para manejar presupuestos o balance de capital implícito. Es posible en Ledger ingresar una transacción incompleta (omitiendo un lado) y dejar que Ledger infiera el monto de balance. Además, Ledger no impone estrictamente la eliminación de activos lote por lote; restará felizmente de un balance agregado de commodities incluso si no se rastrearon lotes específicos. Esto facilita, por ejemplo, la contabilidad de costo promedio, pero significa que Ledger no le impedirá cometer errores como vender más acciones de las que tiene en un lote determinado.
Inventario y Base de CostoSeguimiento preciso de lotes. Beancount adjunta información de costo a los lotes de commodities (por ejemplo, compra de 10 acciones a $100 cada una), y al reducir un inventario requiere hacer coincidir un lote específico o usar una estrategia definida. Asegura que las ganancias de capital y las bases de costo se calculen correctamente por diseño. El método de costo promedio no es el predeterminado a menos que escriba explícitamente la lógica para ello, porque Beancount trata cada lote de forma distinta para preservar la precisión.Inventario más abstracto. Ledger trata las cantidades de commodities de forma más fluida; por defecto, todos los lotes se fusionan en los informes (solo muestra las cantidades totales). Proporciona opciones para informar por lote o costo promedio si es necesario, pero esto es una cuestión de informe. Históricamente, Ledger no usaba la información de costo para imponer el balance en transacciones de múltiples commodities, lo que podría llevar a sutiles errores de cálculo de ganancias de capital. Sin embargo, la flexibilidad de Ledger permite a los usuarios elegir FIFO, LIFO, promedio, etc., en el momento del informe a través de banderas de línea de comandos.
Informes e Interfaz de UsuarioPrincipalmente a través de Fava (UI web) y bean-query/bean-report. Fava ofrece un panel web pulido con gráficos y tablas, lo que hace que Beancount sea muy fácil de usar para el análisis. También soporta informes textuales y consultas tipo SQL a través de bean-query. No hay una TUI (UI de texto) oficial, pero la integración con editores/IDEs llena ese vacío.Principalmente informes basados en CLI. Ledger tiene muchos comandos de informe incorporados (balance, registro, estadísticas, etc.) que generan texto en el terminal. Puede producir gráficos (ASCII o vía gnuplot) e incluso tiene algunos complementos para informes HTML, pero no tiene una interfaz web oficial mantenida como parte del proyecto. (Ha habido intentos de terceros de UIs web para Ledger, pero ninguno tan prominente como Fava para Beancount). Para una UI, los usuarios dependen del terminal o quizás de GUIs como Ledger-Live (un proyecto separado).Ofrece tanto CLI como una UI web simple. hledger hereda los informes CLI de Ledger (con comandos similares) y adicionalmente proporciona hledger-web, una interfaz web básica para ver cuentas y transacciones en un navegador. hledger-web no es tan rica en funciones como Fava, pero ofrece una visión general de solo lectura. hledger también tiene hledger-ui, una interfaz basada en curses de terminal para uso interactivo.
Extensibilidad y PluginsAlta extensibilidad vía Python. La API de plugins permite que código Python arbitrario se ejecute durante el procesamiento del libro mayor, lo que significa que los usuarios pueden implementar características personalizadas sin modificar el núcleo. El ecosistema de plugins (para presupuestos, etc.) demuestra esto. Además, se pueden escribir scripts de Python para usar las librerías de Beancount para informes personalizados.Extensibilidad de bajo nivel. Ledger puede extenderse escribiendo sus propios scripts que analicen la salida de Ledger o usando su lenguaje de consulta interno de maneras inteligentes. También tiene características como transacciones automatizadas (reglas que generan automáticamente asientos dados disparadores en el diario) y transacciones periódicas, que son tipos de extensibilidad incorporada dentro del archivo del libro mayor. Pero no ofrece una API para inyectar código arbitrario en el motor de contabilidad – no es una librería de la misma manera (aunque libledger existe para desarrolladores de C++).Extensibilidad moderada. hledger omite deliberadamente las características de transacciones automatizadas/periódicas de Ledger para mantener las cosas más simples, pero proporciona herramientas como hledger-import para la conversión de otros formatos y permite complementos. Al estar escrito en Haskell, se utiliza como librería en algunos proyectos, pero escribir plugins personalizados no es tan sencillo como el enfoque de Beancount. En cambio, hledger se enfoca en cubrir necesidades comunes (informes, web, UI) dentro de su conjunto de herramientas oficial.
Comunidad y DesarrolloActiva pero impulsada principalmente por un autor (Martin Blais) y un pequeño grupo de colaboradores. Los lanzamientos importantes son poco frecuentes (v2 fue estable durante ~6 años, luego v3 en 2024). La comunidad contribuye a través de plugins y herramientas (Fava fue originalmente un proyecto de terceros que se volvió integral). La lista de correo y GitHub de Beancount están activos con discusiones, y la base de usuarios ha crecido gracias al atractivo de Fava para los no desarrolladores.Larga historia (Ledger data de 2003) y amplio uso entre ingenieros. Originalmente un proyecto de una sola persona (Wiegley), vio muchos colaboradores con el tiempo. El desarrollo de Ledger se ha ralentizado en los últimos años; es estable pero con menos características nuevas (el enfoque se ha desplazado al mantenimiento). La lista de correo ledger-cli es un centro para todas las discusiones de contabilidad en texto plano (incluyendo Beancount y hledger). Existen muchas herramientas y scripts alrededor de Ledger, pero el ecosistema no está tan unificado (no hay una única "GUI de Ledger", etc., aunque existen múltiples esfuerzos independientes).Comunidad creciente, con Simon Michael liderando el desarrollo de hledger. hledger tiene lanzamientos anuales y mejoras constantes, a menudo siguiendo los cambios de características de Ledger pero también forjando su propio camino. Goza de popularidad entre los usuarios que desean el poder de Ledger con más previsibilidad. La comunidad tiende a superponerse con la de Ledger (plaintextaccounting.org cubre ambos). El ecosistema de hledger incluye complementos como hledger-flow (para la automatización del flujo de trabajo) y se beneficia de estar escrito en Haskell (atrayendo a aquellos en esa comunidad).

En resumen, Beancount se diferencia por su énfasis en la rigurosidad, la extensibilidad basada en plugins y una interfaz web fácil de usar. Ledger sigue siendo la herramienta clásica, altamente flexible, preferida por los puristas de la línea de comandos y aquellos que necesitan la máxima velocidad (el motor C++ de Ledger es muy rápido con archivos enormes). hledger proporciona un punto intermedio: gran parte de la funcionalidad de Ledger con un poco más de estructura y una UI web oficialmente soportada (aunque simple). Los tres comparten las ventajas de la contabilidad en texto plano (auditabilidad, versionado con Git, datos planos), pero el ecosistema de Beancount (especialmente con Fava) lo ha hecho, posiblemente, más accesible para el usuario promedio en los últimos años. Por otro lado, los usuarios de Ledger/hledger a veces prefieren su relativa simplicidad de configuración (no se necesita Python) y su estabilidad probada a lo largo del tiempo. En última instancia, la elección entre ellos se reduce a la preferencia personal: aquellos que valoran la corrección rigurosa y un ecosistema rico a menudo se inclinan por Beancount, mientras que aquellos que desean herramientas ligeras y centradas en el terminal podrían quedarse con Ledger o hledger.

Casos de Uso para Beancount

Beancount es lo suficientemente versátil para su uso en el seguimiento de finanzas personales, así como (en algunos casos) en la contabilidad de pequeñas empresas. Su enfoque central de partida doble es el mismo en ambos escenarios, pero la escala y las prácticas específicas pueden diferir.

Finanzas Personales

Muchos usuarios de Beancount lo emplean para gestionar sus finanzas personales o domésticas. Una configuración típica de finanzas personales en Beancount podría incluir cuentas de cheques y ahorros, tarjetas de crédito, inversiones, préstamos, categorías de ingresos (salario, intereses, etc.) y categorías de gastos (alquiler, comestibles, entretenimiento, etc.). Los usuarios registran las transacciones diarias ya sea manualmente (introduciendo recibos, facturas, etc.) o importando desde extractos bancarios utilizando las herramientas de importación mencionadas anteriormente. Los beneficios que Beancount aporta a las finanzas personales incluyen:

  • Consolidación y Análisis: Todas tus transacciones pueden residir en un único archivo de texto (o un conjunto de archivos) que representa años de historial financiero. Esto facilita el análisis de tendencias a largo plazo. Con el lenguaje de consulta de Beancount o con Fava, puedes responder preguntas como “¿Cuánto gasté en viajes en los últimos 5 años?” o “¿Cuál es mi factura promedio mensual de comestibles?” en segundos. Un usuario señaló que, después de cambiarse a Beancount, “el análisis de los datos financieros (gastos, donaciones, impuestos, etc.) es trivial” ya sea a través de Fava o consultando los datos y utilizando herramientas como Pandas. En esencia, tu libro mayor se convierte en una base de datos financiera personal que puedes consultar a voluntad.
  • Presupuesto y Planificación: Aunque Beancount no impone un sistema de presupuesto, puedes implementar uno. Algunos usuarios hacen presupuestos por sobres (envelope budgeting) creando cuentas de presupuesto o utilizando el plugin fava-envelope. Otros simplemente utilizan informes periódicos para comparar el gasto con los objetivos. Dado que es texto plano, integrar Beancount con herramientas de presupuesto externas u hojas de cálculo es sencillo (exportando datos o utilizando salidas CSV de las consultas).
  • Seguimiento de Inversiones y Patrimonio Neto: Beancount sobresale en el seguimiento de inversiones gracias a su robusto manejo de bases de costo y precios de mercado. Puedes registrar compras/ventas de acciones, criptomonedas, etc., con detalles de costo, y luego usar directivas Prices para hacer un seguimiento del valor de mercado. Fava puede mostrar un gráfico de patrimonio neto a lo largo del tiempo y un desglose de la cartera por clase de activo. Esto es enormemente útil para la gestión de la riqueza personal: obtienes información similar a la que proporcionan herramientas comerciales como Mint o Personal Capital, pero totalmente bajo tu control. El manejo de múltiples divisas también está integrado, por lo que si tienes divisas extranjeras o criptomonedas, Beancount puede rastrearlas y convertirlas para la elaboración de informes.
  • Conciliación y Precisión: Las finanzas personales a menudo implican la conciliación con los extractos bancarios. Con Beancount, se pueden conciliar cuentas regularmente utilizando aserciones de saldo o la función de documentos. Por ejemplo, cada mes podrías añadir una entrada balance Assets:Bank:Checking <date> <balance> para confirmar que tu libro mayor coincide con el extracto bancario al final del mes. La herramienta bean-check (o la visualización de errores de Fava) te alertará si las cosas no cuadran. Un usuario menciona hacer una conciliación mensual de todas las cuentas, lo que “ayuda a detectar cualquier actividad inusual”, una buena práctica de higiene financiera personal que Beancount facilita.
  • Automatización: Individuos con conocimientos tecnológicos han automatizado gran parte de su flujo de trabajo de finanzas personales con Beancount. Utilizando importadores, tareas cron y quizás un poco de Python, puedes configurar tu sistema para que, por ejemplo, cada día tus transacciones bancarias sean obtenidas (algunos usan OFX o APIs) y añadidas a tu archivo Beancount, categorizadas por reglas. Con el tiempo, tu libro mayor se actualiza en gran medida de forma automática, y solo necesitas revisar y ajustar según sea necesario. Un miembro de la comunidad en Hacker News compartió que después de 3 años, sus libros de Beancount eran “95% automáticos”. Este nivel de automatización es posible gracias a la apertura de texto plano y las capacidades de scripting de Beancount.

Los usuarios de finanzas personales a menudo eligen Beancount en lugar de hojas de cálculo o aplicaciones porque les otorga la propiedad completa de los datos (sin depender de un servicio en la nube que podría cerrar, una preocupación ya que Mint fue descontinuado, por ejemplo) y porque la profundidad de la información es mayor cuando tienes todos tus datos integrados. La curva de aprendizaje no es trivial – uno debe aprender contabilidad básica y la sintaxis de Beancount – pero recursos como la documentación oficial y los tutoriales de la comunidad ayudan a los recién llegados a empezar. Una vez configurado, muchos encuentran que les brinda tranquilidad tener una imagen clara y confiable de sus finanzas en todo momento.

Contabilidad para Pequeñas Empresas

Usar Beancount para una pequeña empresa (o una organización sin fines de lucro, club, etc.) es menos común que para uso personal, pero ciertamente es posible y algunos lo han hecho con éxito. El marco de contabilidad de doble entrada de Beancount es, de hecho, el mismo sistema que sustenta la contabilidad corporativa, solo que sin algunas de las características de nivel superior que ofrece el software de contabilidad dedicado (como módulos de facturación o integraciones de nómina). Así es como Beancount puede encajar en el contexto de una pequeña empresa:

  • Libro Mayor y Estados Financieros: Una pequeña empresa puede tratar el archivo de Beancount como su libro mayor. Tendría cuentas de activos para cuentas bancarias, cuentas por cobrar, quizás inventario; cuentas de pasivos para tarjetas de crédito, préstamos, cuentas por pagar; patrimonio para el capital del propietario; cuentas de ingresos por ventas o servicios; y cuentas de gastos para todos los gastos del negocio. Al mantener este libro mayor, puede producir un Estado de Resultados (Ganancias y Pérdidas) y un Balance General en cualquier momento utilizando los informes o consultas de Beancount. De hecho, los informes integrados de Beancount o Fava pueden generar un balance general y un P&L en segundos que están perfectamente alineados con los principios contables. Esto puede ser suficiente para que una pequeña operación evalúe la rentabilidad, la posición financiera y el flujo de efectivo (con un poco de consulta para el flujo de efectivo, ya que los estados de flujo de efectivo directos no están integrados pero pueden derivarse).
  • Facturas y Cuentas por Cobrar (C/C), Cuentas por Pagar (C/P): Beancount no tiene un sistema de facturación integrado; los usuarios normalmente manejarían la facturación externamente (por ejemplo, crear facturas en Word o una aplicación de facturación) y luego registrarían los resultados en Beancount. Por ejemplo, cuando emite una factura, registraría una entrada debitando Cuentas por Cobrar y acreditando Ingresos. Cuando llega el pago, debita Efectivo/Banco y acredita Cuentas por Cobrar. De esta manera, puede llevar un registro de las cuentas por cobrar pendientes consultando el saldo de la cuenta de C/C. Lo mismo se aplica a las facturas (C/P). Si bien es más manual que el software de contabilidad especializado (que podría enviar recordatorios o integrarse con correos electrónicos), es perfectamente factible. Algunos usuarios han compartido plantillas o flujos de trabajo sobre cómo gestionan las facturas con Beancount y se aseguran de no pasar por alto las facturas abiertas (por ejemplo, utilizando metadatos o consultas personalizadas para listar las facturas impagas).
  • Inventario o Costo de Bienes Vendidos: Para empresas que venden productos, Beancount puede rastrear las compras y ventas de inventario, pero requiere entradas disciplinadas. Podría usar las características de Inventory y contabilidad de costos: la compra de inventario aumenta una cuenta de activo (con el costo asociado a los artículos), su venta traslada el costo a un gasto (COGS) y registra los ingresos. Debido a que Beancount insiste en la coincidencia de lotes, forzará la reducción adecuada del inventario con el costo correcto, lo que en realidad puede garantizar que sus cálculos de beneficio bruto sean precisos si se hacen correctamente. Sin embargo, no hay un seguimiento automatizado de SKU ni nada por el estilo, todo está a nivel financiero (cantidad y costo).
  • Nómina y Transacciones Complejas: Beancount puede registrar transacciones de nómina (gasto de salario, retenciones de impuestos, etc.), pero el cálculo de esas cifras podría hacerse externamente o a través de otra herramienta, para luego simplemente registrarse en Beancount. Para una empresa muy pequeña (digamos uno o dos empleados), esto es manejable. Por ejemplo, registraría una única entrada de diario por período de pago que desglosa salarios, impuestos retenidos, gasto de impuestos del empleador, efectivo pagado, etc. Hacer esto manualmente es similar a cómo se haría en las entradas de diario de QuickBooks; requiere conocimiento de qué cuentas afectar.
  • Multiusuario y Auditoría: Un desafío en un entorno empresarial es si varias personas necesitan acceder a los libros o si un contador necesita revisarlos. Dado que Beancount es un archivo de texto, no es multiusuario en tiempo real. Sin embargo, alojar el archivo en un repositorio Git puede permitir la colaboración: cada persona puede editar y confirmar, y las diferencias pueden fusionarse.
  • Cumplimiento normativo: Para la declaración de impuestos o el cumplimiento, los datos de Beancount se pueden utilizar para generar los informes necesarios, pero puede requerir consultas personalizadas o complementos. Vimos un ejemplo de un complemento comunitario para la presentación de informes de cumplimiento del gobierno indio, y uno para la presentación de informes FBAR de FinCEN. Esto demuestra que, con esfuerzo, Beancount puede adaptarse para cumplir con requisitos de informes específicos. Las pequeñas empresas en jurisdicciones con requisitos simples (contabilidad de caja o devengo básico) pueden ciertamente mantener libros en Beancount y producir estados financieros para las declaraciones de impuestos. Sin embargo, características como los programas de depreciación o amortización podrían requerir que escriba sus propias entradas o use un complemento (los complementos de depreciación de Dave Stephens, por ejemplo, ayudan a automatizar eso). No hay una interfaz gráfica de usuario para "hacer clic en depreciar activo" como en algunos programas de contabilidad; codificaría la depreciación como transacciones (lo que de alguna manera lo desmitifica: todo es una entrada que puede inspeccionar).

En la práctica, muchos propietarios de pequeñas empresas con orientación tecnológica han utilizado Beancount (o Ledger/hledger) si prefieren el control y la transparencia sobre la conveniencia de QuickBooks. Una discusión en Reddit señaló que para la contabilidad estándar de pequeñas empresas con un volumen limitado de transacciones, Beancount funciona bien. El factor limitante suele ser el nivel de comodidad, si el propietario del negocio (o su contador) se siente cómodo con una herramienta basada en texto. Una ventaja es el costo: Beancount es gratuito, mientras que el software de contabilidad puede ser costoso para una pequeña empresa. Por otro lado, la falta de soporte oficial y la naturaleza de "hágalo usted mismo" significa que es más adecuado para aquellos que son tanto propietarios de negocios como algo inclinados técnicamente. Para freelancers o propietarios únicos con habilidades de programación, Beancount puede ser una opción atractiva para gestionar las finanzas sin depender de los servicios de contabilidad en la nube.

También son posibles los enfoques híbridos: algunas pequeñas empresas utilizan un sistema oficial para facturas o nóminas, pero importan periódicamente los datos a Beancount para análisis y archivo. De esta manera, obtienen lo mejor de ambos mundos: cumplimiento y facilidad para las operaciones diarias, además del poder de Beancount para una visión consolidada.

En resumen, Beancount puede manejar la contabilidad de pequeñas empresas, siempre que el usuario esté dispuesto a gestionar manualmente las cosas que el software comercial automatiza. Garantiza un alto grado de transparencia –usted comprende profundamente sus libros porque los está escribiendo– y para un usuario diligente, puede producir libros impecables. Tanto los usuarios personales como los empresariales se benefician de las fortalezas principales de Beancount: un motor de contabilidad confiable, un rastro de auditoría completo y flexibilidad para adaptarse a escenarios únicos (a través de scripts y complementos). Ya sea para rastrear un presupuesto doméstico o las finanzas de una startup, Beancount ofrece un conjunto de herramientas para hacerlo con precisión y apertura.

Comunidad y Actividad de Desarrollo

Beancount cuenta con una comunidad dedicada y una historia de desarrollo que refleja su naturaleza de código abierto, de nicho pero apasionada. A continuación, se presentan los puntos clave sobre su comunidad, mantenedores y proyectos relacionados:

  • Mantenimiento del Proyecto: El autor principal de Beancount es Martin Blais, quien inició el proyecto alrededor de 2007 y lo ha guiado a través de múltiples versiones. Durante mucho tiempo, el desarrollo fue en gran medida un esfuerzo individual (aparte de las contribuciones de parches de la comunidad). La filosofía de Martin era construir una herramienta de contabilidad "útil para mí primero, así como para otros, de la manera más sencilla y duradera". Esta motivación personal mantuvo el proyecto en marcha como una labor de amor. A partir de 2025, Martin Blais sigue siendo el mantenedor principal (su nombre aparece en los commits y responde preguntas en la lista de correo/rastreador de incidencias), pero el ecosistema alrededor de Beancount cuenta con muchos otros colaboradores en sus respectivos proyectos.

  • GitHub y Repositorios: El código fuente está alojado en GitHub bajo el repositorio beancount/beancount. El proyecto tiene licencia GPL-2.0 y ha atraído a un número modesto de colaboradores a lo largo de los años. A mediados de 2024, Beancount Versión 3 fue lanzado oficialmente como la nueva rama estable. Este lanzamiento implicó la separación de algunos componentes: por ejemplo, el repositorio beangulp (para importadores) y el repositorio beanquery (para la herramienta de consulta) forman parte ahora de la organización de GitHub beancount, mantenidos de forma algo independiente. El repositorio principal de Beancount se centra en el motor de contabilidad central y el analizador de archivos. A partir de 2025, el GitHub de Beancount muestra discusiones activas sobre incidencias y cierto desarrollo continuo – aunque no de gran volumen, las incidencias y las solicitudes de extracción (pull requests) llegan poco a poco, y se realizan actualizaciones ocasionales para corregir errores o refinar características.

  • Desarrollo de Fava: Fava, la interfaz web, comenzó como un proyecto separado (creado por Dominic Aumayr, quien lo registró en 2016). Tiene su propia comunidad de colaboradores y también se encuentra en GitHub bajo beancount/fava. Los mantenedores y colaboradores de Fava (por ejemplo, Jakob Schnetz, Stefan Otte y otros en los últimos años) han estado mejorando activamente la interfaz, con lanzamientos cada pocos meses. El chat de Gitter de Fava (enlazado en la documentación de Fava) y el rastreador de incidencias de GitHub son lugares donde los usuarios y desarrolladores discuten nuevas características o errores. El proyecto da la bienvenida a las contribuciones, como lo demuestra una nota en el CHANGELOG que agradece a múltiples miembros de la comunidad por sus PRs. La estrecha alineación de Fava con el desarrollo de Beancount (como la rápida adición de soporte para Beancount v3 y la nueva sintaxis de beanquery) indica una buena colaboración entre ambos proyectos.

  • Listas de Correo y Foros: Beancount tiene una lista de correo oficial (anteriormente en Google Groups, titulada "Beancount" o a veces discutida

Desarrollos Recientes y Próximas Características

A partir de 2025, el ecosistema de Beancount ha experimentado desarrollos significativos en los últimos dos años, y hay discusiones en curso sobre futuras mejoras. A continuación, se presentan algunos desarrollos recientes notables y un vistazo a lo que podría venir:

  • Lanzamiento de Beancount 3.0 (2024): Después de un largo período en el que Beancount 2.x fue el estándar, la versión 3 fue lanzada oficialmente a mediados de 2024. Este fue un hito importante porque la v3 representa una simplificación y modernización de la base de código. Martin Blais había concebido la v3 como una oportunidad para "reorganizar y simplificar" aún más el sistema. Aunque inicialmente se pensó que sería una reescritura importante, en la práctica la actualización para los usuarios no fue demasiado disruptiva. Los cambios principales fueron internos: un nuevo analizador sintáctico, algunas mejoras de rendimiento y la extracción de componentes opcionales del núcleo. El lanzamiento se implementó gradualmente (la v3 había estado en beta desde 2022, pero en julio de 2024 se convirtió en la versión estable recomendada). Usuarios como Siddhant Goel informaron que la migración de 2.x a 3.x fue "en su mayor parte sin incidentes", con solo algunos cambios en el flujo de trabajo.

  • Modularización – herramientas movidas a paquetes separados: Uno de los grandes cambios con Beancount 3 es que muchas herramientas que solían residir en el repositorio monolítico fueron separadas. Por ejemplo, bean-query ahora es proporcionado por el paquete beanquery, y beancount.ingest fue reemplazado por el paquete beangulp. Comandos como bean-extract y bean-identify (para importaciones) fueron eliminados del núcleo de Beancount. En su lugar, la filosofía es usar scripts independientes para la importación. Esto significa que si actualizas a la v3, instalarías beangulp y ejecutarías scripts de importación (cada importador es básicamente un pequeño programa) en lugar de tener un archivo de configuración central de bean-extract. De manera similar, las consultas se ejecutan a través de beanquery, que puede instalarse y actualizarse independientemente del núcleo de Beancount. Este enfoque modular fue diseñado para facilitar el mantenimiento y fomentar las contribuciones de la comunidad. También redujo el tamaño del núcleo de Beancount, de modo que el núcleo se centra puramente en el análisis sintáctico y la lógica contable, mientras que la funcionalidad auxiliar puede evolucionar por separado. Desde la perspectiva del usuario, después de la actualización, uno tiene que ajustar los comandos (por ejemplo, usar bean-query de beanquery, o usar Fava que de todos modos abstrae esto). El registro de cambios de Fava señala explícitamente estos cambios: Fava ahora depende de beanquery y beangulp, y maneja los flujos de trabajo de importación de manera diferente para Beancount 3 vs 2.

  • Mejoras de Rendimiento: El rendimiento fue una de las motivaciones para revisar el diseño de Beancount. El plan de la v3 (como se describe en el documento "Objetivos de la V3" de Martin) incluía la optimización del analizador sintáctico y, posiblemente, hacer que el proceso de carga fuera más rápido y menos intensivo en memoria. Para 2025, algunas de estas mejoras se han materializado. Anécdotas de usuarios con libros mayores muy grandes (decenas de miles de transacciones, o muchas operaciones bursátiles) han reportado un mejor rendimiento con la última versión. Por ejemplo, un usuario que manejaba "transacciones de microinversión" y que enfrentaba problemas de rendimiento, señaló estas preocupaciones en el Grupo de Google; este tipo de retroalimentación probablemente influyó en la v3. El nuevo analizador sintáctico es más eficiente y está escrito de una manera más clara, lo que podría extenderse en el futuro. Además, Fava 1.29 se movió a un mecanismo de monitoreo de archivos más eficiente (usando la biblioteca watchfiles) para mejorar la capacidad de respuesta cuando el libro mayor cambia. Mirando hacia el futuro, la comunidad podría explorar el análisis sintáctico incremental (solo reprocesar las partes modificadas del archivo en lugar de todo) para manejar libros mayores grandes más rápidamente; esto se insinuó en la documentación como la idea de "servidor Beancount / registro incremental".

  • Mejoras en el Seguimiento de Inversiones: Se ha trabajado continuamente para mejorar los informes de inversiones y carteras. Por ejemplo, se discutió extensamente el manejo de la base de costo promedio frente a FIFO. Si bien Beancount aplica la coincidencia de lotes, algunos usuarios prefieren el costo promedio para ciertas jurisdicciones. Existe una propuesta y discusión sobre cómo hacer que el registro de la base de costo sea más flexible (posiblemente a través de un plugin u opción). Para 2025, no hay un interruptor incorporado para el costo promedio, pero el trabajo de base en la v3 (el rediseño del registro) facilita la implementación por parte de los plugins. Se lanzó un plugin de la comunidad llamado "Gains Minimizer" que puede sugerir qué lotes vender para minimizar impuestos, mostrando el tipo de herramientas avanzadas que se están construyendo en torno a las inversiones. Fava también añadió características como una extensión de resumen de cartera (con cálculos de tasa de retorno). En cuanto a las próximas características, se puede esperar más en este ámbito: posiblemente sugerencias automatizadas de reequilibrio de cartera o análisis de riesgo, probablemente como herramientas externas que lean datos de Beancount (ya que los datos están todos allí).

  • Nuevos Plugins y Extensiones: El ecosistema de plugins crece continuamente. Las adiciones notables recientes incluyen:

    • Herramientas de informes de presupuesto – por ejemplo, un reportero de presupuesto CLI simple si no se usa la interfaz de usuario de Fava.
    • Cifrado y seguridad – se introdujo la configuración fava-encrypt, que permite alojar Fava en línea con el libro mayor cifrado en reposo, abordando la preocupación del autoalojamiento de sus finanzas.
    • Plugins de mejora de la calidad de vida – como autobean-format (un nuevo formateador que puede manejar más casos extremos analizando y reimprimiendo el archivo), y la integración de beancheck en editores (flymake para Emacs). Mirando hacia el futuro, es probable que la comunidad continúe llenando vacíos a través de plugins. Por ejemplo, podríamos ver más plugins relacionados con impuestos (algunos usuarios han compartido scripts para cosas como el cálculo de ventas de lavado o informes fiscales locales específicos).
  • Posibles Características Futuras: Basado en discusiones en el rastreador de problemas y la lista de correo, algunas ideas están en el horizonte (aunque no garantizadas):

    • Resolución de Tiempo: Actualmente, Beancount solo rastrea fechas (sin marcas de tiempo) para las transacciones. Ha habido preguntas sobre la adición de tiempo (para operaciones bursátiles o el orden de transacciones del mismo día). Martin Blais decidió explícitamente que las marcas de tiempo sub-diarias estaban fuera del alcance para mantener las cosas simples. Es poco probable que esto cambie pronto, por lo que las próximas versiones probablemente no añadirán resolución de tiempo, manteniéndose en la postura de que si necesitas tiempo, lo incorporas en la narración o en una cuenta.
    • Edición GUI Mejorada: Fava mejora continuamente sus capacidades de edición. Una posibilidad es un editor web más completo (con sugerencia automática, quizás una entrada basada en formularios para nuevas transacciones). Se sentaron las bases utilizando tree-sitter en el editor de Fava. Podríamos ver a Fava convertirse no solo en un visor, sino en un editor más potente, reduciendo la necesidad de abrir un editor de texto para muchas tareas.
    • Mejor Soporte Multi-Libro Mayor: Algunos usuarios mantienen múltiples archivos Beancount (para diferentes entidades o para separar finanzas personales de las empresariales). Actualmente, incluir archivos es posible pero tiene limitaciones (plugins en archivos incluidos, etc.). Recientemente se creó un plugin autobean.include para incluir de forma segura libros mayores externos. En el futuro, podríamos ver soporte de primera clase para configuraciones de múltiples archivos, quizás un concepto de "proyecto" Beancount con varios archivos (esto se insinúa con características como la configuración beancount.mainBeanFile de la extensión de VSCode). Esto ayudaría a quienes realizan contabilidad multi-entidad o desean modularizar su libro mayor.
    • Cálculo en Tiempo Real o Incremental: A medida que los libros mayores crecen, la capacidad de recalcular informes rápidamente se vuelve importante. Existe la idea de un servidor Beancount que permanezca en ejecución y actualice los resultados a medida que cambian las transacciones. Esto podría manifestarse como una optimización en Fava o un demonio que los plugins del editor puedan consultar. Quizás una futura versión de Fava aprovechará un proceso de Beancount en ejecución continua para hacer que la interfaz de usuario sea más receptiva para libros mayores enormes.

Gestionando Cuentas por Cobrar en Beancount

· Lectura de 4 minutos
Mike Thrift
Mike Thrift
Marketing Manager

En el laberinto de la gestión de finanzas personales, Beancount emerge como un faro de claridad y precisión para la teneduría de libros de texto plano. Particularmente cuando se trata de gestionar cuentas por cobrar —dinero esperado de otros—, Beancount ofrece un enfoque estructurado para mantener sus registros financieros en un orden impecable. Este blog le guiará a través de las complejidades del seguimiento de cuentas por cobrar, el procesamiento de reembolsos y la gestión de transacciones no resueltas con Beancount. Ya sea que esté devolviendo una compra, prestando dinero o esperando un reembolso, esta publicación es su hoja de ruta hacia la claridad financiera.

Entendiendo las Cuentas por Cobrar en Beancount:

2024-02-17-navigating-receivables-beancount-guide

Las cuentas por cobrar representan dinero que se le debe. Esto puede surgir de una variedad de escenarios, como después de una devolución de compra esperando un reembolso o cuando presta dinero a alguien. Por ejemplo, considere que ha devuelto una correa de reloj a una tienda en línea como Amazon.com y está esperando un reembolso. En Beancount, esta transacción se registra como dinero que se mueve de su pasivo de tarjeta de crédito a sus activos como cuentas por cobrar:

2023-10-31 * "Amazon.com" "[Devolución] Correa de Reloj"
Liabilities:CreditCard:Chase -12.00 USD
Assets:Receivables

Gestionando Reembolsos:

Una vez que el reembolso es procesado y usted recibe el dinero, se registra otra transacción para compensar el saldo en Cuentas por Cobrar. Esto asegura que sus cuentas reflejen el dinero de vuelta en su posesión:

2023-11-01 * "Amazon.com" "[Reembolso] Correa de Reloj"
Liabilities:CreditCard:Chase 12.00 USD
Assets:Receivables

Ciclo Completo de Transacción:

Un ciclo completo de transacción de entrada y salida que involucra cuentas por cobrar combina ambas transacciones anteriores y se muestra a continuación, demostrando una cuenta saldada después del reembolso:

2023-10-31 * "Amazon.com" "[Devolución] Correa de Reloj"
Liabilities:CreditCard:Chase -12.00 USD
Assets:Receivables

2023-11-01 * "Amazon.com" "[Reembolso] Correa de Reloj"
Liabilities:CreditCard:Chase 12.00 USD
Assets:Receivables

Manejo de Transacciones No Resueltas:

Para transacciones donde el reembolso o el pago aún no se ha recibido, Beancount emplea la etiqueta #UNRESOLVED. Esta etiqueta ayuda a identificar y rastrear montos que aún están pendientes. Por ejemplo:

2023-10-31 * "John Doe" "Préstamo de Dinero" #UNRESOLVED
Liabilities:CreditCard:Chase -100.00 USD
Assets:Receivables

Al enfocarse en las transacciones etiquetadas como #UNRESOLVED, puede determinar rápidamente qué montos aún están pendientes de liquidación.

Manteniendo un Saldo Cero:

En un libro mayor adecuado, la suma de todas las transacciones bajo la cuenta Assets:Receivables, excluyendo aquellas etiquetadas con #UNRESOLVED, debería idealmente volver a cero. Esto asegura que todos los fondos esperados han sido contabilizados, manteniendo la integridad de sus registros financieros.

Por ejemplo, un libro mayor válido podría verse así, con una transacción no resuelta claramente marcada, esperando su cierre:

2023-10-31 * "Amazon.com" "[Devolución] Correa de Reloj"
Liabilities:CreditCard:Chase -12.00 USD
Assets:Receivables

2023-11-01 * "Amazon.com" "[Reembolso] Correa de Reloj"
Liabilities:CreditCard:Chase 12.00 USD
Assets:Receivables

2023-10-31 * "John Doe" "Préstamo de Dinero" #UNRESOLVED
Liabilities:CreditCard:Chase -100.00 USD
Assets:Receivables

Un libro mayor inválido es aquel donde una transacción causa que la cuenta de Cuentas por Cobrar no se salde a cero, necesitando la etiqueta #UNRESOLVED para su corrección.

Conclusión

Gestionar las cuentas por cobrar en Beancount no tiene por qué ser intimidante. Con una comprensión clara de cómo registrar transacciones, gestionar reembolsos y vigilar las transacciones no resueltas, puede mantener registros financieros precisos y fiables. Adoptar el enfoque estructurado de Beancount para la gestión de cuentas por cobrar no solo simplifica su seguimiento financiero, sino que también le brinda tranquilidad, sabiendo que cada céntimo está contabilizado. Así que, ¿por qué no aprovechar el poder de Beancount para que su gestión financiera sea tan fluida

Deconstruyendo un Libro Mayor de Beancount: Un Caso de Estudio para la Contabilidad Empresarial

· Lectura de 3 minutos
Mike Thrift
Mike Thrift
Marketing Manager

En la entrada de blog de hoy, desglosaremos un libro mayor de Beancount para empresas, lo que le ayudará a comprender las complejidades de este sistema de contabilidad de partida doble de texto plano.

Deconstruyendo un Libro Mayor de Beancount: Un Caso de Estudio para la Contabilidad Empresarial

Comencemos primero con el código:

2023-05-22-business-template

1970-01-01 open Assets:Bank:Mercury
1970-01-01 open Assets:Crypto

1970-01-01 open Equity:Bank:Chase

1970-01-01 open Income:Stripe
1970-01-01 open Income:Crypto:ETH

1970-01-01 open Expenses:COGS
1970-01-01 open Expenses:COGS:Contabo
1970-01-01 open Expenses:COGS:AmazonWebServices

1970-01-01 open Expenses:BusinessExpenses
1970-01-01 open Expenses:BusinessExpenses:ChatGPT

2023-05-14 * "CONTABO.COM" "Mercury Checking ••1234"
Expenses:COGS:Contabo 17.49 USD
Assets:Bank:Mercury -17.49 USD

2023-05-11 * "Amazon Web Services" "Mercury Checking ••1234"
Expenses:COGS:AmazonWebServices 14490.33 USD
Assets:Bank:Mercury -14490.33 USD

2023-03-01 * "STRIPE" "Mercury Checking ••1234"
Income:Stripe -21230.75 USD
Assets:Bank:Mercury 21230.75 USD

2023-05-18 * "customer_182734" "0x5190E84918FD67706A9DFDb337d5744dF4EE5f3f"
Assets:Crypto -19 ETH {1,856.20 USD}
Income:Crypto:ETH 19 ETH @@ 35267.8 USD

Entendiendo el Código

  1. Apertura de Cuentas: El código comienza abriendo una serie de cuentas el 01-01-1970. Estas incluyen una mezcla de cuentas de activos (Assets:Bank:Mercury y Assets:Crypto), una cuenta de patrimonio (Equity:Bank:Chase), cuentas de ingresos (Income:Stripe y Income:Crypto:ETH), y cuentas de gastos (Expenses:COGS, Expenses:COGS:AmazonWebServices, Expenses:BusinessExpenses, y Expenses:BusinessExpenses:ChatGPT).

  2. Transacciones: Luego, procede a registrar una serie de transacciones entre el 01-03-2023 y el 18-05-2023.

    • La transacción del 14-05-2023 representa un pago de $17.49 a CONTABO.COM desde Mercury Checking ••1234. Esto se registra como un gasto (Expenses:COGS:Contabo) y una deducción correspondiente de la cuenta Assets:Bank:Mercury.

    • De manera similar, la transacción del 11-05-2023 representa un pago de $14490.33 a Amazon Web Services desde la misma cuenta bancaria. Esto se registra bajo Expenses:COGS:AmazonWebServices.

    • La transacción del 01-03-2023 muestra ingresos de STRIPE siendo depositados en Mercury Checking ••1234, por un total de $21230.75. Esto se registra como ingreso (Income:Stripe) y una adición a la cuenta bancaria (Assets:Bank:Mercury).

    • La última transacción del 18-05-2023 representa una transacción de criptomonedas que involucra 19 ETH de un cliente. Esto se rastrea bajo Assets:Crypto e Income:Crypto:ETH. El {1,856.20 USD} muestra el precio de ETH en el momento de la transacción, mientras que el @@ 35267.8 USD especifica el valor total de la transacción de 19 ETH.

En todas las transacciones, se mantiene el principio de la contabilidad de partida doble, asegurando que la ecuación Activos = Pasivos + Patrimonio siempre se cumpla.

Reflexiones Finales

Este libro mayor de Beancount proporciona un sistema sencillo pero robusto para el seguimiento de las transacciones financieras. Como se ve en la transacción final, Beancount es lo suficientemente flexible como para contabilizar activos no tradicionales como las criptomonedas, lo que es un testimonio de su utilidad en nuestro panorama financiero cada vez más digital.

Esperamos que este desglose le ayude a comprender mejor la estructura y las capacidades de Beancount, ya sea usted un contable experimentado o un principiante que intenta llevar un registro de sus finanzas personales. Manténgase atento a nuestra próxima entrada de blog, donde profundizaremos en operaciones avanzadas de Beancount.

Introducción a Beancount.io

· Lectura de 5 minutos
Mike Thrift
Mike Thrift
Marketing Manager

Por qué la teneduría de libros moderna es importante

¿Todavía gestionas tus inversiones con hojas de cálculo? Aunque las hojas de cálculo son versátiles, pueden volverse engorrosas y propensas a errores a medida que tu cartera de inversiones crece. Presentamos Beancount.io, una plataforma de seguimiento de inversiones sofisticada pero fácil de usar, diseñada específicamente para gestionar carteras de acciones y criptomonedas. Creada pensando en ingenieros y minimalistas financieros, Beancount.io combina potentes funciones con una interfaz intuitiva para optimizar tu experiencia de seguimiento de inversiones.

2019-09-07-introduction-to-beancount

Expenses

Income Statement

Balance Sheet

Contabilidad de partida doble: La base de la precisión

Beancount.io se basa en los principios de la contabilidad de partida doble, una metodología probada a lo largo del tiempo y utilizada por instituciones financieras de todo el mundo. Este sistema garantiza la precisión matemática a través de un concepto simple pero potente: cada transacción financiera debe cuadrar perfectamente.

En la contabilidad de partida doble, cada transacción requiere al menos dos asientos – un débito (+) y un crédito (-) – en diferentes cuentas. Este sistema de verificación incorporado hace que sea prácticamente imposible registrar transacciones desequilibradas, asegurando que tus registros financieros permanezcan precisos y fiables.

1970-01-01 open Income:BeancountCorp
1970-01-01 open Assets:Cash
1970-01-01 open Expenses:Food
1970-01-01 open Assets:Receivables:Alice
1970-01-01 open Assets:Receivables:Bob
1970-01-01 open Assets:Receivables:Charlie
1970-01-01 open Liabilities:CreditCard

2019-05-31 * "BeancountCorp" "Salary of May 15th to May 31st"
Income:BeancountCorp -888 USD
Assets:Cash 888 USD

2019-07-12 * "Popeyes chicken sandwiches" "dinner with Alice, Bob, and Charlie"
Expenses:Food 20 USD
Assets:Receivables:Alice 20 USD
Assets:Receivables:Bob 20 USD
Assets:Receivables:Charlie 20 USD
Liabilities:CreditCard -80 USD

Como puedes ver en los dos ejemplos anteriores, cada transacción debe cumplir la ecuación contable.

Activos = Pasivos + Patrimonio Neto (también conocido como Activos Netos)

Utilizamos la sintaxis de Beancount de Martin Blais y el proyecto web Fava de Jakob Schnitzer para construir este sitio web. Y te alertará si alguna transacción tiene asientos que no suman cero.

Error Alert

Ahora entiendes cómo garantizamos la exactitud del libro mayor. Pero quizás te preguntes qué son esas "cuentas"?

Entendiendo las cuentas: La analogía del cubo de agua

Piensa en tus cuentas financieras como un sistema de cubos de agua interconectados, donde el dinero fluye como el agua entre ellos. Esta analogía hace que la contabilidad de partida doble sea intuitiva: cuando transfieres dinero de una cuenta a otra, es como verter agua de un cubo a otro – la cantidad total de agua (dinero) en el sistema permanece constante.

Beancount.io introduce cinco tipos de cuentas.

  1. Ingresos — Su importe es siempre negativo o en débito. Esto se debe a que estás ganando dinero, y luego el dinero se debita de la cuenta de "Ingresos" y se acredita a tus "Activos".
  2. Gastos — Su importe es siempre positivo o en crédito. Esto se debe a que estás gastando dinero, y el dinero fluye de los "Activos" o "Pasivos" a los "Gastos".
  3. Pasivos — Su importe es positivo o cero. Tus pasivos de tarjeta de crédito son un buen ejemplo, que suben y bajan en ciclos.
  4. Activos — Su importe es positivo o cero. Tu efectivo o tus casas siempre tienen algún valor.
  5. Patrimonio Neto — Tus activos netos. El sistema lo calculará automáticamente por ti. Patrimonio Neto = Activos - Pasivos y refleja cuán rico eres.

Ahora puedes abrir tus cuentas personalizadas con las palabras clave anteriores:

1970-01-01 open Assets:Cash
1970-01-01 open Assets:Stock:Robinhood
1970-01-01 open Assets:Crypto:Coinbase
1970-01-01 open Expenses:Transportation:Taxi
1970-01-01 open Equity:OpeningBalance

Seguimiento avanzado de inversiones con commodities

Beancount.io destaca en el seguimiento de diversas inversiones, desde acciones hasta criptomonedas. Exploremos cómo maneja escenarios de inversión complejos. Por ejemplo, así es como registrarías la compra de 10 Bitcoins a $100 cada uno en 2014:

2014-08-08 * "Buy 10 Bitcoin"
Assets:Trade:Cash -1000.00 USD
Assets:Trade:Positions 10 BTC {100.00 USD}

Y luego, tres años después, los vendes (originalmente con un costo de $100 por unidad, anotado con {100.00 USD}) al precio de $10,000 por unidad, anotado con @ 10,000.00 USD.

2017-12-12 * "Sell 2 Bitcoin"
Assets:Trade:Positions -2 BTC {100.00 USD} @ 10,000.00 USD
Assets:Trade:Cash 20,000.00 USD
Income:Trade:PnL -19,800.00 USD

O la misma transacción con @@ 20,000.00 USD significa que al precio de $20,000 en total.

2017-12-12 * "Sell 2 Bitcoin"
Assets:Trade:Positions -2 BTC {100.00 USD} @@ 20,000.00 USD
Assets:Trade:Cash 20,000.00 USD
Income:Trade:PnL -19,800.00 USD

La suma de todos los asientos de la transacción, incluyendo -2 BTC {100.00 USD}, sigue siendo, como siempre, cero.

La etiqueta de costos {100.00 USD} es importante porque podrías haber comprado el mismo commodity a diferentes costos.

100 BTC {10.00 USD, 2012-08-08}
10 BTC {100.00 USD, 2014-08-08}

Si quieres simplificar el proceso, puedes configurar la cuenta al principio con FIFO o LIFO. FIFO significa 'first in, first out' (primero en entrar, primero en salir), mientras que LIFO significa 'last in, first out' (último en entrar, primero en salir). En EE. UU., el IRS utiliza FIFO para calcular tu PnL y los impuestos correspondientes.

1970-01-01 open Assets:Trade:Positions "FIFO"

Y luego, cuando lo vendas de forma abreviada como -2 BTC {}, Beancount aplicará automáticamente la estrategia FIFO y venderá el commodity más antiguo.

Empezando con Beancount.io

Beancount.io es una moderna plataforma de gestión financiera basada en la nube que transforma tus registros de transacciones basados en texto en estados financieros completos, incluyendo estados de resultados, balances y balanzas de comprobación. Al combinar la fiabilidad de los archivos de texto plano con potentes herramientas de visualización, Beancount.io te ayuda a mantener un control preciso sobre tu vida financiera mientras obtienes valiosos conocimientos sobre el rendimiento de tus inversiones.

¡Comienza tu viaje financiero con Beancount.io - Gratis durante nuestro período promocional!