Finances with tags in CLI
Project description
Missing a practical and easy-to-learn solution to keep track of your finances? Use tagcash to do it with simple text files!
TagCash is a little hack that I’m currently using after trying several solutions like GnuCash and Financisto. These are some of the features that I was missing and that are found in TagCash:
As simple as editing text files;
Text files are easy to sync between devices and people;
Simple CLI;
Quickly copy and paste statements from CLI to e-mail;
Simple and short Python source code.
Quick Start
Let’s choose 2 tags: wallet, and bank for your checking account. Now, write the following in a file (e.g.: finances.txt):
2018-01-13 100 Starting balance bank 2018-01-14 40 Withdrawal wallet,-bank
As there’s no starting balance for wallet, it will be $0.00. In the second line, there is a - (minus) sign next to the bank tag to make it -40 in the bank ledger. Now, let’s see what tagcash does without any option:
~$ tagcash finances.txt ┌bank────────┬────────┬─────────┬───────────────────┐ │ Date │ Amount │ Balance │ Description │ ├────────────┼────────┼─────────┼───────────────────┤ │ 2018-01-13 │ 100.00 │ 100.00 │ Starting balance │ │ 2018-01-14 │ -40.00 │ 60.00 │ Withdrawal │ └────────────┴────────┴─────────┴───────────────────┘ ┌wallet──────┬────────┬─────────┬───────────────────┐ │ Date │ Amount │ Balance │ Description │ ├────────────┼────────┼─────────┼───────────────────┤ │ 2018-01-14 │ 40.00 │ 40.00 │ Withdrawal │ └────────────┴────────┴─────────┴───────────────────┘
Tips
The parser is flexible. Just don’t use space in tags and separate them by comma;
Align as you wish. Use 1 or more spaces between fields (date, amount, …);
You can use as many files as you want;
There’s no need to keep the lines sorted by date. Thus, you can keep together all the monthly installments of a payment;
To choose tags, use for example --tags wallet (-t for short).
How to Install
Tested with Python >= 3.5: pip3 install tagcash.
Advanced Usage
To know how much money you have in total, including all specified tags, add the --all option:
$ tagcash --all finances.txt (...) ┌All Tags────┬────────┬─────────┬───────────────────┐ │ Date │ Amount │ Balance │ Description │ ├────────────┼────────┼─────────┼───────────────────┤ │ 2018-01-13 │ 100.00 │ 100.00 │ Starting balance │ │ 2018-01-14 │ -40.00 │ 60.00 │ Withdrawal │ │ 2018-01-14 │ 40.00 │ 100.00 │ Withdrawal │ └────────────┴────────┴─────────┴───────────────────┘
As expected, because you withdrew money to your own wallet, the last table shows that you have $100 in total. To keep this overall balance consistent, adopt the simple rule: use negative numbers (or tags) whenever you spend money, and positive when you earn it.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for tagcash-1.0.0b2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de40af5cde70df4c8686e1c91ab1745d37c0be75490f9ac95f5739c731cb71f5 |
|
MD5 | b784fbc9621c4a795176b9fd9b65f8ff |
|
BLAKE2b-256 | 9d91ca360f6b9ea14e6ad1851cb8a9bd548919e59a697f2d2ffef4b5c95701f9 |