Cycle 3 · 2026-10-20

The improvement loop

Every cycle runs the model, records everything that happened, writes up what it shows, diagnoses what should change and turns that into instructions for the next cycle. The loop is recursive, not autonomous: parameter changes are made one at a time and verified, structural changes wait for a person, and questions about the framework are flagged, never tuned.

3 cycles · 5,401 simulations · parameters now 0.1.1 · graph 0.2.0

The ledger · Research notes · The latest cycle

Recommendations, not results
Everything on this page is about the model, not about nations. A finding says what the model does wrong or cannot yet do; a research note says what the model implies under its current, structural parameters.

One cycle

Six steps. The harness owns the first two, the loop's analyst the next three, and a person the gate.

  1. 1Run

    The harness runs the cycle batch: the null experiment and the baselines for five nations under four methods, with fixed seeds, and the backcast from 1996.

  2. 2Record

    Every round is written to Parquet: trajectory, decisions and their actions with reasons, events, the propagation ledger, credits, tiers, objectives and counterfactual probes.

  3. 3Narrate

    A report for every experiment, written from named queries over the record: distributions across simulations, not single simulations.

  4. 4Diagnose

    The checks become findings, each with evidence, a hypothesis, a proposed change, a scope, an expected effect, a verification and a risk.

  5. 5Recommend

    Each finding becomes a recommendation at its layer: a parameter, a mechanic, the methodology, the harness. A reviewer model judges every layer and adds its own.

  6. 6Master and gate

    One master recommendation chooses and orders a package to run next. A person reviews and approves it; the next cycle applies it and runs again.

Master recommendation

M-cycle-003, from cycle 3, written by the reviewer (deepseek-v4-pro) from every recommendation of the cycle. It changes nothing until a person approves it: add "M-cycle-003: approved" under masters in loop/approvals.yaml, then run the next cycle.

M-cycle-003Proposed

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.

  1. 1
    MethodologyTier 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.

    Tier gains of up to 11 within 30 years, including under hold, are artefacts of band tolerance and frequent re-ranking; treating tier as diagnostic prevents misleading acceptance based on unstable tier movement. From F-cycle-003-08, F-cycle-003-AI05.

  2. 2
    Harness 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.

    Without counting pipeline, the same move repeats in 67-77% of rounds and biases all decision-sensitive checks; fixing this before tuning avoids tuning to degenerate strategies. From F-cycle-003-06, F-cycle-003-AI06.

  3. 3
    Parameterdomain 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.

    Backcast domain changes are 1.1-1.3 points too negative; lowering these decay rates directly addresses the largest measured calibration error while leaving other dynamics unchanged. From F-cycle-003-01, F-cycle-003-02, F-cycle-003-03, F-cycle-003-04, F-cycle-003-AI01.

  4. 4
    Mechanicincome 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.

    Current income is pinned to current capability, so low-start nations cannot reproduce observed catch-up; the additive term is gated to avoid windfalls to poorly governed states. From F-cycle-003-05, F-cycle-003-AI02.

  5. 5
    Parameterchunk_large

    Reduce chunk_large from 0.03 to 0.018. Sets chunk_large to 0.018.

    The largest chunk can deliver more than 3 points in one year without a shock; a smaller maximum move removes implausible single-year jumps while preserving multiple smaller moves. From F-cycle-003-07, F-cycle-003-AI03.

  6. 6
    Parameterfrontier_premium

    Increase frontier_premium from 1.00 to 1.50. Sets frontier_premium to 1.5.

    Cost beyond the frontier is too low, letting many groups sit at 20; raising the premium makes frontier saturation more expensive without affecting sub-frontier positions. From F-cycle-003-09, F-cycle-003-AI04.

What to run

Run cycle-004 with the same 30-year scripted policy for the same 52 experiment nations and seed set as cycle-003; include the standard backcast comparison over the 48 calibration nations and the omitted checks (decision_sequence, trajectory_by_domain, tier_transitions, move_without_shock, saturation_high). No 2026 starting scores changed; no hold-out nation used for calibration.

Accept if

  • backcast_bias for financial_strength, information_and_influence, production_and_innovation, and trade_and_investment is within ±0.75 points of observed
  • backcast_skill_calibration >= 0.0 and backcast_index_error <= 1.30
  • move_without_shock maximum is < 3.0 points for every experiment nation
  • saturated_high_share is <= 0.10 across all runs
  • same_action share is <= 0.25 for every experiment nation
  • tier_jump warnings are not used as acceptance; horizon tier rank is reported with 0.5 tolerance

