FINANCE

SIP Calculator

Calculate your SIP returns, total invested amount, and wealth gained over time.

TOTAL VALUE

₹0
Total Invested
Est. Returns
Wealth Multiple

YEAR-BY-YEAR GROWTH

YearInvested (₹)Returns (₹)Total Value (₹)
Developer Reference

Core Algorithm & Standalone Script

Standalone, zero-dependency JavaScript implementation powering this tool. Free to inspect, copy, and build upon.

function fmt(n) { return Math.round(n).toLocaleString('en-IN'); }
  function fmtRs(n) { return '₹' + fmt(n); }

  function link(iId, sId, fn) {
    const i = document.getElementById(iId), s = document.getElementById(sId);
    i.addEventListener('input', () => { s.value = i.value; fn(); });
    s.addEventListener('input', () => { i.value = s.value; fn(); });
  }
  link('inp-amount', 'sl-amount', calc);
  link('inp-rate', 'sl-rate', calc);
  link('inp-years', 'sl-years', calc);

  function calc() {
    const P = parseFloat(document.getElementById('inp-amount').value);
    const annualRate = parseFloat(document.getElementById('inp-rate').value);
    const years = parseInt(document.getElementById('inp-years').value);
    if (!P || !annualRate || !years) return;

    const r = annualRate / 12 / 100;
    const n = years * 12;
    const fv = P * ((Math.pow(1 + r, n) - 1) / r) * (1 + r);
    const invested = P * n;
    const returns = fv - invested;

    document.getElementById('val-total').textContent = fmtRs(fv);
    document.getElementById('val-invested').textContent = fmtRs(invested);
    document.getElementById('val-returns').textContent = fmtRs(returns);
    document.getElementById('val-multiple').textContent = (fv / invested).toFixed(2) + '×';

    let html = '';
    for (let y = 1; y <= years; y++) {
      const m = y * 12;
      const v = P * ((Math.pow(1 + r, m) - 1) / r) * (1 + r);
      const inv = P * m;
      html += `<tr><td>${y}</td><td>${fmt(inv)}</td><td>${fmt(v - inv)}</td><td>${fmt(v)}</td></tr>`;
    }
    document.getElementById('growth-body').innerHTML = html;
  }
  calc();