Dividend Reinvestment Calculator
Calculate how dividend reinvestment (DRIP) grows your portfolio over time. Compare with and without reinvestment.
| Year | With DRIP | Without DRIP |
|---|---|---|
| 1 | $11,154 | $10,700 |
| 2 | $12,441 | $11,449 |
| 3 | $13,876 | $12,250 |
| 4 | $15,477 | $13,108 |
| 5 | $17,263 | $14,026 |
| 6 | $19,255 | $15,007 |
| 7 | $21,476 | $16,058 |
| 8 | $23,954 | $17,182 |
| 9 | $26,718 | $18,385 |
| 10 | $29,801 | $19,672 |
| 11 | $33,240 | $21,049 |
| 12 | $37,075 | $22,522 |
| 13 | $41,352 | $24,098 |
| 14 | $46,124 | $25,785 |
| 15 | $51,446 | $27,590 |
| 16 | $57,381 | $29,522 |
| 17 | $64,002 | $31,588 |
| 18 | $71,387 | $33,799 |
| 19 | $79,623 | $36,165 |
| 20 | $88,810 | $38,697 |
About this tool
Dividend reinvestment, or DRIP, is a powerful wealth-building strategy where cash dividends from your investments are automatically reinvested to buy additional shares rather than paid out as income. Over time, this compounding effect can substantially amplify your portfolio's growth, as you earn returns not only on your original investment but also on the accumulated dividends.
This calculator lets you model how your investments grow under different dividend reinvestment scenarios. Simply enter your initial investment amount, the annual dividend yield (as a percentage), the reinvestment period in years, and the annual growth rate of the underlying asset. The tool then displays both your ending balance with DRIP enabled and the balance without reinvestment, so you can clearly see the compounding advantage.
Frequently Asked Questions
Code Implementation
def drip_calculator(
initial: float,
annual_yield: float,
annual_growth: float,
years: int,
periods_per_year: int = 4 # quarterly
) -> list[dict]:
"""Calculate DRIP portfolio growth year by year."""
period_yield = annual_yield / 100 / periods_per_year
period_growth = (1 + annual_growth / 100) ** (1 / periods_per_year)
portfolio = initial
results = []
for year in range(1, years + 1):
year_dividends = 0
for _ in range(periods_per_year):
div = portfolio * period_yield
year_dividends += div
portfolio = (portfolio + div) * period_growth
results.append({
"year": year,
"portfolio_value": round(portfolio, 2),
"year_dividends": round(year_dividends, 2),
})
return results
results = drip_calculator(
initial=10000,
annual_yield=4.0,
annual_growth=7.0,
years=20,
periods_per_year=4
)
for r in results[-5:]:
print(f"Year {r['year']}: ${r['portfolio_value']:,.2f} (dividends: ${r['year_dividends']:,.2f})")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.