• Saltar al contenido principal
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Cachivaches
  • Ubuntu
  • Servicios en la nube
  • Raspberry Pi
  • ¿Preguntas?
    • ¿Quieres hablar?

Kacharreando

Kacharreando desde antes que montara este blog

Hosting Estupendos baratos

Introducción al formato ledger de finanzas personales

septiembre 24, 2021 Deja un comentario

Hoy os voy a hablar de contabilidad y un programa para gestionar todas nuestras cuentas de gastos e ingresos.

Más que contabilidad, el formato para apuntar todo esto en un archivo de texto y que luego podamos leerlo adecuadamente.

Aunque pueda parecer aburrido, y seguramente si no te gusta, va a ser un tostón, es importante que conozcas todo el proceso de llevar una contabilidad de tu casa.

Pero aunque no te guste y sea un tostón, necesitas algún tipo de información para tener un control de las finanzas y por lo tanto tomar buenas decisiones al respecto.

Han salido empresas como fintonic.com que te hacen todo este proceso sencillo ya que se conectan a tus cuentas bancarias y de los datos que leen te muestran información visualmente bonita y te ofrecen productos relacionados con tus gastos que a ellos les interesan.

Esta es una opción totalmente válida, pero si has llegado a este blog sabes que aquí hago las cosas de manera diferente y hoy te quiero presentar a Ledger.

Photo by Nick Pampoukidis on Unsplash

¿Qué es Ledger?

Del inglés se podría traducir como libro de cuentas, y Ledger también es un programa por consola de comandos y al mismo tiempo un archivo de texto donde se definen entradas contables que el programa por consola interpreta. Con esto puedes organizar todos tus datos financieros.

Ledger se publicó en 2003, y está escrito por John Wiegley y publicado bajo la licencia BSD. También ha inspirado otros formatos y traducido a otros idiomas.

Dicho de otra manera, ledger define un archivo de texto que tiene entradas de contabilidad que se puede leer un programa por línea de comandos.

A partir de las especificaciones de ledger, han surgido otros programas que utilizan este archivo de texto y por lo tanto son compatibles entre sí.

¿Por qué usar Ledger?

La ventaja principal de usar ledger respecto a otros sistemas, es que en un archivo de texto puedes tener toda la contabilidad personal, profesional, de inversiones o lo que quieras, con lo que eso supone de espacio, copia de seguridad, compatibilidad, y hasta edición por el famoso bloc de notas de windows.

Además una vez sepamos crear este archivo de texto, ya que el programa ledger por línea de comandos no añade ni elimina entradas, podemos trabajar con el programa que más nos interese y automatizar muchos procesos.

Para mí el fundamento principal de escoger Ledger y empezar a trabajar con el, es poder automatizar la descarga de datos del banco, y del broker y añadirlos a ledger creando para esto un flujo de trabajo en el que tenga que interactuar lo mínimo posible.

Sabiendo lo que gastas y lo que ingresas y en donde lo gastas, ledger te generará informes que podrás utilizar para poder llegar a fin de mes o lo que creas más conveniente.

Cómo crear nuestro primer archivo ledger

Mantener un diario de las transacciones económicas es un engorro, ya que pagamos con la tarjeta, en metálico, hacemos transferencias y distintas operaciones.

Llevar un registro de esto es complicado, por lo que la inmensa mayoría de las personas solo saben de manera general lo que ingresan y lo que gastan al final del mes, sin entrar en los distintos apartados de gastos.

Así que vamos a tratar de tener un buen diario de contabilidad. Con este diario podremos saber nuestros patrones de gastos, ya que si no tenemos buena información, por muy bueno que sea el programa, nadie nos podrá ayudar.

Una gran idea sería coger los excel que te da el banco y poder importarlo a un mismo sistema para tu poder tratar los datos. Esto que a priori parecería sencillo, luego no lo es tanto ya que las excel de los bancos cada uno tiene una estructura diferente y es complicado encontrar un programa que aune todas las opciones.

En este sentido nos viene al rescate Ledger, que básicamente es una manera de definir un asiento contable en un archivo de texto para que distintos programas puedan entenderlo y trabajar sobre esos datos. Estos asientos contables van a ser muy sencillos y facilmente manipulables por cualquier editor de texto ya que ledger no proporciona una interfaz de usuario.

Pero antes de meternos en como crear un fichero para ledger, vamos a ver qué es un asiento contable.

La definición oficial es que un asiento contable es el conjunto de anotaciones o apuntes contables que se hacen en el Libro diario de contabilidad, que se realizan con la finalidad de registrar un hecho económico que provoca una modificación cuantitativa o cualitativa en la composición del patrimonio y por tanto un movimiento en las cuentas.

Esto para una empresa es básico, porque da información de como está financieramente la empresa.

En contabilidad cada asiento se compone al menos de dos anotaciones: una el debe y otra el haber.

