Calculate the future value of your portfolio using the power of compounding dividends and capital appreciation.
Total Principal Invested:$0.00
Total Dividends Earned:$0.00
Estimated Ending Balance:$0.00
How the DRIP Calculator Works
A Dividend Reinvestment Plan (DRIP) is a powerful wealth-building tool where cash dividends are used to purchase additional shares of the underlying stock. This calculator simulates that growth over time by factoring in your monthly contributions, the yield of the asset, and the expected growth of the stock price itself.
Key Variables Explained
Annual Dividend Yield: The percentage of the current share price that the company pays out in dividends annually.
Annual Price Appreciation: The estimated yearly increase in the stock's market value.
Tax Rate: If you are holding assets in a taxable account, dividends may be taxed before they are reinvested. This calculator accounts for that "tax drag."
Example Scenario
Imagine you start with $10,000 in a high-quality dividend stock yielding 4%. You decide to contribute $500 per month and assume the stock price grows by 6% annually. After 20 years, with all dividends reinvested (assuming a 15% tax on those dividends):
Your total out-of-pocket investment would be $130,000.
The power of compounding could potentially turn this into a portfolio worth over $440,000.
Significant growth comes from the "snowball effect" of owning more shares, which in turn pay more dividends.
function calculateDRIP() {
var initialInv = parseFloat(document.getElementById("initial_investment").value);
var monthlyCont = parseFloat(document.getElementById("monthly_contribution").value);
var annualYield = parseFloat(document.getElementById("annual_yield").value) / 100;
var annualApp = parseFloat(document.getElementById("annual_appreciation").value) / 100;
var years = parseInt(document.getElementById("years_to_grow").value);
var taxRate = parseFloat(document.getElementById("tax_rate").value) / 100;
if (isNaN(initialInv) || isNaN(monthlyCont) || isNaN(annualYield) || isNaN(annualApp) || isNaN(years)) {
alert("Please enter valid numbers in all fields.");
return;
}
var totalValue = initialInv;
var totalPrincipal = initialInv;
var totalDividends = 0;
var months = years * 12;
// Monthly rates
var monthlyYield = annualYield / 12;
var monthlyApp = annualApp / 12;
for (var i = 1; i <= months; i++) {
// 1. Add Monthly Contribution
totalValue += monthlyCont;
totalPrincipal += monthlyCont;
// 2. Calculate Dividend for the month
var dividend = totalValue * monthlyYield;
// 3. Subtract Tax from Dividend
var netDividend = dividend * (1 – taxRate);
// 4. Reinvest Dividend
totalValue += netDividend;
totalDividends += netDividend;
// 5. Apply Price Appreciation
totalValue = totalValue * (1 + monthlyApp);
}
document.getElementById("res_principal").innerText = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(totalPrincipal);
document.getElementById("res_dividends").innerText = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(totalDividends);
document.getElementById("res_total").innerText = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(totalValue);
document.getElementById("drip-result-box").style.display = "block";
}