Skip to main content

Finances with tags in CLI

Project description

semaphore coveralls

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for tagcash, version 1.0.0b2
Filename, size File type Python version Upload date Hashes
Filename, size tagcash-1.0.0b2-py3-none-any.whl (7.7 kB) File type Wheel Python version 3.6 Upload date Hashes View
Filename, size tagcash-1.0.0b2.tar.gz (4.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page