XIRR Calculator
Enter your dated cash flows: money you put in, money you took out, and what your holding is worth today. Get your money-weighted annualized return instantly, calculated entirely in your browser.
Nothing you type is sent anywhere. No account, no uploads, not even a rate lookup: your figures stay in this tab.
Cash flows
Negative = money you put in. Positive = money you received (sells, dividends). What you still hold today goes in the final-value card below.
Current total value
The last number of the series: the market value of everything you still hold, entered once as a positive amount, as if you sold it all today.
The XIRR formula
0 = Σ Pi ÷ (1 + r)^((di − d0) ÷ 365)
XIRR finds the annual rate r where the sum of every cash flow Pi, discounted by its exact day distance from the first flow d0 on a 365-day basis, nets to zero. Because each flow carries its own date, irregular intervals are handled exactly. The result is a money-weighted return: money invested earlier and longer counts more.
XIRR vs IRR
IRR assumes cash flows arrive at perfectly regular intervals and ignores calendar dates. XIRR takes real dates and returns a true annualized rate, which is what you want for buys at random times, dividends, and partial sells. When flows are evenly spaced the two agree; when they are not, XIRR is the correct measure.
The actual/365 day count
Every flow is discounted by its exact number of calendar days divided by 365, the same convention Excel uses. Leap years make some years 366 days long, so a position held across a leap day earns its extra day of return.
Cash flow signs
Money leaving your pocket is negative: initial buys, additional investments, fees you pay. Money coming back is positive: sells and dividends. What you still hold goes in its own final-value card, entered as if you sold it all today — that is the number people forget, and without it the math has no inflow.
XIRR vs CAGR
CAGR needs one start value, one end value, and a clean time span. XIRR handles money entering and leaving at any dates in between. For a single buy-and-hold position the two converge to the same number; once you add or withdraw along the way, only XIRR reflects what your money actually did.
Frequently Asked Questions
List every dated cash flow: money you invest as a negative amount, money you receive as a positive amount, and finish by entering what your holding is worth today in the final-value card. The annual rate that makes all of it net to zero is the XIRR. The calculator above solves it instantly, using the same method and day count as Excel.
XIRR solves 0 = Σ Pi ÷ (1 + r)^((di − d0) ÷ 365), where Pi is each cash flow and di − d0 is its day distance from the first flow. There is no closed-form solution, so calculators iterate numerically: this one uses Newton-Raphson with a bisection fallback and returns the same result as Excel's XIRR function.
IRR treats cash flows as evenly spaced periods and never looks at the calendar. XIRR prices each flow at its actual date and reports a true annualized rate. For investments made at random times, with dividends and partial sells in between, XIRR is the honest measure; IRR quietly assumes a regularity that real portfolios never have.
Money leaving your pocket is negative: initial buys, additional investments, fees you paid yourself. Money coming back is positive: sells and dividends. And the number people forget — what you still hold today — goes in the final-value card, entered as if you sold it all today. Without it the series has no inflow and cannot solve.
The usual causes: fewer than two dated flows, all amounts with the same sign, a typo in an amount, or outflows that no inflow ever repays. Excel shows #NUM! in these cases. This calculator names the exact condition that failed, so you know which row to fix.
Yes. The calculator runs entirely in your browser and this page performs no lookups at all: no exchange rates, no server storage, nothing about your figures leaves the tab. Your entries are kept only in this browser (localStorage) so the page remembers them next visit, and Reset wipes them instantly.