a poor mans Mint, Personal Capital or other, in the making
- Download transactions from your financial institutions
- Save them in a json file
- Generate an html spending summary report
- Generate an html balance report for all accounts
- Email the spending summary
- Why?
- Financial insights without spraying your data to third parties.
- Enable 2 Factor auth on your financial accounts and they still work
- Local db of balances & transactions to whatever you want
- American Express
- Bank of America (CA)
- Etrade
- Fidelity
- Schwab
- Vanguard
- 2 Factor Auth: works, but you'll have to babysit the run and enter the 2nd factor manually
credentials come from env vars, config is in
config.json
- update
config.json
with which accounts you want refreshed. - Set
BOFA_USER
andBOFA_PW
env variable and/or - Set
AMEX_USER
andAMEX_PW
env variable and/or - Set
SCHWAB_USER
andSCHWAB_PW
env variable and/or - Set
VANGUARD_USER
andVANGUARD_PW
env variable npm install
npm run build
npm run refresh
to generate./out/txndb.json
Tip: Use 1password cli or set env vars without saving to history
To simplify repetitive execution, consider something like this in a .zshrc
file
cheddardog() {
eval $(op signin)
echo 'Configuring AMEX...'
TEMP=`op get item amex | jq -r "(.details.fields[1].value, .details.fields[2].value)"`
export AMEX_USER=`echo $TEMP | head -1`
export AMEX_PW=`echo $TEMP | tail -1`
// .... more accounts credentials
export SENDGRID_API_KEY=`op get item sendgrid_account_name | jq -r .details.fields[0].value`
}
- Set
SENDGRID_API_KEY
env variable - update
config.json
with the email sender (from
) and receipients (to
) npm run send
to generate./out/index.html
and have it emailed
- Only works on Mac OS (download dir is hardcoded, not tested on other platforms)