Title: Port of the week: ledger Author: Solène Date: 02 May 2018 Tags: unix Description: In this post I will do a short presentation of the port productivity/ledger, an very powerful command line accounting software, using plain text as back-end. Writing on it is not an easy task, I will use a real life workflow of my usage as material, even if my use is special. As I said before, Ledger is _very_ powerful. It can helps you manage your bank accounts, bills, rents, shares and others things. It uses a double entry system which means each time you add an operation (withdraw, paycheck, ...) , this entry will also have to contain the current state of the account after the operation. This will be checked by ledger by recalculating every operations made since it has been initialized with a custom amount as a start. Ledger can also tracks categories where you spend money or statistics about your payment method (check, credit card, bank transfer, money...). As I am not an english native speaker and that I don't work in banks or related, I am not very familiar with accounting words in english, it makes me very hard to understand all ledger keywords, but I found a special use case for accounting things and not money which is really practical. My special use case is that I work from home for a company working in a remote location. From time to time, I take the train to the to the office, the full travel is [home] → [underground A] → [train] → [underground B] → [office] [office] → [underground B] → [train] → [underground A] → [home] It means I need to buy tickets for both underground A and underground B system, and I want to track tickets I use for going to work. I buy the tickets 10 by 10 but sometimes I use it for my personal use or sometimes I give a ticket to someone. So I need to keep track of my tickets to know when I can give a bill to my work for being refunded. Practical example: I buy 10 tickets of A, I use 2 tickets at day 1. On day 2, I give 1 ticket to someone and I use 2 tickets in the day for personal use. It means I still have 5 tickets in my bag but, from my work office point of view, I should still have 8 tickets. This is what I am tracking with ledger. 2018/02/01 * tickets stock Initialization + go to work Tickets:inv 10 City_A Tickets:inv 10 City_B Tickets:inv -2 City_A Tickets:inv -2 City_B Tickets Tickets:inv -2 City_A Tickets:inv -2 City_B Tickets Tickets:inv -4 City_B Tickets:inv -2 City_A Tickets At the point, running `ledger -f tickets.dat balance Tickets` shows my tickets remaining: 4 City_A 2 City_B Tickets:inv Will add another entry which requires me to buy tickets: Tickets:inv -4 City_B Tickets:inv -2 City_A Tickets:inv 10 City_B Tickets Now, running `ledger -f tickets.dat balance Tickets` shows my tickets remaining: 2 City_A 8 City_B Tickets:inv I hope that the example was clear enought and interesting. There is a big tutorial document available on the ledger homepage, I recommend to read it before using ledger, it contains real world examples with accounting. [Homepage link](http://www.ledger-cli.org/) |