{
  "schema_version": "1.0",
  "site_id": "conflict-record",
  "canonical_origin": "https://conflict-record.pages.dev",
  "tools": [
    {
      "id": "report-comparability",
      "path": "/tools/report-comparability/",
      "title": "Report comparability checklist",
      "description": "Keep indicators, units, coverage, dates and attribution together before comparing two reported figures.",
      "input_schema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "left_metric": {
            "title": "Report A — Indicator",
            "description": "Leave unknown fields blank. Copy the indicator-specific wording, not just the publication date.",
            "type": "string",
            "maxLength": 120
          },
          "right_metric": {
            "title": "Report B — Indicator",
            "type": "string",
            "maxLength": 120
          },
          "left_unit": {
            "title": "Report A — Unit",
            "description": "Leave unknown fields blank. Copy the indicator-specific wording, not just the publication date.",
            "type": "string",
            "maxLength": 120
          },
          "right_unit": {
            "title": "Report B — Unit",
            "type": "string",
            "maxLength": 120
          },
          "left_region": {
            "title": "Report A — Geography / coverage",
            "description": "Leave unknown fields blank. Copy the indicator-specific wording, not just the publication date.",
            "type": "string",
            "maxLength": 120
          },
          "right_region": {
            "title": "Report B — Geography / coverage",
            "type": "string",
            "maxLength": 120
          },
          "left_period": {
            "title": "Report A — Reporting period",
            "description": "Leave unknown fields blank. Copy the indicator-specific wording, not just the publication date.",
            "type": "string",
            "maxLength": 120
          },
          "right_period": {
            "title": "Report B — Reporting period",
            "type": "string",
            "maxLength": 120
          },
          "left_agency": {
            "title": "Report A — Attributed authority",
            "description": "Leave unknown fields blank. Copy the indicator-specific wording, not just the publication date.",
            "type": "string",
            "maxLength": 120
          },
          "right_agency": {
            "title": "Report B — Attributed authority",
            "type": "string",
            "maxLength": 120
          },
          "left_method": {
            "title": "Report A — Method / verification scope",
            "description": "Leave unknown fields blank. Copy the indicator-specific wording, not just the publication date.",
            "type": "string",
            "maxLength": 120
          },
          "right_method": {
            "title": "Report B — Method / verification scope",
            "type": "string",
            "maxLength": 120
          }
        },
        "required": []
      },
      "output_schema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "ok",
          "errors",
          "summary",
          "rows",
          "notes",
          "values"
        ],
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "field",
                "code",
                "message"
              ],
              "properties": {
                "field": {
                  "type": "string"
                },
                "code": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                }
              }
            }
          },
          "summary": {
            "type": "string"
          },
          "rows": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "label",
                "value"
              ],
              "properties": {
                "label": {
                  "type": "string"
                },
                "value": {
                  "type": [
                    "string",
                    "number"
                  ]
                },
                "unit": {
                  "type": "string"
                }
              }
            }
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "values": {
            "type": "object",
            "description": "Tool-specific deterministic values; see the tool assumptions and returned labelled rows."
          }
        }
      },
      "rule_version": "2026-11-05.1",
      "updated_on": "2026-11-05",
      "sources": [
        {
          "title": "OCHA — Humanitarian Situation Report, 15 October 2026",
          "url": "https://www.ochaopt.org/content/humanitarian-situation-report-15-october-2026",
          "reviewed_on": "2026-10-30"
        }
      ],
      "assumptions": [
        "The check compares labels only; no count or casualty total is requested or subtracted.",
        "Labels are compared after Unicode, case and whitespace normalization; punctuation and substantive wording remain significant.",
        "A matching label is a review aid, not proof of identical underlying collection methods."
      ],
      "limitations": [
        "Missing fields remain unknown. Different dates, geography, attribution or verification methods must not be treated as equivalent.",
        "Even fully aligned entered fields do not establish that a numerical difference measures a real change."
      ]
    }
  ]
}
