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#

Hide code cell source
import pandas as pd
import ipywidgets as widgets
import matplotlib.ticker as mtick
from IPython.display import YouTubeVideo, display
Hide 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#

Hide 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])



Hide 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#

Hide 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#

Hide 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#

Hide 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

https://www.menti.com/alohp2v13yqh