Super simple personal finance tracking.
Build balance sheets and cashflow statements.
Chart your net worth, asset allocation, financial independence trajectory and much more.
- Installation
- Running Tests and Checking Coverage
- Deployment
- How to Use
- Contributing
- Versioning
- Authors
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
- Fork this repo
- Install Git, Python 3.9+ and Poetry
- Clone the newly forked repo to your computer
- Inside
FinPack/
runpoetry install
Tests are created using unittest but are run with pytest (ensure you follow the Installation (for development) steps before running tests and checking test coverage):
$ poetry run pytest -v --cov
This package can be installed with the following command:
pip install finpack
______ _ _____ _
| ____(_) | __ \ | |
| |__ _ _ __ | |__) |_ _ ___| | __
| __| | | '_ \| ___/ _` |/ __| |/ /
| | | | | | | | | (_| | (__| <
|_| |_|_| |_|_| \__,_|\___|_|\_\
Super simple personal finance tracking/management tools.
Commands:
init Generate boilerplate data.csv
balsheet Outputs balance sheet to terminal
Usage:
finpack init [--filepath=filepath] [--sample-dataset] [--overwrite]
finpack balsheet [--filepath=filepath] [--levels=level] [--date=date]
finpack (--version | --help | -h)
Options:
--filepath=filepath Location of the account list. [default: data.csv]
--levels=level How deep of a breakdown on the report [default: 3]
1 Categories
2 Categories + Sub-categories
3 Categories + Sub-categories + accounts
--overwrite Write over existing file
--date=date Custom date to build report (YYYY-MM-DD) [default: today]
-v --version Display installed version
-h --help Show available commands
The following will generate data.csv
.
finpack init
or
finpack init --filepath=data.csv
Data can be added manually to this csv file as long as you follow these standards:
- Duplicate account names are only permitted if account types are different
- Account types are always lowercase
- Dates are always formatted
YYYY-MM-DD
Types | Description |
---|---|
account | Determined and configured by user (examples below) |
type | Pre-determined values (assets, liabilities, incomes, expenses) |
category | Determined and configured by user (examples below) |
sub_category | Determined and configured by user (examples below) |
description | Determined and configured by user, best for supplement account data |
This is an example print out of what finpack init --sample-dataset
will output to data.csv
YYYY-MM-DD
is set dynamically when using finpack init
and will be the current date.
account | type | category | sub_category | description | YYYY-MM-DD |
---|---|---|---|---|---|
Checking Account 1 | asset | Cash and Cash Equivalents | Checking Account | 1000.00 | |
Checking Account 2 | asset | Cash and Cash Equivalents | Checking Account | 2000.00 | |
Savings Account 1 | asset | Cash and Cash Equivalents | Savings Account | 5000.00 | |
Retirement Savings Account | asset | Retirement Accounts | 401(k)s | 20000.00 | |
123 Main St. | asset | Property | Real Estate | 200000.00 | |
123 Main St. | liability | Loans and Mortgages | Mortgages | 150000.00 | |
Student Loan 1 | liability | Loans and Mortgages | Student Loans | 10000.00 | |
Student Loan 2 | liability | Loans and Mortgages | Student Loans | 10000.00 |
Please read CONTRIBUTE for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Matt Ferreira - Developer - RackReaver
See also the list of contributors who participated in this project.