{
  "tool_id": "art-463-recalc-suite",
  "note": "golden_hash filled by golden-parity.test.mjs --update; output_payload filled by fill-fixture-payloads.mjs. Vector 1: all 5 categories with a declared tolerance, mixed pass/flag. Vector 2: depreciation only, DDB method, no tolerance declared -- exercises the default 0/0 gate. Vector 3: no categories supplied -- finite gate / empty run.",
  "vectors": [
    {
      "name": "all_categories_with_tolerance",
      "description": "One item per category, tolerance_pct=5 declared. Depreciation straight-line matches exactly; interest slightly off but within tolerance; EPS diluted breaches; amortization matches; prepaid roll-forward breaches.",
      "policy_parameters": {
        "tolerance": {
          "abs": 0,
          "pct": 5
        },
        "depreciation": [
          {
            "asset_id": "A-1",
            "method": "straight_line",
            "cost": 10000,
            "salvage_value": 1000,
            "useful_life_years": 9,
            "period_number": 1,
            "client_reported_depreciation": 1000
          }
        ],
        "interest_accrual": [
          {
            "item_id": "I-1",
            "principal": 100000,
            "annual_rate_pct": 6,
            "days_accrued": 90,
            "day_count_basis": "actual_360",
            "client_reported_interest": 1490
          }
        ],
        "eps": [
          {
            "label": "FY2026",
            "net_income": 5000000,
            "preferred_dividends": 200000,
            "weighted_avg_shares_basic": 1000000,
            "weighted_avg_shares_diluted": 1100000,
            "client_reported_eps_basic": 4.8,
            "client_reported_eps_diluted": 3.8
          }
        ],
        "amortization": [
          {
            "item_id": "M-1",
            "principal": 120000,
            "periods_total": 10,
            "client_reported_amortization": 12000
          }
        ],
        "prepaid_rollforward": [
          {
            "item_id": "P-1",
            "beginning_balance": 50000,
            "additions": 10000,
            "amortized_current_period": 5000,
            "client_reported_ending_balance": 60000
          }
        ]
      },
      "output_payload": {
        "tolerance_used": {
          "abs": 0,
          "pct": 5,
          "declared_by_caller": true
        },
        "categories_run": [
          "depreciation",
          "interest_accrual",
          "eps",
          "amortization",
          "prepaid_rollforward"
        ],
        "depreciation": [
          {
            "asset_id": "A-1",
            "method": "straight_line",
            "period_number": 1,
            "recalculated_depreciation": 1000,
            "client_reported_depreciation": 1000,
            "variance": 0,
            "variance_pct": 0,
            "flagged": false
          }
        ],
        "interest_accrual": [
          {
            "item_id": "I-1",
            "day_count_basis": "actual_360",
            "recalculated_interest": 1500,
            "client_reported_interest": 1490,
            "variance": 10,
            "variance_pct": 0.67,
            "flagged": true
          }
        ],
        "eps": [
          {
            "label": "FY2026",
            "recalculated_eps_basic": 4.8,
            "client_reported_eps_basic": 4.8,
            "variance_basic": 0,
            "recalculated_eps_diluted": 4.36,
            "client_reported_eps_diluted": 3.8,
            "variance_diluted": 0.56,
            "flagged": true
          }
        ],
        "amortization": [
          {
            "item_id": "M-1",
            "periods_total": 10,
            "recalculated_amortization": 12000,
            "client_reported_amortization": 12000,
            "variance": 0,
            "variance_pct": 0,
            "flagged": false
          }
        ],
        "prepaid_rollforward": [
          {
            "item_id": "P-1",
            "recalculated_ending_balance": 55000,
            "client_reported_ending_balance": 60000,
            "variance": -5000,
            "variance_pct": -8.33,
            "flagged": true
          }
        ],
        "total_items": 5,
        "flagged_count": 3
      },
      "golden_hash": "211aba29748f652fea76e14333544a8333399c73dc04c9bdd2bda123907c05c4"
    },
    {
      "name": "ddb_no_tolerance_declared",
      "description": "Depreciation only, double-declining-balance, period 2. No tolerance object declared -- exercises the recorded 0/0 default gate.",
      "policy_parameters": {
        "depreciation": [
          {
            "asset_id": "A-2",
            "method": "ddb",
            "cost": 20000,
            "salvage_value": 2000,
            "useful_life_years": 5,
            "period_number": 2,
            "client_reported_depreciation": 6400
          }
        ]
      },
      "output_payload": {
        "tolerance_used": {
          "abs": 0,
          "pct": 0,
          "declared_by_caller": false
        },
        "categories_run": [
          "depreciation"
        ],
        "depreciation": [
          {
            "asset_id": "A-2",
            "method": "ddb",
            "period_number": 2,
            "recalculated_depreciation": 4800,
            "client_reported_depreciation": 6400,
            "variance": -1600,
            "variance_pct": -25,
            "flagged": true
          }
        ],
        "total_items": 1,
        "flagged_count": 1
      },
      "golden_hash": "773faaa3f7492188552e9a38bb5bb0f0d1d1d22a801f344d2436cf33fdf6c882"
    },
    {
      "name": "no_categories_edge",
      "description": "No categories supplied at all -- finite gate, zero items, zero flagged.",
      "policy_parameters": {
        "tolerance": {
          "abs": 0,
          "pct": 0
        }
      },
      "output_payload": {
        "tolerance_used": {
          "abs": 0,
          "pct": 0,
          "declared_by_caller": true
        },
        "categories_run": [],
        "total_items": 0,
        "flagged_count": 0
      },
      "golden_hash": "9e67d1786ffeceee7b1b60a9221e4e1da13b0ef41bcfa606290b55a943207ba6"
    }
  ]
}
