{
  "title": "CalculatorFlux cash-flow reference collection",
  "version": "1.0.0",
  "updated": "2026-09-10",
  "url": "https://calculatorflux.com/resources/cash-flow-reference-library",
  "currency": "USD",
  "rateUnits": "decimal annual rate (0.10 means 10%)",
  "timing": {
    "annual": "Index 0 is time zero; each following row is one year later, including zero-payment rows.",
    "dated": "Actual elapsed UTC calendar days from the earliest date, divided by 365."
  },
  "display": {
    "moneyDecimalPlaces": 2,
    "percentDecimalPlaces": 6
  },
  "verification": {
    "expectedRateAbsoluteTolerance": 1e-10,
    "expectedNpvAbsoluteTolerance": 1e-7,
    "engineRateAbsoluteTolerance": 1e-7,
    "scope": "Independent direct discounting, analytic or bisection root checks, separate MIRR aggregates, and production engine/import checks. No claim of external professional review or running Excel/Google Sheets."
  },
  "sources": [
    {
      "id": "microsoft-irr",
      "title": "Microsoft: IRR function",
      "url": "https://support.microsoft.com/en-us/excel/functions/irr-function",
      "scope": "Equal-period cash flows, ordering, zero versus empty cells, and the relationship to NPV."
    },
    {
      "id": "microsoft-npv",
      "title": "Microsoft: NPV function",
      "url": "https://support.microsoft.com/en-us/excel/functions/npv-function",
      "scope": "Spreadsheet NPV discounts its first listed value by one period; a time-zero payment is added separately."
    },
    {
      "id": "microsoft-mirr",
      "title": "Microsoft: MIRR function",
      "url": "https://support.microsoft.com/en-us/excel/functions/mirr-function",
      "scope": "Periodic MIRR with separate financing and reinvestment rates."
    },
    {
      "id": "microsoft-xirr",
      "title": "Microsoft: XIRR function and dated example",
      "url": "https://support.microsoft.com/en-us/excel/functions/xirr-function",
      "scope": "Actual elapsed days divided by 365; source of the five-row Microsoft illustrative fixture."
    }
  ],
  "cases": [
    {
      "id": "zero-period-retained",
      "title": "A quiet year still takes a year",
      "category": "Timing",
      "question": "Why must a year with no payment remain in an annual cash-flow schedule?",
      "mode": "annual",
      "amounts": [
        -1000,
        0,
        1210
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [
          0.1
        ],
        "irrStatus": "unique",
        "npv": 0,
        "mirr": 0.1
      },
      "explanation": "The investor pays 1,000 at time zero, receives nothing at the end of year one, and receives 1,210 at the end of year two. The 210 gain is spread over two years: 1,000 growing at 10% becomes 1,100 after one year and 1,210 after two. The zero carries timing information even though it contributes no money to the sum.",
      "mistake": "Deleting the zero moves the receipt into year one and changes the modeled investment. A blank spreadsheet cell can be ignored; use a numeric zero for a real empty period.",
      "assumptions": [
        "Rows represent time zero, year one and year two.",
        "The final receipt includes all returned capital and income; no omitted payments, fees or taxes."
      ],
      "derivation": [
        "0 = -1,000 + 0/(1+r) + 1,210/(1+r)^2.",
        "(1+r)^2 = 1.21, so the admissible rate r > -100% is 10%.",
        "NPV at 10% = -1,000 + 1,210/1.10^2 = 0."
      ],
      "sourceIds": [
        "microsoft-irr",
        "microsoft-npv"
      ],
      "provenance": "original"
    },
    {
      "id": "zero-period-deleted",
      "title": "The same receipt, one year earlier",
      "category": "Timing",
      "question": "What does the accidentally shortened schedule actually calculate?",
      "mode": "annual",
      "amounts": [
        -1000,
        1210
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [
          0.21
        ],
        "irrStatus": "unique",
        "npv": 100,
        "mirr": 0.21
      },
      "explanation": "This is a valid one-year investment with a 21% return. It becomes an error only when it is used to represent the two-year investment in the preceding case. The total gain remains 210, but receiving the money sooner increases both the annual rate and the NPV at the same discount rate.",
      "mistake": "Treating a different answer as a solver defect before checking whether the schedules represent the same dates.",
      "assumptions": [
        "The 1,210 receipt really occurs one year after the 1,000 payment.",
        "Compare with zero-period-retained to isolate timing; the payment amounts do not change."
      ],
      "derivation": [
        "0 = -1,000 + 1,210/(1+r), so r = 1,210/1,000 - 1 = 21%.",
        "NPV at 10% = -1,000 + 1,210/1.10 = 100.",
        "Deleting the middle zero raises the reported IRR from 10% to 21%, a change of 11 percentage points."
      ],
      "sourceIds": [
        "microsoft-irr",
        "microsoft-npv"
      ],
      "provenance": "original"
    },
    {
      "id": "two-valid-irrs",
      "title": "One schedule, two mathematically valid IRRs",
      "category": "Ambiguous returns",
      "question": "How can both 10% and 20% solve the same cash flows?",
      "mode": "annual",
      "amounts": [
        -100,
        230,
        -132
      ],
      "discountRate": 0.15,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [
          0.1,
          0.2
        ],
        "irrStatus": "multiple",
        "npv": 0.18903591682420995,
        "mirr": 0.06438029172162207
      },
      "explanation": "The final payment reverses the cash-flow sign a second time. That creates a different shape from the usual initial payment followed only by receipts: the NPV crosses zero twice. At a 15% discount rate NPV is slightly positive, while it is negative below 10% and above 20%. Neither root alone gives the usual simple rule that every lower hurdle rate must be acceptable.",
      "mistake": "Picking the larger root because it looks better, or assuming the first result returned by an iterative spreadsheet function is the only solution.",
      "assumptions": [
        "All three payments are required parts of the same annual schedule.",
        "IRR means a real rate strictly above -100%; the NPV decision depends on an independently justified discount rate."
      ],
      "derivation": [
        "Set y = 1+r. Multiplying NPV by y^2 gives -100y^2 + 230y - 132.",
        "Factor: -100(y-1.10)(y-1.20) = 0, so r = 10% or 20%.",
        "NPV at 15% = -100 + 230/1.15 - 132/1.15^2 = 0.1890359168.",
        "With finance 8% and reinvestment 5%, MIRR uses PV of payments 213.1687242798 and FV of receipts 241.5, giving 6.43802917%."
      ],
      "sourceIds": [
        "microsoft-irr",
        "microsoft-mirr"
      ],
      "provenance": "original"
    },
    {
      "id": "sign-changes-without-irr",
      "title": "Changing signs does not guarantee an IRR",
      "category": "Ambiguous returns",
      "question": "Can a schedule contain both payments and receipts and still have no real IRR?",
      "mode": "annual",
      "amounts": [
        -100,
        50,
        -100
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [],
        "irrStatus": "none",
        "npv": -137.1900826446281,
        "mirr": -0.4683398815632406
      },
      "explanation": "Here the absence of a root can be proved, rather than inferred from a failed numerical search. The discounted middle receipt never offsets the two payments at any real admissible rate. Both signs are necessary for many ordinary IRR calculations, but they are not sufficient. A numerical search that finds nothing cannot establish this general conclusion without the algebra.",
      "mistake": "Repeatedly changing the starting guess because both positive and negative amounts are present. This example has no real solution for any guess to find.",
      "assumptions": [
        "Payments occur at three consecutive annual dates.",
        "No terminal asset value or other receipt has been omitted."
      ],
      "derivation": [
        "Set y = 1+r > 0. The zero-NPV equation becomes -100y^2 + 50y - 100 = 0.",
        "The discriminant is 50^2 - 4(100)(100) = -37,500, so there are no real roots.",
        "Equivalently, -100y^2 + 50y - 100 = -100(y-0.25)^2 - 93.75, which is always negative.",
        "NPV at 10% is -137.1900826446. MIRR at finance 8% and reinvestment 5% is -46.83398816%."
      ],
      "sourceIds": [
        "microsoft-irr",
        "microsoft-mirr"
      ],
      "provenance": "original"
    },
    {
      "id": "capital-returned-without-growth",
      "title": "Getting the money back can still have negative NPV",
      "category": "Return and value",
      "question": "Why is NPV negative when the investment returns every unit of capital?",
      "mode": "annual",
      "amounts": [
        -1000,
        0,
        1000
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [
          0
        ],
        "irrStatus": "unique",
        "npv": -173.55371900826458,
        "mirr": 0
      },
      "explanation": "The nominal gain is zero and the annual IRR is exactly zero. NPV asks a different question: how much is that year-two receipt worth at the chosen opportunity cost? At 10%, its present value is only 826.4462809917. Returning the same face amount does not compensate for the two-year delay under that assumption.",
      "mistake": "Reading a negative NPV as proof that less cash comes back than went in. Discounted value and nominal gain are different quantities.",
      "assumptions": [
        "The discount rate is a hypothetical 10% annual opportunity cost.",
        "No inflation adjustment is embedded; inputs and discount rate are interpreted consistently in nominal terms."
      ],
      "derivation": [
        "0 = -1,000 + 1,000/(1+r)^2 implies r = 0% for r > -100%.",
        "NPV at 10% = -1,000 + 1,000/1.10^2 = -173.5537190083.",
        "Nominal gain = -1,000 + 1,000 = 0."
      ],
      "sourceIds": [
        "microsoft-irr",
        "microsoft-npv"
      ],
      "provenance": "original"
    },
    {
      "id": "loss-spread-over-two-years",
      "title": "A 19% total loss is a 10% annual loss over two years",
      "category": "Return and value",
      "question": "Why is a two-year 19% loss not the same as minus 9.5% per year?",
      "mode": "annual",
      "amounts": [
        -1000,
        0,
        810
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [
          -0.1
        ],
        "irrStatus": "unique",
        "npv": -330.57851239669435,
        "mirr": -0.1
      },
      "explanation": "Annual compounding applies each year's change to the remaining amount. A 10% decline takes 1,000 to 900; another 10% takes 900 to 810. Dividing the 19% total loss by two would describe a simple average, not the compound annual rate that reproduces the terminal receipt.",
      "mistake": "Rejecting every negative IRR as a calculator error, or dividing the total percentage change by the number of years.",
      "assumptions": [
        "There are no intervening deposits or withdrawals.",
        "The final 810 is the complete year-two receipt."
      ],
      "derivation": [
        "Terminal multiple = 810/1,000 = 0.81.",
        "Annual IRR = sqrt(0.81) - 1 = -10%.",
        "NPV at 10% = -1,000 + 810/1.10^2 = -330.5785123967."
      ],
      "sourceIds": [
        "microsoft-irr",
        "microsoft-npv"
      ],
      "provenance": "original"
    },
    {
      "id": "scale-small-high-rate",
      "title": "The smaller project wins the percentage comparison",
      "category": "Comparing projects",
      "question": "Does a higher IRR necessarily create more discounted value?",
      "mode": "annual",
      "amounts": [
        -50000,
        62500
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [
          0.25
        ],
        "irrStatus": "unique",
        "npv": 6818.181818181816,
        "mirr": 0.25
      },
      "explanation": "This project earns 25% on 50,000. It has the higher percentage return in the scale comparison, but its NPV at 10% is 6,818.18. The larger companion project earns a lower rate on much more capital and adds more discounted currency value. The two metrics answer different questions, so their rankings need not agree.",
      "mistake": "Assuming that a 25% rate must be preferable without considering the investment amount, capital constraints, risk, or whether both opportunities can be undertaken.",
      "assumptions": [
        "Compare with scale-large-lower-rate using the same one-year horizon and hypothetical 10% discount rate.",
        "For the isolated ranking example, both projects are mutually exclusive, similarly risky and fully fundable; there are no other strategic differences."
      ],
      "derivation": [
        "IRR = 62,500/50,000 - 1 = 25%.",
        "NPV at 10% = 62,500/1.10 - 50,000 = 6,818.1818181818.",
        "Nominal gain is 12,500; it is not the same as discounted value."
      ],
      "sourceIds": [
        "microsoft-irr",
        "microsoft-npv"
      ],
      "provenance": "original"
    },
    {
      "id": "scale-large-lower-rate",
      "title": "The larger project wins the NPV comparison",
      "category": "Comparing projects",
      "question": "How can the 14% project add more value than the 25% project?",
      "mode": "annual",
      "amounts": [
        -500000,
        570000
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [
          0.14
        ],
        "irrStatus": "unique",
        "npv": 18181.81818181812,
        "mirr": 0.14
      },
      "explanation": "The additional 450,000 of initial capital buys an additional 507,500 at year one relative to the smaller project. That incremental investment earns 12.77777778%, exceeding the assumed 10% hurdle. Under the stated comparable-risk and funding assumptions, choosing the larger project adds 11,363.64 more NPV despite its lower overall IRR.",
      "mistake": "Treating this example as a universal instruction to choose the biggest project. Financing limits, different risks or nonexclusive opportunities change the decision being analyzed.",
      "assumptions": [
        "Use the same mutually exclusive, comparable-risk assumptions as scale-small-high-rate.",
        "The additional 450,000 is available; the 10% hurdle applies consistently to the incremental cash flows."
      ],
      "derivation": [
        "IRR = 570,000/500,000 - 1 = 14%.",
        "NPV at 10% = 570,000/1.10 - 500,000 = 18,181.8181818181.",
        "Incremental IRR = (570,000-62,500)/(500,000-50,000) - 1 = 12.77777778%.",
        "Incremental NPV = 18,181.8181818181 - 6,818.1818181818 = 11,363.6363636363."
      ],
      "sourceIds": [
        "microsoft-irr",
        "microsoft-npv"
      ],
      "provenance": "original"
    },
    {
      "id": "double-money-two-years",
      "title": "Doubling in two years",
      "category": "Comparing projects",
      "question": "What does a 2x multiple leave out?",
      "mode": "annual",
      "amounts": [
        -1000,
        0,
        2000
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [
          0.41421356237309503
        ],
        "irrStatus": "unique",
        "npv": 652.8925619834708,
        "mirr": 0.41421356237309515
      },
      "explanation": "A 2x receipt-to-payment multiple describes how much money returns, but not how long it takes. With a single initial payment and a single final receipt, the annual IRR is the compound growth rate needed to bridge them. Doubling in two years requires about 41.42% a year; the five-year companion reaches the same total with a much lower annual rate.",
      "mistake": "Calling a 2x multiple a 100% annual return without stating the holding period and intervening cash flows.",
      "assumptions": [
        "No interim receipts, additional payments or remaining asset value.",
        "The companion case changes only the receipt's timing."
      ],
      "derivation": [
        "Receipt-to-payment multiple = 2,000/1,000 = 2x.",
        "IRR = 2^(1/2) - 1 = 41.4213562373%.",
        "NPV at 10% = -1,000 + 2,000/1.10^2 = 652.8925619835."
      ],
      "sourceIds": [
        "microsoft-irr",
        "microsoft-npv"
      ],
      "provenance": "original"
    },
    {
      "id": "double-money-five-years",
      "title": "Doubling in five years",
      "category": "Comparing projects",
      "question": "Why does the same 2x multiple produce a much smaller annual return?",
      "mode": "annual",
      "amounts": [
        -1000,
        0,
        0,
        0,
        0,
        2000
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [
          0.148698354997035
        ],
        "irrStatus": "unique",
        "npv": 241.84264611830986,
        "mirr": 0.1486983549970351
      },
      "explanation": "The 1,000 gain is unchanged, but the investor waits three additional years. About 14.87% compounded for five years produces the same final 2,000 that required 41.42% over two years. This is why a multiple belongs next to timing information. Neither number describes risk or guarantees that early receipts can be reinvested at an attractive rate.",
      "mistake": "Using multiple alone to compare holding periods, or applying the single-payment growth formula to a schedule with intermediate cash flows.",
      "assumptions": [
        "Rows retain every year from time zero to year five.",
        "There are no intermediate payments or receipts; this restriction makes the direct growth formula valid."
      ],
      "derivation": [
        "IRR = 2^(1/5) - 1 = 14.8698354997%.",
        "NPV at 10% = -1,000 + 2,000/1.10^5 = 241.8426461183.",
        "Total nominal gain remains 1,000 in both doubling cases."
      ],
      "sourceIds": [
        "microsoft-irr",
        "microsoft-npv"
      ],
      "provenance": "original"
    },
    {
      "id": "mirr-with-later-expense",
      "title": "A later repair bill changes the MIRR financing side",
      "category": "Costs and reinvestment",
      "question": "When does the MIRR finance rate actually affect the answer?",
      "mode": "annual",
      "amounts": [
        -1000,
        700,
        -300,
        1000
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [
          0.17202458686253375
        ],
        "irrStatus": "unique",
        "npv": 139.74455296769315,
        "mirr": 0.1211554528103409
      },
      "explanation": "The 300 year-two payment must be discounted to time zero using the 8% finance rate. Separately, the 700 year-one receipt is compounded for two years at the 5% reinvestment rate; the final 1,000 receipt is already at the endpoint. MIRR then connects those two aggregates over three years. This produces 12.12%, compared with an IRR of 17.20%, under the chosen assumptions.",
      "mistake": "Assuming the MIRR finance rate changes every example. If the only negative payment occurs at time zero, there is no later negative amount for that rate to discount.",
      "assumptions": [
        "The year-two payment is an additional required cost, not a withdrawal that can be omitted.",
        "The 8% finance and 5% reinvestment rates are hypothetical annual assumptions, not observed borrowing terms or promised returns."
      ],
      "derivation": [
        "PV of payments = 1,000 + 300/1.08^2 = 1,257.2016460905.",
        "FV of receipts at year three = 700(1.05)^2 + 1,000 = 1,771.75.",
        "MIRR = (1,771.75/1,257.2016460905)^(1/3) - 1 = 12.1155452810%.",
        "For root uniqueness, let x = 1/(1+r) > 0. The NPV polynomial is -1,000 + 700x - 300x^2 + 1,000x^3. Its derivative 700 - 600x + 3,000x^2 is always positive, so it crosses zero only once."
      ],
      "sourceIds": [
        "microsoft-mirr",
        "microsoft-irr"
      ],
      "provenance": "original"
    },
    {
      "id": "before-specified-fees",
      "title": "Start with a complete schedule before subtracting fees",
      "category": "Costs and reinvestment",
      "question": "What does a gross-to-net comparison need beyond two percentages?",
      "mode": "annual",
      "amounts": [
        -10000,
        800,
        800,
        11800
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [
          0.10992351207916984
        ],
        "irrStatus": "unique",
        "npv": 253.94440270473206,
        "mirr": 0.10580948445386174
      },
      "explanation": "This hypothetical three-year schedule is the starting point for a controlled fee comparison. The final 11,800 includes the last 800 operating receipt and 11,000 of exit proceeds. Nothing in the example establishes a typical market return or a typical fee burden. Its value is that every change in the companion schedule can be traced to a stated charge on a stated date.",
      "mistake": "Subtracting a generic number of percentage points from IRR and calling the result a net return.",
      "assumptions": [
        "The initial payment is 10,000; operating receipts occur at each year end.",
        "Before-fee here means before only the four charges specified in after-specified-fees. The example makes no claim about a regulated gross-return reporting definition."
      ],
      "derivation": [
        "NPV at 10% = -10,000 + 800/1.10 + 800/1.10^2 + 11,800/1.10^3 = 253.9444027047.",
        "Solving that discounted-sum equation for zero gives IRR = 10.9923512079%.",
        "At reinvestment 5%, terminal receipts aggregate to 800(1.05)^2 + 800(1.05) + 11,800 = 13,522."
      ],
      "sourceIds": [
        "microsoft-irr",
        "microsoft-mirr",
        "microsoft-npv"
      ],
      "provenance": "original"
    },
    {
      "id": "after-specified-fees",
      "title": "Four explicit charges turn positive NPV negative",
      "category": "Costs and reinvestment",
      "question": "How much do these fees change the investor's actual result?",
      "mode": "annual",
      "amounts": [
        -10200,
        600,
        600,
        11600
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [
          0.0829146102956072
        ],
        "irrStatus": "unique",
        "npv": -443.42599549211445,
        "mirr": 0.08118769345827515
      },
      "explanation": "Charge 200 at inception and another 200 at each of the three year ends. The initial outflow becomes 10,200; each subsequent receipt falls by 200. Total nominal charges are 800, but their present value at 10% is 697.3703981968. The resulting IRR is about 8.29%, and the previously positive NPV becomes negative under the unchanged hurdle rate.",
      "mistake": "Using the nominal total fees as the NPV reduction, or reusing this example's IRR reduction for investments with different timing and cash flows.",
      "assumptions": [
        "Each of the four charges is exactly 200; no tax effects, percentage charges or performance fees are modeled.",
        "All other amounts and timing match before-specified-fees."
      ],
      "derivation": [
        "Fee cash-flow differences from the before-fee case are [-200, -200, -200, -200].",
        "PV of fees = 200 + 200/1.10 + 200/1.10^2 + 200/1.10^3 = 697.3703981968.",
        "After-fee NPV = 253.9444027047 - 697.3703981968 = -443.4259954921.",
        "IRR changes from 10.9923512079% to 8.2914610296%, a difference of 2.7008901784 percentage points."
      ],
      "sourceIds": [
        "microsoft-irr",
        "microsoft-npv"
      ],
      "provenance": "original"
    },
    {
      "id": "microsoft-dated-example",
      "title": "Reproduce Microsoft's dated XIRR example",
      "category": "Calendar dates",
      "question": "Can we reproduce a documented dated example without treating rows as years?",
      "mode": "dated",
      "amounts": [
        -10000,
        2750,
        4250,
        3250,
        2750
      ],
      "dates": [
        "2008-01-01",
        "2008-03-01",
        "2008-10-30",
        "2009-02-15",
        "2009-04-01"
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [
          0.3733625335188314
        ],
        "irrStatus": "unique",
        "npv": 1994.510040653262,
        "mirr": null
      },
      "explanation": "These five amounts and dates come from Microsoft's XIRR documentation, which displays 37.34%. Direct discounting reproduces that rounded answer. The elapsed intervals are 0, 60, 303, 411 and 456 days from the first payment, not years zero through four. The extra digits here are the independently calculated root of those specified inputs, not evidence that Excel itself was run in this study.",
      "mistake": "Feeding the five amounts into a periodic IRR function and expecting the dated answer. That substitutes four equal periods for an actual 456-day schedule.",
      "assumptions": [
        "Dates are calendar dates with no time-of-day component; year fractions use actual elapsed days divided by 365.",
        "This is a third-party illustrative fixture, not an observed investment. Periodic MIRR is not reported for dated cases in this collection."
      ],
      "derivation": [
        "Solve -10,000 + 2,750/(1+r)^(60/365) + 4,250/(1+r)^(303/365) + 3,250/(1+r)^(411/365) + 2,750/(1+r)^(456/365) = 0.",
        "The independently calculated rate is 37.3362533519%, rounding to Microsoft's displayed 37.34%.",
        "At a 10% annual discount rate, the same dated sum gives NPV = 1,994.5100406533."
      ],
      "sourceIds": [
        "microsoft-xirr"
      ],
      "provenance": "microsoft-illustrative"
    },
    {
      "id": "leap-year-actual-365",
      "title": "A calendar anniversary need not be one XIRR year",
      "category": "Calendar dates",
      "question": "Why does a 10% gain across this anniversary produce XIRR slightly below 10%?",
      "mode": "dated",
      "amounts": [
        -1000,
        1100
      ],
      "dates": [
        "2023-07-01",
        "2024-07-01"
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [
          0.09971358593414126
        ],
        "irrStatus": "unique",
        "npv": -0.26108969043878005,
        "mirr": null
      },
      "explanation": "This interval crosses February 29, 2024, so it contains 366 days. Under the actual-days/365 convention, the receipt occurs 366/365 years after the payment. The total gain is exactly 10%, but the annualized rate is about 9.9714%. The difference is a day-count effect; changing the denominator to 366 would define a different calculation.",
      "mistake": "Rounding every calendar anniversary to one year while claiming to reproduce the documented XIRR convention.",
      "assumptions": [
        "The only cash flows are the dated initial payment and final receipt.",
        "Use actual days divided by a fixed 365, including intervals that cross a leap day; periodic MIRR is not reported."
      ],
      "derivation": [
        "Elapsed days = 366, so 0 = -1,000 + 1,100/(1+r)^(366/365).",
        "r = 1.10^(365/366) - 1 = 9.9713585934%.",
        "NPV at 10% = -1,000 + 1,100/1.10^(366/365) = -0.2610896904."
      ],
      "sourceIds": [
        "microsoft-xirr"
      ],
      "provenance": "original"
    },
    {
      "id": "same-date-offset",
      "title": "A zero balance with no elapsed time has no unique rate",
      "category": "Calendar dates",
      "question": "Is an equal payment and receipt on the same date a zero-percent annual return?",
      "mode": "dated",
      "amounts": [
        -1000,
        1000
      ],
      "dates": [
        "2026-01-01",
        "2026-01-01"
      ],
      "discountRate": 0.1,
      "financeRate": 0.08,
      "reinvestmentRate": 0.05,
      "expected": {
        "irrRoots": [],
        "irrStatus": "indeterminate",
        "npv": 0,
        "mirr": null
      },
      "explanation": "Both exponents are zero, so the rate disappears from the NPV equation. Every admissible rate gives the same zero balance. Reporting 0% as if it were a uniquely measured annual return would hide this loss of information. This differs from capital returned after two years: in that earlier case, time has elapsed and zero is the unique admissible IRR.",
      "mistake": "Equating an indeterminate rate with a zero return, or annualizing a result over a zero-length holding period.",
      "assumptions": [
        "The calendar-day model has no intraday timing and both entries share the same date.",
        "The receipt exactly offsets the payment. This is an algebraic edge case; it does not claim a particular spreadsheet error or output."
      ],
      "derivation": [
        "Both elapsed times are zero, so NPV(r) = -1,000/(1+r)^0 + 1,000/(1+r)^0 = 0.",
        "The equation holds for every r > -100%; there is no unique IRR to report.",
        "A compound annual rate would require division by a positive duration, which this schedule lacks."
      ],
      "sourceIds": [
        "microsoft-xirr"
      ],
      "provenance": "original"
    }
  ]
}
