Lower your spending#
First things first - PAYOFF debts!!#
Debts with high interest are like anti investing#
Payoff credit cards (rates can be as high as 15-20%)
Improves credit rating!
The magic of auto bill pay.#
Set it and forget it - no late fees with high interest#
Show code cell source
import pandas as pd
import ipywidgets as widgets
import matplotlib.ticker as mtick
from IPython.display import YouTubeVideo, display
Show code cell source
#future self functions
savings = .0000001
money_market = .01
cd = .04
stocks = .07
def calc_simple_compound_interest(i, r, t, one_time):
if one_time is True:
return i*(1+r)**t
else:
return i * (1+r) ** t + i * (1+r) * ((1+r) ** t - 1) / r
def get_compound_simple_df(i, one_time):
start_age = 20
stop_age = 65
yi = i*365
df = pd.DataFrame({'Age': pd.Series(range(start_age,stop_age))})
df['Mattress 0%'] = df.apply(lambda x: calc_simple_compound_interest(yi, savings, x['Age']-start_age, one_time), axis=1)
df['Money Market'] = df.apply(lambda x: calc_simple_compound_interest(yi, money_market, x['Age']-start_age, one_time), axis=1)
df['Bank/CD 4%'] = df.apply(lambda x: calc_simple_compound_interest(yi, cd, x['Age']-start_age, one_time), axis=1)
df['Stocks 7%'] = df.apply(lambda x: calc_simple_compound_interest(yi, stocks, x['Age']-start_age, one_time), axis=1)
return df
style = {'description_width': 'initial'}
fs_rn_investment = widgets.IntSlider(
value=1,
min=1,
max=20,
step=1,
description='Daily amount you save & invest: $',
disabled=False,
continuous_update=False,
orientation='horizontal',
layout=widgets.Layout(width='100%'),
style=style,
readout=True,
readout_format='d'
)
fs_rn_play = widgets.Play(
value=1,
min=1,
max=20,
step=1,
description="Press play",
interval=500,
#speed=0,
disabled=False
)
def fs_rn_output(i):
#create and display dataframe
df_plot = get_compound_simple_df(i, False)
ax = df_plot.plot.line(x='Age', y=['Stocks 7%', 'Bank/CD 4%', 'Mattress 0%'], figsize=(12,8), linewidth=3, grid=True, ylim=(0,1000000))
fmt = '${x:,.0f}'
tick = mtick.StrMethodFormatter(fmt)
ax.yaxis.set_major_formatter(tick)
#display(df_plot)
return("compare rate returns example")
How to spend less without being miserable?#
Why are you buying that? (Greed or Fear)#
Does that thing really make you happy?#
The concept of badassity.
The challenge of consumerism
Mentimeter Question
https://www.menti.com/alohp2v13yqh
Be nice to your future self#
\(\$\)1,825 (1 coffee at \(\$\)5 a day times 365 days in a year)#
- \(\$\)520 (1 bag of coffee \(\$\)10 each week at home)#
\(\$\)1,305 total savings per year#
Be really nice to your future self#
Show code cell source
fs_rn_res = widgets.interactive(fs_rn_output, i=fs_rn_investment)
widgets.jslink((fs_rn_play, 'value'), (fs_rn_investment, 'value'))
widgets.VBox([fs_rn_play, fs_rn_res])
Show code cell source
# Get dataframe for $1 invested
df1 = get_compound_simple_df(1, False)
df1 = df1.drop('Money Market', axis=1)
df1['Mattress 0%'] = df1['Mattress 0%'].map("${:,.0f}".format)
df1['Bank/CD 4%'] = df1['Bank/CD 4%'].map("${:,.0f}".format)
df1['Stocks 7%'] = df1['Stocks 7%'].map("${:,.0f}".format)
# Get dataframe for $10 invested
df10 = get_compound_simple_df(10, False)
df10 = df10.drop('Money Market', axis=1)
df10['Mattress 0%'] = df10['Mattress 0%'].map("${:,.0f}".format)
df10['Bank/CD 4%'] = df10['Bank/CD 4%'].map("${:,.0f}".format)
df10['Stocks 7%'] = df10['Stocks 7%'].map("${:,.0f}".format)
# Get dataframe for $20 invested
df20 = get_compound_simple_df(20, False)
df20 = df20.drop('Money Market', axis=1)
df20['Mattress 0%'] = df20['Mattress 0%'].map("${:,.0f}".format)
df20['Bank/CD 4%'] = df20['Bank/CD 4%'].map("${:,.0f}".format)
df20['Stocks 7%'] = df20['Stocks 7%'].map("${:,.0f}".format)
$1 Invested#
Show code cell source
df1.iloc[::10, :]
Age | Mattress 0% | Bank/CD 4% | Stocks 7% | |
---|---|---|---|---|
0 | 20 | $365 | $365 | $365 |
10 | 30 | $4,015 | $5,098 | $6,114 |
20 | 40 | $7,665 | $12,104 | $17,423 |
30 | 50 | $11,315 | $22,474 | $39,670 |
40 | 60 | $14,965 | $37,824 | $83,433 |
$10 Invested#
Show code cell source
df10.iloc[::10, :]
Age | Mattress 0% | Bank/CD 4% | Stocks 7% | |
---|---|---|---|---|
0 | 20 | $3,650 | $3,650 | $3,650 |
10 | 30 | $40,150 | $50,978 | $61,140 |
20 | 40 | $76,650 | $121,035 | $174,232 |
30 | 50 | $113,150 | $224,737 | $396,701 |
40 | 60 | $149,650 | $378,241 | $834,332 |
$20 Invested#
Show code cell source
df20.iloc[::10, :]
Age | Mattress 0% | Bank/CD 4% | Stocks 7% | |
---|---|---|---|---|
0 | 20 | $7,300 | $7,300 | $7,300 |
10 | 30 | $80,300 | $101,956 | $122,280 |
20 | 40 | $153,300 | $242,070 | $348,464 |
30 | 50 | $226,300 | $449,474 | $793,403 |
40 | 60 | $299,301 | $756,481 | $1,668,663 |
Mentimeter Question