Tool 5

Investment calculators · Dated cash flows

XIRR Calculator

Calculate money-weighted annual returns from actual dates. Inspect a normalized schedule, leap-day counts and explicit numerical limits before interpreting the result.

Actual/365 annual rates. Conventional schedules have a unique-root method; nonconventional schedules require reduced polynomial degree at most 24. Unsupported cases are inconclusive, never a guessed single answer.

Preparing calculator…

Dated cash flows and actions

Dates and signed amounts

Negative means money invested or paid; positive means received. Include an ending valuation as one dated receipt only if it is not already counted in sale proceeds.

Formatting only; no FX conversion or automatic tax treatment. Results are annual actual/365 rates.

Cash flow 1
Cash flow 2

2–25 rows. Dates 1900-01-01 through 2100-12-31; native pickers may display your local date format, while the underlying value is YYYY-MM-DD. Amounts: ungrouped decimal point, up to 8 fractional places, absolute maximum 10^10. Blanks are not zero. Dates are sorted and same-day amounts combined visibly.

Annual XIRR · actual/365

Enter every date and amount, then calculate, or load a verified example. Solver code loads on first calculation.

Conventional schedules use a proven unique-root method. Nonconventional schedules require reduced degree ≤ 24; others are inconclusive. Reporting range: greater than −99.9999999999%, less than 100000000% annually. No clipping or partial root lists. Inputs stay in browser memory; after the solver loads, calculation works offline.

Audit dates and understand limits

Dates are sorted and same-day amounts combined exactly in a visible table. All-root handling is bounded: nonconventional schedules with reduced degree above 24 are inconclusive. No preferred, clipped or partial rate list is shown.

Read the complete XIRR guide

Formula and methodology

XNPV(r) = Σ C_i / (1+r)^((d_i−d_0)/365) = 0
Displayed annual XIRR (%) = 100r

For each date, count elapsed Gregorian calendar days from the earliest date. Divide that integer by 365 and use it as the discount exponent. A leap day increases the numerator; it does not change the denominator to 366. The result is already annual, unlike an IRR labelled per month or per unspecified period. A chronological net-flow sequence with one sign change has exactly one admissible root. The implementation uses an 80-digit log-growth variable and a strictly monotone log-sum-exp balance, with bounded bisection and a normalized residual check. Two nonzero dated terms have a direct logarithmic solution. A numerical convergence failure remains inconclusive, even though uniqueness is known mathematically. For more than one sign change, integer day offsets are divided by their greatest common divisor g. With x=(1+r)^(-g/365), XNPV becomes a polynomial. Only reduced degree at most 24 is supported for complete exact root counting. The inherited integer/Sturm solver isolates every positive root before annual conversion and flags repeated roots. Higher-degree mixed-sign schedules return inconclusive, not one guessed XIRR.

Verified worked examples

Pay 100 on 2023-01-01 and receive 110 on 2024-01-01. The gap is 365 days. Solve −100+110/(1+r)=0, giving r=0.10 and a 10% annual XIRR. Substituting 1.1 into the equation verifies zero XNPV. Move the same amounts to 2024-01-01 and 2025-01-01. The gap becomes 366 days. The annual rate is (1.1^(365/366)−1)×100, approximately 9.971359% rather than 10%. This difference comes from the stated actual/365 convention, not a different monetary profit. Dates 2021-01-01, 2022-01-01 and 2023-01-01 are spaced 365 days apart. Flows −100,+230,−132 have two annual roots, 10% and 20%. Both make XNPV zero. Replacing the amounts by −100,+200,−100 produces a repeated 0% root; −100,+50,−100 has no real root. Mixed signs alone do not guarantee an answer. For genuinely irregular dates, the independently reproduced Microsoft example uses −10000 on 2008-01-01, +2750 on 2008-03-01, +4250 on 2008-10-30, +3250 on 2009-02-15 and +2750 on 2009-04-01. Its annual XIRR is approximately 37.336253%. The example is not an investment recommendation.

Inputs and interpretation

Use negative amounts for money paid into the measured investment and positive amounts for money received. Additional contributions are negative; withdrawals and sale proceeds are positive. Keep a consistent investor perspective. Reversing every sign preserves the roots while reversing the economic direction. For a holding still owned at the measurement date, a defensible ending valuation can be entered as a hypothetical receipt on that date. This is a valuation assumption, not an actual withdrawal. Do not include both full sale proceeds and the same terminal value. A starting holding also needs a consistent initial valuation and date. XIRR cannot reconstruct missing history. This tool anchors at the earliest entered date, sorts dates and combines all amounts on the same date exactly. The normalized table shows the resulting net flows, including zero-net dates. Changing the anchor multiplies XNPV by a positive factor for admissible rates and therefore does not change the root set.

The editor begins with empty rows. Enter every date and amount; a blank is not zero. The native date picker may display a local format, but its value is YYYY-MM-DD. Amounts use an ungrouped decimal point, not commas, currency symbols or scientific notation. Add or remove the last row as required, up to 25 rows. Calculate loads the local worker on first use. Read the normalized sorted schedule and its same-day aggregation warnings. Input order remains visible in the editor. Editing or clearing invalidates active work, and stale responses cannot replace a newer scenario. Cancel stops active solving. Display precision does not increase the accuracy of your financial evidence. The worker can calculate offline after its code has loaded. Financial dates and amounts stay in browser memory; the application does not submit them, put them in URLs or persist them to storage. Clear values removes the current scenario. Theme preference is separate from financial data.

