{
  "name": "Warconomy contributor guide — Add an observation",
  "asOf": "2026-06-05",
  "page": "https://warconomy.com/methodology/add-observation",
  "id": "add-observation",
  "slug": "add-observation",
  "title": "Add an observation",
  "intro": "An observation is a single source-linked value. Live observations are genuinely sourced; everything else stays labeled sample.",
  "steps": [
    {
      "title": "Pick the metric & subject",
      "detail": "Reuse an existing metricId and subjectType/subjectId where possible."
    },
    {
      "title": "Transcribe the value from the source",
      "detail": "Record value, unit, periodLabel, and the exact asOf date from the cited source — confirm it directly."
    },
    {
      "title": "Set dataMode & confidence",
      "detail": "dataMode 'live' only when genuinely sourced and current; otherwise 'sample'. confidence high/medium/low by source quality."
    },
    {
      "title": "Set lastReviewed",
      "detail": "The date a human verified the value against the source (live rows)."
    }
  ],
  "rules": [
    "Every observation needs a sourceId, confidence, dataMode, and asOf.",
    "If the value cannot be confirmed from the source, stop and report — never guess.",
    "Freshness/review is computed against site.dataAsOf; no runtime clock."
  ],
  "doNot": [
    "Do not present sample/placeholder figures as real or current.",
    "Do not attribute a price move to an event unless the source supports it."
  ],
  "example": "Brent at $X/bbl (May 2026), dataMode 'live', confidence 'high', sourceId 'eia-brent', asOf '2026-05-..'.",
  "note": "Process guide only; asserts no data values. Honors the source and honesty rules (no scraping, no runtime APIs, no real-time claims)."
}