{
  "name": "Warconomy contract fixtures",
  "asOf": "2026-06-05",
  "datasetVersion": "1.187.0",
  "note": "Valid fixtures are real records drawn from the dataset; invalid fixtures are deliberately broken copies flagged __invalid for negative validator testing — they are not real data. Schemas: /datasets/conflict-economic-impact/schema.json.",
  "page": "https://warconomy.com/developers/fixtures",
  "valid": {
    "observation": {
      "id": "obs-ukr-reconstruction",
      "metricId": "ukraine-reconstruction-cost",
      "subjectType": "conflict",
      "subjectId": "russia-ukraine",
      "value": 524,
      "unit": "USD billion",
      "periodLabel": "as of December 2024 (RDNA4)",
      "asOf": "2024-12-31",
      "lastReviewed": "2026-06-05",
      "sourceId": "wb-rdna4",
      "confidence": "medium",
      "dataMode": "live",
      "note": "Estimated cost of reconstruction and recovery over the next decade, as of 31 December 2024, from the joint Government of Ukraine / World Bank / European Commission / UN Fourth Rapid Damage and Needs Assessment (RDNA4, released February 2025). This is a recovery-needs estimate, not direct war damage (separately assessed at about USD 176 billion), and may be revised in later assessments. Manually maintained static value, not real-time."
    },
    "source": {
      "id": "wb-rdna4",
      "title": "Ukraine — Fourth Rapid Damage and Needs Assessment (RDNA4)",
      "publisher": "Government of Ukraine, World Bank Group, European Commission, and United Nations",
      "url": "https://www.worldbank.org/en/news/press-release/2025/02/25/updated-ukraine-recovery-and-reconstruction-needs-assessment-released",
      "type": "intergovernmental",
      "publishedDate": "2025-02-25",
      "accessedDate": "2026-06-05",
      "cadence": "annual",
      "tags": [
        "reconstruction",
        "macro",
        "ukraine",
        "annual"
      ],
      "note": "Joint Government of Ukraine / World Bank / European Commission / UN assessment, released February 2025, covering February 2022 – December 2024. Reconstruction and recovery needs are an estimate over the next decade and may be revised in later assessments. Manually transcribed into this repo as a static fixture; not fetched at runtime and not real-time."
    },
    "provenance": {
      "recordId": "obs-ukr-grain",
      "recordType": "observation",
      "sourceId": "fao",
      "sourceName": "Food and Agriculture Organization",
      "publisher": "Food and Agriculture Organization of the United Nations",
      "sourceUrl": "https://www.fao.org",
      "sourceType": "intergovernmental",
      "sourceAuthority": "international_institution",
      "citationReadiness": "medium",
      "accessedDate": null,
      "lastReviewed": null,
      "asOf": "2026-05-01",
      "period": "sample period",
      "dataMode": "sample",
      "confidence": "low",
      "relatedPath": "/conflicts/russia-ukraine/economic-impact",
      "caveats": [
        "Manually maintained static value, not real-time.",
        "Sample row — a labeled placeholder, not a current measured value."
      ]
    },
    "versionDiff": {
      "dataset": "conflict-economic-impact",
      "version": "1.187.0",
      "previousVersion": "1.186.0",
      "isCurrent": true,
      "materialized": true,
      "snapshotType": "full",
      "date": "2026-06-10",
      "kind": "data",
      "changeSummary": "Coverage-depth: deepened SIPRI 2025 defense-spending coverage with seven additional national spenders — Germany ($114bn, +24%), India ($92.1bn, +8.9%), United Kingdom ($89.0bn, −2.0%), Ukraine ($84.1bn, +20%), Saudi Arabia ($83.2bn, +1.4%), France ($68.0bn, +1.5%), and Japan ($62.2bn, +9.7%) — verified against SIPRI's 2025 press release (same release/basis as the existing top-3). Live observations rose from 47 to 54. This is the first record-additive release; versioned provenance is now derived per version from its own frozen payload, so prior versions keep available provenance. The export gained coverageDepthVersion. Export version bumped to 1.187.0.",
      "changePath": "/changes/1.187.0",
      "dataJsonPath": "/datasets/conflict-economic-impact/versions/1.187.0/data.json",
      "previousDataJsonPath": "/datasets/conflict-economic-impact/versions/1.186.0/data.json",
      "frozenPreviousSnapshot": true,
      "valueLevel": true,
      "diffJsonSchemaVersion": 2,
      "counts": {
        "observations": 59,
        "liveObservations": 54,
        "sampleObservations": 5,
        "sources": 34,
        "facts": 38,
        "series": 8,
        "distributions": 25,
        "queryIntents": 25,
        "glossaryTerms": 35
      },
      "countsDelta": {
        "observations": {
          "before": 52,
          "after": 59,
          "delta": 7
        },
        "liveObservations": {
          "before": 47,
          "after": 54,
          "delta": 7
        },
        "sampleObservations": {
          "before": 5,
          "after": 5,
          "delta": 0
        },
        "sources": {
          "before": 34,
          "after": 34,
          "delta": 0
        },
        "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": [
          "coverageDepthVersion"
        ],
        "removed": [],
        "unchanged": 331
      },
      "graphDelta": {
        "nodes": {
          "before": 227,
          "after": 234,
          "delta": 7
        },
        "edges": {
          "before": 410,
          "after": 431,
          "delta": 21
        }
      },
      "valueDelta": {
        "topLevel": {
          "added": [
            "coverageDepthVersion"
          ],
          "removed": [],
          "changed": [
            "version",
            "observations",
            "dashboardHub",
            "queryHub",
            "sourceQuality",
            "currentVersionPath",
            "materializedVersionCount",
            "materializedPayloadCount",
            "latestMaterializedVersion",
            "previousMaterializedVersion",
            "currentChangePath",
            "currentDiffPath",
            "versionDiffSummaryPath",
            "versionSnapshotSummary",
            "dataCoverage",
            "dataReview"
          ]
        },
        "routes": {
          "added": [],
          "removed": [],
          "changed": [
            "currentVersionPath",
            "currentChangePath",
            "currentDiffPath",
            "versionDiffSummaryPath"
          ]
        },
        "distributions": {
          "added": [],
          "removed": [],
          "changed": []
        },
        "observations": {
          "added": [
            "obs-defense-germany-2025",
            "obs-defense-india-2025",
            "obs-defense-uk-2025",
            "obs-defense-ukraine-2025",
            "obs-defense-saudi-2025",
            "obs-defense-france-2025",
            "obs-defense-japan-2025"
          ],
          "removed": [],
          "changed": []
        },
        "sources": {
          "added": [],
          "removed": [],
          "changed": []
        },
        "facts": {
          "added": [],
          "removed": [],
          "changed": []
        },
        "series": {
          "added": [],
          "removed": [],
          "changed": []
        },
        "queryIntents": {
          "added": [],
          "removed": [],
          "changed": [
            "military-spending",
            "defense-comparison"
          ]
        },
        "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"
    },
    "graphEdge": {
      "from": "observation:obs-ukr-grain",
      "to": "source:fao",
      "type": "observation_cites_source"
    },
    "recordHistory": {
      "recordKey": "observation--obs-ukr-grain",
      "recordId": "obs-ukr-grain",
      "recordType": "observation",
      "label": "Ukraine grain exports",
      "versions": [
        "1.37.0",
        "1.38.0",
        "1.39.0",
        "1.40.0",
        "1.41.0",
        "1.42.0",
        "1.43.0",
        "1.44.0",
        "1.45.0",
        "1.46.0",
        "1.47.0",
        "1.48.0",
        "1.49.0",
        "1.50.0",
        "1.51.0",
        "1.52.0",
        "1.53.0",
        "1.54.0",
        "1.55.0",
        "1.56.0",
        "1.57.0",
        "1.58.0",
        "1.59.0",
        "1.60.0",
        "1.61.0",
        "1.62.0",
        "1.63.0",
        "1.64.0",
        "1.65.0",
        "1.66.0",
        "1.67.0",
        "1.68.0",
        "1.69.0",
        "1.70.0",
        "1.71.0",
        "1.72.0",
        "1.73.0",
        "1.74.0",
        "1.75.0",
        "1.76.0",
        "1.77.0",
        "1.78.0",
        "1.79.0",
        "1.80.0",
        "1.81.0",
        "1.82.0",
        "1.83.0",
        "1.84.0",
        "1.85.0",
        "1.86.0",
        "1.87.0",
        "1.88.0",
        "1.89.0",
        "1.90.0",
        "1.91.0",
        "1.92.0",
        "1.93.0",
        "1.94.0",
        "1.95.0",
        "1.96.0",
        "1.97.0",
        "1.98.0",
        "1.99.0",
        "1.100.0",
        "1.101.0",
        "1.102.0",
        "1.103.0",
        "1.104.0",
        "1.105.0",
        "1.106.0",
        "1.107.0",
        "1.108.0",
        "1.109.0",
        "1.110.0",
        "1.111.0",
        "1.112.0",
        "1.113.0",
        "1.114.0",
        "1.115.0",
        "1.116.0",
        "1.117.0",
        "1.118.0",
        "1.119.0",
        "1.120.0",
        "1.121.0",
        "1.122.0",
        "1.123.0",
        "1.124.0",
        "1.125.0",
        "1.126.0",
        "1.127.0",
        "1.128.0",
        "1.129.0",
        "1.130.0",
        "1.131.0",
        "1.132.0",
        "1.133.0",
        "1.134.0",
        "1.135.0",
        "1.136.0",
        "1.137.0",
        "1.138.0",
        "1.139.0",
        "1.140.0",
        "1.141.0",
        "1.142.0",
        "1.143.0",
        "1.144.0",
        "1.145.0",
        "1.146.0",
        "1.147.0",
        "1.148.0",
        "1.149.0",
        "1.150.0",
        "1.151.0",
        "1.152.0",
        "1.153.0",
        "1.154.0",
        "1.155.0",
        "1.156.0",
        "1.157.0",
        "1.158.0",
        "1.159.0",
        "1.160.0",
        "1.161.0",
        "1.162.0",
        "1.163.0",
        "1.164.0",
        "1.165.0",
        "1.166.0",
        "1.167.0",
        "1.168.0",
        "1.169.0",
        "1.170.0",
        "1.171.0",
        "1.172.0",
        "1.173.0",
        "1.174.0",
        "1.175.0",
        "1.176.0",
        "1.177.0",
        "1.178.0",
        "1.179.0",
        "1.180.0",
        "1.181.0",
        "1.182.0",
        "1.183.0",
        "1.184.0",
        "1.185.0",
        "1.186.0",
        "1.187.0"
      ],
      "firstFrozenVersion": "1.37.0",
      "latestFrozenVersion": "1.187.0",
      "versionCount": 151,
      "links": {
        "page": "/indicators/obs-ukr-grain",
        "json": "/indicators/obs-ukr-grain/data.json",
        "source": "/sources/fao",
        "provenance": "/datasets/conflict-economic-impact/provenance.json",
        "versionDiffsPattern": "/datasets/conflict-economic-impact/versions/{version}/record-diffs.json",
        "provenanceDiffsPattern": "/datasets/conflict-economic-impact/versions/{version}/provenance-diff.json"
      }
    }
  },
  "invalid": {
    "observationMissingSourceId": {
      "__invalid": true,
      "__reason": "Missing required 'sourceId' — every observation must link a source.",
      "id": "obs-ukr-reconstruction",
      "metricId": "ukraine-reconstruction-cost",
      "subjectType": "conflict",
      "subjectId": "russia-ukraine",
      "value": 524,
      "unit": "USD billion",
      "periodLabel": "as of December 2024 (RDNA4)",
      "asOf": "2024-12-31",
      "lastReviewed": "2026-06-05",
      "confidence": "medium",
      "dataMode": "live",
      "note": "Estimated cost of reconstruction and recovery over the next decade, as of 31 December 2024, from the joint Government of Ukraine / World Bank / European Commission / UN Fourth Rapid Damage and Needs Assessment (RDNA4, released February 2025). This is a recovery-needs estimate, not direct war damage (separately assessed at about USD 176 billion), and may be revised in later assessments. Manually maintained static value, not real-time."
    },
    "sourceMissingUrl": {
      "__invalid": true,
      "__reason": "Missing required 'url' — every source must have a resolvable URL.",
      "id": "eia",
      "title": "U.S. Energy Information Administration",
      "publisher": "U.S. Energy Information Administration",
      "type": "official"
    },
    "observationBadDataMode": {
      "__invalid": true,
      "__reason": "dataMode 'realtime' is not in the enum (live|sample).",
      "id": "obs-ukr-reconstruction",
      "metricId": "ukraine-reconstruction-cost",
      "subjectType": "conflict",
      "subjectId": "russia-ukraine",
      "value": 524,
      "unit": "USD billion",
      "periodLabel": "as of December 2024 (RDNA4)",
      "asOf": "2024-12-31",
      "lastReviewed": "2026-06-05",
      "sourceId": "wb-rdna4",
      "confidence": "medium",
      "dataMode": "realtime",
      "note": "Estimated cost of reconstruction and recovery over the next decade, as of 31 December 2024, from the joint Government of Ukraine / World Bank / European Commission / UN Fourth Rapid Damage and Needs Assessment (RDNA4, released February 2025). This is a recovery-needs estimate, not direct war damage (separately assessed at about USD 176 billion), and may be revised in later assessments. Manually maintained static value, not real-time."
    }
  },
  "validTypes": [
    "observation",
    "source",
    "provenance",
    "versionDiff",
    "graphEdge",
    "recordHistory"
  ],
  "invalidTypes": [
    "observationMissingSourceId",
    "sourceMissingUrl",
    "observationBadDataMode"
  ]
}