Version contract
- Methodology:
1.0.0 - Input registry:
1.0.0 - Stored schema:
1 - Canonical snapshot:
scorecard:five-factor:v1 - Atomic read model:
scorecard:five-factor:v1:read-model - Seed health:
seed-meta:scorecard:five-factor
Common scoring rules
Each input is normalized to an absolute 0-100 component score with the frozen goalposts below. Values outside a goalpost are clamped. The scorer then:- Adds the declared weights of available components.
- Reports that sum as
inputCoveragefrom 0 to 1. - Divides the available weighted component total by available weight.
- Applies the pillar coverage floor and required-group rules.
- Maps the unrounded continuous sub-score to an integer band.
- Rounds the published sub-score and coverage to two and four decimal places,
respectively. Rounding never changes the band, because the band is always
derived in step 5 from the unrounded sub-score. Near a boundary the two can
therefore disagree by design: a continuous sub-score of
19.996publishes assubScore: 20.00withband: 1, notband: 2. Read the publishedband; do not re-derive it from the publishedsubScore.
hasScore=false, score=null,
subScore=null, and one or more explicit reasons. Protobuf JSON keeps numeric
fields present as zero; API and MCP clients must read hasScore first because
those zeros are insufficient-data placeholders, not measured zero resilience.
Absolute bands
The lower boundary is inclusive. For example, exactly 40.0 is band 3.Unavailable reasons
The closed reason set is:source-unavailable: the upstream snapshot could not be read.country-unavailable: the source is healthy but has no country observation.invalid-value: the observation is non-finite or outside its valid domain.stale: the observation is older than the input freshness contract.coverage-below-floor: available weight is below the pillar floor.required-group-missing: no available input satisfies a required group.missing-population: a population-weighted calculation has no population.redistribution-blocked: source policy forbids the partner-facing evidence.
quality=retained.
Freshness and publication floors
V1 applies observation-age limits before scoring. Population, food-balance, food-stock, and age-structure inputs allow at most 3 years; physical energy balance allows 4; low-carbon generation, trade diversity, workforce, and defense allow 5; all other annual inputs allow 7. The boundary year is inclusive. An expired source content-age envelope also makes its declared inputsstale even when the stored values remain readable.
A daily cohort replaces last-good only when at least 180 countries have one
scoreable pillar, at least 150 have usable population evidence, and the
scoreable-country counts meet these frozen floors: food 80, energy 120,
demographics 150, technology 120, and defense 30. The
floors were set from the 196-country production-source audit with headroom for
normal source coverage. Health publishes population and the five pillar counts separately. A
partial source outage cannot refresh health or replace a richer cohort.
Food
Food measures the ability to meet caloric use from production and stocks. It uses commodity production, consumption, ending stocks, and use fromresilience:food-stocks:v1. Source quantities in thousand metric tonnes are
converted to trillion kcal as thousand metric tonnes * kcal/kg / 1,000,000
with the frozen commodity conversion
table before aggregation.
Coverage floor: 0.70. Calorie production / consumption is required.
- Band 1: production is near or below half of use and buffers are weak.
- Band 3: domestic output covers much, but not all, use or buffers are mixed.
- Band 5: output materially exceeds use and stock buffers are strong.
Energy
Energy measures physical primary-energy balance and supporting power-system quality. Consumption comes from OWIDprimary_energy_consumption. Production
is derived from World Bank net energy imports (EG.IMP.CONS.ZS):
Coverage floor: 0.60. Primary production / consumption is required.
- Band 1: production covers little of use.
- Band 3: balance is mixed and imports remain material.
- Band 5: the country is energy self-sufficient or a net producer with strong supporting power-system evidence.
Demographics
Demographics combines age structure, the projected working-age population, education, research capacity, and trained industrial labor. Inputs come fromdemographics:capability:v1.
Coverage floor: 0.60. At least one age-structure input and one education,
research, or workforce input are required.
- Band 1: severe dependency or contraction with little capability evidence.
- Band 3: mixed age structure and human-capability depth.
- Band 5: favorable labor supply and deep education, research, and industrial workforce capacity.
Technology
Technology uses source-preserving World Bank observations. The existing technology readiness score, rank, and components remain unchanged; v1 adds the raw observations needed to show and reproduce this scorecard.
Coverage floor: 0.65. At least one connectivity input and one innovation
input are required.
- Band 1: limited digital access and little measured innovation capacity.
- Band 3: broad use or research capacity, but material gaps remain.
- Band 5: high connectivity plus deep and sustained innovation capability.
Defense
Defense measures sustained national defense capacity. World Bank defense observations come frommilitary:industrial-base:v1. SIPRI raw transfer rows
are not stored or returned. Until the source policy permits public use of the
already derived supplier HHI, that component is explicitly unavailable with
redistribution-blocked.
Coverage floor: 0.50. At least one posture input (spending or personnel)
and the arms-transfer industrial-balance input are required.
- Band 1: small posture with high external equipment dependence.
- Band 3: material posture or industrial capability, with important gaps.
- Band 5: large sustained posture and strong domestic/export industrial depth.
Bloc rules
V1 presets are versioned as part of the methodology:USMCA, EU27, BRICS,
GCC, ASEAN, and NATO. Custom blocs accept 2-30 unique uppercase ISO-2
country codes from the public rankable universe. A request must select exactly
one preset or one custom member list. Presets may contain more than 30 members.
Membership was checked on 2026-08-29 against the official
EU country list,
BRICS member list,
ASEAN member list, and
NATO member-country history.
The ASEAN preset includes Timor-Leste, and the BRICS preset uses the official
11-member list. Preset membership changes require a methodology changelog entry.
Each bloc pillar reports its aggregation method, included and excluded members,
population coverage where applicable, and the evidence used. Food and energy
use physical aggregate-then-score rules. Demographics, technology, and defense
population-weight continuous scores. No bloc formula averages country bands.
Changelog
1.0.0 - 2026-08-29
- Initial five-pillar methodology.
- Frozen absolute bands, goalposts, weights, coverage floors, required groups, aggregation rules, unavailable reasons, and rounding rules.
- Added source-safe evidence provenance and an explicit SIPRI redistribution block.
- Defined current preset and custom bloc validation contracts.
- Froze per-input evidence ages and per-pillar publication floors; stale or coverage-collapsed cohorts preserve the prior last-good snapshot.
