{
      "tool_id": "art-302-401k-adp-acp-test",
      "tool_version": "1.0.0",
      "display_name": "401(k) ADP/ACP Nondiscrimination Tester",
      "mcp_name": "run_401k_adp_acp_test",
      "mandate_type": "compliance_mandate",
      "wave": 48,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-302-401k-adp-acp-test.html",
      "description": "Runs the IRC §401(k)(3) Actual Deferral Percentage test and the §401(m)(2) Actual Contribution Percentage test from supplied HCE vs NHCE deferral/match percentages (current-year or prior-year method), applying the fixed statutory permitted-disparity limits (1.25x, or 2 percentage points and 2x, whichever is greater). ACP is optional. Returns per-test pass/fail and the percentage-point excess if failed -- a simplified excess figure, not a full leveling-method dollar correction schedule. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-302-401k-adp-acp-test.html#manifest",
      "deadline": null,
      "deadline_note": "IRC §401(k)(3)(A)(ii)/§401(m)(2) permitted-disparity limits are fixed statutory constants, not annually indexed",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:b5846a6b36327671eca8553c1a075d732ce6a236e0cf86fbd688c4ee4e52a6ad","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "F2km2eJ6kTYYDgBGLW0BjjUAUO7mZ2KWkeH12QQU4KkmowL3HWA0uPc/9hfTVgCkLbsBGKMIkwEyLCb3KCqLGCT7p30HK8Ems8xYN8MsQiWkK/uY253uSVoOWAqIM6D0G0nHugFKgGVmc0mkMqNWXzhn4azSL2y0rz9dyATHZ3Mji5qXzYP0lYOQPlzJjjEc0ArgfhX+h6UB4vJPkpDvDByHaoVYYsmvx49yFIpfDv+E7FTSwtEYYuXYCv7CG0L3E8UnJCJiSws/2IBiCnbF3ZCQczwfEvjL7hZRLb6TvsgJP2SedOy7D4U5HDGlcMmVzw1Sg+A3bvVyMxdmEaQQlg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b5846a6b36327671eca8553c1a075d732ce6a236e0cf86fbd688c4ee4e52a6ad",
          "output": {
            "acp": {
              "allowed_max_pct": 0.05500000000000001,
              "computed": true,
              "excess_pct": 0,
              "hce_pct": 0.04,
              "nhce_pct": 0.035,
              "pass": true
            },
            "adp": {
              "allowed_max_pct": 0.07,
              "computed": true,
              "excess_pct": 0,
              "hce_pct": 0.06,
              "nhce_pct": 0.05,
              "pass": true
            },
            "all_tests_pass": true,
            "error": null,
            "method": "current_year"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    }
