Page actions
instrument mechanism / verified-clean
IRR Solver mechanism
The inspectable method record for IRR Solver, kept separate from implementation and qualification.
Model scope
The NPV formula is standard for equally spaced cash flows, but the missing period convention, solver controls, root-selection policy, and MIRR definitions prevent an unconditional PASS. Return decimal IRR internally, display percentage separately, and explicitly report no-root and multiple-root cases.
- The core IRR equation is standard, but the specification does not define the time-period convention: each cash-flow-list index must represent an equal period, with CF_0 at t=0.
- The Newton-Raphson/bisection choice is underspecified: no initial guess, bracketing rule, stopping tolerance, maximum iterations, or fallback behavior is given.
- IRR is not necessarily unique for non-conventional cash flows; the implementation must report all discovered roots or clearly state its root-selection policy.
- The domain constraint r > -1 is required for ordinary real-valued discounting. Rates at or below -100% cause undefined or non-real powers for general integer t.
- MIRR is labeled optional but has no finance convention specified for the finance rate, reinvestment rate, treatment of negative cash flows, or period units.
- The output label 'IRR %' is ambiguous unless the returned decimal rate and percentage display convention are explicitly distinguished.
Units and conventions
- Cash flows use one consistent currency unit; the currency itself does not affect IRR.
- The list element at index t is CF_t and represents an equal time interval; CF_0 occurs at time zero.
- The computed rate is per cash-flow-list period. If periods are monthly, annualization is (1+r_monthly)^12-1; if annual, no annualization is applied.
- Newton-Raphson calculations below use a deterministic initial guess and tolerance of 1e-10 on the rate or NPV residual; displayed percentages multiply the decimal rate by 100.
- The valid ordinary real-rate domain is r > -1.
Inspectable vector
One of 4 source-bound review vectors:
{
"inputs": {
"cash_flows": [
-1000,
1100
],
"method": "Newton-Raphson",
"initial_guess": 0,
"tolerance": 1e-10,
"period": "annual"
},
"expected_outputs": {
"irr_decimal": "0.100000000000000",
"irr_percent": "10.0000000000000%",
"convergence": "converged"
},
"working": "NPV(r) = -1000 + 1100/(1+r). NPV'(r) = -1100/(1+r)^2. Iteration 0: r0=0, NPV=100, NPV'=-1100, so r1=0-100/(-1100)=0.0909090909. Iteration 1: NPV(r1)=-1000+1100/(12/11)=-1000+1008.333333=8.333333; NPV'(r1)=-1100(11/12)^2=-924.305556; r2=0.0909090909-8.333333/(-924.305556)=0.0999248685. Iteration 2 gives r3 approximately 0.0999999949, and the next iteration gives 0.100000000000000. Therefore IRR=10.0000000000000%."
}Failure boundary
BREAK_CLAIMED · SELF_FLAGGED
The specification exposes undefined evaluations at r=-1, no-real-solution cash flows, and multiple IRRs; a solver that assumes one finite root or does not guard the 1+r denominator can fail or return a misleading result.
Other records
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche6/tranche6-results.jsonBOUNDARY_HAZARD_CATALOG.json