Methodology
One number, 123 indicators,
zero invented data.
Every value on Sworn traces back to a primary source. This page documents the formula that turns 123 official indicators into a single 0–100 score per country, and the rules that govern when we don’t publish a score at all.
01Sources
Where every number comes from
Every active metric is ingested via the World Bank Open Data API, which republishes indicators owned by WHO, ILO, FAO, UNESCO, IMF, and the WHO/UNICEF JMP. If a number isn’t from one of these, it’s not on Sworn. Transparency International and Reporters Without Borders indices are tracked as schema definitions awaiting their next annual refresh.
World Bank
World Development Indicators (ingestion path for every active metric)
WHO
Global Health Observatory — life expectancy, physicians, JMP water indicators
ILO
ILOSTAT — unemployment + youth unemployment
FAO
FAOSTAT — undernourishment
UNESCO
UIS — education expenditure
IMF
Inflation (CPI, annual %)
UNICEF / WHO JMP
Joint Monitoring Programme — safely managed drinking water
Transparency International
Pending refreshCorruption Perceptions Index
Reporters Without Borders
Pending refreshWorld Press Freedom Index
UN SDG Database
Targets, deadlines, VNR commitments
When two sources publish the same number
Many indicators are reported by more than one institution — GDP by the World Bank and the IMF, mortality by the World Bank and WHO, and so on. Rather than pick a favorite or silently average behind your back, Sworn stores every reported raw value and shows you the full set. The canonical number you see on the country page is computed with one transparent rule:
- ·One source — we publish that source’s value unchanged.
- ·Two sources — we publish their mean (the median of two values is their mean).
- ·Three or more sources — we publish the median, which resists a single outlier without hiding it.
When the spread between sources is wider than 10% of the median, the metric card shows a ⚠ sources disagree chip. Click any chip to see the raw values side by side with a direct link to each source. No silent picks; no averaged-away disagreements.
02Per-metric normalization
Trimmed-bounds rescaling to 0–100
Raw indicator values are incomparable across metrics. Life expectancy is measured in years; corruption perception on a 0–100 scale. We rescale each metric to a shared 0–100 scale so they can be combined.
Compute bounds per metric, per year.
For each metric, take the 2.5th and 97.5th percentile of observed values across the full reference set (today: all 217 covered countries; future: all 193 UN member states). Extreme outliers are trimmed, but everything in between stays exactly proportional.
Freeze bounds for the year.
Once computed, the year's bounds don't move. A new observation arriving in November cannot retroactively change a country's score from January.
Linearly rescale to 0–100.
Each country's value is mapped from [lower bound, upper bound] → [0, 100]. Values outside the bounds are clamped at the edges.
Invert where appropriate.
For lower-is-better metrics (child mortality, corruption, undernourishment) we flip the scale so 100 always means 'better' across every category.
03Aggregation
Three categories, weighted on purpose
The 123 metrics roll up into three category scores. Category weights reflect importance to human flourishing, not data availability.
Health
18%
Life expectancy, mortality, undernourishment, water + sanitation, immunization, physicians.
Economy
16%
GDP per capita, growth, poverty, inequality, employment, inflation, debt.
Governance
16%
Corruption, rule of law, voice, regulatory quality, political stability, government effectiveness, press freedom.
Education
14%
Literacy, school enrollment, completion, learning outcomes, education spending.
Infrastructure
12%
Electricity, internet, mobile + broadband, urban density, roads, logistics.
Environment
12%
CO₂ per capita, forest cover, renewables, air quality, protected areas, energy intensity.
Rights
12%
Women in parliament, gender parity in schooling, female labor force, child labor, refugees.
Formula
category_score = mean(normalized metrics in category)
────────────────────────────────────────────────────────────────
sworn_score = Σ weight[c] × category_score[c] for c in present categories
────────────────────────────────
Σ weight[c] (renormalize)A country must have data in at least 4 of 7 categories to receive a score. The weighted average is renormalized over the categories it actually has data for, so countries aren’t penalized for gaps outside their statistical coverage.
192 of 217 tracked countries get a published Sworn Score. The other 25 (microstates, Kosovo, North Korea, and a few dependencies) fall below the 70% data-coverage threshold and show “Unable to calculate” instead of a low-confidence number. Per-category breakdowns apply the same 70% threshold to each category’s own indicators — a country with only 5 of 20 health metrics renders “Health: —” rather than a misleading high score computed from the thin slice it has.
04Confidence
Every score is published with a coverage % and a ± range
If we don't have enough indicators for a country, we say so instead of publishing a low-confidence number.
High confidence
± 2
≥ 90% of 123 indicators populated. Score shown as e.g. “Norway 76.4 ± 2”.
Medium confidence
± 5
70–89% coverage. Score shown as e.g. “Serbia 60.1 ± 5”. A ranking is still computed.
Unable to calculate
< 70%
Below 70% coverage. No score, no rank. Country page still shows what we do have so you can see the gap.
Coverage
The share of the 123-indicator catalog with a non-null normalized value for that country. Computed at score time; visible on every country page as “Based on X/123 indicators”.
Freshness
Mean age (in years) of the latest data point per indicator. Many upstream sources publish on a 1–3 year lag; freshness lets you spot countries whose data is older than the median.
Tightens our promise to never claim more confidence than we have (NORTH_STAR §2.6). A microstate with 30% coverage was previously published with a number indistinguishable from a 90%-coverage country’s number; now the difference is on the badge.
05Promise status
From commitment to outcome
For each tracked promise, we compute one of five statuses by comparing the linked metric's trajectory against the target and deadline.
- Achieved
Latest metric value already meets the target.
- On track
Linear trajectory from the last 5 observations lands at the target by the deadline.
- Failing
Trajectory misses the target by the deadline.
- Broken
Deadline passed and target not met.
- Tracking
Metric is linked and we have data, but there's no deadline or quantified target — we're watching, no verdict yet.
- Not verifiable
No Sworn metric is linked to this commitment. We cannot verify whether it has moved, so we publish the promise transparently without a status. Either the AI matcher abstained (low confidence) or the curator explicitly marked it as unmatched.
06Boundaries
What we don't do
Knowing what stays out of the model is as important as knowing what goes in.
We do not invent target values
Qualitative promises stay 'Tracking' until a quantified target is set.
We do not aggregate third-party datasets
Every value cites a primary source — no commercial aggregators, no media-report estimates.
We do not weight by population or GDP
Each metric is country-equal, by design. Large states do not outvote small ones.