Una vez que se ingresa la nómina, en mi caso es cuando gestiono la facturación, queda organizar los dineros.
Dicho así puede sonar muy fácil, pero es más complicado de lo que uno cree.
No solo por las decisiones que hay que tomar.
Sino porque la gestión de la tesorería y como se mueve el dinero entre los distintos gastos y estrategias es lo complicado.
Además ahorrar para el futuro.
Y así diversas cosas más.
Porque los impuestos no se pagan solos.
Los traspasos entre cuentas tampoco.
Durante años he ido trabajando en distintas manera de apuntar los datos hasta que he llegado a la solución que por ahora voy a trabajar.
Empecé con una hoja de Excel.
Hasta que he llegado a este punto de finanzas personales.
Espero que no aparezca nada mejor en el futuro.
Si llega pues volveré a aprender.
Esto es lo que tiene la tecnología.
Una buena herramienta de contabilidad te ayudará mucho en la toma de decisiones de cuales son aquellos gastos que te aportan felicidad, y esos otros que te generan ventanas de tiempo para trabajar en proyectos a largo plazo.

Instalación de beancount
Voy a instalar beancount en un entorno virtual de python porque me permite para que sea independiende de lo que tenga instalado en el ordenador. Además puedo hacer uso de librerías que en un momento dado puedan entrar en conflicto con las del sistema.
Un entorno virtual de python se compone de un intérprete de Python, una configuración específica y librerías independientes.
Instalación de Virtualenv
En python 3 exite un paquete que se llama venv y nos permite gestionar entornos virtuales, pero tiene menos característica que la biblioteca virtualenv y esta es la que vamos a utilizar.
Para instalar virtualenv en python 3 utilizamos el siguiente comando:
pip3 install --upgrade pip
pip3 install virtualenv
Luego vemos donde tenemos instalado python 3:
which python3
/usr/bin/python3
Con esto instalaremos y activaremos el entorno virtual:
virtualenv -p /usr/bin/python3 bean
source bean/bin/activate
pip install package-name
sudo apt-get zlib1g-dev # For lxml to build
pip install lxml
pip install beancount
Cuando hayas finalizado tu trabajo y quieras desactivar el entorno virtual, ejecuta lo siguiente:
(bean) [server]$ deactivate
Y si quieres eliminar el entorno solo tienes que eliminar la carpeta del proyecto.
Librerías de Python para Beancount
Voy a describir algunas librerías interesantes a la hora de trabajar con Beancount, que luego puede que utilice o no. Yo las voy a añadir en el proceso de instalación porque seguro que a la larga las utilizo.
Cualquiera de las siguientes paquetes lo puedes instalar con el siguiente comando:
pip3 install librería
Las librerías son las siguientes:
- python-dateutil: esta librería proporciona a Beancount la capacidad de analizar fechas en varios formatos, es interesante para aquellos usuarios que quieran tener opciones flexibles en la línea de comandos y en el shell SQL.
- bottle: la interfaz de Beancount (que se genera a través de
bean-web) ejecuta un pequeño servidor web autónomo accesible localmente en tu ordenador. Esto se implementa mediante una pequeña biblioteca que hace fácil implementar este tipo de aplicaciones web. - ply, las consultas (
bean-query) que se usan para extraer las tablas de datos de un archivo de contabilidad depende de un analizador de parseo, la bibliotecaplyde Dave Beazly (versión 3.4 o superior) hace que sea sencillo implementar un analizador de lenguaje SQL personalizado. - lxml, proporciona una herramienta para convertir la versión HTML estática de la interfaz web en un archivo zip (
bean-bake). Esto es interesante para compartir archivos con un usuario que no tiene el software instalado. El código de escrapeo web que se usa para hacer esto es la biblioteca de análisis HTMLlxml. - google-api-python-client: Esta librería se utiliza para algunos scripts que exportan las salidas a Google Drive (así como las secuencias de comandos para mantener y descargar la documentación). No necesitas instalar esas librerías si no vas a exportar a Google Drive, todo lo demás funciona sin esto.
python-magic (optional): Esta librería tiene la funcionalidad de identificar, extraer y rellenar transacciones de archivos descargados externamente para importarlos en Beancount. Cómo esto es para algo antiguo puede que no lo usemos nunca.
Soporte de Editores
Poder trabajar con el archivo beancount desde tu editor de texto favorito es muy práctico, por lo que si utilizas alguno de los siguientes editores te será fácil trabajar con beancount.
- Emacs tiene un plugin para trabajar con beancount gracias a un repositorio externo. Puedes ver su documentación con las instrucciones para instalarlo.
- Sublime tiene soporte para trabajar con beancount gracias a Martín Andreas Anderesen.
- Vim también tiene soporte para beancount y poder editar archivos beancount gracias a Nathan Grigg. Puedes ver su repositorio de Github.
- Visual Studio Code tiene dos extensiones disponibles. Ambos se han probado para linux.
- Beancount, este plugin te permite verificación de sintaxis (bean-check) y soporta cuentas, divisas, etc. Puedes seleccionar cuentas abiertas existentes y también muestra el saldo y otros metadatos.
- Beancount Formatter, este otro plugin puede formatear todo el documento, alienar los números, etc. utilizando el formato bean.
Archivo Beancount
Con el entorno que hemos instalado de Beancount podemos generar un archivo bastante realista de el historico de entradas de un usuario, el comando sería el siguiente:
bean-example > example.beancount
Esto está muy bien para coger ideas, pero vamos pasito a pasito para ir explicando cada cosa y poder montar nuestro propio archivo desde el principio.
Primera entrada en el archivo
Para empezar voy a crear una entrada mínima en el archivo con dos cuentas y una transacción simple. Puedes copiar el siguiente texto a un archivo de texto:
2014-01-01 open Assets:Checking
2014-01-01 open Equity:Opening-Balances
2014-01-02 * "Deposit"
Assets:Checking 100.00 EUR
Equity:Opening-Balances
Veremos en este y sucesivos artículos los términos en inglés, por lo que dejo a continuación que son cada uno:
- Expenses, son los gastos de toda la vida, donde va el dinero.
- Assets, activos o donde tenemos el dinero.
- Income, son los ingresos, que es donde obtenemos el dinero.
- Liabilities: el dinero que te han prestado o dicho de otra manera el dinero que debes.
- Equity, el capital, que viene a ser el valor real de tu propiedad.
Breve descripción general de la sintaxis
La sintaxis daría para una enciclopedia entera, pero eso lo iremos viendo con el tiempo y sobre todo con el uso que es la mejor manera de que se nos asiente todo el aprendizaje.
Sobre la sintaxis hay que tener en cuenta lo siguiente:
- Las monedas deben estar completamente en mayúsculas (permitiendo números y algunos caracteres especiales, como «
_» ó «-«). La sintaxis no admite símbolos de moneda (cómo $ ó €). - Los nombres de cuenta no admiten espacios (aunque se pueden usar guiones) y deben tener al menos dos componentes, separados por dos puntos.
- Las cadenas de texto que describen una transacción deben estar entre comillas, como por ejemplo esta: «VISA Compra Mercadona».
- Las fechas de las transacciones solo se analizan en formato ISO8601, es decir, AAAA-MM-DD.
- Las etiquetas en el archivo beancount deben comenzar con «#» y los enlaces con «^».
Así que con la entrada anterior que hemos hecho podemos ver dos bloques, uno que describe donde tenemos dinero y el capital.
El siguiente bloque nos indica una transacción de depósito, por lo tanto primero indicamos donde tenemos el dinero (Assets) y lo siguiente es el capital, es decir que es capital tuyo (Equity).
Validar el archivo
Una vez que hemos empezado a generar el archivo, con Beancount vamos a poder producir informes a partir de este archivo (ya sea en la consola o mostrarlo a través de su inferfaz web).
En un siguiente artículo vamos a ver cómo añadir opciones al archivo de Beancount para tener nuestras finanzas organizadas.
Con el archivo inicial de beancount que hemos creado podemos probar la herramienta que trae el sistema para validarlo, así cuando tengamos un archivo mucho más grande o hayamos hecho cambios, podemos ver si todas las modificaciones no contienen errores.
Aunque Beancount es bastante estricto, por lo que algo que nos ayude a comprobar que los datos están bien es de agradecer, la herramienta es ben-check y se usa de la siguiente manera:
bean-check /camino/a/tu/archivo.beancount
Con esto verás los errores por la consola, o en el caso de que esté bien, no saldrá nada por pantalla. Si eres fan de Emacs podrás importar los errores que reconocerá perfectamente.
Visualización de la interfaz web
Una vez creado nuestro archivo y mientras vamos añadiendo registros podemos ver en una interfaz web, informes sobre todo lo que hemos hecho. Para esto tenemos la herramienta bean-web con el archivo de entrada.
Para esto utilizamos el siguiente comando:
bean-web /path/to/your/file.beancount
Una vez ejecutado podremos ver una web en la dirección http://localhost:8080 y ver los diversos informes que genera la herramienta de Beancount.
Con esto ya puedes cambiar lo que te parezca del archivo y volver a cargar la página web donde se verán reflejados los cambios, reflejando lo que hayas hecho en el archivo.
Conclusiones
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.

Deja una respuesta