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.

Source Distribution

tagcash-1.0.0b2.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

tagcash-1.0.0b2-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file tagcash-1.0.0b2.tar.gz.

File metadata

  • Download URL: tagcash-1.0.0b2.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tagcash-1.0.0b2.tar.gz
Algorithm Hash digest
SHA256 3ea8dff57cd526baf270677c0de729ee5abb06c1e52cb2d7ac98237dc255e2fc
MD5 78a5bcc1fc10cfa5248915e5a8adeaee
BLAKE2b-256 bf0cd9a99ea1cc33ae80cc54c697ee472d5353add2d066615b90ec584a882198

See more details on using hashes here.

File details

Details for the file tagcash-1.0.0b2-py3-none-any.whl.

File metadata

File hashes

Hashes for tagcash-1.0.0b2-py3-none-any.whl
Algorithm Hash digest
SHA256 de40af5cde70df4c8686e1c91ab1745d37c0be75490f9ac95f5739c731cb71f5
MD5 b784fbc9621c4a795176b9fd9b65f8ff
BLAKE2b-256 9d91ca360f6b9ea14e6ad1851cb8a9bd548919e59a697f2d2ffef4b5c95701f9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page