{
  "name": "Warconomy change diff — v1.191.0",
  "asOf": "2026-06-05",
  "dataset": "conflict-economic-impact",
  "version": "1.191.0",
  "previousVersion": "1.190.0",
  "isCurrent": true,
  "materialized": true,
  "snapshotType": "full",
  "date": "2026-07-18",
  "kind": "data",
  "changeSummary": "Forecast operations release. Adds the machinery that keeps published forecasts trustworthy between issue and resolution: a deterministic lifecycle engine (active, nearing resolution, expired) with domain-specific thresholds, a resolution and scoring engine that refuses to score a forecast whose metric definition changed incompatibly, operational queues that surface pending source-hardening work without blocking publication, and a dry-run harness that previews a resolution against fixture outcomes without mutating the archive. The original Strait of Hormuz transit forecast was superseded — not edited — after IMF PortWatch put the peacetime baseline near 88 vessels per day rather than the 100/day threshold it had used; the original record stays published and links to its replacement. Two new sources back the shipping resolution chain: IMF PortWatch daily chokepoint transit calls (the deciding source for both chokepoint forecasts) and a named Suez Canal Authority chairman statement. Adds /forecasts/operations with machine-readable output at /forecasts/operations/data.json and /forecasts/readiness/data.json. No observation values changed. Export version bumped to 1.191.0.",
  "changePath": "/changes/1.191.0",
  "dataJsonPath": "/datasets/conflict-economic-impact/versions/1.191.0/data.json",
  "previousDataJsonPath": "/datasets/conflict-economic-impact/versions/1.190.0/data.json",
  "frozenPreviousSnapshot": true,
  "valueLevel": true,
  "diffJsonSchemaVersion": 2,
  "counts": {
    "observations": 59,
    "liveObservations": 54,
    "sampleObservations": 5,
    "sources": 50,
    "facts": 38,
    "series": 8,
    "distributions": 25,
    "queryIntents": 25,
    "glossaryTerms": 35
  },
  "countsDelta": {
    "observations": {
      "before": 59,
      "after": 59,
      "delta": 0
    },
    "liveObservations": {
      "before": 54,
      "after": 54,
      "delta": 0
    },
    "sampleObservations": {
      "before": 5,
      "after": 5,
      "delta": 0
    },
    "sources": {
      "before": 48,
      "after": 50,
      "delta": 2
    },
    "facts": {
      "before": 38,
      "after": 38,
      "delta": 0
    },
    "series": {
      "before": 8,
      "after": 8,
      "delta": 0
    },
    "distributions": {
      "before": 25,
      "after": 25,
      "delta": 0
    },
    "queryIntents": {
      "before": 25,
      "after": 25,
      "delta": 0
    },
    "glossaryTerms": {
      "before": 35,
      "after": 35,
      "delta": 0
    }
  },
  "fieldsDelta": {
    "added": [
      "forecastOperationsJsonPath",
      "forecastOperationsPath",
      "forecastReadinessJsonPath"
    ],
    "removed": [],
    "unchanged": 344
  },
  "graphDelta": {
    "nodes": {
      "before": 248,
      "after": 250,
      "delta": 2
    },
    "edges": {
      "before": 445,
      "after": 447,
      "delta": 2
    }
  },
  "valueDelta": {
    "topLevel": {
      "added": [
        "forecastOperationsPath",
        "forecastOperationsJsonPath",
        "forecastReadinessJsonPath"
      ],
      "removed": [],
      "changed": [
        "version",
        "sources",
        "dashboardHub",
        "sourceQuality",
        "currentVersionPath",
        "materializedVersionCount",
        "materializedPayloadCount",
        "latestMaterializedVersion",
        "previousMaterializedVersion",
        "currentChangePath",
        "currentDiffPath",
        "versionDiffSummaryPath",
        "versionSnapshotSummary"
      ]
    },
    "routes": {
      "added": [
        "forecastOperationsPath",
        "forecastOperationsJsonPath",
        "forecastReadinessJsonPath"
      ],
      "removed": [],
      "changed": [
        "currentVersionPath",
        "currentChangePath",
        "currentDiffPath",
        "versionDiffSummaryPath"
      ]
    },
    "distributions": {
      "added": [],
      "removed": [],
      "changed": []
    },
    "observations": {
      "added": [],
      "removed": [],
      "changed": []
    },
    "sources": {
      "added": [
        "imf-portwatch-chokepoints",
        "sca-chairman-statement-2026"
      ],
      "removed": [],
      "changed": []
    },
    "facts": {
      "added": [],
      "removed": [],
      "changed": []
    },
    "series": {
      "added": [],
      "removed": [],
      "changed": []
    },
    "queryIntents": {
      "added": [],
      "removed": [],
      "changed": []
    },
    "glossary": {
      "added": [],
      "removed": [],
      "changed": []
    }
  },
  "note": "Complete value-level diff between two frozen full payloads: changed top-level fields, route/distribution deltas, and added/removed/changed record ids (no full records duplicated).",
  "feed": "/feed.xml",
  "atom": "/atom.xml"
}