{
  "tool_id": "art-326-tvm-xirr",
  "note": "golden_hash is empty until first golden-parity.test.mjs --update. Vector 1 is the published Microsoft Excel XIRR help-documentation example (5 irregular dated flows, anchor 2008-01-01), cross-checked against the kernel's own deterministic bisection before being recorded here.",
  "vectors": [
    {
      "name": "xirr_excel_doc_example",
      "description": "Microsoft Excel XIRR function documentation example: -10000 at 2008-01-01, then 2750/4250/3250/2750 at irregular dates through 2009-04-01. Published result 37.34% (rounded); kernel converges to 37.336253%.",
      "policy_parameters": {
        "cash_flows": [
          {
            "amount": -10000,
            "date": "2008-01-01"
          },
          {
            "amount": 2750,
            "date": "2008-03-01"
          },
          {
            "amount": 4250,
            "date": "2008-10-30"
          },
          {
            "amount": 3250,
            "date": "2009-02-15"
          },
          {
            "amount": 2750,
            "date": "2009-04-01"
          }
        ]
      },
      "output_payload": {
        "xirr_pct": 37.336253,
        "num_cash_flows": 5,
        "anchor_date": "2008-01-01",
        "iterations": 34,
        "converged": true,
        "bracket_lo_pct": -99.99,
        "bracket_hi_pct": 1000,
        "tolerance": 1e-9,
        "method": "bisection",
        "day_count_convention": "ACT/365",
        "regulatory_basis": "Excel XIRR semantics: actual/365 day-count, anchored to the first cash flow date, annualized rate solved from irregular-interval dated cash flows",
        "note": "XIRR solved by deterministic bisection over the declared [bracket_lo, bracket_hi] rate bracket. Day count is fixed at actual/365 per Excel/1004 semantics (not caller-configurable, matching the published XIRR definition exactly). Requires a sign change in NPV(bracket_lo)..NPV(bracket_hi) across the dated flows; widen the bracket if bracket_valid is false."
      },
      "golden_hash": "dd8c2d1b0d8f7cfbc5ceb26845c362d3f3a85480948e0eac53eaad947ea82892"
    }
  ]
}
