{
  "tool_id": "art-445-credit-concentration-topn-sector",
  "tool_version": "1.0.0",
  "display_name": "Credit Concentration Top-N / Sector Checker",
  "mcp_name": "check_credit_concentration_topn_sector",
  "mandate_type": "analytics_mandate",
  "wave": 72,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-445-credit-concentration-topn-sector.html",
  "description": "Credit-concentration screen over a flat exposure list (name, sector, amount): returns the top-N single-name exposures by amount, a per-sector rollup, single-name and sector Herfindahl-Hirschman Index (0-10000 scale), and a breach list against caller-declared single-name and sector limit percentages. Concentration limits are your own institution's risk-appetite policy, not a fixed regulatory threshold, so nothing is baked in. Distinct from the shipped IRRBB/NII shock kernels (art-183/art-185/art-369), which measure rate-risk exposure rather than name/sector diversification. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-445-credit-concentration-topn-sector.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:2c48c891970145492a64a3005f4756cbe485a5a8f04738cc43b59eea9453bb0b",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "E4/jCtDAgTqNvu0oACCPYNBg1ktm7C+e+4mbHSlu3XgR0LJqJ/A9HAnFWghTfnLD1Vb+oMGWp8K7RNOMsEYYyisbxg6mZavHyYhsWvUy/62gZ2V4evhniw9bAsg+jxt1DvLixDzotbqxD5LBZklEY/9yONshg///lhxDMebS4uwaEOiEcbsz7tA2EFlLLoyN5Hvk4TngebmUj2QfNtIUyyOw6h6KDLQi6Nqe7/zscurmNjZCT0n9RXVQlDFC2/oZBH3TOE8vCjqZF0lGF3bZHjo6zKJ2xZbkIsJMbCeYdbUdiUSA7HF/cLR1q223cKBoPWeh4VQ6cUwulM22TGJHcg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:2c48c891970145492a64a3005f4756cbe485a5a8f04738cc43b59eea9453bb0b",
      "output": {
        "portfolio_total": 6000000,
        "sector_breaches": [
          {
            "pct_of_portfolio": 50,
            "sector": "Energy"
          },
          {
            "pct_of_portfolio": 33.33,
            "sector": "Retail"
          }
        ],
        "sector_hhi": 3755.56,
        "sector_limit_pct": 25,
        "sector_totals": [
          {
            "amount": 3000000,
            "pct_of_portfolio": 50,
            "sector": "Energy"
          },
          {
            "amount": 2000000,
            "pct_of_portfolio": 33.33,
            "sector": "Retail"
          },
          {
            "amount": 600000,
            "pct_of_portfolio": 10,
            "sector": "Healthcare"
          },
          {
            "amount": 400000,
            "pct_of_portfolio": 6.67,
            "sector": "Tech"
          }
        ],
        "single_name_breaches": [
          {
            "name": "C",
            "pct_of_portfolio": 41.67
          },
          {
            "name": "A",
            "pct_of_portfolio": 20
          },
          {
            "name": "B",
            "pct_of_portfolio": 13.33
          }
        ],
        "single_name_hhi": 2527.78,
        "single_name_limit_pct": 10,
        "top_n": 3,
        "top_n_exposures": [
          {
            "amount": 2500000,
            "name": "C",
            "pct_of_portfolio": 41.67,
            "sector": "Energy"
          },
          {
            "amount": 1200000,
            "name": "A",
            "pct_of_portfolio": 20,
            "sector": "Retail"
          },
          {
            "amount": 800000,
            "name": "B",
            "pct_of_portfolio": 13.33,
            "sector": "Retail"
          }
        ],
        "worst_sector": "Energy",
        "worst_single_name": "C"
      }
    }
  }
}