Estas dos posiciones hacen movimientos inversos, y afectan al activo o al pasivo, y esto es así, porque para que podamos comprar algo, el dinero tiene que haber entrado de algún lugar, es decir cada asiento afecta a dos cuentas y cada movimiento tiene su contrapartida.

Lo bueno que tiene ledger es que si no encuentra cierta información, como puede ser una cuenta bancaria, la creará, y si aparece un producto nuevo lo creará y determinará sus características de visualización.

Entrada básica en Ledger

Ledger se basa en el sistema de partida doble que se usa en contabilidad. Este sistema registra cada operación dos veces, una en el debe y otra en el haber, con el fin de establecer una conexión entre diversos elementos patrimoniales.

La anotación que involucra las dos partidas (debe y haber) se denomina asiento contable. Esto se parece a una balanza en equilibrio, ya que dentro de un asiento contable, la suma del debe y haber siempre tienen que ser iguales.

Esto significa que ledger especifica una transacción con una cuenta deudora (de donde proviene el dinero) y una cuenta de crédito (a donde va el dinero).

Todas las transacciones se almacenan en un archivo de texto y el comando de ledger se usa para leerlas.

Una transacción de ejemplo es esta:

2019-09-30 Starbucks
    Gastos:Comida                   3,5€
    Pasivos:Mastercard              -3,5€

También puedes escribirla de la siguiente manera que ledger la entiende igual:

2019-09-30 Starbucks
    Gastos:Comida                   3,5€
    Pasivos:Mastercard

Esta transacción describe que pagué 3,5€ en Starbucks con mi mastercard. El saldo total de la transacción es 0, que es la base de la contabilidad de doble entrada, ya que el dinero no aparece mágicamente, sino que viene de algún lado y va hacia otro.

El formato ledger es tremendamente flexible y las herramientas que tiene de informes son muy potentes.

Como ejemplo te dejo una transacción complicada que involucra una venta de acciones:

2019-06-18 * Venta de acción
    Activos:Corretaje               AAPL -2.00 {EUR 100.00} @ EUR 130.00
    Activos:Cuenta Corriente:USD    USD 199 @ EUR 1.30
    Gastos:Comisión transacción     EUR 1.30
    Ingresos:Ganancias de Capital   EUR -60.00

Aquí vemos como se vendieron 2 acciones AAPL (Apple Inc.) por 100 USD cada una con una tasa de conversión de 1,3 EUR/USD. Las acciones se compraron previamente a un precio de 100 EUR ahora se venden por un valor de 130 EUR, lo que implica una ganancia de capital de 60 EUR. Además se cobró una comisión que se deduce de la cantidad pagada a la cuenta corrienten en USD.

Así que ledger te permite mucha versatilidad a la hora de definir los asientos contables, pero para preservar un poco de sentido a todas tus cuentas, una recomendación es llevar una estructura básica en el sistema de contabilidad.

En el nivel más alto tienes cinco tipos de cuentas:

  • Gastos (Expenses): donde va el dinero,
  • Ingresos (Income): de donde viene el dinero,
  • Activos (Assets): donde se encuentra el dinero,
  • Pasivos (liabilities): dinero que debes. También entra dentro de esta categoría las deudas y las obligaciones.
  • Capital (Equity): el valor real de tu propiedad.

Aquí tienes otra posible clasificación de gastos e ingresos.

Algunos enlaces interesantes para aprender más sobre ledger:

  • Generar reportes gráficos de ledger con GNUplot
  • Leader CLI hoja de comandos

Hledger y la diferencia con ledger

Las diferencias entre hledger y ledger son mínimas ya que los formatos de archivos son muy similares. Algunas formas sintácticas se pueden interpretar de maneras ligeramente diferentes, por ejemplo los comentarios o los equilibrios del balance.

Puedes perfectamente tener un archivo de diario que funcione tanto en ledger o hledger, sabiendo las diferencias a evitar, y también puedes tener un archivo común y otro separado para cada formato.

En general hay pocas diferencias y la ventaja de hledger sobre ledger es el formato web para los informes que son muy interesantes a la hora de ver los datos.

Diferencias entre ledger y beancount

Beancount básicamente es una implementación de ledger con algunas restricciones y definiendo cosas que ledger no define.

Así que tenemos un solo archivo de texto como entrada, eliminando créditos y débitos, permitiendo al usuario eludir las cantidades de una publicación, y algún detalle más.

Este formato tenía la intención inicial de implementar una sintaxis compatible, pero al final no fue posible porque se agregaron algunas características como la declaración de saldo (balance assertions) y la declaración explícita de cuentas abiertas.