One root is a mathematical result conditional on the supplied amounts, dates and supported method. Several roots mean there is no unique XIRR, and the highest one is not designated the correct answer. Repeated roots describe algebraic multiplicity and may not change the sign of XNPV when crossed. No root is returned only when the same-sign argument or exact supported polynomial count proves it. Inconclusive means a resource limit, unsupported reduced degree, worker failure, residual check or reporting-boundary uncertainty prevented a safe answer. Outside range means at least one root is beyond the explicit annual reporting limits; the tool withholds the whole list rather than hiding that root. All same-day net amounts cancelling, or every net amount being zero, makes the problem indeterminate: every admissible rate gives zero XNPV. A single nonzero same-date net amount has no root. A 0% XIRR must therefore be distinguished from all-zero data.

Do not substitute an ending account balance for profit while also counting it as sale proceeds. Include contributions with negative signs and withdrawals with positive signs, and choose a consistent observation window. Combining duplicate dates is legitimate; silently moving a receipt to an earlier date changes the equation. A 10% gain in a very short interval is not a promise that the same gain can be repeated throughout a year. XIRR annualizes a historical or hypothetical dated stream. Missing dates, rounded valuations and omitted expenses can dominate the numerical solver precision. Do not interpret a spreadsheet error as proof of no solution, or one converged guess as proof of uniqueness. Also do not assume that a leap-year anniversary must produce the same annual XIRR as a 365-day anniversary under actual/365.

Assumptions and numerical limits

Choose one currency measurement basis before entering a cross-border investment. The USA/USD, UK/GBP, Canada/CAD, Australia/AUD and India/INR options format money and dates; they do not fetch exchange rates, convert transactions or apply tax law. Historical exchange rates and valuation assumptions can materially change the measured cash flows. This is a money-weighted return: the timing and size of investor contributions affect it. It is not a time-weighted manager-performance measure. It does not simulate reinvestment, inflation, future distributions or a cost of capital. A mathematically high rate can coexist with small cash profit, high risk or unreliable valuations.

Supported dates are 1900-01-01 through 2100-12-31, using real Gregorian calendar dates. Impossible dates, ambiguous slash formats and date-time strings are rejected. The fictitious spreadsheet date 1900-02-29 is not supported. Integer UTC calendar-day arithmetic makes the result independent of time zone and daylight saving transitions. Enter 2–25 rows with at most 32 characters and 8 fractional places per amount; each absolute amount is at most 10^10. Same-day aggregation is exact within the declared precision. Extremely short holding periods can produce extreme annualization and should not be mistaken for a forecast. The open reporting interval is greater than −99.9999999999% and less than 100000000% annually. Rates outside it are not clipped; proximity too close to classify is inconclusive. Conventional refinement has at most 256 iterations and a normalized XNPV residual tolerance of 10^−24. Nonconventional reduced degree must be at most 24; the reused exact solver has 200000 counted operations, monitored 8192-bit integers and 4096 subdivisions. A five-second worker deadline applies to both methods. Extended polynomial refinement uses 10^−22 percentage-point width, 10^−28 relative discount-factor width and 10^−24 near-zero rate resolution before 80-digit annual conversion. These are numerical safeguards, not a formal proof of floating-point error bounds or independent professional financial review. A failed limit returns no partial rate list. Very close rates can display alike at two decimal places; the root count remains visible. Annual conversion checks the entire isolating interval, not only its midpoint. The nonconventional method requires log-interval width at most 10^−24 and uses a conservative 10^−24 log-growth guard near reporting boundaries; uncertainty withholds the whole list.

Microsoft documents XIRR with actual/365 dates and a guess-based solver; MathWorks documents dated-return conventions and options. This tool deliberately normalizes unordered and duplicate dates and does not promise identical spreadsheet parsing, first-date restrictions, guess selection or convergence. The university source supports the sign-change rule used in the uniqueness argument. Independent Python datetime, exact fractions, 100-digit mpmath and SymPy reference calculations cross-check selected cases without importing application mathematics. They are evidence, not formal verification or professional certification. The Capital Intelligence provides educational tools and does not provide personalized investment advice. Editorial responsibility and AI assistance are disclosed below.

Frequently asked questions

Does a leap year change the denominator to 366?
No. Actual elapsed days include February 29, but the annual exponent denominator remains 365. The leap-year example has a 366-day numerator.
Can I enter unsorted or duplicate dates?
Yes. The original rows remain in the editor; a visible normalized table sorts dates and sums same-day amounts exactly. Cancelled dates remain visible as zero net flows.
Why is a valid schedule inconclusive?
Mixed-sign nonconventional schedules require reduced polynomial degree at most 24. Arithmetic limits, worker failure and numerical uncertainty can also be inconclusive. None of these proves there is no root.
Where does my current portfolio value go?
When measuring an unsold holding, enter a defensible ending valuation as one positive flow on the measurement date. Do not also count the same full value as sale proceeds.
Why are multiple annual rates shown?
Some nonconventional dated flows have several roots. For supported reduced degree, all admissible roots are isolated before conversion; no preferred rate or partial list is chosen.
Are dates, money or exchange rates sent to a server?
Financial values remain in local memory. The worker downloads local code on first use; after loading it can solve offline. Currency selection is formatting only and no exchange rates are fetched.

Sources and related methods

Source and methodology review: . No guaranteed returns or personalized advice.

Find a financial tool