{
  "tool_id": "art-685-direct-indexing-fit-screen",
  "tool_version": "1.0.0",
  "display_name": "Direct Indexing Fit Screen",
  "mcp_name": "compute_direct_indexing_fit_screen",
  "mandate_type": "compliance_control",
  "wave": 116,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-685-direct-indexing-fit-screen.html",
  "description": "Computes a direct-indexing fit screen from caller-declared synthetic inputs: the net benefit in basis points is the declared expected tax alpha minus the declared fee delta (direct-indexing fee minus ETF expense ratio), rounded half-up to 2 decimal places with the arithmetic restated in a trace. The verdict reports the sign of that declared arithmetic only (FIT_POSITIVE, FIT_NEGATIVE, FIT_NEUTRAL). When the caller also declares a holding period and an alpha-exhaustion horizon, the node adds an exhaustion warning; when the caller declares a concentrated stock position, it adds an unwind note. This is a deterministic calculator over declared numbers: it is never advice, never an optimizer, and it prices no costs it has not been given. Zero storage, zero network, no runtime clock.",
  "input_schema_ref": "chaingraph/art-685-direct-indexing-fit-screen.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:8bebade7234612a0a224757aa6c635ee00c4ff33248ddf6f4163cec2186cef6e",
      "valid_from": "2026-09-05"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-09-12"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "not_applicable",
  "compute_proof_ready": "ready",
  "cycle_preflight": "FAST — 3,139,932 user_cycles max across all 6 fixture vectors (argmax v4 exhaustion-warning-and-concentrated-note), measured exec-only 2026-09-14 against this branch worktree bytes; 0.10x the 30,000,000 line.",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Fi3OZEY9Bxl4x3FFdRSuU1VGnCU04b5GNunxaku1XkMtAoAMS6+wc8SM142pX+sII83+ZIw0nqukgoVcPeDpAh7EzMDYUwX/nek3+sKam07+QdIXE8HBuqs/riZraJbKBVjduGaXcSfmZaL/gTrC7qMvqKsA2jDvkrQYTL0lzZoKkJXB53q/kinHs4ad9G6E6oUSvJ2E9bRetjMqUw9NuRKvA6SYjr/mUJpBBpPCFYp19UXXmt3C/CT/Y8nF6sJHFHkLGBrwowUgXcU98tagoZlkbYAmKgx5P6/QKPfqfsURWJ51udAt4XOAJ1eXeTUXJurjICkEOLnYYfmGe8avNA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:8bebade7234612a0a224757aa6c635ee00c4ff33248ddf6f4163cec2186cef6e",
      "output": {
        "fee_delta_bps": 6,
        "net_benefit_bps": 39,
        "overall": "FIT_POSITIVE",
        "trace": "45 - (9 - 3) = 39 bps net of the declared fee delta"
      }
    }
  }
}
