Skip to main content

Alt text

Personal Finance Package (FinPack)

Super simple personal finance tracking.

Build balance sheets and cashflow statements.

Chart your net worth, asset allocation, financial independence trajectory and much more.


Demo

Demo gif

Table of Contents


Installation (for development)

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.

  1. Fork this repo
  2. Install Git, Python 3.9+ and Poetry
  3. Clone the newly forked repo to your computer
  4. Inside FinPack/ run poetry install

Running Tests and Checking Coverage

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

Deployment

This package can be installed with the following command:

pip install finpack

How To Use

  ______ _       _____           _
 |  ____(_)     |  __ \         | |
 | |__   _ _ __ | |__) |_ _  ___| | __
 |  __| | | '_ \|  ___/ _` |/ __| |/ /
 | |    | | | | | |  | (_| | (__|   <
 |_|    |_|_| |_|_|   \__,_|\___|_|\_\

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

Generating the boilerplate data.csv:

The following will generate data.csv.

finpack init

or

finpack init --filepath=data.csv

Manually adding data to 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

Account Structure in data.csv:

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

Example CSV:

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

Contributing

Please read CONTRIBUTE for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated in this project.

Metadata

Release files for finpack 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for finpack 0.2.3
File Size Uploaded
finpack-0.2.3.tar.gz 14.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for finpack 0.2.3
File Interpreter ABI Platform
finpack-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 29.2 kB

Release files / finpack-0.2.3.tar.gz

Download URL finpack-0.2.3.tar.gz
Size 14.0 kB
Tags Source
SHA-256 checksum
How to use checksums
039fdc2ee6b8b85c92cbd066103f8639a18756f54ae329144cc475183fc4829c
BLAKE2b-256 checksum
How to use checksums
a3b6f469158e001080eaf38bbc1017815a19af5d32257b361d340359608d2dc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.12 CPython/3.9.7 Darwin/20.6.0

Release files / finpack-0.2.3-py3-none-any.whl

Download URL finpack-0.2.3-py3-none-any.whl
Size 15.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ce15a4d2ebd7aed26ec6428a2b591e9fcd0c5a29a23b291c850a415c3a13129
BLAKE2b-256 checksum
How to use checksums
c2872237f74f47c0a50493803e06879a3d062e934b0a693e2efbfb955b5e8708
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.12 CPython/3.9.7 Darwin/20.6.0

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page