Deferred

  • F-cycle-003-10 Step-time is a harness sensitivity/performance issue. It does not affect capability paths; defer until after this package is accepted, then track with a version bump.

Risks

  • The catch-up component may overcorrect low-rated catch-up and interact with reduced decay, creating new saturation at lower levels.
  • Decay scaling across four domains may overshoot the backcast and require a second calibration adjustment.
  • Frontier_premium 1.5 may over-suppress high-performers and shift rankings more than intended.
  • Pipeline-aware policies may change decisions materially; scripted policies may need further adjustment if same_action persists.
  • Tier evaluation is diagnostic only, but underlying tier jumps may still look implausible to stakeholders; further methodological review may be needed.

Every recommendation of cycle 3, by layer

Cycles

One row per cycle: its batch, the versions it ran under, its checks and findings, and what it implemented. Each cycle's page has its batch, checks, diagnosis, next steps and the reviewer's verdicts.

CycleBatchDateParametersModel, graphExperimentsSimulationsChecksFindingsImplemented
Cycle 1cycle-0012026-10-200.1.0 → 0.1.00.1.0, 0.2.0252,401251 69 023–
Cycle 2cycle-0022026-10-200.1.0 → 0.1.00.1.0, 0.2.0501,500534 79 018–
Cycle 3cycle-0032026-10-200.1.0 → 0.1.10.2.0, 0.2.0501,500661 52 017M-cycle-002

Stop condition: not evaluable: no backcast. The loop pauses for a human review when the hold-out backcast error stops improving for three cycles, or improves calibration while worsening the hold-out.

Master recommendations and what came of them

Every master recommendation, whether it was approved, and what the next cycle changed and found.

  • M-cycle-003Proposed2026-10-20

    Master recommendation: fix backcast calibration, add catch-up income, and curb saturation and degenerate moves

    Awaiting review.

  • M-cycle-002Under test2026-10-20

    Cycle-003 package: fix credit feedback and decay bias, add score-proportional shock scaling, and curb saturation

    parameters 0.1.0 -> 0.1.1: model credit_eta: 1 -> 0.7; every decay rate x 0.75 (12 lines: built, bought and partnered); model chunk_large: 0.05 -> 0.03; model frontier_premium: 0.6 -> 1; model maintenance_share: 0.5 -> 0.75. Implemented by the agent before the run: 1. [methodology] objectives; 2. [mechanic] event_scale

  • M-cycle-001Proposed2026-10-20

    Fix measurement and policy degeneracy before parameter reductions: backcast, pipeline-aware moves, objective demotion, shock scaling, and two parameter steps

    Awaiting review.

Evolution of the engine

The same configurations with the same seeds, cycle by cycle, so a difference is the model's and not luck's. Select one to show or hide it.

Checks by cycle

Flagged for the framework review

Groups and measures the model cannot represent sensibly. They are findings about the National Capability Framework, not parameters to tune.

  • Monetary & Currency Capability cannot be given a defensible cost, decay or vulnerability. cost_params and decay_params, defensible = false: Monetary credibility and the international use of a currency follow from history and the size of the economy; neither a cost per level nor a decay rate is defensible. Left at the class values.
  • Economic Leverage & Dependence cannot be given a defensible cost, decay or vulnerability. cost_params and decay_params, defensible = false: Leverage is relational; a nation's level depends on others' dependence on it, which phase one freezes. No cost or vulnerability is defensible for a single-nation model.
  • Nuclear Deterrence cannot be given a defensible cost, decay or vulnerability. cost_params and decay_params, defensible = false: Deterrence is close to binary and governed by treaty; a level scale, a yearly cost per level and a decay rate do not describe it. Kept expensive and unbuyable so the solver cannot treat it as a cheap source of points.
  • Early Childhood Development cannot be given a defensible cost, decay or vulnerability. cost_params and decay_params, defensible = false: Early childhood investment pays out in adult skills ten to fifteen years later; a six-year delivery and a decay rate on the group's own score do not represent that lag. The graph's edges carry it instead.
  • Diaspora & Global Communities cannot be given a defensible cost, decay or vulnerability. cost_params and decay_params, defensible = false: A diaspora is a demographic stock formed over generations; a budget does not build it, so no cost per level is defensible. Kept costly so that it is not a cheap target.
  • Several capability groups lack a defensible cost, decay or vulnerability as investment targets. F-cycle-001-11 to -15 list Monetary & Currency Capability, Economic Leverage & Dependence, Nuclear Deterrence, Early Childhood Development, Diaspora & Global Communities [RECOMMENDATIONS_ALREADY_RAISED].
  • 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. 37/50 median index values below start; backcast correlation -0.09; saturation_high warnings.