{
  "tool_id": "art-496-l1-continuous-fee-runway",
  "note": "Vectors computed directly from the shipped kernel.",
  "vectors": [
    {
      "name": "depletes-within-horizon-runway-short",
      "description": "Positive fee and infra burn against a modest balance: depletes inside the horizon and falls short of the target runway.",
      "policy_parameters": {
        "validator_count": 50,
        "fee_rate_avax_per_validator_month": 1.33,
        "fee_growth_rate_annual_pct": 10,
        "infra_cost_annual": 12000,
        "current_balance": 6000,
        "as_of": 1753900000,
        "target_runway_months": 24
      },
      "output_payload": {
        "validator_count": 50,
        "fee_rate_avax_per_validator_month": 1.33,
        "fee_rate_defaulted": false,
        "fee_growth_rate_annual_pct": 10,
        "infra_cost_annual": 12000,
        "current_balance": 6000,
        "as_of": 1753900000,
        "annual_tco": 12798,
        "breakdown": {
          "fee_component_annual": 798,
          "infra_component_annual": 12000
        },
        "months_to_depletion": 6,
        "depletion_offset_days": 183,
        "target_runway_months": 24,
        "refill_amount_required": 19675.80000000001,
        "horizon_months": 1200,
        "runway_flag": "L1_RUNWAY_SHORT",
        "rationale": [
          "months_to_depletion (6) is short of the 24 month target runway."
        ]
      },
      "compliance_flags": [
        "L1_RUNWAY_MODELED",
        "L1_RUNWAY_SHORT",
        "ESCALATION_RAISED"
      ],
      "golden_hash": "5534136aad5ba0edb9e4a0418d7fc9d9459e1387c4b5179068cea05504505ed8"
    },
    {
      "name": "balance-already-exhausted",
      "description": "Zero balance with a positive burn: the L1 has already stopped validating at as_of.",
      "policy_parameters": {
        "validator_count": 20,
        "fee_rate_avax_per_validator_month": 1.33,
        "infra_cost_annual": 5000,
        "current_balance": 0,
        "as_of": 1753900000
      },
      "output_payload": {
        "validator_count": 20,
        "fee_rate_avax_per_validator_month": 1.33,
        "fee_rate_defaulted": false,
        "fee_growth_rate_annual_pct": 0,
        "infra_cost_annual": 5000,
        "current_balance": 0,
        "as_of": 1753900000,
        "annual_tco": 5319.2,
        "breakdown": {
          "fee_component_annual": 319.20000000000005,
          "infra_component_annual": 5000
        },
        "months_to_depletion": 0,
        "depletion_offset_days": 0,
        "target_runway_months": 12,
        "refill_amount_required": 5319.200000000001,
        "horizon_months": 1200,
        "runway_flag": "L1_BALANCE_EXHAUSTED",
        "rationale": [
          "No target_runway_months was supplied, so a 12 month target runway was assumed for the refill calculation.",
          "current_balance is already at or below zero while the modeled monthly burn is positive, so the L1 has already stopped validating under this model."
        ]
      },
      "compliance_flags": [
        "L1_RUNWAY_MODELED",
        "L1_BALANCE_EXHAUSTED",
        "ESCALATION_RAISED"
      ],
      "golden_hash": "aa4311a72befcd4a421317ccf957fd26e52129c995b2f7ad7d8e1eb0a1937349"
    },
    {
      "name": "zero-burn-never-depletes",
      "description": "Zero validators, zero fee rate, zero infra: the finite gate on total absence of burn -- months_to_depletion is null, never Infinity.",
      "policy_parameters": {
        "validator_count": 0,
        "fee_rate_avax_per_validator_month": 0,
        "infra_cost_annual": 0,
        "current_balance": 0,
        "as_of": 1753900000
      },
      "output_payload": {
        "validator_count": 0,
        "fee_rate_avax_per_validator_month": 0,
        "fee_rate_defaulted": false,
        "fee_growth_rate_annual_pct": 0,
        "infra_cost_annual": 0,
        "current_balance": 0,
        "as_of": 1753900000,
        "annual_tco": 0,
        "breakdown": {
          "fee_component_annual": 0,
          "infra_component_annual": 0
        },
        "months_to_depletion": null,
        "depletion_offset_days": null,
        "target_runway_months": 12,
        "refill_amount_required": 0,
        "horizon_months": 1200,
        "runway_flag": "L1_RUNWAY_OK",
        "rationale": [
          "No target_runway_months was supplied, so a 12 month target runway was assumed for the refill calculation.",
          "Balance did not deplete within the 1200 month model horizon under these inputs, so months_to_depletion is reported as null rather than an unbounded projection."
        ]
      },
      "compliance_flags": [
        "L1_RUNWAY_MODELED",
        "L1_RUNWAY_OK"
      ],
      "golden_hash": "77b9a89a717ddb81dc40556b67e4bc8fe5268984d13f888a44b0dc5413a53972"
    },
    {
      "name": "runway-ok-ample-balance",
      "description": "Ample balance against a small validator set clears the target runway comfortably.",
      "policy_parameters": {
        "validator_count": 10,
        "fee_rate_avax_per_validator_month": 1.5,
        "fee_growth_rate_annual_pct": 5,
        "infra_cost_annual": 3000,
        "current_balance": 500000,
        "as_of": 1753900000,
        "target_runway_months": 12
      },
      "output_payload": {
        "validator_count": 10,
        "fee_rate_avax_per_validator_month": 1.5,
        "fee_rate_defaulted": false,
        "fee_growth_rate_annual_pct": 5,
        "infra_cost_annual": 3000,
        "current_balance": 500000,
        "as_of": 1753900000,
        "annual_tco": 3180,
        "breakdown": {
          "fee_component_annual": 180,
          "infra_component_annual": 3000
        },
        "months_to_depletion": 1038,
        "depletion_offset_days": 31594,
        "target_runway_months": 12,
        "refill_amount_required": 0,
        "horizon_months": 1200,
        "runway_flag": "L1_RUNWAY_OK",
        "rationale": []
      },
      "compliance_flags": [
        "L1_RUNWAY_MODELED",
        "L1_RUNWAY_OK"
      ],
      "golden_hash": "e10987bc70e34ff1bca5cb4e69d22f82dc2d5c93325efb9502eb434b2f5c576d"
    },
    {
      "name": "empty-input-defaults",
      "description": "Empty policy parameters: exercises every default (fee rate, target runway) and the finite gate on an all-defaulted, zero-burn input.",
      "policy_parameters": {},
      "output_payload": {
        "validator_count": 0,
        "fee_rate_avax_per_validator_month": 1.33,
        "fee_rate_defaulted": true,
        "fee_growth_rate_annual_pct": 0,
        "infra_cost_annual": 0,
        "current_balance": 0,
        "as_of": 0,
        "annual_tco": 0,
        "breakdown": {
          "fee_component_annual": 0,
          "infra_component_annual": 0
        },
        "months_to_depletion": null,
        "depletion_offset_days": null,
        "target_runway_months": 12,
        "refill_amount_required": 0,
        "horizon_months": 1200,
        "runway_flag": "L1_RUNWAY_OK",
        "rationale": [
          "No validator_count was supplied, so 0 was assumed -- the continuous-fee component of the burn is zero at that assumption.",
          "No fee_rate_avax_per_validator_month was supplied, so the 1.33 AVAX/month ACP-77 launch reference point was assumed. The live continuous fee rises with ecosystem-wide validator count; supply a current figure to remove this assumption.",
          "No target_runway_months was supplied, so a 12 month target runway was assumed for the refill calculation.",
          "Balance did not deplete within the 1200 month model horizon under these inputs, so months_to_depletion is reported as null rather than an unbounded projection."
        ]
      },
      "compliance_flags": [
        "L1_RUNWAY_MODELED",
        "FEE_RATE_DEFAULTED",
        "L1_RUNWAY_OK"
      ],
      "golden_hash": "d9c4a49a96e8b29a9df42b4c1ece7f08df107f3e94f5edea3abb9590f60f67e6"
    }
  ]
}
