| 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/) |