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.jsonwith which accounts you want refreshed. - Set
BOFA_USERandBOFA_PWenv variable and/or - Set
AMEX_USERandAMEX_PWenv variable and/or - Set
SCHWAB_USERandSCHWAB_PWenv variable and/or - Set
VANGUARD_USERandVANGUARD_PWenv variable npm installnpm run buildnpm run refreshto 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_KEYenv variable - update
config.jsonwith the email sender (from) and receipients (to) npm run sendto generate./out/index.htmland have it emailed
- Only works on Mac OS (download dir is hardcoded, not tested on other platforms)