A Dividend Reinvestment Plan (DRIP) is an investment strategy where the cash dividends paid by a company or fund are automatically used to purchase more shares of that same asset. Instead of taking the cash payout, you increase your ownership stake over time.
The Power of Compounding
The true magic of DRIP occurs through compound growth. When you reinvest dividends, you own more shares. Those additional shares then generate their own dividends in the next payout cycle. When combined with stock price appreciation and regular contributions, your portfolio can grow exponentially.
Example Calculation
Imagine you start with $10,000 in a stock with a 4% dividend yield and 5% annual price appreciation. If you contribute $100 per month:
Year 1: You earn roughly $400 in dividends, which are used to buy more shares.
Year 10: Your portfolio has grown not just from your $12,000 in contributions, but from the cumulative effect of reinvested dividends and price growth.
Year 20: The annual dividend income alone could potentially exceed your initial annual contributions.
Key Factors in Your Results
Dividend Yield: The percentage of the stock price paid out annually in dividends.
Price Appreciation: The historical or expected annual increase in the stock's share price.
Taxation: Unless held in a tax-advantaged account like an IRA or 401(k), dividends are typically taxable in the year they are received, even if reinvested. Our calculator accounts for this by deducting your estimated tax rate from the dividend payout before reinvesting.
function calculateDRIP() {
var initial = parseFloat(document.getElementById('initialInvestment').value) || 0;
var contribution = parseFloat(document.getElementById('annualContribution').value) || 0;
var yieldPercent = (parseFloat(document.getElementById('divYield').value) || 0) / 100;
var appreciation = (parseFloat(document.getElementById('stockAppreciation').value) || 0) / 100;
var years = parseInt(document.getElementById('years').value) || 0;
var taxRate = (parseFloat(document.getElementById('taxRate').value) || 0) / 100;
var currentBalance = initial;
var totalInvested = initial;
var totalDivsEarned = 0;
for (var i = 1; i <= years; i++) {
// Calculate annual appreciation first
currentBalance = currentBalance * (1 + appreciation);
// Calculate dividends earned on the new balance
var dividendsThisYear = currentBalance * yieldPercent;
// Apply taxes to dividends
var netDividends = dividendsThisYear * (1 – taxRate);
// Reinvest dividends
currentBalance += netDividends;
totalDivsEarned += netDividends;
// Add annual contribution at the end of the year
currentBalance += contribution;
totalInvested += contribution;
}
var finalAnnualIncome = currentBalance * yieldPercent;
document.getElementById('totalValue').innerText = '$' + currentBalance.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('totalPrincipal').innerText = '$' + totalInvested.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('totalDividends').innerText = '$' + totalDivsEarned.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('annualIncome').innerText = '$' + finalAnnualIncome.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('dripResult').style.display = 'block';
}