A simulation tool for making big decisions (like buying a house). The general idea is you create "event generators," like having a kid, that over the course of time generate positive and negative "impacts" on your financial state.
Take a look at the sample and create your own script to help with some important decision you need to make. For me, it was to decide if I could afford buying a big house using some RSUs that ended up being worth much more than I was expecting.
You can try to simulate a fictional person's future net worth in the sample as they contemplate selling their apartment and buying a big fancy house. This file tries to plot several scenarios based on if the fictional person gets fired or quits before all their RSUs vest, if the company's stock turns volitile, and a few other factors.
- The person will not recieve any additional bonuses ever
- Living expenses are fairly high
- Kids will attend public school
- Wages will grow 3% annually
- Any cash balance will be put into indicies that return about 3% yearly
- The person's spouse also is a source of income
- Ignores ISO grants (prints a warning)
- Ignores employee stock purchase plans
- Equity in the house is ignored
- All of these assumptions are generally to make the simulation easier to write without sacrificing too much quality or becoming overly optimistic.
- Each assumption could be lifted or made less severe with a bit more code.
- There are probably more assumptions in there that may also be important.
Use at your own risk.
I prefer running it in a virtual environment:
cd /path/to/this/repo
virtualenv --python=/path/to/bin/python3.6 env
source ./env/bin/activate
pip install -r requirements.txt
python house_upgrade_sample.py
Any version of python 3 would probably work fine.
With the virtualenv activated,
python -m unittest
If you prefer, you can bash into the Dockerfile and run your simulations there, but you will be have to write a few extra lines of code to see figures from matplotlib.
With the virtualenv activated,
docker-compose run test
I manually copied in my personal data when I did this exercise. Its certainly possible to do that with the bank APIs, but that was not worth it for me. We are focussing on life-changing financial decisions, so automating the data pull served very little value.
I did download unvested stock information from etrade, and I included very rudimentary support for that. You will need to download a specific file from etrade and put it here and tell the source code where to find it in your simulation.