Cycle 3
Batch cycle-003: 50 experiments and 1,500 simulations under parameters 0.1.1 (from 0.1.0). 661 checks passed, 52 warned and 0 failed; 17 findings and 16 recommendations. It implemented M-cycle-002.
Model 0.2.0 · graph 0.2.0 · parameters 0.1.1
The batch
Every experiment the cycle ran: E4: 50 economies from reconstructed 1996 positions, played for 30 years along the pathways they actually pursued and the shocks they actually suffered, 30 seeds each, scored against the 2026 ratings. Chile and Poland are held out.
Experiment | Scenario | Position | Horizon | Simulations | Index | Rank | Tier 1 | Tier rank |
|---|---|---|---|---|---|---|---|---|
| South Korea, scripted, 30 years from 1996cycle-003.e4-kor · Backcast | 4 historical events | 1996 | 30 | 30 | 13.13 → 12.72(−0.40)12.71 to 12.73 | 21 → 23 | 0 → 2 | 22 → 8 |
| Estonia, scripted, 30 years from 1996cycle-003.e4-est · Backcast | 7 historical events | 1996 | 30 | 30 | 10.47 → 10.01(−0.46)9.98 to 10.02 | 44 → 46 | 0 → 1 | 50 → 19 |
| Singapore, scripted, 30 years from 1996cycle-003.e4-sgp · Backcast | 5 historical events | 1996 | 30 | 30 | 15.25 → 15.24(−0.01)15.23 to 15.25 | 10 → 10 | 6 → 6 | 2 → 2 |
| Ireland, scripted, 30 years from 1996cycle-003.e4-irl · Backcast | 4 historical events | 1996 | 30 | 30 | 11.93 → 11.84(−0.09)11.82 to 11.84 | 29 → 29 | 1 → 4 | 19 → 5 |
| United Arab Emirates, scripted, 30 years from 1996cycle-003.e4-are · Backcast | 5 historical events | 1996 | 30 | 30 | 9.78 → 9.76(−0.02)9.74 to 9.79 | 48 → 48 | 0 → 0 | 29 → 20 |
| Chile, scripted, 30 years from 1996cycle-003.e4-chl · Backcast (hold-out) | 6 historical events | 1996 | 30 | 30 | 10.29 → 9.72(−0.57)9.71 to 9.73 | 44 → 48 | 0 → 1 | 48 → 19 |
| Poland, scripted, 30 years from 1996cycle-003.e4-pol · Backcast (hold-out) | 6 historical events | 1996 | 30 | 30 | 9.92 → 9.79(−0.13)9.78 to 9.80 | 47 → 48 | 0 → 0 | 56 → 38 |
| China, scripted, 30 years from 1996cycle-003.e4-chn · Backcast | 9 historical events | 1996 | 30 | 30 | 9.13 → 6.93(−2.20)6.91 to 6.94 | 55 → 82 | 0 → 0 | 36 → 53 |
| India, scripted, 30 years from 1996cycle-003.e4-ind · Backcast | 12 historical events | 1996 | 30 | 30 | 8.92 → 7.33(−1.59)7.31 to 7.33 | 59 → 75 | 0 → 0 | 48 → 37 |
| Vietnam, scripted, 30 years from 1996cycle-003.e4-vnm · Backcast | 7 historical events | 1996 | 30 | 30 | 7.67 → 8.03(+0.36)8.02 to 8.03 | 71 → 67 | 0 → 0 | 83 → 56 |
| Taiwan, scripted, 30 years from 1996cycle-003.e4-twn · Backcast | 8 historical events | 1996 | 30 | 30 | 14.85 → 14.71(−0.14)14.71 to 14.72 | 13 → 14 | 2 → 5 | 11 → 3 |
| Israel, scripted, 30 years from 1996cycle-003.e4-isr · Backcast | 7 historical events | 1996 | 30 | 30 | 15.14 → 15.80(+0.66)15.78 to 15.84 | 11 → 7 | 2 → 7 | 9 → 2 |
| Finland, scripted, 30 years from 1996cycle-003.e4-fin · Backcast | 6 historical events | 1996 | 30 | 30 | 15.66 → 15.48(−0.18)15.48 to 15.49 | 7 → 9 | 5 → 6 | 3 → 2 |
| Malaysia, scripted, 30 years from 1996cycle-003.e4-mys · Backcast | 5 historical events | 1996 | 30 | 30 | 12.22 → 12.10(−0.13)12.09 to 12.10 | 27 → 28 | 0 → 0 | 22 → 20 |
| Indonesia, scripted, 30 years from 1996cycle-003.e4-idn · Backcast | 6 historical events | 1996 | 30 | 30 | 8.28 → 7.29(−0.98)7.28 to 7.30 | 64 → 76 | 0 → 0 | 68 → 35 |
| Brazil, scripted, 30 years from 1996cycle-003.e4-bra · Backcast | 4 historical events | 1996 | 30 | 30 | 11.43 → 11.55(+0.13)11.54 to 11.56 | 34 → 31 | 0 → 2 | 22 → 11 |
| Mexico, scripted, 30 years from 1996cycle-003.e4-mex · Backcast | 7 historical events | 1996 | 30 | 30 | 9.67 → 8.59(−1.07)8.58 to 8.60 | 49 → 62 | 0 → 0 | 56 → 34 |
| Türkiye, scripted, 30 years from 1996cycle-003.e4-tur · Backcast | 9 historical events | 1996 | 30 | 30 | 10.83 → 8.23(−2.60)8.22 to 8.25 | 36 → 64 | 0 → 0 | 26 → 31 |
| Russia, scripted, 30 years from 1996cycle-003.e4-rus · Backcast | 9 historical events | 1996 | 30 | 30 | 11.19 → 11.32(+0.14)11.29 to 11.34 | 35 → 34 | 1 → 4 | 16 → 5 |
| South Africa, scripted, 30 years from 1996cycle-003.e4-zaf · Backcast | 6 historical events | 1996 | 30 | 30 | 11.66 → 11.80(+0.15)11.80 to 11.81 | 32 → 30 | 0 → 1 | 30 → 18 |
| Nigeria, scripted, 30 years from 1996cycle-003.e4-nga · Backcast | 6 historical events | 1996 | 30 | 30 | 7.51 → 7.87(+0.36)7.87 to 7.88 | 73 → 70 | 0 → 0 | 70 → 49 |
| Kenya, scripted, 30 years from 1996cycle-003.e4-ken · Backcast | 9 historical events | 1996 | 30 | 30 | 7.31 → 5.61(−1.71)5.60 to 5.62 | 77 → 108 | 0 → 0 | 85 → 65 |
| Ethiopia, scripted, 30 years from 1996cycle-003.e4-eth · Backcast | 9 historical events | 1996 | 30 | 30 | 5.96 → 4.31(−1.65)4.30 to 4.32 | 97 → 135 | 0 → 0 | 100 → 114 |
| Rwanda, scripted, 30 years from 1996cycle-003.e4-rwa · Backcast | 5 historical events | 1996 | 30 | 30 | 5.13 → 4.54(−0.59)4.54 to 4.55 | 116 → 130 | 0 → 0 | 101 → 103 |
| Bangladesh, scripted, 30 years from 1996cycle-003.e4-bgd · Backcast | 6 historical events | 1996 | 30 | 30 | 6.47 → 5.38(−1.09)5.37 to 5.38 | 90 → 112 | 0 → 0 | 101 → 87 |
Showing 1–25 of 50 experiments · page 1 of 2
Checks
Every experiment is checked before anything is written about it: invariants, plausibility, saturation, degeneracy, dead parameters, calibration, regression, performance and vocabulary. A warning is a candidate finding.
661 of 720 checks passed; 59 warned and 0 failed.
InvariantStatus
- credits_conservedpass
- ledger_balancespass
- no_nanspass
- probe_replay_reproducespass
- scores_in_boundspass
Across the batch
- backcast_skill_calibration (warn): 48 calibration nations: simulated 2026 groups miss the ratings by 2.29 points on average, against 1.69 for assuming nothing changed (skill -0.35); bias -0.51; the change in each domain has the right sign 40 per cent of the time; index error 1.51 against 1.25
- backcast_skill_holdout (warn): 2 holdout nations: simulated 2026 groups miss the ratings by 2.38 points on average, against 1.64 for assuming nothing changed (skill -0.45); bias -1.63; the change in each domain has the right sign 28 per cent of the time; index error 1.75 against 1.40
- backcast_bias:financial_strength (warn): financial_strength: simulated -1.27 points of change on average against -0.04 observed (bias -1.22, error 2.80 against 1.79 for persistence, direction right 40 per cent)
- backcast_bias:information_and_influence (warn): information_and_influence: simulated -1.25 points of change on average against -0.03 observed (bias -1.22, error 2.33 against 1.93 for persistence, direction right 52 per cent)
- backcast_bias:production_and_innovation (warn): production_and_innovation: simulated -1.16 points of change on average against -0.04 observed (bias -1.12, error 2.39 against 1.50 for persistence, direction right 44 per cent)
- backcast_bias:trade_and_investment (warn): trade_and_investment: simulated -1.33 points of change on average against -0.04 observed (bias -1.29, error 2.77 against 1.76 for persistence, direction right 40 per cent)
- round_time (warn): median round 1695 us against 1026 us in cycle-002
- retired_words (warn): diagnosis.md: 'runs' 7 time(s), first near line 93; use 'simulations'
- retired_words (warn): diagnosis.md: 'policy' 9 time(s), first near line 64; use 'method'
- retired_words (warn): diagnosis.md: 'step' 2 time(s), first near line 107; use 'round'
- retired_words (warn): next-steps.md: 'policies' 1 time(s), first near line 161; use 'method'
- retired_words (warn): master-recommendation.md: 'runs' 2 time(s), first near line 3; use 'simulations'
- retired_words (warn): master-recommendation.md: 'policy' 7 time(s), first near line 5; use 'method'
- retired_words (warn): master-recommendation.md: 'Step' 1 time(s), first near line 31; use 'round'
Experiment: checks that warned or failed45
- South Korea, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective
- Estonia, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective
- Singapore, scripted, 30 years from 1996
- saturation_high (warn): 100% of simulations end with a group at 20 that did not start there (median 4 groups)
- Ireland, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 7 tiers (30 simulations above 2); tiers are reported, not an objective
- saturation_high (warn): 100% of simulations end with a group at 20 that did not start there (median 1 groups)
- Chile, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 5 tiers (30 simulations above 2); tiers are reported, not an objective
- Poland, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 5 tiers (30 simulations above 2); tiers are reported, not an objective
- China, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 5 tiers (30 simulations above 2); tiers are reported, not an objective
- India, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 5 tiers (30 simulations above 2); tiers are reported, not an objective
- Vietnam, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective
- Taiwan, scripted, 30 years from 1996
- saturation_high (warn): 100% of simulations end with a group at 20 that did not start there (median 1 groups)
- Israel, scripted, 30 years from 1996
- move_without_shock (warn): largest one-year move in a group with no shock landing: 4.45 points; 100% of simulations have one above 3
- saturation_high (warn): 100% of simulations end with a group at 20 that did not start there (median 2 groups)
- Finland, scripted, 30 years from 1996
- saturation_high (warn): 100% of simulations end with a group at 20 that did not start there (median 3 groups)
- Malaysia, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective
- Indonesia, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 7 tiers (30 simulations above 2); tiers are reported, not an objective
- Brazil, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective
- Russia, scripted, 30 years from 1996
- move_without_shock (warn): largest one-year move in a group with no shock landing: 4.11 points; 100% of simulations have one above 3
- tier_jump (warn): largest gain in one domain within five years: 11 tiers (30 simulations above 2); tiers are reported, not an objective
- South Africa, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective
- Kenya, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 5 tiers (30 simulations above 2); tiers are reported, not an objective
- Bangladesh, scripted, 30 years from 1996
- same_action (warn): the most repeated move (group and mode) appears in a median 67% of rounds
- Philippines, scripted, 30 years from 1996
- same_action (warn): the most repeated move (group and mode) appears in a median 77% of rounds
- Thailand, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 5 tiers (30 simulations above 2); tiers are reported, not an objective
- Saudi Arabia, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 7 tiers (30 simulations above 2); tiers are reported, not an objective
- Argentina, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 7 tiers (30 simulations above 2); tiers are reported, not an objective
- Venezuela, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 5 tiers (30 simulations above 2); tiers are reported, not an objective
- Colombia, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 7 tiers (30 simulations above 2); tiers are reported, not an objective
- Peru, scripted, 30 years from 1996
- same_action (warn): the most repeated move (group and mode) appears in a median 77% of rounds
- Japan, scripted, 30 years from 1996
- move_without_shock (warn): largest one-year move in a group with no shock landing: 4.03 points; 100% of simulations have one above 3
- saturation_high (warn): 100% of simulations end with a group at 20 that did not start there (median 5 groups)
- Germany, scripted, 30 years from 1996
- saturation_high (warn): 100% of simulations end with a group at 20 that did not start there (median 5 groups)
- United Kingdom, scripted, 30 years from 1996
- saturation_high (warn): 100% of simulations end with a group at 20 that did not start there (median 4 groups)
- United States, scripted, 30 years from 1996
- saturation_high (warn): 100% of simulations end with a group at 20 that did not start there (median 3 groups)
- Italy, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective
- Greece, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 7 tiers (30 simulations above 2); tiers are reported, not an objective
- saturation_high (warn): 100% of simulations end with a group at 20 that did not start there (median 1 groups)
- Czechia, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 5 tiers (30 simulations above 2); tiers are reported, not an objective
- Hungary, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective
- Lithuania, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 8 tiers (30 simulations above 2); tiers are reported, not an objective
- Kazakhstan, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 5 tiers (30 simulations above 2); tiers are reported, not an objective
- same_action (warn): the most repeated move (group and mode) appears in a median 70% of rounds
- Norway, scripted, 30 years from 1996
- saturation_high (warn): 100% of simulations end with a group at 20 that did not start there (median 4 groups)
- Botswana, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective
- Zimbabwe, scripted, 30 years from 1996
- tier_jump (warn): largest gain in one domain within five years: 5 tiers (30 simulations above 2); tiers are reported, not an objective
Calibration against history
The 50 experiments of this cycle that start from a reconstructed 1996 position, scored against the 2026 ratings. Each one's own "Against history" panel is on its experiment page.
E4: 50 economies from reconstructed 1996 positions, played for 30 years along the pathways they actually pursued and the shocks they actually suffered, 30 seeds each, scored against the 2026 ratings. Chile and Poland are held out. The 1996 positions are reconstructed (estimated by a reviewer model and aligned to the Index's scale), so a large error may be the reconstruction's as much as the model's. Persistence is the naive forecast that nothing changed after 1996: the model has skill where it beats it.
Cycle 3 (cycle-003): model 0.2.0, parameters 0.1.1, graph 0.2.0. "Was" is cycle 2 (cycle-002: model 0.1.0, parameters 0.1.0).
- Calibration nations: group error, points (48 nations)
2.29 - against 1.69 standing still
Skill −0.35 · bias −0.51 · direction right 40%
Was 2.66 · skill −0.57 · bias −1.00 · direction 39%
- Hold-out nations (2 nations)
2.38 - against 1.64 standing still
Skill −0.45 · bias −1.63 · direction right 28%
Was 2.53 · skill −0.54 · bias −1.95 · direction 22%
Observed against simulated change in the index
One point a nation; on the dashed line the model matched history. Blue: calibration; amber: hold-out. Select a point for its experiment.
Change by domain, calibration nations
Mean change in points, 1996 to 2026: observed (grey, above) and simulated (blue, below).
- Critical Technologybias −0.02
observed +0.04 · simulated +0.02 · right direction 50%
- Financial Strengthbias −1.22
observed −0.04 · simulated −1.27 · right direction 40%
- Governance & Integritybias −0.16
observed −0.06 · simulated −0.22 · right direction 29%
- Human Capitalbias +0.09
observed −0.06 · simulated +0.03 · right direction 29%
- Information & Influencebias −1.22
observed −0.03 · simulated −1.25 · right direction 52%
- National Securitybias −0.53
observed +0.04 · simulated −0.49 · right direction 42%
- Production & Innovationbias −1.12
observed −0.04 · simulated −1.16 · right direction 44%
- Strategic Infrastructurebias +0.07
observed −0.03 · simulated +0.04 · right direction 35%
- Trade & Investmentbias −1.29
observed −0.04 · simulated −1.33 · right direction 40%
Every nation
| Nation | Index 1996 | Observed 2026 | Simulated 2026 | Index error | Group error | Skill | Direction |
|---|---|---|---|---|---|---|---|
| Zimbabwe | 7.22 | 4.33 | 4.51 4.5–4.6 | 0.17 vs 2.88 | 0.86 vs 2.85 | +0.70 | 100% |
| Venezuela | 10.19 | 4.55 | 8.38 8.3–8.5 | 3.83 vs 5.63 | 3.83 vs 5.43 | +0.29 | 89% |
| United States | 19.15 | 18.03 | 18.36 18.3–18.4 | 0.33 vs 1.12 | 0.92 vs 1.10 | +0.17 | 78% |
| Sri Lanka | 8.11 | 7.25 | 7.17 7.1–7.2 | 0.09 vs 0.86 | 0.95 vs 1.03 | +0.08 | 78% |
| Vietnam | 7.67 | 9.68 | 8.03 8.0–8.1 | 1.65 vs 2.01 | 1.99 vs 2.16 | +0.08 | 67% |
| Botswana | 9.60 | 6.08 | 9.27 9.2–9.3 | 3.20 vs 3.52 | 3.31 vs 3.40 | +0.03 | 67% |
| Egypt | 10.81 | 8.98 | 10.06 10.0–10.1 | 1.09 vs 1.83 | 1.87 vs 1.89 | +0.01 | 56% |
| Argentina | 10.76 | 9.25 | 9.72 9.7–9.8 | 0.47 vs 1.51 | 1.70 vs 1.63 | −0.04 | 78% |
| Finland | 15.66 | 14.52 | 15.48 15.5–15.5 | 0.97 vs 1.15 | 1.89 vs 1.72 | −0.10 | 44% |
| United Arab Emirates | 9.78 | 11.94 | 9.76 9.7–9.8 | 2.18 vs 2.16 | 2.86 vs 2.47 | −0.15 | 33% |
| Polandhold-out | 9.92 | 12.39 | 9.79 9.8–9.8 | 2.60 vs 2.48 | 2.88 vs 2.48 | −0.16 | 22% |
| Taiwan | 14.85 | 14.03 | 14.71 14.7–14.7 | 0.68 vs 0.82 | 1.17 vs 0.98 | −0.19 | 44% |
| Norway | 16.23 | 14.62 | 16.71 16.7–16.7 | 2.09 vs 1.61 | 2.56 vs 2.09 | −0.23 | 11% |
| South Korea | 13.13 | 16.00 | 12.72 12.7–12.8 | 3.28 vs 2.88 | 3.52 vs 2.86 | −0.23 | 11% |
| Singapore | 15.25 | 15.20 | 15.24 15.2–15.3 | 0.04 vs 0.05 | 1.99 vs 1.57 | −0.26 | 56% |
| Japan | 16.49 | 16.26 | 17.05 17.0–17.1 | 0.79 vs 0.23 | 1.65 vs 1.31 | −0.26 | 33% |
| China | 9.13 | 15.64 | 6.93 6.9–7.0 | 8.72 vs 6.52 | 8.72 vs 6.76 | −0.29 | 11% |
| South Africa | 11.66 | 10.77 | 11.80 11.8–11.8 | 1.03 vs 0.88 | 1.50 vs 1.11 | −0.35 | 44% |
| Greece | 12.10 | 10.61 | 12.18 12.1–12.3 | 1.56 vs 1.49 | 2.22 vs 1.61 | −0.38 | 44% |
| Qatar | 9.65 | 9.39 | 9.64 9.6–9.7 | 0.24 vs 0.26 | 1.96 vs 1.41 | −0.39 | 56% |
| Czechia | 11.89 | 11.51 | 11.60 11.6–11.7 | 0.09 vs 0.38 | 1.52 vs 1.08 | −0.41 | 44% |
| Rwanda | 5.13 | 5.95 | 4.54 4.5–4.6 | 1.41 vs 0.81 | 1.66 vs 1.18 | −0.41 | 0% |
| India | 8.92 | 12.62 | 7.32 7.3–7.4 | 5.29 vs 3.69 | 5.33 vs 3.76 | −0.42 | 0% |
| Colombia | 9.85 | 9.11 | 8.99 8.9–9.0 | 0.12 vs 0.74 | 1.93 vs 1.35 | −0.43 | 67% |
| United Kingdom | 17.25 | 16.45 | 17.52 17.5–17.6 | 1.07 vs 0.80 | 1.76 vs 1.22 | −0.44 | 33% |
| Malaysia | 12.22 | 11.48 | 12.10 12.1–12.1 | 0.61 vs 0.74 | 1.43 vs 0.98 | −0.46 | 33% |
| Nigeria | 7.51 | 7.43 | 7.87 7.8–7.9 | 0.45 vs 0.09 | 1.31 vs 0.89 | −0.48 | 44% |
| Israel | 15.14 | 14.46 | 15.80 15.7–15.9 | 1.35 vs 0.69 | 2.12 vs 1.43 | −0.48 | 44% |
| Lithuania | 8.78 | 10.75 | 7.99 8.0–8.0 | 2.75 vs 1.96 | 2.92 vs 1.97 | −0.48 | 11% |
| Ukraine | 9.65 | 9.40 | 6.88 6.8–7.0 | 2.52 vs 0.25 | 2.64 vs 1.70 | −0.55 | 56% |
| Ireland | 11.93 | 12.08 | 11.83 11.8–11.9 | 0.24 vs 0.15 | 2.07 vs 1.32 | −0.57 | 56% |
| Italy | 14.51 | 13.72 | 13.96 13.9–14.0 | 0.23 vs 0.79 | 1.78 vs 1.10 | −0.62 | 33% |
| Philippines | 9.40 | 8.83 | 8.17 8.1–8.2 | 0.66 vs 0.56 | 1.67 vs 1.02 | −0.64 | 56% |
| Germany | 16.98 | 16.36 | 17.51 17.5–17.5 | 1.15 vs 0.62 | 1.82 vs 1.09 | −0.66 | 33% |
| Russia | 11.19 | 12.30 | 11.32 11.2–11.4 | 0.98 vs 1.11 | 3.62 vs 2.14 | −0.69 | 44% |
| Kazakhstan | 7.45 | 8.14 | 7.11 7.1–7.1 | 1.03 vs 0.70 | 1.66 vs 0.97 | −0.71 | 22% |
| Indonesia | 8.28 | 9.97 | 7.29 7.2–7.3 | 2.68 vs 1.69 | 2.90 vs 1.68 | −0.72 | 11% |
| Hungary | 10.85 | 10.52 | 10.94 10.9–11.0 | 0.43 vs 0.34 | 1.63 vs 0.92 | −0.76 | 11% |
| Estonia | 10.47 | 11.49 | 10.00 10.0–10.1 | 1.48 vs 1.02 | 2.29 vs 1.27 | −0.80 | 33% |
| Saudi Arabia | 11.02 | 11.19 | 11.18 11.1–11.2 | 0.02 vs 0.17 | 2.26 vs 1.24 | −0.82 | 44% |
| Georgia | 6.45 | 7.54 | 4.81 4.8–4.9 | 2.73 vs 1.09 | 2.63 vs 1.41 | −0.86 | 11% |
| Bangladesh | 6.47 | 6.73 | 5.38 5.3–5.4 | 1.35 vs 0.26 | 1.61 vs 0.86 | −0.87 | 22% |
| Ethiopia | 5.96 | 5.70 | 4.31 4.3–4.4 | 1.39 vs 0.27 | 1.42 vs 0.76 | −0.88 | 56% |
| Mexico | 9.67 | 10.85 | 8.59 8.5–8.6 | 2.26 vs 1.18 | 2.55 vs 1.31 | −0.95 | 11% |
| Brazil | 11.43 | 11.69 | 11.55 11.5–11.6 | 0.14 vs 0.26 | 1.88 vs 0.91 | −1.06 | 44% |
| Peru | 8.94 | 8.61 | 7.17 7.1–7.2 | 1.44 vs 0.34 | 1.86 vs 0.90 | −1.08 | 44% |
| Chilehold-out | 10.29 | 10.61 | 9.72 9.7–9.8 | 0.89 vs 0.32 | 1.88 vs 0.81 | −1.34 | 33% |
| Kenya | 7.31 | 7.18 | 5.61 5.6–5.7 | 1.57 vs 0.14 | 1.81 vs 0.77 | −1.35 | 33% |
| Türkiye | 10.83 | 12.18 | 8.23 8.2–8.3 | 3.94 vs 1.34 | 4.09 vs 1.67 | −1.45 | 11% |
| Thailand | 10.39 | 10.70 | 9.89 9.8–9.9 | 0.81 vs 0.31 | 2.12 vs 0.79 | −1.68 | 11% |
Diagnosis
The loop's analyst's write-up of the cycle, as it was written. Cycles before the vocabulary of 20 October 2026 use the older words.
17 findings. Ordered by priority: invariants, calibration, degeneracy, plausibility, saturation, sensitivity, framework.
F-cycle-003-01: The backcast ends trade and investment 1.3 points too low against the 2026 ratings.
Layer: parameter. Class: calibration_error. Source: rules
Evidence: checks.parquet backcast_bias:trade_and_investment: trade_and_investment: simulated -1.33 points of change on average against -0.04 observed (bias -1.29, error 2.77 against 1.76 for persistence, direction right 40 per cent) (calibration nations; reconstructed 1996 starting positions) [backcast_comparison].
Hypothesis: Capability in this domain decays too fast for what nations actually spent on it, or costs too much to build: the model cannot reproduce the gains history shows.
Proposed change: Multiply the trade_and_investment class's decay rates by 0.75 in data/sim/seed/params_v0_1.yaml
Scope: parameter
Expected effect: |bias| in trade_and_investment under 1 point on the calibration nations, without worsening the hold-out.
Verification: Rerun the backcast; accept if backcast_bias:trade_and_investment passes and backcast_skill_holdout does not fall.
Risk: Changes every nation's trajectory in this domain, not only the backcast's; the reconstruction itself may be what is wrong.
F-cycle-003-02: The backcast ends financial strength 1.2 points too low against the 2026 ratings.
Layer: parameter. Class: calibration_error. Source: rules
Evidence: checks.parquet backcast_bias:financial_strength: financial_strength: simulated -1.27 points of change on average against -0.04 observed (bias -1.22, error 2.80 against 1.79 for persistence, direction right 40 per cent) (calibration nations; reconstructed 1996 starting positions) [backcast_comparison].
Hypothesis: Capability in this domain decays too fast for what nations actually spent on it, or costs too much to build: the model cannot reproduce the gains history shows.
Proposed change: Multiply the financial_strength class's decay rates by 0.75 in data/sim/seed/params_v0_1.yaml
Scope: parameter
Expected effect: |bias| in financial_strength under 1 point on the calibration nations, without worsening the hold-out.
Verification: Rerun the backcast; accept if backcast_bias:financial_strength passes and backcast_skill_holdout does not fall.
Risk: Changes every nation's trajectory in this domain, not only the backcast's; the reconstruction itself may be what is wrong.
F-cycle-003-03: The backcast ends information and influence 1.2 points too low against the 2026 ratings.
Layer: parameter. Class: calibration_error. Source: rules
Evidence: checks.parquet backcast_bias:information_and_influence: information_and_influence: simulated -1.25 points of change on average against -0.03 observed (bias -1.22, error 2.33 against 1.93 for persistence, direction right 52 per cent) (calibration nations; reconstructed 1996 starting positions) [backcast_comparison].
Hypothesis: Capability in this domain decays too fast for what nations actually spent on it, or costs too much to build: the model cannot reproduce the gains history shows.
Proposed change: Multiply the information_and_influence class's decay rates by 0.75 in data/sim/seed/params_v0_1.yaml
Scope: parameter
Expected effect: |bias| in information_and_influence under 1 point on the calibration nations, without worsening the hold-out.
Verification: Rerun the backcast; accept if backcast_bias:information_and_influence passes and backcast_skill_holdout does not fall.
Risk: Changes every nation's trajectory in this domain, not only the backcast's; the reconstruction itself may be what is wrong.
F-cycle-003-04: The backcast ends production and innovation 1.1 points too low against the 2026 ratings.
Layer: parameter. Class: calibration_error. Source: rules
Evidence: checks.parquet backcast_bias:production_and_innovation: production_and_innovation: simulated -1.16 points of change on average against -0.04 observed (bias -1.12, error 2.39 against 1.50 for persistence, direction right 44 per cent) (calibration nations; reconstructed 1996 starting positions) [backcast_comparison].
Hypothesis: Capability in this domain decays too fast for what nations actually spent on it, or costs too much to build: the model cannot reproduce the gains history shows.
Proposed change: Multiply the production_and_innovation class's decay rates by 0.75 in data/sim/seed/params_v0_1.yaml
Scope: parameter
Expected effect: |bias| in production_and_innovation under 1 point on the calibration nations, without worsening the hold-out.
Verification: Rerun the backcast; accept if backcast_bias:production_and_innovation passes and backcast_skill_holdout does not fall.
Risk: Changes every nation's trajectory in this domain, not only the backcast's; the reconstruction itself may be what is wrong.
F-cycle-003-05: The backcast does worse than assuming nothing changed since 1996.
Layer: mechanic. Class: calibration_error. Source: rules
Evidence: checks.parquet backcast_skill_calibration: 48 calibration nations: simulated 2026 groups miss the ratings by 2.29 points on average, against 1.69 for assuming nothing changed (skill -0.35); bias -0.51; the change in each domain has the right sign 40 per cent of the time; index error 1.51 against 1.25 [backcast_comparison].
Hypothesis: The model moves capability by the wrong amounts or in the wrong places: compare simulated with observed change by domain.
Proposed change: Treat the domain biases first; then test whether the credit calibration (income proportional to the cost of the starting position) lets low-rated nations catch up as history shows.
Scope: structural
Expected effect: backcast_skill_calibration above 0.
Verification: Rerun the backcast; accept if skill is positive on the calibration nations and not worse on the hold-out.
Risk: Over-fitting to reconstructed starting positions.
F-cycle-003-06: The same move is repeated in most rounds in 4 experiments.
Layer: harness. Class: degenerate_strategy. Source: rules
Evidence: checks.parquet same_action: e4-bgd 67% of rounds; e4-phl 77% of rounds; e4-per 77% of rounds; e4-kaz 70% of rounds [decision_sequence].
Hypothesis: The mirror-peer policy measures its gaps against current scores and ignores levels still in delivery, so it keeps funding a gap it has already paid to close; near its horizon greedy can only value fast (bought) moves, so it repeats them.
Proposed change: Count levels still in delivery when mirror_peer measures a gap and when greedy measures the room left below 20 (pipeline/sim/policies).
Scope: harness
Expected effect: same_action passes for the mirror-peer experiments.
Verification: Rerun e3-*-mirror-peer; accept if same_action passes for all five nations.
Risk: Changes the baselines' behaviour, so cycle-on-cycle comparison of those experiments breaks once.
F-cycle-003-07: Groups move more than 3 points in a year without any shock.
Layer: parameter. Class: implausible_dynamics. Source: rules
Evidence: 3 experiments: e4-isr move_without_shock 4.45; e4-rus move_without_shock 4.11; e4-jpn move_without_shock 4.03 (checks.parquet) [decision_sequence]. Of the 218 group-years that moved more than 3 points without a shock, investment arriving averaged 3.72 points and propagation +0.000: the moves are investment, not the graph.
Hypothesis: A move is a share of income, and income scales with the cost of holding the whole position, so the largest chunk buys several levels of a weak group in one year.
Proposed change: Lower chunk_large from 0.03 to 0.018 in data/sim/seed/params_v0_1.yaml (model).
Scope: parameter
Expected effect: move_without_shock at or below 3 points in the E3 experiments that fail it.
Verification: Rerun e4-isr, e4-jpn, e4-rus; accept if the share of failing experiments falls by half.
Risk: Slower growth for every nation and policy; less of the headroom is spent, so carried credits rise.
F-cycle-003-08: Domains gain more than two tiers within five years, including under the hold policy, which makes no moves.
Layer: methodology. Class: methodology_question. Source: rules
Evidence: 27 experiments: e4-rus 11 tiers; e4-ltu 8 tiers; e4-idn 7 tiers; e4-grc 7 tiers; 0 of them hold experiments (checks.parquet) [tier_transitions].
Hypothesis: Below Tier 1 the Pareto layers of a domain are close together (a tolerance of a quarter of a point across 197 nations), so a small move crosses several layers. The heuristic's two tiers may suit coarse tiers, not Pareto layers.
Proposed change: Decide how the model should read tier movement: against the Index's published tier bands, with a wider tolerance, or not at all.
Scope: methodology
Expected effect: A tier measure that moves only when capability moves materially.
Verification: Rerun the cycle batch with the chosen measure; accept if tier_jump passes for the hold experiments.
Risk: Changing the tiering here would make results incomparable with the Index's own tiers.
F-cycle-003-09: Groups are driven to 20 and held there in many runs, across nations and policies.
Layer: parameter. Class: saturation. Source: rules
Evidence: 11 experiments above 25 per cent of runs: e4-sgp 100%; e4-irl 100%; e4-twn 100%; e4-isr 100%; e4-fin 100%. Groups most often driven to 20: Health System Capability (120), National Resilience & Crisis Management (120), Semiconductors & Advanced Computing (90), Artificial Intelligence (90), Energy Technologies (90) [trajectory_by_domain].
Hypothesis: Costs above the frontier (17) do not steepen enough to stop a well-funded nation buying the last levels.
Proposed change: Raise frontier_premium from 1 to 1.5 (model).
Scope: parameter
Expected effect: The share of runs ending with a group newly at 20 falls below 25 per cent in the greedy E3 experiments.
Verification: Rerun the E3 greedy experiments; accept if saturation_high passes in at least half of those that failed.
Risk: Frontier nations gain less; the frontier parameter is already the most sensitive.
F-cycle-003-10: step_time in the batch.
Layer: harness. Class: sensitivity. Source: rules
Evidence: checks.parquet: median step 1695 us against 1026 us in cycle-002.
Hypothesis: Slower code or a busier machine.
Proposed change: Find the change and either record it with a version bump or revert it.
Scope: harness
Expected effect: step_time passes.
Verification: Rerun the batch.
Risk: None.
F-cycle-003-AI01: Four domain classes end the backcast 1.1-1.3 points below observed.
Layer: parameter. Class: calibration_error. Source: ai:deepseek-v4-pro
Evidence: backcast BY DOMAIN table: financial_strength bias -1.22, information_and_influence -1.22, production_and_innovation -1.12, trade_and_investment -1.29.
Hypothesis: Their decay rates are too high relative to historical net change.
Proposed change: Multiply the built and bought decay rates for these four classes by 0.75 in data/sim/seed/params_v0_1.yaml.
Scope: parameter
Expected effect: Reduces simulated domain decline and biases toward zero for non-hold-out calibration nations.
Verification: Rerun backcast on non-hold-out calibration nations and compare domain MAE; require bias <0.5 in absolute value.
Risk: May over-correct saturated high-rated nations if frontier saturation is not fixed first; high-rated groups could rise faster.
F-cycle-003-AI02: The backcast correlation is -0.09 and the model cannot reproduce observed catch-up growth.
Layer: mechanic. Class: calibration_error. Source: ai:deepseek-v4-pro
Evidence: backcast comparison: observed 30-year changes -5.6 to +6.5, simulated -2.8 to +0.7; five fastest risers observed +3.5, model -0.8.
Hypothesis: Income is calibrated to the cost of the current starting position, so low-rated nations remain credit-poor.
Proposed change: Add a catch-up term to the income calculation: an additive bonus scaled by distance below the frontier, gated by governance/human capital or development thresholds.
Scope: structural
Expected effect: Low-start nations receive more credits and can fund moves; backcast correlation should become positive.
Verification: Backcast the five fastest historical risers; require simulated average change at least +2 for them.
Risk: May produce runaway growth for some low-capability nations if not gated; test on holdout CHL/POL only after tuning on non-holdouts.
F-cycle-003-AI03: One-year moves above 3 points occur without shocks in several experiments.
Layer: parameter. Class: implausible_dynamics. Source: ai:deepseek-v4-pro
Evidence: move_without_shock warnings: e4-isr 4.45, e4-rus 4.11; 100% of runs have one above 3.
Hypothesis: chunk_large at 0.03 of last income is large enough to deliver >3 levels in a cheap group in one year.
Proposed change: Reduce chunk_large from 0.03 to 0.018 in params_v0_1.yaml.
Scope: parameter
Expected effect: Maximum one-year build/buy step falls to roughly 2 points, eliminating the warning.
Verification: Rerun the move_without_shock check on ISR and RUS; largest expected below 3.
Risk: Slows all policy movement; may interact with delivery lags and reduce responsiveness.
F-cycle-003-AI04: Groups are driven to 20 and held there in many high-rated runs.
Layer: parameter. Class: saturation. Source: ai:deepseek-v4-pro
Evidence: saturation_high warnings: e4-sgp 100% runs median 4 groups; e4-fin median 3; e4-isr median 2; e4-twn and e4-irl 100% runs.
Hypothesis: The frontier premium is too low to slow investment above the frontier, so scores max out.
Proposed change: Raise frontier_premium from 1.0 to 1.5 in params_v0_1.yaml.
Scope: parameter
Expected effect: Increases marginal cost above frontier, reducing the number of groups at 20.
Verification: Rerun saturation_high check on affected nations; median new saturating groups below 1.
Risk: May over-penalise legitimate frontier leaders; if high starts decline, pair with the catch-up fix.
F-cycle-003-AI05: Domain tier gains of more than two tiers in five years are widespread, including under a hold policy with no moves.
Layer: methodology. Class: methodology_question. Source: ai:deepseek-v4-pro
Evidence: tier_jump warnings in e4-est, e4-chl, e4-pol, e4-chn, e4-ind, e4-vnm, e4-mys, e4-idn, e4-bra, e4-rus, e4-zaf, e4-ken, e4-tha, e4-sau; e4-rus largest gain 11 tiers, e4-idn 7 tiers.
Hypothesis: Published tier bands are too sensitive to small continuous score changes, so tier rank is a noisy objective.
Proposed change: Use the capability index and rank as primary objectives; relegate Pareto tier rank to diagnostic, or widen tolerance to at least 0.5 and report only horizon tier rank.
Scope: methodology
Expected effect: Fewer spurious tier_jump warnings and more stable ranking objectives.
Verification: Compare tier_rank_p50 with index_p50 and rank_p50; check if tier changes remain when tolerance is widened.
Risk: If stakeholders require tier thresholds, this removes a meaningful metric; document the trade-off.
F-cycle-003-AI06: The most repeated move appears in a median 67% of BGD rounds and 77% of PHL rounds.
Layer: harness. Class: degenerate_strategy. Source: ai:deepseek-v4-pro
Evidence: same_action warnings for e4-bgd and e4-phl.
Hypothesis: The policy measure of group gap or remaining room does not subtract credits already in delivery, so it repeats the same move.
Proposed change: Count pipeline credits (future deliveries) as committed before mirror_peer or greedy chooses the next move; for scripted policies, add round-robin or random perturbation.
Scope: harness
Expected effect: Reduces repeated moves and diversifies portfolio.
Verification: Rerun same_action checks; median repetition below 50%.
Risk: May reduce full funding of priority groups and slow high-ranked objectives.
F-cycle-003-AI07: The model currently produces broad declines for most developing nations but saturates high-rated groups; this is coherent with a maintenance model, not a development model.
Layer: framework. Class: framework_question. Source: ai:deepseek-v4-pro
Evidence: 37/50 median index values below start; backcast correlation -0.09; saturation_high warnings.
Hypothesis: The framework may be missing a positive development feedback: capabilities attract income and investment beyond current E, enabling catch-up.
Proposed change: Treat the income function as a framework question: decide whether the simulation is meant to reproduce historical development or to stress-test maintenance under shocks; if the former, add catch-up and diminishing returns.
Scope: framework
Expected effect: Aligns model architecture with the intended use and improves backcast fit.
Verification: Backcast correlation and MAE against history; policy experiments should show plausible divergence.
Risk: Broadens scope and may delay cycle; requires revisiting model version.
What the batch taught (research notes, not defects)
Backcast: across 48 calibration nations, the correlation between observed and simulated change in the index from 1996 to 2026 is -0.09; the observed changes range from -5.6 to +6.5 points, the simulated from -2.8 to +0.7 [backcast_comparison].
Backcast: closest to history SAU (error 0.02), SGP (error 0.04), LKA (error 0.08), CZE (error 0.09); furthest CHN (observed +6.5, simulated -2.2), IND (observed +3.7, simulated -1.6), TUR (observed +1.3, simulated -2.6), VEN (observed -5.6, simulated -1.8) [backcast_comparison].
Backcast: the five fastest risers in history (CHN, IND, KOR, ARE, VNM) gained +3.5 index points on average; the model gives them -0.8. It has no mechanism for catch-up growth: income is calibrated to the cost of the starting position, so a nation that starts low stays poor in credits [backcast_comparison].
Across the batch, the graph's busiest edges are Economic Output & Productivity to Fiscal Capacity & Public Finance (-0.28 points a run); Transport Infrastructure to Trade Facilitation & Logistics (+0.21 points a run); Energy Infrastructure to Advanced Manufacturing (+0.16 points a run) [top_edges].
Master recommendation
M-cycle-003, written by the reviewer (deepseek-v4-pro) from every recommendation of the cycle. It changes nothing until a person approves it in loop/approvals.yaml.
Master recommendation: fix backcast calibration, add catch-up income, and curb saturation and degenerate moves
The next run fixes measurement and calibration before tuning. Add committed pipeline to policy state (harness) and change tier evaluation to horizon-only diagnostic, then correct the four domain decay rates that are 1.1-1.3 points too negative, add a catch-up income mechanic so low-capability nations can fund convergence, reduce chunk_large to 0.018, and raise frontier_premium to 1.5. These changes should reduce backcast bias, remove implausible one-year moves, and stop saturation; no 2026 starting scores or hold-out targets are changed. Shock and upside magnitudes, absorption, maintenance, and headroom are left unchanged because current evidence is confounded with the income and decay fixes. Run cycle-004 with the same scripted policies and seeds, plus backcast and omitted checks.
- 1MethodologyTier movement reporting and objectives
Use capability index and rank as primary objectives; relegate Pareto tier rank to diagnostic; report only end-of-horizon tier rank with fixed 2026 tier bands and widen band tolerance from 0.25 to 0.5; do not use within-run tier jumps as acceptance criteria.
- 2Harness and datagreedy and mirror_peer policies
Count credits/levels already committed to future delivery as part of current capability when greedy measures room below 20 and when mirror_peer measures the gap to peer; add round-robin or random perturbation to scripted policies.
- 3Parameterdomain decay rates
Multiply the built and bought decay rates for financial_strength, information_and_influence, production_and_innovation, and trade_and_investment by 0.75.
- 4Mechanicincome calculation
Add a catch-up income component: credits_in += catch_up_gain * max(0, frontier - index) * gate, where frontier is 17.0, index is the capability index, gate is 1 when the mean of governance_and_institutions and human_capital groups is at least 5.0 else 0; initial catch_up_gain = 0.10.
- 5Parameterchunk_large
Reduce chunk_large from 0.03 to 0.018. Sets
chunk_largeto 0.018. - 6Parameterfrontier_premium
Increase frontier_premium from 1.00 to 1.50. Sets
frontier_premiumto 1.5.
Every recommendation, by layer
All the cycle's recommendations, from the rules and from the reviewer, each tied to the finding behind it. The master recommendation chooses among them.
The backcast ends trade and investment 1.3 points too low against the 2026 ratings.
Change. Multiply the trade_and_investment class's decay rates by 0.75 in data/sim/seed/params_v0_1.yaml
Verify. Rerun the backcast; accept if backcast_bias:trade_and_investment passes and backcast_skill_holdout does not fall.
The finding behind it (F-cycle-003-01)
- Evidence
- checks.parquet backcast_bias:trade_and_investment: trade_and_investment: simulated -1.33 points of change on average against -0.04 observed (bias -1.29, error 2.77 against 1.76 for persistence, direction right 40 per cent) (calibration nations; reconstructed 1996 starting positions) [backcast_comparison].
- Hypothesis
- Capability in this domain decays too fast for what nations actually spent on it, or costs too much to build: the model cannot reproduce the gains history shows.
- Expected effect
- |bias| in trade_and_investment under 1 point on the calibration nations, without worsening the hold-out.
- Verification
- Rerun the backcast; accept if backcast_bias:trade_and_investment passes and backcast_skill_holdout does not fall.
- Risk
- Changes every nation's trajectory in this domain, not only the backcast's; the reconstruction itself may be what is wrong.
The backcast ends financial strength 1.2 points too low against the 2026 ratings.
Change. Multiply the financial_strength class's decay rates by 0.75 in data/sim/seed/params_v0_1.yaml
Verify. Rerun the backcast; accept if backcast_bias:financial_strength passes and backcast_skill_holdout does not fall.
The finding behind it (F-cycle-003-02)
- Evidence
- checks.parquet backcast_bias:financial_strength: financial_strength: simulated -1.27 points of change on average against -0.04 observed (bias -1.22, error 2.80 against 1.79 for persistence, direction right 40 per cent) (calibration nations; reconstructed 1996 starting positions) [backcast_comparison].
- Hypothesis
- Capability in this domain decays too fast for what nations actually spent on it, or costs too much to build: the model cannot reproduce the gains history shows.
- Expected effect
- |bias| in financial_strength under 1 point on the calibration nations, without worsening the hold-out.
- Verification
- Rerun the backcast; accept if backcast_bias:financial_strength passes and backcast_skill_holdout does not fall.
- Risk
- Changes every nation's trajectory in this domain, not only the backcast's; the reconstruction itself may be what is wrong.
The backcast ends information and influence 1.2 points too low against the 2026 ratings.
Change. Multiply the information_and_influence class's decay rates by 0.75 in data/sim/seed/params_v0_1.yaml
Verify. Rerun the backcast; accept if backcast_bias:information_and_influence passes and backcast_skill_holdout does not fall.
The finding behind it (F-cycle-003-03)
- Evidence
- checks.parquet backcast_bias:information_and_influence: information_and_influence: simulated -1.25 points of change on average against -0.03 observed (bias -1.22, error 2.33 against 1.93 for persistence, direction right 52 per cent) (calibration nations; reconstructed 1996 starting positions) [backcast_comparison].
- Hypothesis
- Capability in this domain decays too fast for what nations actually spent on it, or costs too much to build: the model cannot reproduce the gains history shows.
- Expected effect
- |bias| in information_and_influence under 1 point on the calibration nations, without worsening the hold-out.
- Verification
- Rerun the backcast; accept if backcast_bias:information_and_influence passes and backcast_skill_holdout does not fall.
- Risk
- Changes every nation's trajectory in this domain, not only the backcast's; the reconstruction itself may be what is wrong.
The backcast ends production and innovation 1.1 points too low against the 2026 ratings.
Change. Multiply the production_and_innovation class's decay rates by 0.75 in data/sim/seed/params_v0_1.yaml
Verify. Rerun the backcast; accept if backcast_bias:production_and_innovation passes and backcast_skill_holdout does not fall.
The finding behind it (F-cycle-003-04)
- Evidence
- checks.parquet backcast_bias:production_and_innovation: production_and_innovation: simulated -1.16 points of change on average against -0.04 observed (bias -1.12, error 2.39 against 1.50 for persistence, direction right 44 per cent) (calibration nations; reconstructed 1996 starting positions) [backcast_comparison].
- Hypothesis
- Capability in this domain decays too fast for what nations actually spent on it, or costs too much to build: the model cannot reproduce the gains history shows.
- Expected effect
- |bias| in production_and_innovation under 1 point on the calibration nations, without worsening the hold-out.
- Verification
- Rerun the backcast; accept if backcast_bias:production_and_innovation passes and backcast_skill_holdout does not fall.
- Risk
- Changes every nation's trajectory in this domain, not only the backcast's; the reconstruction itself may be what is wrong.
The backcast does worse than assuming nothing changed since 1996.
Change. Treat the domain biases first; then test whether the credit calibration (income proportional to the cost of the starting position) lets low-rated nations catch up as history shows.
Verify. Rerun the backcast; accept if skill is positive on the calibration nations and not worse on the hold-out.
The finding behind it (F-cycle-003-05)
- Evidence
- checks.parquet backcast_skill_calibration: 48 calibration nations: simulated 2026 groups miss the ratings by 2.29 points on average, against 1.69 for assuming nothing changed (skill -0.35); bias -0.51; the change in each domain has the right sign 40 per cent of the time; index error 1.51 against 1.25 [backcast_comparison].
- Hypothesis
- The model moves capability by the wrong amounts or in the wrong places: compare simulated with observed change by domain.
- Expected effect
- backcast_skill_calibration above 0.
- Verification
- Rerun the backcast; accept if skill is positive on the calibration nations and not worse on the hold-out.
- Risk
- Over-fitting to reconstructed starting positions.
The same move is repeated in most rounds in 4 experiments.
Change. Count levels still in delivery when mirror_peer measures a gap and when greedy measures the room left below 20 (pipeline/sim/policies).
Verify. Rerun e3-*-mirror-peer; accept if same_action passes for all five nations.
The finding behind it (F-cycle-003-06)
- Evidence
- checks.parquet same_action: e4-bgd 67% of rounds; e4-phl 77% of rounds; e4-per 77% of rounds; e4-kaz 70% of rounds [decision_sequence].
- Hypothesis
- The mirror-peer policy measures its gaps against current scores and ignores levels still in delivery, so it keeps funding a gap it has already paid to close; near its horizon greedy can only value fast (bought) moves, so it repeats them.
- Expected effect
- same_action passes for the mirror-peer experiments.
- Verification
- Rerun e3-*-mirror-peer; accept if same_action passes for all five nations.
- Risk
- Changes the baselines' behaviour, so cycle-on-cycle comparison of those experiments breaks once.
Groups move more than 3 points in a year without any shock.
Change. Lower chunk_large from 0.03 to 0.018 in data/sim/seed/params_v0_1.yaml (model).
Verify. Rerun e4-isr, e4-jpn, e4-rus; accept if the share of failing experiments falls by half.
The finding behind it (F-cycle-003-07)
- Evidence
- 3 experiments: e4-isr move_without_shock 4.45; e4-rus move_without_shock 4.11; e4-jpn move_without_shock 4.03 (checks.parquet) [decision_sequence]. Of the 218 group-years that moved more than 3 points without a shock, investment arriving averaged 3.72 points and propagation +0.000: the moves are investment, not the graph.
- Hypothesis
- A move is a share of income, and income scales with the cost of holding the whole position, so the largest chunk buys several levels of a weak group in one year.
- Expected effect
- move_without_shock at or below 3 points in the E3 experiments that fail it.
- Verification
- Rerun e4-isr, e4-jpn, e4-rus; accept if the share of failing experiments falls by half.
- Risk
- Slower growth for every nation and policy; less of the headroom is spent, so carried credits rise.
Domains gain more than two tiers within five years, including under the hold policy, which makes no moves.
Change. Decide how the model should read tier movement: against the Index's published tier bands, with a wider tolerance, or not at all.
Verify. Rerun the cycle batch with the chosen measure; accept if tier_jump passes for the hold experiments.
The finding behind it (F-cycle-003-08)
- Evidence
- 27 experiments: e4-rus 11 tiers; e4-ltu 8 tiers; e4-idn 7 tiers; e4-grc 7 tiers; 0 of them hold experiments (checks.parquet) [tier_transitions].
- Hypothesis
- Below Tier 1 the Pareto layers of a domain are close together (a tolerance of a quarter of a point across 197 nations), so a small move crosses several layers. The heuristic's two tiers may suit coarse tiers, not Pareto layers.
- Expected effect
- A tier measure that moves only when capability moves materially.
- Verification
- Rerun the cycle batch with the chosen measure; accept if tier_jump passes for the hold experiments.
- Risk
- Changing the tiering here would make results incomparable with the Index's own tiers.
Groups are driven to 20 and held there in many runs, across nations and policies.
Change. Raise frontier_premium from 1 to 1.5 (model).
Verify. Rerun the E3 greedy experiments; accept if saturation_high passes in at least half of those that failed.
The finding behind it (F-cycle-003-09)
- Evidence
- 11 experiments above 25 per cent of runs: e4-sgp 100%; e4-irl 100%; e4-twn 100%; e4-isr 100%; e4-fin 100%. Groups most often driven to 20: Health System Capability (120), National Resilience & Crisis Management (120), Semiconductors & Advanced Computing (90), Artificial Intelligence (90), Energy Technologies (90) [trajectory_by_domain].
- Hypothesis
- Costs above the frontier (17) do not steepen enough to stop a well-funded nation buying the last levels.
- Expected effect
- The share of runs ending with a group newly at 20 falls below 25 per cent in the greedy E3 experiments.
- Verification
- Rerun the E3 greedy experiments; accept if saturation_high passes in at least half of those that failed.
- Risk
- Frontier nations gain less; the frontier parameter is already the most sensitive.
step_time in the batch.
Change. Find the change and either record it with a version bump or revert it.
Verify. Rerun the batch.
The finding behind it (F-cycle-003-10)
- Evidence
- checks.parquet: median step 1695 us against 1026 us in cycle-002.
- Hypothesis
- Slower code or a busier machine.
- Expected effect
- step_time passes.
- Verification
- Rerun the batch.
- Risk
- None.
Four domain classes end the backcast 1.1-1.3 points below observed.
Change. Multiply the built and bought decay rates for these four classes by 0.75 in data/sim/seed/params_v0_1.yaml.
Verify. Rerun backcast on non-hold-out calibration nations and compare domain MAE; require bias <0.5 in absolute value.
The finding behind it (F-cycle-003-AI01)
- Evidence
- backcast BY DOMAIN table: financial_strength bias -1.22, information_and_influence -1.22, production_and_innovation -1.12, trade_and_investment -1.29.
- Hypothesis
- Their decay rates are too high relative to historical net change.
- Expected effect
- Reduces simulated domain decline and biases toward zero for non-hold-out calibration nations.
- Verification
- Rerun backcast on non-hold-out calibration nations and compare domain MAE; require bias <0.5 in absolute value.
- Risk
- May over-correct saturated high-rated nations if frontier saturation is not fixed first; high-rated groups could rise faster.
The backcast correlation is -0.09 and the model cannot reproduce observed catch-up growth.
Change. Add a catch-up term to the income calculation: an additive bonus scaled by distance below the frontier, gated by governance/human capital or development thresholds.
Verify. Backcast the five fastest historical risers; require simulated average change at least +2 for them.
The finding behind it (F-cycle-003-AI02)
- Evidence
- backcast comparison: observed 30-year changes -5.6 to +6.5, simulated -2.8 to +0.7; five fastest risers observed +3.5, model -0.8.
- Hypothesis
- Income is calibrated to the cost of the current starting position, so low-rated nations remain credit-poor.
- Expected effect
- Low-start nations receive more credits and can fund moves; backcast correlation should become positive.
- Verification
- Backcast the five fastest historical risers; require simulated average change at least +2 for them.
- Risk
- May produce runaway growth for some low-capability nations if not gated; test on holdout CHL/POL only after tuning on non-holdouts.
One-year moves above 3 points occur without shocks in several experiments.
Change. Reduce chunk_large from 0.03 to 0.018 in params_v0_1.yaml.
Verify. Rerun the move_without_shock check on ISR and RUS; largest expected below 3.
The finding behind it (F-cycle-003-AI03)
- Evidence
- move_without_shock warnings: e4-isr 4.45, e4-rus 4.11; 100% of runs have one above 3.
- Hypothesis
- chunk_large at 0.03 of last income is large enough to deliver >3 levels in a cheap group in one year.
- Expected effect
- Maximum one-year build/buy step falls to roughly 2 points, eliminating the warning.
- Verification
- Rerun the move_without_shock check on ISR and RUS; largest expected below 3.
- Risk
- Slows all policy movement; may interact with delivery lags and reduce responsiveness.
Groups are driven to 20 and held there in many high-rated runs.
Change. Raise frontier_premium from 1.0 to 1.5 in params_v0_1.yaml.
Verify. Rerun saturation_high check on affected nations; median new saturating groups below 1.
The finding behind it (F-cycle-003-AI04)
- Evidence
- saturation_high warnings: e4-sgp 100% runs median 4 groups; e4-fin median 3; e4-isr median 2; e4-twn and e4-irl 100% runs.
- Hypothesis
- The frontier premium is too low to slow investment above the frontier, so scores max out.
- Expected effect
- Increases marginal cost above frontier, reducing the number of groups at 20.
- Verification
- Rerun saturation_high check on affected nations; median new saturating groups below 1.
- Risk
- May over-penalise legitimate frontier leaders; if high starts decline, pair with the catch-up fix.
Domain tier gains of more than two tiers in five years are widespread, including under a hold policy with no moves.
Change. Use the capability index and rank as primary objectives; relegate Pareto tier rank to diagnostic, or widen tolerance to at least 0.5 and report only horizon tier rank.
Verify. Compare tier_rank_p50 with index_p50 and rank_p50; check if tier changes remain when tolerance is widened.
The finding behind it (F-cycle-003-AI05)
- Evidence
- tier_jump warnings in e4-est, e4-chl, e4-pol, e4-chn, e4-ind, e4-vnm, e4-mys, e4-idn, e4-bra, e4-rus, e4-zaf, e4-ken, e4-tha, e4-sau; e4-rus largest gain 11 tiers, e4-idn 7 tiers.
- Hypothesis
- Published tier bands are too sensitive to small continuous score changes, so tier rank is a noisy objective.
- Expected effect
- Fewer spurious tier_jump warnings and more stable ranking objectives.
- Verification
- Compare tier_rank_p50 with index_p50 and rank_p50; check if tier changes remain when tolerance is widened.
- Risk
- If stakeholders require tier thresholds, this removes a meaningful metric; document the trade-off.
The most repeated move appears in a median 67% of BGD rounds and 77% of PHL rounds.
Change. Count pipeline credits (future deliveries) as committed before mirror_peer or greedy chooses the next move; for scripted policies, add round-robin or random perturbation.
Verify. Rerun same_action checks; median repetition below 50%.
The finding behind it (F-cycle-003-AI06)
- Evidence
- same_action warnings for e4-bgd and e4-phl.
- Hypothesis
- The policy measure of group gap or remaining room does not subtract credits already in delivery, so it repeats the same move.
- Expected effect
- Reduces repeated moves and diversifies portfolio.
- Verification
- Rerun same_action checks; median repetition below 50%.
- Risk
- May reduce full funding of priority groups and slow high-ranked objectives.
The reviewer's review
What the reviewer (deepseek-v4-pro) made of the cycle, given the batch summary, the checks, the rule findings and two reports. Its proposals appear above and always wait for approval.
This batch exposes a model that is structurally mean-reverting and often too pessimistic for low-rated nations. Across the 50 scripted runs, 37 of 50 median index values at the horizon are below their 2026 start, while only 13 are above; the p5-p95 intervals are narrow, typically under 0.2 index points, so the scripted policy and event stream produce little distributional spread. High-rated nations also saturate: e4-sgp has 100% of runs ending with a median of four groups at 20 that did not start there, with similar warnings for IRL, TWN, ISR and FIN. Two experiments show implausibly large one-year moves with no shock: ISR 4.45 and RUS 4.11 points. The backcast against history is the most concerning: correlation between observed and simulated 30-year change is -0.09; observed changes range from -5.6 to +6.5, simulated only -2.8 to +0.7. The five fastest historical risers gained 3.5 index points on average; the model gives them -0.8. Domain-level backcast biases are systematic: trade_and_investment -1.29, financial_strength -1.22, information_and_influence -1.22, production_and_innovation -1.12. These are distributional patterns, not single-run artefacts. The model lacks catch-up growth and simultaneously saturates high-rated groups because frontier costs are too cheap. The next cycle should prioritise the income/catch-up mechanism and frontier saturation before trusting rank or tier movements.
Outcome distributions are narrow under scripted policy
The p5-p95 ranges for the capability index are typically less than 0.2 points, so most runs end in a tight band around the median. Stochastic events do not produce large distributional spread.
batch summary columns index_p5/index_p95; e.g. SGP 15.230-15.249, KOR 12.714-12.732.
Backcast biases are domain-specific, not a single global drift
Four domains account for most of the negative bias, while critical_technology, human_capital, governance_and_integrity, and strategic_infrastructure finish close to observed. This points to targeted parameter fixes rather than global decay scaling.
backcast BY DOMAIN table: financial -1.22, info -1.22, prod -1.12, trade -1.29; other domains between -0.53 and +0.08.
Graph propagation is measurable and concentrated
The busiest dependency edges produce changes of 0.16-0.28 points per run, indicating that a few infrastructure-economic links dominate second-round effects.
top_edges research note: Economic Output to Fiscal Capacity -0.28; Transport to Trade Facilitation +0.21; Energy Infrastructure to Advanced Manufacturing +0.16.
Some lower-rated nations improve without changing the model
VNM's median index rises from 7.667 to 8.026 and its rank from 71 to 67; NGA similarly improves from 7.513 to 7.871 and rank 73 to 70. Policy can overcome decay in specific cases.
summary table e4-vnm and e4-nga.
Saturation marks the frontier behaviour
High-rated nations that begin near 15 often push multiple groups to 20, whereas low-rated nations never saturate. This split can guide frontier cost tuning.
saturation_high warnings listed only for SGP, IRL, TWN, ISR, FIN; no warnings for low-start nations.
Critique of a rule finding
F-cycle-003-10: no evidence in this batch that step_time changed; treat as an open question, not a recommendation until a harness diff is found.
Parameter judgements
The reviewer's verdict on each parameter or family of parameters: too high, too low or about right, with what it would set instead. The 2026 starting scores are fixed inputs and are never judged.
| Parameter | Now | Verdict | Suggested | Why |
|---|---|---|---|---|
| domain decay rates (financial_strength, information_and_influence, production_and_innovation, trade_and_investment) | built/bought decay 0.015/0.038, 0.022/0.045, 0.022/0.045, 0.022/0.045 | Too high | multiply the four classes' decay_built and decay_bought by 0.75 | Simulated domain changes are 1.1-1.3 points below observed; these classes all show large negative bias while observed changes are near zero.backcast BY DOMAIN table: biases -1.22, -1.22, -1.12, -1.29. |
| income base calibration and credit_eta | base_credits calibrated to 2026 position cost; credit_eta=0.70; headroom_base=0.10, headroom_slope=0.30 | too_low for low-rated catch-up | add a catch-up income component or make base credits target a frontier, rather than purely current cost | Starting income is pinned to current capability, so low-start countries cannot fund the moves seen in history.backcast comparison: correlation -0.09; fastest risers observed +3.5, simulated -0.8; simulated range -2.8 to +0.7 vs observed -5.6 to +6.5. |
| chunk_large | 0.03 x last income | Too high | 0.018 | Largest one-year move without shock exceeds 3 points; likely from a single large chunk delivering in a cheap group.move_without_shock warnings: e4-isr 4.45, e4-rus 4.11; 100% of runs have one above 3. |
| frontier_premium | 1.00 | Too low | 1.50 | Cost beyond frontier does not rise enough to prevent groups sitting at 20.saturation_high warnings: e4-sgp 100% runs median 4 groups; e4-fin median 3; e4-isr median 2; e4-twn and e4-irl 100% runs. |
| shock_magnitude_low/high | 0.60 / 1.20 | Cannot tell | no change without more evidence | Some observed large declines are missed, but the backcast also misses large rises; this is confounded with income, decay and exposure.backcast by nation: VEN observed -5.6 vs simulated -1.8; BWA observed -3.52 vs simulated -0.33; but CHN observed +6.5 vs simulated -2.2. |
| upside_magnitude_low/high and upside_probability_scale | 0.30 / 0.60, probability scale 0.50 | Cannot tell | leave until catch-up and decay fixes are tested | Upside events are not separable from policy-driven rise in this batch; no direct check on the upside parameter.backcast fastest risers not captured, but credit/decay confounds. |
| absorption_max | 0.75 | Cannot tell | no change | No direct evidence in the omitted checks; absorption interacts with buffer group means.model parameter table only; no absorption-specific check. |
| maintenance_share and headroom | maintenance_share=0.75; headroom_base=0.10, headroom_slope=0.30 | Cannot tell | re-evaluate after income catch-up; lower headroom for low fiscal capacity if still starved | Unpaid maintenance leads to decay, but it is downstream of insufficient income.narrative distribution: 37/50 median index below start; cannot separate from income calibration. |
Research notes
What the cycle taught that is not a defect, as written at the time.
- Backcast: across 48 calibration nations, the correlation between observed and simulated change in the index from 1996 to 2026 is -0.09; the observed changes range from -5.6 to +6.5 points, the simulated from -2.8 to +0.7 [backcast_comparison].
- Backcast: closest to history SAU (error 0.02), SGP (error 0.04), LKA (error 0.08), CZE (error 0.09); furthest CHN (observed +6.5, simulated -2.2), IND (observed +3.7, simulated -1.6), TUR (observed +1.3, simulated -2.6), VEN (observed -5.6, simulated -1.8) [backcast_comparison].
- Backcast: the five fastest risers in history (CHN, IND, KOR, ARE, VNM) gained +3.5 index points on average; the model gives them -0.8. It has no mechanism for catch-up growth: income is calibrated to the cost of the starting position, so a nation that starts low stays poor in credits [backcast_comparison].
- Across the batch, the graph's busiest edges are Economic Output & Productivity to Fiscal Capacity & Public Finance (-0.28 points a run); Transport Infrastructure to Trade Facilitation & Logistics (+0.21 points a run); Energy Infrastructure to Advanced Manufacturing (+0.16 points a run) [top_edges].
Every check that warned or failed
From the loop's history, with the check's category, for filtering.
52 of 52 checks
Check | Category | Experiment | Status | Detail |
|---|---|---|---|---|
| tier_jump | plausibility | e4-kor | warn | largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective |
| tier_jump | plausibility | e4-est | warn | largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective |
| saturation_high | saturation | e4-sgp | warn | 100% of simulations end with a group at 20 that did not start there (median 4 groups) |
| tier_jump | plausibility | e4-irl | warn | largest gain in one domain within five years: 7 tiers (30 simulations above 2); tiers are reported, not an objective |
| saturation_high | saturation | e4-irl | warn | 100% of simulations end with a group at 20 that did not start there (median 1 groups) |
| tier_jump | plausibility | e4-chl | warn | largest gain in one domain within five years: 5 tiers (30 simulations above 2); tiers are reported, not an objective |
| tier_jump | plausibility | e4-pol | warn | largest gain in one domain within five years: 5 tiers (30 simulations above 2); tiers are reported, not an objective |
| tier_jump | plausibility | e4-chn | warn | largest gain in one domain within five years: 5 tiers (30 simulations above 2); tiers are reported, not an objective |
| tier_jump | plausibility | e4-ind | warn | largest gain in one domain within five years: 5 tiers (30 simulations above 2); tiers are reported, not an objective |
| tier_jump | plausibility | e4-vnm | warn | largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective |
| saturation_high | saturation | e4-twn | warn | 100% of simulations end with a group at 20 that did not start there (median 1 groups) |
| move_without_shock | plausibility | e4-isr | warn | largest one-year move in a group with no shock landing: 4.45 points; 100% of simulations have one above 3 |
| saturation_high | saturation | e4-isr | warn | 100% of simulations end with a group at 20 that did not start there (median 2 groups) |
| saturation_high | saturation | e4-fin | warn | 100% of simulations end with a group at 20 that did not start there (median 3 groups) |
| tier_jump | plausibility | e4-mys | warn | largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective |
| tier_jump | plausibility | e4-idn | warn | largest gain in one domain within five years: 7 tiers (30 simulations above 2); tiers are reported, not an objective |
| tier_jump | plausibility | e4-bra | warn | largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective |
| move_without_shock | plausibility | e4-rus | warn | largest one-year move in a group with no shock landing: 4.11 points; 100% of simulations have one above 3 |
| tier_jump | plausibility | e4-rus | warn | largest gain in one domain within five years: 11 tiers (30 simulations above 2); tiers are reported, not an objective |
| tier_jump | plausibility | e4-zaf | warn | largest gain in one domain within five years: 6 tiers (30 simulations above 2); tiers are reported, not an objective |
Showing 1–20 of 52 checks · page 1 of 3