Simulation

A structural what-if, not a forecast

The published score rests on a few deliberate choices: an equal-weight geometric mean of two components (vulnerability to recruitment and the conditions for unchecked exploitation). Those choices are arguable, and a good index should show what hangs on them. This tool recomputes the whole field live from the real per-country data: adjust any of a country’s structural domains, shift the weight, switch the combining operator (geometric vs arithmetic mean), or apply a governance what-if, and the map, the rankings, and any country’s score move with you.

What this is, and is not. This is a structural simulation. It shows how the score responds to structural and weighting assumptions, and nothing more. It is not a forecast of real-world outcomes, and it does not predict the effect of any intervention. Moving the controls does not model a country changing; it shows how sensitive the index is to the choices made in building it. For where the structure could actually be acted on, see Intervention, and note that even that page identifies candidate levers, not their impact.

Real data, real formula Every value is the country’s actual R and E score from the published build. The default settings reproduce the published index exactly. Nothing here is simulated dynamics; it is the same aggregation, recomputed under your assumptions.

published score
rank now (was )
· your R · E inputs
Vulnerability to recruitment (R)
Conditions for unchecked exploitation (E)
Recomputed score

Simulated ranks carry no uncertainty band. The published 90% bands quantify measurement uncertainty of the published scores; once you change the assumptions, that calibration no longer applies. Treat simulated ranks as illustrative re-orderings, not estimates.

Domain shape, drag to explore

This country's structural shape. Drag any solid point to change a domain and watch the score, rank, map and leaderboard respond. It stays in sync with the domain sliders in the controls.

The world under your settings hover for simulated vs published
Less → more structural risk, recomputed live Not scored

Top of the ranking, recomputed

Rank (simulated — bands do not apply)CountryNowPublishedMove

That the top of the table barely moves as you swing the weight is itself a finding: the highest-risk countries score high on both components, so they stay near the top regardless of the balance; the published equal weight is defensible because the ranking is not fragile to it. Switch to the arithmetic operator and the spread compresses (low halves no longer drag scores down); turn on the governance what-if and the field flattens toward its mean, leaving the forced-labor-specific residual that survives once governance is held constant.

What this tool does, exactly. It reads each scored country’s real R and E from data/scores.json and its per-domain scores from data/domains.json, recomputes the composite under the domain adjustments, operator and weights you choose, then re-ranks all 184 scored countries and repaints the map. With the controls at their defaults it returns the published score for every country (matching the index to within rounding). It is the genuine aggregation formula, not an approximation.

How far down it goes. The shipped data exposes the two phase components and their domains, so you can move any of a country’s structural domains and watch R, E, the score and rank respond: a faithful recompute, because each phase is exactly the mean of its domains (verified to reproduce the published R and E). It does not expose every raw indicator within a domain, so sub-domain indicators can’t be moved one at a time, and it does not re-run the upstream pipeline. The governance what-if is a transparent spread-shrink grounded in the published discriminant R² (0.628), clearly labelled as such. Read the whole tool as a sensitivity check on the structure and the choices that turn it into a published score.

Where the structure could be acted on · See full country profiles · How the score is built · The published rankings