{
  "tool_id": "art-485-regrpt-variance-explainer",
  "tool_version": "1.0.0",
  "display_name": "Regulatory Report Period-over-Period Variance Explainer",
  "mcp_name": "explain_regrpt_variance",
  "mandate_type": "regulatory_reporting",
  "wave": 77,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-485-regrpt-variance-explainer.html",
  "description": "Computes period-over-period variance across a regulatory report instance pair -- absolute and relative movement per line item against a policy-supplied materiality threshold (default plus per-line overrides), ranked by contribution (largest absolute movement first) -- and flags which movements require a written explanation, i.e. exceed materiality with no matching explanation on file. Does not judge whether a supplied explanation is adequate; that is a human review-and-approval step downstream (RGEC-K-2's gate: an unexplained material variance routes to review_required). Pairs with art-484-regrpt-editcheck-runner's rule-based edit checks -- this node handles analytical-review variance, not rule pass/fail.",
  "input_schema_ref": "chaingraph/art-485-regrpt-variance-explainer.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:58e771301c2c6f396bfeaa0f61ea75adfce6211b68c03938500f14a37a1a5c8f","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FDIjRxHEDtq4xti2QcPVsfffwXbMfnoOrHmBwZ9KYV8DQD5/TNH5CyFm/wAeEbR+7rW6MdilBpdQhBtPiiOT9StAcVMwLBz01/2/m7sFnKrqX1dmXK7EczBzopsg+KfODIWFq/CHyLPfdHyU5i7iWa43PmPJRtBNQS+ernKgYcwdANlfF/n7cbIaMvz327nWDuIxwIvechpEsRmh+YmqYwFqPiukDsFiXMrt8tE5mtp+UQmzN08sd0F4ODVrs0ykJ7PeD4jvTvhqVTadUArt5AI1vlku/7i6g80VXigJsoEwSfELB3AVR9kwvDnvoWqAsXj5pINnpoeRJGQL/im0cw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:58e771301c2c6f396bfeaa0f61ea75adfce6211b68c03938500f14a37a1a5c8f",
      "output": {
        "compliance_flags": [],
        "current_as_of": "2026-06-30",
        "note": "Period-over-period variance, ranked by absolute-movement contribution, flagged against a policy-supplied materiality threshold (default plus per-line overrides). Whether a supplied explanation is adequate is a human review step, not judged here; this output feeds that gate.",
        "policy_version": "FFIEC-MATERIALITY-2026-Q2",
        "prior_as_of": "2026-03-31",
        "summary": {
          "all_material_explained": true,
          "material_count": 1,
          "requires_explanation_count": 0,
          "total_abs_movement": 1550,
          "total_line_items": 3
        },
        "variances": [
          {
            "abs_change": 1500,
            "contribution": 1500,
            "current_value": 11500,
            "has_explanation": true,
            "is_material": true,
            "line_item": "total_loans",
            "pct_change": 0.15,
            "prior_value": 10000,
            "rank": 1,
            "requires_explanation": false,
            "threshold_abs": 100,
            "threshold_pct": 0.05
          },
          {
            "abs_change": 50,
            "contribution": 50,
            "current_value": 9050,
            "has_explanation": false,
            "is_material": false,
            "line_item": "total_deposits",
            "pct_change": 0.005555555555555556,
            "prior_value": 9000,
            "rank": 2,
            "requires_explanation": false,
            "threshold_abs": 100,
            "threshold_pct": 0.05
          },
          {
            "abs_change": null,
            "contribution": 0,
            "current_value": 200,
            "has_explanation": false,
            "is_material": false,
            "line_item": "other_real_estate_owned",
            "pct_change": null,
            "prior_value": null,
            "rank": 3,
            "requires_explanation": false,
            "threshold_abs": 50,
            "threshold_pct": 0
          }
        ]
      }
    }
  }
}
