{"product_id":"irr-calculator","title":"Internal Rate of Return (IRR) Calculator","description":"\u003cstyle\u003e\n.irrc-calculator{--ink:#0f172a;--muted:#475569;--border:#e2e8f0;--surface:#ffffff;--tint:#f8fafc;--primary:#1d4ed8;--accent:#c2410c;--accent-hover:#9a3412;--chart-1:#1e40af;--chart-2:#0d9488;--chart-3:#7c3aed;--chart-4:#be185d;--chart-5:#334155;--danger:#b91c1c;--success:#166534;container-type:inline-size;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;font-size:15px;line-height:1.55;max-width:1200px;margin:0 auto;padding:24px;background:var(--tint);border:1px solid var(--border);border-radius:8px}\n.irrc-calculator,.irrc-calculator *,.irrc-calculator *::before,.irrc-calculator *::after{box-sizing:border-box}\n.irrc-calculator *{min-width:0}\n.irrc-header{display:grid;gap:12px;margin-bottom:16px}\n.irrc-title{margin:0;font-size:24px;line-height:1.25;font-weight:700;letter-spacing:-.02em}\n.irrc-subtitle{margin:0;color:var(--muted);max-width:820px}\n.irrc-pills{display:flex;flex-wrap:wrap;gap:8px}\n.irrc-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:13px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}\n.irrc-pill strong{color:var(--ink)}\n.irrc-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}\n.irrc-button{min-height:44px;border-radius:6px;border:1px solid var(--border);padding:11px 16px;background:var(--surface);color:var(--ink);font:600 15px\/1.2 inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;transition:box-shadow .15s ease,border-color .15s ease,background .15s ease,transform .05s ease}\n.irrc-button:hover{border-color:#94a3b8;box-shadow:0 2px 5px rgba(15,23,42,.10)}\n.irrc-button:active{transform:translateY(1px)}\n.irrc-button:focus-visible,.irrc-control:focus-visible,.irrc-tab-input:focus-visible+label,.irrc-row-remove:focus-visible,.irrc-details summary:focus-visible{outline:3px solid rgba(29,78,216,.35);outline-offset:2px}\n.irrc-download{background:var(--accent);border-color:var(--accent);color:#fff;padding:12px 18px;white-space:nowrap}\n.irrc-download:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}\n.irrc-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-size:17px;line-height:1}\n.irrc-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 1px 2px rgba(15,23,42,.06);padding:20px}\n.irrc-mode{margin-bottom:16px}\n.irrc-mode fieldset{border:0;padding:0;margin:0}\n.irrc-mode legend{font-size:14px;font-weight:600;margin-bottom:8px}\n.irrc-tabs{display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;background:#eaf0f7;border-radius:8px;max-width:520px;width:100%}\n.irrc-tab-input{position:absolute;opacity:0;pointer-events:none}\n.irrc-tab-label{display:flex;justify-content:center;align-items:center;min-height:40px;padding:8px 12px;border-radius:6px;font-size:14px;font-weight:650;color:var(--muted);cursor:pointer;text-align:center}\n.irrc-tab-input:checked+label{background:var(--surface);color:var(--primary);box-shadow:0 1px 2px rgba(15,23,42,.10)}\n.irrc-workspace{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:16px;align-items:start}\n.irrc-input-panel,.irrc-results-panel{display:grid;gap:16px}\n.irrc-section-title{margin:0;font-size:18px;line-height:1.3;font-weight:650}\n.irrc-section-copy{margin:4px 0 0;color:var(--muted);font-size:13px}\n.irrc-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}\n.irrc-field{display:flex;flex-direction:column;gap:6px}\n.irrc-field-full{grid-column:1\/-1}\n.irrc-label{font-size:14px;font-weight:600;color:var(--ink)}\n.irrc-control{width:100%;min-height:44px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:var(--ink);padding:10px 12px;font:400 15px\/1.3 inherit;font-variant-numeric:tabular-nums}\n.irrc-control:hover{border-color:#94a3b8}\n.irrc-control[aria-invalid=\"true\"]{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}\n.irrc-helper{min-height:20px;margin:0;color:var(--muted);font-size:13px;font-weight:500;line-height:1.4}\n.irrc-error{min-height:18px;margin:0;color:var(--danger);font-size:13px;font-weight:600;line-height:1.35}\n.irrc-radio-fieldset{border:0;padding:0;margin:0;display:grid;gap:8px}\n.irrc-radio-fieldset legend{font-size:14px;font-weight:600;margin-bottom:0}\n.irrc-segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;background:#eef2f7;border-radius:8px}\n.irrc-segmented label{display:flex;align-items:center;justify-content:center;min-height:36px;padding:7px 10px;border-radius:5px;font-size:13px;font-weight:650;cursor:pointer;text-align:center}\n.irrc-segmented input{position:absolute;opacity:0;pointer-events:none}\n.irrc-segmented input:checked+label{background:#fff;color:var(--primary);box-shadow:0 1px 2px rgba(15,23,42,.09)}\n.irrc-cashflow-list{display:grid;gap:8px}\n.irrc-cashflow-row{display:grid;grid-template-columns:72px minmax(0,1fr) 40px;gap:8px;align-items:center}\n.irrc-year-label{font-size:13px;font-weight:650;color:var(--muted)}\n.irrc-row-remove{width:40px;height:40px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--danger);font-size:18px;line-height:1;cursor:pointer}\n.irrc-row-remove:hover{background:#fef2f2;border-color:#fecaca}\n.irrc-add-row{justify-self:start;margin-top:4px}\n.irrc-details{border-top:1px solid var(--border);padding-top:16px}\n.irrc-details summary{cursor:pointer;font-weight:650;font-size:14px;color:var(--primary);list-style-position:outside}\n.irrc-details-body{padding-top:14px}\n.irrc-primary-result{display:grid;gap:8px;padding:20px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff}\n.irrc-primary-label{font-size:13px;font-weight:650;color:#1e3a8a;text-transform:uppercase;letter-spacing:.04em}\n.irrc-primary-value{font-size:30px;line-height:1.1;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}\n.irrc-primary-note{margin:0;font-size:13px;font-weight:500;color:#334155}\n.irrc-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}\n.irrc-result-card{border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:14px;display:grid;gap:5px;align-content:start}\n.irrc-result-label{font-size:13px;font-weight:600;color:var(--muted)}\n.irrc-result-value{font-size:20px;line-height:1.2;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}\n.irrc-result-help{font-size:13px;color:var(--muted);margin:0}\n.irrc-status-positive{color:var(--success)}\n.irrc-status-negative{color:var(--danger)}\n.irrc-message{padding:10px 12px;border:1px solid var(--border);background:var(--tint);border-radius:6px;color:var(--muted);font-size:13px;font-weight:500}\n.irrc-breakdown,.irrc-chart,.irrc-table,.irrc-education{margin-top:16px}\n.irrc-chart-head{display:grid;gap:4px;margin-bottom:16px}\n.irrc-chart-title{margin:0;font-size:18px;font-weight:650}\n.irrc-chart-interpretation{margin:0;color:var(--muted);font-size:13px}\n.irrc-chart-cluster{display:grid;grid-template-columns:minmax(220px,320px) minmax(260px,420px);gap:24px;align-items:center;justify-content:center;width:min(100%,780px);margin:0 auto}\n.irrc-donut-wrap{display:grid;justify-items:center;gap:8px}\n.irrc-breakdown-total{font-size:13px;font-weight:650;color:var(--muted);font-variant-numeric:tabular-nums}\n.irrc-donut{width:min(100%,280px);aspect-ratio:1\/1;display:block;overflow:visible}\n.irrc-donut-bg{fill:none;stroke:#e2e8f0;stroke-width:24}\n.irrc-donut-segment{fill:none;stroke-width:24;stroke-linecap:butt}\n.irrc-legend{display:grid;gap:10px;align-content:center}\n.irrc-legend-row{display:grid;grid-template-columns:14px minmax(90px,max-content) max-content max-content;gap:10px 14px;align-items:center;justify-content:start;font-size:13px;font-weight:600}\n.irrc-swatch{width:12px;height:12px;border-radius:3px}\n.irrc-legend-name{color:var(--ink)}\n.irrc-legend-value,.irrc-legend-percent{font-variant-numeric:tabular-nums;color:var(--muted)}\n.irrc-chart-callout,.irrc-table-note{margin-top:16px;border:1px solid var(--border);border-radius:6px;background:var(--tint);padding:10px 12px;color:var(--muted);font-size:13px;font-weight:500}\n.irrc-line-layout{display:grid;gap:16px}\n.irrc-line-svg{display:block;width:100%;height:auto;min-height:260px;overflow:visible}\n.irrc-gridline{stroke:#dbe3ee;stroke-width:1}\n.irrc-axis-text{fill:#475569;font-size:13px;font-weight:500}\n.irrc-zero-line{stroke:#94a3b8;stroke-width:1.5;stroke-dasharray:5 4}\n.irrc-area{fill:rgba(30,64,175,.10)}\n.irrc-line{fill:none;stroke:var(--chart-1);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}\n.irrc-point{fill:#fff;stroke:var(--chart-1);stroke-width:3}\n.irrc-line-legend{display:flex;flex-wrap:wrap;gap:12px 20px;justify-content:center;margin-top:16px}\n.irrc-line-legend-item{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--muted)}\n.irrc-line-key{width:22px;height:3px;background:var(--chart-1);border-radius:2px}\n.irrc-empty-state{border:1px dashed #cbd5e1;border-radius:6px;background:var(--tint);padding:16px;text-align:center;color:var(--muted);font-size:13px;font-weight:600}\n.irrc-chart-safe-stack .irrc-chart-cluster{grid-template-columns:1fr;justify-items:center;gap:16px}\n.irrc-chart-safe-stack .irrc-legend{width:100%;justify-content:center}\n.irrc-chart-safe-stack .irrc-chart-callout{margin-top:20px}\n.irrc-chart-safe-stack .irrc-line-svg{min-height:240px}\n.irrc-table-wrap{overflow-x:auto;max-width:100%;margin-top:16px;border:1px solid var(--border);border-radius:6px;background:#fff}\n.irrc-table table{width:100%;min-width:660px;border-collapse:collapse;font-variant-numeric:tabular-nums}\n.irrc-table th,.irrc-table td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:right;vertical-align:top}\n.irrc-table th{background:#f1f5f9;color:#334155;font-size:13px;font-weight:700;white-space:nowrap}\n.irrc-table th:first-child,.irrc-table td:first-child,.irrc-table th:nth-child(2),.irrc-table td:nth-child(2){text-align:left}\n.irrc-table td{font-size:13px;color:var(--ink)}\n.irrc-table tr:last-child td{border-bottom:0}\n.irrc-table-safe-stack .irrc-table-note{margin-top:20px}\n.irrc-education{display:grid;gap:24px}\n.irrc-education-section{display:grid;gap:10px}\n.irrc-education h2{margin:0;font-size:22px;line-height:1.3;font-weight:700}\n.irrc-education h3{margin:0;font-size:18px;line-height:1.35;font-weight:650}\n.irrc-education p{margin:0;color:#334155}\n.irrc-education ul{margin:0;padding-left:22px;color:#334155;display:grid;gap:7px}\n.irrc-education a{color:#1d4ed8;text-decoration:underline;text-underline-offset:2px}\n.irrc-education a:hover{color:#1e40af}\n.irrc-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}\n@container (max-width:899px){.irrc-workspace{grid-template-columns:1fr}.irrc-chart-cluster{grid-template-columns:minmax(220px,300px) minmax(250px,390px)}}\n@container (max-width:639px){.irrc-calculator{padding:16px}.irrc-card{padding:16px}.irrc-form-grid{grid-template-columns:1fr}.irrc-field-full{grid-column:auto}.irrc-result-grid{grid-template-columns:1fr}.irrc-chart-cluster{grid-template-columns:1fr;justify-items:center;gap:16px}.irrc-legend{width:100%}.irrc-legend-row{grid-template-columns:14px minmax(80px,max-content) max-content max-content;gap:8px 10px}.irrc-line-svg{min-height:220px}.irrc-toolbar .irrc-button{flex:1 1 auto}.irrc-download{flex-basis:100%!important}.irrc-chart-callout,.irrc-table-note{margin-top:12px}.irrc-line-legend{margin-top:12px}}\n@container (max-width:380px){.irrc-calculator{padding:12px}.irrc-card{padding:14px}.irrc-tabs{grid-template-columns:1fr}.irrc-cashflow-row{grid-template-columns:58px minmax(0,1fr) 40px}.irrc-legend-row{grid-template-columns:14px minmax(0,1fr) max-content}.irrc-legend-percent{grid-column:2\/4;padding-left:0}.irrc-primary-value{font-size:27px}}\n@media (max-width:899px){.irrc-workspace{grid-template-columns:1fr}}\n\u003c\/style\u003e\n\u003cdiv class=\"irrc-calculator\" data-calculator-root\u003e\n  \u003cheader class=\"irrc-header\"\u003e\n    \u003ch2 class=\"irrc-title\"\u003eInternal Rate of Return Calculator\u003c\/h2\u003e\n    \u003cp class=\"irrc-subtitle\"\u003eEstimate the annualized return that makes the net present value of your investment cash flows equal to zero, using either recurring or irregular cash flows.\u003c\/p\u003e\n    \u003cdiv class=\"irrc-pills\" aria-label=\"Live calculation summary\"\u003e\n      \u003cspan class=\"irrc-pill\"\u003eIRR \u003cstrong data-pill=\"irr\"\u003e19.438%\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"irrc-pill\"\u003eNet cash \u003cstrong data-pill=\"profit\"\u003e$20,000.00\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"irrc-pill\"\u003eMultiple \u003cstrong data-pill=\"moic\"\u003e1.50x\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"irrc-pill\"\u003ePeriods \u003cstrong data-pill=\"periods\"\u003e3\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/header\u003e\n  \u003cdiv class=\"irrc-toolbar\" aria-label=\"Calculator actions\"\u003e\n    \u003cbutton class=\"irrc-button irrc-download\" type=\"button\" data-action=\"download\"\u003e\u003cspan class=\"irrc-icon\" aria-hidden=\"true\"\u003e⇩\u003c\/span\u003e\u003cspan\u003eDownload Excel\u003c\/span\u003e\u003c\/button\u003e\n    \u003cbutton class=\"irrc-button\" type=\"button\" data-action=\"reset\"\u003e\u003cspan class=\"irrc-icon\" aria-hidden=\"true\"\u003e↺\u003c\/span\u003e\u003cspan\u003eReset\u003c\/span\u003e\u003c\/button\u003e\n  \u003c\/div\u003e\n  \u003csection class=\"irrc-card irrc-mode\"\u003e\n    \u003cfieldset\u003e\n      \u003clegend\u003eCash flow model\u003c\/legend\u003e\n      \u003cdiv class=\"irrc-tabs\"\u003e\n        \u003cinput class=\"irrc-tab-input\" id=\"irrc-mode-irregular\" name=\"irrc-mode\" type=\"radio\" value=\"irregular\" checked\u003e\n        \u003clabel class=\"irrc-tab-label\" for=\"irrc-mode-irregular\"\u003eIrregular annual cash flows\u003c\/label\u003e\n        \u003cinput class=\"irrc-tab-input\" id=\"irrc-mode-fixed\" name=\"irrc-mode\" type=\"radio\" value=\"fixed\"\u003e\n        \u003clabel class=\"irrc-tab-label\" for=\"irrc-mode-fixed\"\u003eFixed recurring cash flow\u003c\/label\u003e\n      \u003c\/div\u003e\n    \u003c\/fieldset\u003e\n  \u003c\/section\u003e\n  \u003cdiv class=\"irrc-workspace\"\u003e\n    \u003csection class=\"irrc-card irrc-input-panel\" aria-labelledby=\"irrc-input-heading\"\u003e\n      \u003cdiv\u003e\n        \u003ch3 class=\"irrc-section-title\" id=\"irrc-input-heading\"\u003eInvestment assumptions\u003c\/h3\u003e\n        \u003cp class=\"irrc-section-copy\" data-mode-copy\u003eEnter the initial outlay and each end-of-year net cash flow.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv data-panel=\"irregular\"\u003e\n        \u003cdiv class=\"irrc-form-grid\"\u003e\n          \u003cdiv class=\"irrc-field irrc-field-full\"\u003e\n            \u003clabel class=\"irrc-label\" for=\"irrc-irregular-initial\"\u003eInitial investment\u003c\/label\u003e\n            \u003cinput class=\"irrc-control\" id=\"irrc-irregular-initial\" data-field=\"irregularInitial\" data-mask=\"currency\" inputmode=\"decimal\" type=\"text\" value=\"$40,000.00\" aria-describedby=\"irrc-irregular-initial-help irrc-irregular-initial-error\"\u003e\n            \u003cp class=\"irrc-helper\" id=\"irrc-irregular-initial-help\"\u003eEnter the positive amount invested at time zero; it is modeled as an outflow.\u003c\/p\u003e\n            \u003cp class=\"irrc-error\" id=\"irrc-irregular-initial-error\" data-error=\"irregularInitial\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"irrc-field irrc-field-full\"\u003e\n            \u003cspan class=\"irrc-label\" id=\"irrc-cashflows-label\"\u003eAnnual cash flows\u003c\/span\u003e\n            \u003cdiv class=\"irrc-cashflow-list\" data-cashflow-list aria-labelledby=\"irrc-cashflows-label\"\u003e\u003c\/div\u003e\n            \u003cbutton class=\"irrc-button irrc-add-row\" type=\"button\" data-action=\"add-year\"\u003e+ Add year\u003c\/button\u003e\n            \u003cp class=\"irrc-helper\"\u003ePositive values are inflows; negative values are additional investment or operating outflows.\u003c\/p\u003e\n            \u003cp class=\"irrc-error\" data-error=\"irregularFlows\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv data-panel=\"fixed\" hidden\u003e\n        \u003cdiv class=\"irrc-form-grid\"\u003e\n          \u003cdiv class=\"irrc-field irrc-field-full\"\u003e\n            \u003clabel class=\"irrc-label\" for=\"irrc-fixed-initial\"\u003eInitial investment\u003c\/label\u003e\n            \u003cinput class=\"irrc-control\" id=\"irrc-fixed-initial\" data-field=\"fixedInitial\" data-mask=\"currency\" inputmode=\"decimal\" type=\"text\" value=\"$100,000.00\" aria-describedby=\"irrc-fixed-initial-help irrc-fixed-initial-error\"\u003e\n            \u003cp class=\"irrc-helper\" id=\"irrc-fixed-initial-help\"\u003eUpfront capital committed at the start of the holding period.\u003c\/p\u003e\n            \u003cp class=\"irrc-error\" id=\"irrc-fixed-initial-error\" data-error=\"fixedInitial\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"irrc-field\"\u003e\n            \u003clabel class=\"irrc-label\" for=\"irrc-years\"\u003eHolding years\u003c\/label\u003e\n            \u003cinput class=\"irrc-control\" id=\"irrc-years\" data-field=\"years\" data-mask=\"number\" inputmode=\"decimal\" type=\"text\" value=\"5\" aria-describedby=\"irrc-years-help irrc-years-error\"\u003e\n            \u003cp class=\"irrc-helper\" id=\"irrc-years-help\"\u003eWhole or decimal years.\u003c\/p\u003e\n            \u003cp class=\"irrc-error\" id=\"irrc-years-error\" data-error=\"years\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"irrc-field\"\u003e\n            \u003clabel class=\"irrc-label\" for=\"irrc-months\"\u003eAdditional months\u003c\/label\u003e\n            \u003cinput class=\"irrc-control\" id=\"irrc-months\" data-field=\"months\" data-mask=\"number\" inputmode=\"decimal\" type=\"text\" value=\"0\" aria-describedby=\"irrc-months-help irrc-months-error\"\u003e\n            \u003cp class=\"irrc-helper\" id=\"irrc-months-help\"\u003eUse 0–11 months.\u003c\/p\u003e\n            \u003cp class=\"irrc-error\" id=\"irrc-months-error\" data-error=\"months\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"irrc-field irrc-field-full\"\u003e\n            \u003clabel class=\"irrc-label\" for=\"irrc-ending\"\u003eEnding balance\u003c\/label\u003e\n            \u003cinput class=\"irrc-control\" id=\"irrc-ending\" data-field=\"endingBalance\" data-mask=\"currency\" inputmode=\"decimal\" type=\"text\" value=\"$120,000.00\" aria-describedby=\"irrc-ending-help irrc-ending-error\"\u003e\n            \u003cp class=\"irrc-helper\" id=\"irrc-ending-help\"\u003eValue received or retained at the end of the holding period.\u003c\/p\u003e\n            \u003cp class=\"irrc-error\" id=\"irrc-ending-error\" data-error=\"endingBalance\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"irrc-field\"\u003e\n            \u003clabel class=\"irrc-label\" for=\"irrc-recurring\"\u003eRecurring amount\u003c\/label\u003e\n            \u003cinput class=\"irrc-control\" id=\"irrc-recurring\" data-field=\"recurringAmount\" data-mask=\"currency\" inputmode=\"decimal\" type=\"text\" value=\"$12,000.00\" aria-describedby=\"irrc-recurring-help irrc-recurring-error\"\u003e\n            \u003cp class=\"irrc-helper\" id=\"irrc-recurring-help\"\u003eAmount paid or received each selected period.\u003c\/p\u003e\n            \u003cp class=\"irrc-error\" id=\"irrc-recurring-error\" data-error=\"recurringAmount\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"irrc-field\"\u003e\n            \u003clabel class=\"irrc-label\" for=\"irrc-frequency\"\u003eFrequency\u003c\/label\u003e\n            \u003cselect class=\"irrc-control\" id=\"irrc-frequency\" data-field=\"frequency\" aria-describedby=\"irrc-frequency-help\"\u003e\n              \u003coption value=\"1\" selected\u003eAnnually\u003c\/option\u003e\n              \u003coption value=\"2\"\u003eSemiannually\u003c\/option\u003e\n              \u003coption value=\"4\"\u003eQuarterly\u003c\/option\u003e\n              \u003coption value=\"12\"\u003eMonthly\u003c\/option\u003e\n              \u003coption value=\"24\"\u003eSemimonthly\u003c\/option\u003e\n              \u003coption value=\"26\"\u003eBiweekly\u003c\/option\u003e\n              \u003coption value=\"52\"\u003eWeekly\u003c\/option\u003e\n            \u003c\/select\u003e\n            \u003cp class=\"irrc-helper\" id=\"irrc-frequency-help\"\u003eRecurring cash flow interval.\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"irrc-field\"\u003e\n            \u003cfieldset class=\"irrc-radio-fieldset\"\u003e\n              \u003clegend\u003eCash flow direction\u003c\/legend\u003e\n              \u003cdiv class=\"irrc-segmented\"\u003e\n                \u003cinput id=\"irrc-direction-deposit\" name=\"irrc-direction\" type=\"radio\" value=\"deposit\"\u003e\n                \u003clabel for=\"irrc-direction-deposit\"\u003eDeposit\u003c\/label\u003e\n                \u003cinput id=\"irrc-direction-withdraw\" name=\"irrc-direction\" type=\"radio\" value=\"withdraw\" checked\u003e\n                \u003clabel for=\"irrc-direction-withdraw\"\u003eWithdraw\u003c\/label\u003e\n              \u003c\/div\u003e\n            \u003c\/fieldset\u003e\n            \u003cp class=\"irrc-helper\"\u003eDeposits are outflows; withdrawals are inflows.\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"irrc-field\"\u003e\n            \u003cfieldset class=\"irrc-radio-fieldset\"\u003e\n              \u003clegend\u003ePayment timing\u003c\/legend\u003e\n              \u003cdiv class=\"irrc-segmented\"\u003e\n                \u003cinput id=\"irrc-timing-beginning\" name=\"irrc-timing\" type=\"radio\" value=\"beginning\"\u003e\n                \u003clabel for=\"irrc-timing-beginning\"\u003eBeginning\u003c\/label\u003e\n                \u003cinput id=\"irrc-timing-end\" name=\"irrc-timing\" type=\"radio\" value=\"end\" checked\u003e\n                \u003clabel for=\"irrc-timing-end\"\u003eEnd\u003c\/label\u003e\n              \u003c\/div\u003e\n            \u003c\/fieldset\u003e\n            \u003cp class=\"irrc-helper\"\u003eSets when each recurring flow occurs within its period.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdetails class=\"irrc-details\"\u003e\n        \u003csummary\u003eAdvanced comparison\u003c\/summary\u003e\n        \u003cdiv class=\"irrc-details-body irrc-form-grid\"\u003e\n          \u003cdiv class=\"irrc-field irrc-field-full\"\u003e\n            \u003clabel class=\"irrc-label\" for=\"irrc-hurdle\"\u003eHurdle rate\u003c\/label\u003e\n            \u003cinput class=\"irrc-control\" id=\"irrc-hurdle\" data-field=\"hurdleRate\" data-mask=\"percent\" inputmode=\"decimal\" type=\"text\" value=\"12.00%\" aria-describedby=\"irrc-hurdle-help irrc-hurdle-error\"\u003e\n            \u003cp class=\"irrc-helper\" id=\"irrc-hurdle-help\"\u003eOptional annual benchmark used to calculate NPV and the return spread.\u003c\/p\u003e\n            \u003cp class=\"irrc-error\" id=\"irrc-hurdle-error\" data-error=\"hurdleRate\"\u003e\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/section\u003e\n    \u003csection class=\"irrc-card irrc-results-panel\" aria-labelledby=\"irrc-results-heading\"\u003e\n      \u003cdiv\u003e\n        \u003ch3 class=\"irrc-section-title\" id=\"irrc-results-heading\"\u003eLive results\u003c\/h3\u003e\n        \u003cp class=\"irrc-section-copy\"\u003eResults update as assumptions change.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"irrc-primary-result\" aria-live=\"polite\" aria-atomic=\"true\"\u003e\n        \u003cspan class=\"irrc-primary-label\"\u003eInternal rate of return\u003c\/span\u003e\n        \u003cstrong class=\"irrc-primary-value\" data-result=\"irr\"\u003e19.438%\u003c\/strong\u003e\n        \u003cp class=\"irrc-primary-note\" data-result=\"interpretation\"\u003eIRR is 7.438 percentage points above the 12.00% hurdle rate.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"irrc-result-grid\"\u003e\n        \u003carticle class=\"irrc-result-card\"\u003e\n          \u003cspan class=\"irrc-result-label\"\u003eNet profit\u003c\/span\u003e\n          \u003cstrong class=\"irrc-result-value\" data-result=\"profit\"\u003e$20,000.00\u003c\/strong\u003e\n          \u003cp class=\"irrc-result-help\"\u003eTotal inflows minus total outflows.\u003c\/p\u003e\n        \u003c\/article\u003e\n        \u003carticle class=\"irrc-result-card\"\u003e\n          \u003cspan class=\"irrc-result-label\"\u003eCash multiple\u003c\/span\u003e\n          \u003cstrong class=\"irrc-result-value\" data-result=\"moic\"\u003e1.50x\u003c\/strong\u003e\n          \u003cp class=\"irrc-result-help\"\u003eGross inflows divided by gross outflows.\u003c\/p\u003e\n        \u003c\/article\u003e\n        \u003carticle class=\"irrc-result-card\"\u003e\n          \u003cspan class=\"irrc-result-label\"\u003eNPV at hurdle\u003c\/span\u003e\n          \u003cstrong class=\"irrc-result-value\" data-result=\"npv\"\u003e$6,225.86\u003c\/strong\u003e\n          \u003cp class=\"irrc-result-help\"\u003ePresent value surplus or shortfall at the benchmark rate.\u003c\/p\u003e\n        \u003c\/article\u003e\n        \u003carticle class=\"irrc-result-card\"\u003e\n          \u003cspan class=\"irrc-result-label\"\u003ePayback period\u003c\/span\u003e\n          \u003cstrong class=\"irrc-result-value\" data-result=\"payback\"\u003e2.33 years\u003c\/strong\u003e\n          \u003cp class=\"irrc-result-help\"\u003eUndiscounted time to recover cumulative outflows.\u003c\/p\u003e\n        \u003c\/article\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"irrc-message\" data-result=\"message\"\u003eA unique IRR solution was found for the current cash flow pattern.\u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n  \u003csection class=\"irrc-card irrc-breakdown\" data-chart-card=\"donut\" aria-labelledby=\"irrc-breakdown-heading\"\u003e\n    \u003cdiv class=\"irrc-chart-head\"\u003e\n      \u003ch3 class=\"irrc-chart-title\" id=\"irrc-breakdown-heading\"\u003eCash movement breakdown\u003c\/h3\u003e\n      \u003cp class=\"irrc-chart-interpretation\" data-breakdown-interpretation\u003eCompare total capital paid out with total cash received.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv data-breakdown-content\u003e\u003c\/div\u003e\n    \u003cdiv class=\"irrc-chart-callout\" data-breakdown-caption\u003eGross cash movement is $100,000.00 across inflows and outflows.\u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003csection class=\"irrc-card irrc-chart\" data-chart-card=\"line\" aria-labelledby=\"irrc-chart-heading\"\u003e\n    \u003cdiv class=\"irrc-chart-head\"\u003e\n      \u003ch3 class=\"irrc-chart-title\" id=\"irrc-chart-heading\"\u003eCumulative cash flow\u003c\/h3\u003e\n      \u003cp class=\"irrc-chart-interpretation\" data-line-interpretation\u003eSee when the investment crosses the undiscounted break-even point.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv data-line-content\u003e\u003c\/div\u003e\n    \u003cdiv class=\"irrc-chart-callout\" data-line-caption\u003eThe cumulative balance finishes at $20,000.00 after year 3.\u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003csection class=\"irrc-card irrc-table\" data-table-card aria-labelledby=\"irrc-table-heading\"\u003e\n    \u003cdiv\u003e\n      \u003ch3 class=\"irrc-section-title\" id=\"irrc-table-heading\"\u003eCash flow schedule\u003c\/h3\u003e\n      \u003cp class=\"irrc-section-copy\"\u003eThe same current-state rows drive the IRR, charts, and Excel export.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"irrc-table-wrap\" data-table-wrap\u003e\n      \u003ctable\u003e\n        \u003cthead\u003e\u003ctr\u003e\n\u003cth scope=\"col\"\u003ePeriod\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eCash flow type\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eTime (years)\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eCash flow\u003c\/th\u003e\n\u003cth scope=\"col\"\u003eCumulative\u003c\/th\u003e\n\u003cth scope=\"col\"\u003ePV at hurdle\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n        \u003ctbody data-table-body\u003e\u003c\/tbody\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"irrc-table-note\" data-table-note\u003eCash flows are discounted using the annual hurdle rate shown in Advanced comparison. IRR itself is the rate that drives total NPV to approximately zero.\u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003csection class=\"irrc-card irrc-education\" aria-labelledby=\"irrc-education-heading\"\u003e\n    \u003cdiv class=\"irrc-education-section\"\u003e\n      \u003ch2 id=\"irrc-education-heading\"\u003eHow to use and interpret the IRR calculator\u003c\/h2\u003e\n      \u003cp\u003eThis calculator estimates the internal rate of return for a sequence of investment cash flows. IRR is the annual discount rate that makes the net present value of all modeled inflows and outflows equal to zero. It is useful for comparing projects with different cash-flow timing, but it should be reviewed alongside absolute value measures such as NPV, total profit, and cash multiple.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"irrc-education-section\"\u003e\n      \u003ch3\u003eChoose the cash flow model\u003c\/h3\u003e\n      \u003cp\u003e\u003cstrong\u003eIrregular annual cash flows\u003c\/strong\u003e is appropriate when each year has a different amount. Enter the initial investment as a positive number; the calculator automatically treats it as a time-zero outflow. Each annual row may be positive for cash received or negative for additional capital, losses, maintenance, or other cash paid. Use Add year to extend the forecast. Blank rows are treated as zero, while at least one non-zero future flow is required.\u003c\/p\u003e\n      \u003cp\u003e\u003cstrong\u003eFixed recurring cash flow\u003c\/strong\u003e is appropriate when the same deposit or withdrawal repeats at a regular interval. Initial investment is the upfront capital. Holding years and additional months define the horizon. Ending balance is the terminal value received at the end, such as sale proceeds, residual account value, or remaining principal. Recurring amount is the repeated payment. Select Deposit when the amount is additional money paid into the investment and Withdraw when it is cash received. Frequency determines the number of flows per year, and payment timing determines whether each flow occurs at the beginning or end of its period.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"irrc-education-section\"\u003e\n      \u003ch3\u003eField-by-field guidance\u003c\/h3\u003e\n      \u003cul\u003e\n        \u003cli\u003e\n\u003cstrong\u003eInitial investment:\u003c\/strong\u003e required and normally greater than zero. A higher initial outlay lowers IRR when future returns are unchanged.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eAnnual cash flows:\u003c\/strong\u003e required for the irregular model. Earlier positive cash flows generally increase IRR more than equally sized later cash flows because they are discounted for fewer years.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eHolding period:\u003c\/strong\u003e required for the fixed model. Extending the horizon can raise or lower IRR depending on whether the added time produces enough additional cash flow or terminal value.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eEnding balance:\u003c\/strong\u003e optional in economic terms but important when the asset retains value. Omitting a real exit value can materially understate return.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eRecurring amount, direction, frequency, and timing:\u003c\/strong\u003e optional if there are no interim flows. Beginning-of-period deposits occur sooner and therefore have more effect on the money-weighted return than end-of-period deposits.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eHurdle rate:\u003c\/strong\u003e optional comparison benchmark. It does not change IRR; it changes NPV and the displayed spread between IRR and your benchmark.\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"irrc-education-section\"\u003e\n      \u003ch3\u003eUnderstanding each result\u003c\/h3\u003e\n      \u003cp\u003e\u003cstrong\u003eInternal rate of return\u003c\/strong\u003e is the primary annualized result. A positive IRR means the cash-flow pattern has a positive annualized return under the model. A negative IRR can occur when total value is recovered too slowly or not fully recovered. Compare IRR with a relevant hurdle rate, cost of capital, or alternative opportunity rather than treating any fixed percentage as universally good.\u003c\/p\u003e\n      \u003cp\u003e\u003cstrong\u003eNet profit\u003c\/strong\u003e is undiscounted inflows minus outflows. It shows absolute dollars but ignores timing. \u003cstrong\u003eCash multiple\u003c\/strong\u003e divides gross inflows by gross outflows and is often called a multiple on invested capital. A 1.00x multiple means cash returned equals cash paid, while a value below 1.00x indicates an undiscounted loss. \u003cstrong\u003eNPV at hurdle\u003c\/strong\u003e discounts every cash flow at the selected benchmark. Positive NPV indicates value above that benchmark; negative NPV indicates a shortfall. \u003cstrong\u003ePayback period\u003c\/strong\u003e estimates when cumulative undiscounted cash flow first reaches zero, with linear interpolation within the crossing period.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"irrc-education-section\"\u003e\n      \u003ch3\u003eCharts and schedule\u003c\/h3\u003e\n      \u003cp\u003eThe cash movement donut compares gross inflows with gross outflows using the exact same values as the model and legend. The cumulative cash-flow line begins with the initial outlay and tracks the running undiscounted balance. Crossing the zero line indicates payback, not discounted break-even. The schedule lists every modeled transaction, its time in years, cumulative cash flow, and present value at the hurdle rate. For recurring flows, the table can contain many rows; the horizontally scrollable wrapper keeps the wider schedule usable on small screens.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"irrc-education-section\"\u003e\n      \u003ch3\u003eFormula, limitations, and common mistakes\u003c\/h3\u003e\n      \u003cp\u003eThe model solves for the rate \u003cem\u003er\u003c\/em\u003e that satisfies the equation: the sum of each cash flow divided by (1 + r) raised to its time equals zero. Because this equation is nonlinear, the calculator searches for valid roots numerically. Conventional cash flows—one initial outflow followed by inflows—normally produce one clear IRR. Alternating positive and negative flows can produce multiple IRRs or no real solution. In those cases, NPV at a chosen discount rate or modified IRR may be more informative.\u003c\/p\u003e\n      \u003cp\u003eCommon mistakes include reversing cash-flow signs, omitting the terminal value, mixing monthly and annual spacing, comparing projects of very different scale using IRR alone, and assuming interim cash flows can actually be reinvested at the calculated IRR. Review the methodology in the \u003ca href=\"https:\/\/www.investor.gov\/introduction-investing\/investing-basics\/glossary\/internal-rate-return-irr\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInvestor.gov IRR glossary\u003c\/a\u003e, the \u003ca href=\"https:\/\/support.microsoft.com\/en-us\/office\/irr-function-64925eaa-9988-495b-b290-3ad0c163c1bc\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eMicrosoft IRR function guide\u003c\/a\u003e, \u003ca href=\"https:\/\/www.investopedia.com\/terms\/i\/irr.asp\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eInvestopedia’s IRR overview\u003c\/a\u003e, and the \u003ca href=\"https:\/\/corporatefinanceinstitute.com\/resources\/valuation\/internal-rate-return-irr\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eCorporate Finance Institute explanation\u003c\/a\u003e. Results are educational\nestimates, not personalized investment, tax, accounting, or legal advice.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909482488051,"sku":"irr-calculator","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/irr-calculator.webp?v=1783935411","url":"https:\/\/financialmodelslab.com\/products\/irr-calculator","provider":"Financial Models Lab","version":"1.0","type":"link"}