Essay - Published: 2021.08.29 | hamforgood |
DISCLOSURE: If you buy through affiliate links, I may earn a small commission. (disclosures)
Pros:
Cons:
I've put together some scenarios to see how this plays out over time. Ideally, we want to see when HamForGood fund-based works better than direct giving model - the sooner, the better.
I've put together a small script to simulate this, included below if you want to look at it.
So over a sufficient time period, it seems like Fund-based approach should give more than a Direct approach within 80 years, assuming market conditions remain relatively the same.
For funds that receive more initial investment than ongoing investment, the returns are much higher and faster. For funds that receive more ongoing investment than initial investment, returns are much lower and slower. This makes sense as those with large initial investments have more time for that money to work to produce additional money.
Thus, this is a very long game. But I still think the rewards and additional work are worth the effort.
Written in Python 3
initial_seed_dollars = 10000
additional_dollars_per_year = 0
total_simulation_time_years = 100
expected_investment_return_percent_per_year = 6
amount_to_give_percent_per_year = 1
def print_year_totals(year, total_invested, fund_total, total_given_to_charity):
print(f"{year} - Total Invested: {total_invested}, Fund Total: {fund_total}, Total donated: {total_given_to_charity}")
def percent_to_percent_decimal(percent_value):
return percent_value / 100.0
# Foreach year, calculate new amounts and output them
fund_total = initial_seed_dollars
donation_total = 0
total_invested = initial_seed_dollars
fund_better_than_direct = False
for i in range(0, total_simulation_time_years):
donated = fund_total * percent_to_percent_decimal(amount_to_give_percent_per_year)
fund_total_minus_donation = fund_total - donated
donation_total = donation_total + donated
interest = fund_total_minus_donation * percent_to_percent_decimal(expected_investment_return_percent_per_year)
fund_total = fund_total_minus_donation + interest + additional_dollars_per_year
total_invested = total_invested + additional_dollars_per_year
print_year_totals(i, total_invested, fund_total, donation_total)
# Print out a line for when Fund > Direct for ease of finding
if donation_total > total_invested and not fund_better_than_direct:
fund_better_than_direct = True
print("FUND BETTER LINE")
The best way to support my work is to like / comment / share for the algorithm and subscribe for future updates.