Skip to main content
The Pro indicator drill-down returns all 72 registered indicator rows and a normalized score whenever the scorer has one. It returns a raw source value only when the exact observation is measured, every contributing provider has a completed redistribution review, the response includes the required attribution, and the exact contributing seed has a retrieval timestamp. An imputed, fallback, missing, inactive, retired, not-applicable, source-failure, provider-ambiguous, or retrieval-time-ambiguous row never includes a raw value. The broad license label in the indicator registry is source inventory metadata. It is not permission to redistribute a value. The executable policy in server/worldmonitor/resilience/v1/_indicator-source-policy.ts is stricter and uses the exact provider provenance of each observation. REST and MCP discovery do not advertise JMESPath projection for this response. Both runtimes reject a non-empty projection request because it could detach a permitted raw value from the attribution and retrieval fields that authorize its redistribution. Each source entry includes the dataset URL, license label, canonical licenseUrl, and a separate attributionUrl when the required attribution target differs from the dataset URL.

Decisions by source

This table reflects the repository source-attribution manifest and the issue-specific source review. Provider terms can change. A new source, mirror, fallback, or constituent makes the observation ineligible until the policy and its tests are updated.

Time and provenance fields

sourceYear or the source observation timestamp describes when the provider measured the phenomenon. retrievedAt describes when WorldMonitor fetched or seeded it. They are not interchangeable. World Bank observations from the static resilience batch use the selected country payload’s seededAt. A dataset recovered from an older batch uses its own _recovered.seededAt, not the new batch metadata time. Other source paths remain unavailable until their exact contributing seed retrieval timestamp is carried into the trace. The API withholds an otherwise licensable raw value when that timestamp is unavailable; it does not reuse the response data version or another seed’s time. Observation age is calculated from the source observation date, never retrieval time. If the source does not publish an observation date, the API leaves source year and observation age absent. When a composite uses observations from different years, sourceYear is the oldest contributing year. This conservative rule prevents a recent constituent from hiding the age of an older input. Composite indicators must list every provider that contributed to the selected value. This is required for the conditional World Bank/Eurostat and World Bank/UN Comtrade decisions above.

Normalized scores when raw values are suppressed

A normalized score is WorldMonitor’s derived output after direction, goalposts, runtime weighting, and any documented policy adjustment. The API can therefore expose the normalized score and effective contribution even when upstream terms prevent raw-value redistribution. Suppression is represented by the raw-policy status and reason; it is not represented by a numeric zero.

Fail-closed review rules

  1. Default to no raw value for an unknown indicator or missing provider provenance.
  2. Require observed state. Never expose raw data for imputed, fallback, missing, or inactive rows.
  3. Check every provider in a composite observation. One unreviewed constituent suppresses the complete raw value.
  4. Do not infer permission from the registry license category, source key, a provider’s public accessibility, or an attribution statement alone.
  5. Keep provider attribution, source links, license labels, and license URLs with each allow decision. The observationProvenance field distinguishes an exact selected source from registry-only attribution.
  6. Re-review provider terms when the source, mirror, extraction path, or dataset-specific terms change.
  7. Add the indicator to the exhaustive policy table and its tests before serving a new registry entry.
The production response reads the immutable trace generation referenced by the six-hour public score cache. The large trace is stored in a separate seven-hour sidecar, so score and ranking reads stay small. A missing or malformed sidecar rebuilds and republishes the complete score generation; the handler never rescans current seeds beside an older cached score. A confirmed source-key miss can produce a documented missing or imputed state. A Redis read error fails the generation build and is not cached as a valid response.