Contributor guide

Add an observation

An observation is a single source-linked value. Live observations are genuinely sourced; everything else stays labeled sample.

Steps

  1. Pick the metric & subject. Reuse an existing metricId and subjectType/subjectId where possible.
  2. Transcribe the value from the source. Record value, unit, periodLabel, and the exact asOf date from the cited source — confirm it directly.
  3. Set dataMode & confidence. dataMode 'live' only when genuinely sourced and current; otherwise 'sample'. confidence high/medium/low by source quality.
  4. Set lastReviewed. 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.

What not to do

  • 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-..'.

No scraping, scheduled jobs, runtime APIs, or real-time claims. See the methodology, the developer guide, and the data needs backlog. Machine-readable: /methodology/add-observation/data.json.

Other guides