Dollar-Cost Averaging Automation Tool
Dollar-Cost Averaging Simulation Results
Investment Growth Over Time
| Period | Market Price ($) | Units Purchased | Total Units | Total Invested ($) | Portfolio Value ($) |
|---|
No simulation data available. Please calculate results first.
'; simulationTableContainer.style.display = 'none'; downloadPdfButton.style.display = 'none'; // Ensure PDF button is hidden pdfContentArea.innerHTML = ''; // Clear PDF content area return; } const finalPeriod = data[data.length - 1]; const finalPortfolioValue = finalPeriod.portfolioValue; const totalGainLoss = finalPortfolioValue - totalInvested; const roiPercentage = (totalInvested > 0) ? (totalGainLoss / totalInvested) * 100 : 0; const summaryHtml = `
Total Invested:
$${totalInvested.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
Final Portfolio Value:
$${finalPortfolioValue.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
Total Gain/Loss:
$${totalGainLoss.toLocaleString('en-US', { signDisplay: 'exceptZero', minimumFractionDigits: 2, maximumFractionDigits: 2 })}
Return on Investment (ROI):
${roiPercentage.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}%
Average Price Per Unit (DCA):
$${(totalInvested / finalPeriod.totalUnits).toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
Final Market Price:
$${finalPeriod.marketPrice.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
`;
resultsSummaryDiv.innerHTML = summaryHtml;
// Populate simulation table for display
simulationTableBody.innerHTML = ''; // Clear previous data
data.forEach(row => {
const tr = document.createElement('tr');
tr.innerHTML = `
| Period | Market Price ($) | Units Purchased | Total Units | Total Invested ($) | Portfolio Value ($) |
|---|---|---|---|---|---|
| ${row.period === 0 ? 'Initial' : row.period} | $${row.marketPrice.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })} | ${row.unitsPurchased.toLocaleString('en-US', { minimumFractionDigits: 4, maximumFractionDigits: 4 })} | ${row.totalUnits.toLocaleString('en-US', { minimumFractionDigits: 4, maximumFractionDigits: 4 })} | $${row.totalInvested.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })} | $${row.portfolioValue.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })} |