Ventajas de beacount frente a ledger:

  • Contabilidad de acciones: este es un gran problema para ledger, ya que beacount lo deja bien definido en la documentación a diferencia de ledger que lo tienes que definir tu.
  • Análisis de inversiones: otro gran problema de ledger. Estaría bien calcular el retonro de inversión y un millón de cosas más, pero con ledger es tedioso. Además estaría bien etiquetar cuentas y escribir consultas basadas en etiquetas para obtener ciertos resultados, cosa que con ledger no es trivial.
  • Plugins: añadir funcionalidades extra no es tarea sencilla en ledger, mientras que en beacount están definidos y puedes hacer todo lo que se te ocurra con tu sistema de contabilidad con plugins. Esto también te permite hacer scripts en torno a los datos de contabilidad de manera simple y sencilla.
  • Operaciones bursátiles: ajustar los redondeos a valores que se utilizan en la vida real, y no dejar números fraccionarios como hace ledger.
  • Python: utilizar python para extender beacount me parece un acierto y una ventaja frente a ledger.
  • Parseador: para comprobar que todas los apuntes contables están correctos, beacount tiene un paseador que verifica que todo está correcto y con la ventaja de que no es propietario.

Algunas desventajas que puedes encontrar con Beacount:

  • Fechas de vigencia (fechas efectivas): al contabilizar beacount los gastos con estas fechas puedes querer apuntar el pago de cosas por adelantado y el análisis de gasto no tiene sentido con los pagos adelantados.
  • Cuentas virtuales: con beacount no es fácil manejar cuentas virtuales, como por ejemplo para tener una para pago de impuestos.

Puedes ver la explicación de las diferencias entre Beancount y ledger aquí.

Fava la madre del cordero

Un aspecto a destacar de estos formatos es la presentación de datos, porque aunque lo tengas en un archivo de texto, no entenderás nada si no ves los datos de manera adecuada.

Fava es una interfaz web para el sistema de contabilidad de doble entrada de Beacount, enfocado en características y usabilidad.

Podría parecer otra interfaz gráfica, pero va más allá, y muestra los datos de manera ordenada y con gráficas muy descriptivas. Esto mejora por mucho la información que se proporciona por las otras herramientas.

Conclusiones

Investigar cada uno de las distintas herramientas me ha llevado más tiempo del que hubiera deseado, pero me ha dejado una imagen bastante clara de las opciones que tengo.

A partir de ahora me queda empezar a trabajar sobre beancount, que va a ser el formato elegido por su versatilidad a la hora de calcular la contabilidad de acciones, y sobre por el entorno gráfico fava.

Este artículo me sirve como introducción a los formatos de texto de gestión de finanzas, y espero que a ti te haya servido como a mi.

Recuerda que si te ha gustado lo que has leído puedes apoyar este proyecto a través de tus compras en Amazon, si, si, has leído bien, apoyar el proyecto. Con las compras que hagas de amazon me estarás ayudando a seguir haciendo este tipo de artículos.

Solo tienes que ir aquí y pegar la URL del producto de amazon que quieres comprar.

Tan simple como eso.

Y tan fácil.

Se feliz, y disfruta este día como si fuera una gran aventura.

Publicado en: Ubuntu Etiquetado como: Beginner

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Barra lateral principal

Descubre Más

Generar documentación para los scripts de bash

Generar documentación para los scripts de bash

julio 1, 2022

Drawing edita imágenes de manera sencilla

Instalar drawing con soporte Webp

enero 20, 2022

Primeros pasos con tus finanzas personales con Beancount

Primeros pasos para controlar tus finanzas con Beancount

noviembre 29, 2021

Placa impresa pcb roja

How to root Galaxy Tab 2 10.1 in linux with heimdall

octubre 15, 2021

Tags

Beginner Comienzo Expert Intermediate Markdown

Footer

Temas de Kacharreo

Supongo que habrás llegado hasta aquí porque eres un culo inquieto, o simplemente tienes curiosidad por algún tema.

Hasta que tu mente no se queda extasiada resolviendo aquello que no te deja dormir no has parado.

Vas a encontrar temas sobre Ubuntu, Cachivaches que hacen cosas, Servicios en la Nube que puedes aprovechar, y temas sobre Rasberry Pi. Hasta es posible que a veces introduzca temas relacionados.

Todo es posible.

Vaya comentarios!!

  • luidelkacha en Instalar y configurar un proxy http en Ubuntu con Squid – Mega Guía
  • Pichibw en Instalar y configurar un proxy http en Ubuntu con Squid – Mega Guía
  • luidelkacha en Un potente editor de texto para nuestro sistema operativo Ubuntu

Canal en Telegram

telegram-iconSíguenos en Telegram

Buscar las llaves

Temas Dispersos

Beginner Comienzo Expert Intermediate Markdown

Creative Commons Atribución -CompartirIgual 4.0 Internacional pa las tontás que publico © 2025 · Acceder
Aviso Legal y Política de Privacidad | Política de Cookies

Gestionar el Consentimiento de las Cookies
Utilizamos cookies para optimizar nuestro sitio web y nuestro servicio.
Funcional Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos anónimos. Sin una requerimiento, el cumplimiento voluntario por parte de su proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarlo.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en un sitio web o en varios sitios web con fines de marketing similares.
Administrar opciones Gestionar los servicios Gestionar {vendor_count} proveedores Leer más sobre estos propósitos
Ver preferencias
{title} {title} {title}