Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument / verified-clean

IRR Solver

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: VERIFIED_CLEANLifecycle: verified-clean

Inspectable records

Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Area
Finance, Economics & Business (educational only — never individualized investment, tax, or legal advice)
Tranche
tranche-6
Evidence ID
t6-021
Ledger rows
1

No ledger note is attached.

Review findings

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.

Formula and scope findings

  • 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.

Unit assumptions

  • 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.

Boundary hardening

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.

Errata and corrections

No applied erratum is attached to this unique-name record.

Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

{
  "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%."
}

Related workflows

No source-defined multi-instrument workflow membership is recorded.

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json · VERIFIED_CLEAN
  • evidence-tranche6/tranche6-results.json
  • BOUNDARY_HAZARD_CATALOG.json