Financial Milestone Dashboard

No milestones defined. Go to "Manage Milestones" to add one.

'; return; } grid.innerHTML = milestonesData.map(milestone => { const progress = milestone.target > 0 ? (milestone.current / milestone.target) * 100 : 0; const cappedProgress = Math.min(progress, 100); return `

${milestone.name}

Progress ${formatPercent(progress)}
${formatCurrency(milestone.current)} / ${formatCurrency(milestone.target)}
`; }).join(''); } function renderMilestonesTable() { const table = document.getElementById('milestones-table'); const headers = ['Milestone Name', 'Target Value ($)', 'Current Value ($)']; table.innerHTML = ` ${headers.map(h => `${h}`).join('')}Actions ${milestonesData.map((m, index) => ` `).join('')} `; } window.fmd_updateMilestone = (index, key, value) => { milestonesData[index][key] = value; renderAll(); }; window.fmd_addMilestone = () => { milestonesData.push({ name: 'New Milestone', target: 1000000, current: 0 }); renderAll(); }; window.fmd_removeMilestone = (index) => { milestonesData.splice(index, 1); renderAll(); }; function initialize() { milestonesData = [ { name: 'Seed Funding Round', target: 750000, current: 750000 }, { name: 'Achieve $1M ARR', target: 1000000, current: 450000 }, { name: 'Reach Profitability (Quarterly)', target: 0, current: -50000 }, { name: 'Expand to European Market', target: 500000, current: 120000 } ]; // Adjust profitability target/current for display logic milestonesData.forEach(m => { if (m.name.includes('Profitability')) { const absTarget = Math.abs(m.target); const absCurrent = Math.abs(m.current); m.displayTarget = absTarget > 0 ? absTarget : absCurrent > 0 ? absCurrent * 1.2 : 1; // Visual target m.displayCurrent = m.target + Math.abs(m.current); m.progress = m.displayTarget > 0 ? m.displayCurrent / m.displayTarget * 100 : 0; } }); renderAll(); } initialize(); });
Scroll to Top