How Blomstra Measures Things
The shared rules every index conforms to — normalization, coverage, provenance, weighting, timing. Read this once; each index’s own page only covers what’s specific to it.
Applies to SIVI · SERI · Geopolitical Risk Index · Governance Capture Risk · +5 more📋 Explore Our Indices & Atlases
Jump straight to the full list of indices built on this standard — each with its own methodology page.
Normalization
Indicators arrive on incompatible scales — a debt ratio, a connectivity index, a concentration score. Before anything is combined into a composite, every indicator is converted to a percentile rank against the population of countries that have real data for it.
Ties receive the average of the ranks they span. Directionality is always made explicit per indicator — if a higher raw value means less risk, it’s inverted before ranking, never after. Missing values are excluded from the ranking population entirely; a country with no data for an indicator gets no percentile for it, not a zero. Heavy-tailed indicators (inflation, debt, commodity prices) are winsorized at the 1st/99th percentile.
Coverage & partial ranks
Every index classifies each country into one of three coverage levels, rather than fabricating a value for whatever’s missing.
Structural zeros: a value of exactly 0 is not automatically treated as missing. A landlocked country’s maritime connectivity, a country with no external debt, a country with no military spending — these are real observations, not gaps, and they participate fully in the Full Index. The decision to treat a value as a structural zero must be documented in the index’s own methodology, never made ad hoc in code.
The five-point injection algorithm assumes exactly one missing pillar. Indices where two or more pillars could be missing simultaneously must define and document an alternative approach as a deviation.
Provenance & data quality
Every indicator carries its source, observation year, and a staleness flag — exposed in the API response itself, not buried in a footnote.
Good
0–1 years old relative to the current data vintage.
Aged
1–3 years old. Still used, flagged for the reader.
Stale
Older than 3 years. Used only if no fresher observation exists.
Structural zero
A real, known zero — not treated as missing data.
Weighting
Pillar and indicator weights are declared explicitly and exposed in the API’s weights object — never hardcoded as magic numbers inside the composite builder. When a pillar is missing, the remaining pillars are implicitly renormalized by dividing by the sum of present weights, not by 100/count() — coverage is checked against real sub-weights, since two pillars can carry very different shares of the total. Any weight change that alters how scores should be read triggers a major version bump.
Temporal data
Observation year and retrieval date are tracked separately. Each country uses its own most recent available year rather than being forced onto a common year. Data older than the methodology’s acceptable age — typically two years for annual data — is marked stale and excluded from scoring unless the index’s own methodology documents a wider window. Trajectory is computed as compound annual growth rate, not a point difference, so small-base countries aren’t compared on the same footing as large-base ones. Dataset vintage (e.g. a specific IMF WEO release) is recorded explicitly wherever a source publishes discrete versions.
Forecast separation
Structural scoring is built only from observed and estimated data — never forecasts. A forward-looking projection layer may exist alongside it, clearly labeled, but a forecast is never substituted in as a fallback for missing historical data.
Country universe
All indices draw from a single canonical country list. Aggregate entities — “World,” “Sub-Saharan Africa,” “High income” — are filtered out everywhere. ISO 3166-1 alpha-3 is the canonical country code; ISO2 may be used for display only. Microstates or territories may be excluded, but only with the justification documented in that index’s own methodology.
Fallback & scope
Fallback data is tracked per indicator, never merged in with ad hoc if (!isset) logic. Where a value’s institutional scope can vary — central government versus general government debt, for instance — that scope is stored alongside the value, and a pillar that mixes scopes across its inputs is flagged scope_mixed: true so a reader knows when they’re looking at a blend of incomparable definitions.
Standard catalog
Our indices & atlases
Every framework below is built to this standard. Click through for its own pillars, formulas, and documented deviations.
Sovereign Infrastructure Vulnerability Index
LiveStructural exposure to disruption across energy, maritime shipping, and trade-partner concentration.
Sovereign Economic Resilience Index
LiveA sovereign economy’s capacity to absorb and adapt to structural economic shocks.
Geoeconomy Atlas
PlannedA wider multidimensional view across economic, technological, and geopolitical structural pillars.
