assembly-economics/models/Calibration.md

222 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Calibration of GADM-0.4 to measured data
**Status:** v0.6 (2026-10-14): EU market concentration measured (STOXX
Europe 600 top-10 about 21 %), China (J4) added; 50 of 50 targets in range,
42 measured. Readings R1–R4 unchanged. Earlier: v0.5 (2026-10-13). ASSEMBLY-WP-0013, then the 2026-10-13 review
(§ 3.1): 36 of 40 targets measured, all 40 inside their ranges after fitting.
v0.5 adds Argentina's ecological headroom (global planetary-boundary measure),
which fits AR's `ereg` (0.0058) instead of the default. Calibrates starting states
for US, EU, DE and AR. Argentina has no measured adoption growth, so it is
calibrated only on priors. Most state targets are literature priors that the
next review must verify against checkpoint data.
Reproduce:
```bash
cd simulations/gadm02
python3 -B calibrate_data.py # results/calibration.md, results/calibrated_starts.json
python3 -B calibrated_readings.py # results/calibrated_readings.md
```
## 1. Targets and observation operators (T01)
`simulations/gadm02/calibration_targets.json` holds, per jurisdiction and
model quantity, a target range in normalized model units, its **basis**
(`measured` at checkpoint 0, or `prior` from literature up to 2025) and the
observation operator: how the raw indicator maps onto the model quantity.
| Model quantity | Operator | Basis |
|---|---|---|
| K_Ω level | firm-use share (L1, L2) × usage intensity; a few percent of work hours AI-assisted | prior (level), measured (firm share) |
| K_Ω one-year ratio | ratio of the firm-use share over the last year | **measured**: US 1.46, EU 1.48, DE 1.31 |
| Pd, Pi, Pmem, Plin, Pm | leading search share; top-3 cloud share; OS/app-store duopoly; top-3 frontier developers; digital-sector concentration | prior |
| B | labour share plus broad transfers; trend from the F1 index | prior (level), **measured** (US trend) |
| A | self-directed leisure share (WP-0008 grounding) | prior |
| E | planetary-boundary position | prior |
| Σ | share more concerned than excited (Pew), Eurobarometer | prior |
Two operators carry most of the uncertainty. **K_Ω level:** firm use is not
task coverage, so the level is a wide range (0.05–0.20 for the US) and the
measured growth does the work. **Pmem:** whether OS and app-store control is
the "membrane" of GADM is a modeling judgment. The range is wide (0.40–0.85).
## 2. Routine (T02)
`calibrate_data.py`, standard library only:
1. Set stocks with targets (power channels, E, Σ) and fit the parameters that
put them at rest: channel counters (`gadm04.calibrate`), ecological
regeneration `ereg` (dE = 0), base labour share `wL0` (B on target). The
nearest archetype's levers are applied, except permissiveness.
2. Relax wealth, cohort attention and cohort agency to equilibrium.
3. Adoption: scale B2's adoption parameters by k. For each k, find the model
time t* where K_Ω's one-year ratio equals the observed ratio. Choose k so
that K_Ω(t*) is closest to the level target (log grid, k ∈ [0.25, 4]).
4. The calibrated start is the full state at t* with the fitted parameters.
**Identifiability.** The channel levels, E, Σ and B are set, not tested. They
fit by construction, and only their *drift* until t* is informative. The
adoption block is the only real fit: two measured or semi-measured quantities
(level, growth) against two free values (k, t*). Everything else in the model
(H, X, Q, N, S, F, G) remains at uninformed defaults.
## 3. Results (T03)
| Jurisdiction | Levers | k (× B2 speed) | t* | K_Ω(t*) | wL0 | out of range |
|---|---|---|---|---|---|---|
| US | J3 | 1.83 | 1.2 y | 0.120 | 0.530 | A −1.1 (attention extraction of J3), B trend −1.4 (falls slightly faster than measured) |
| EU | J1 | 1.41 | 0.9 y | 0.093 | 0.637 | none (A at the upper edge) |
| DE | J1 | 1.30 | 1.5 y | 0.112 | 0.637 | none |
| AR | J2 | — | — | — | 0.387 | no adoption data |
**Data verdict on the band anchors.** Aligned by growth alone, with no k:
- **B1** cannot produce the observed growth at all, in any of the three
jurisdictions.
- **B2** lands slightly low (z −0.5 to −0.9).
- **B3** fits (z −0.1 to +1.1).
- **B4** overshoots the level (z +1.4 US, +3.1 EU, +4.2 DE).
The present is between B2 and B3. B1 is ruled out as a description of
today, and B4 as a description of today's level. B4 can still describe the
future if self-enhancement starts later.
### 3.1 Calibration v0.4: measured targets and fitted parameters
The review `checkpoints/2026/2026-10-13-review.md` measured 35 of the 39
targets:
- adoption level and growth (BTOS, Eurostat; AR level from the Google/IDB
study);
- search share (Pd), mobile-OS HHI (Pmem), cloud top-3 share (Pi),
frontier-model top-3 share (Plin);
- claims breadth B (compensation plus social benefits, % of GDP) and the US
B trend;
- attention: US (ATUS 2025), DE and EU proxy (Destatis time-use survey 2022);
- ecological headroom E (Planetary Health Check 2025: 7 of 9 boundaries
breached) and US market concentration Pm (top-7 share of S&P 500 value);
- sentiment Σ for US (Pew 2026), EU (Eurobarometer) and AR (La Nación Data).
Fitted parameters per jurisdiction:
| | k (× B2) | t* | wL0 | ereg | aext | auto |
|---|---|---|---|---|---|---|
| US | 2.00 | 1.2 y | 0.478 | 0.0062 | 0.387 | **0.26** (fitted to the B trend) |
| EU | 1.54 | 0.9 y | 0.523 | 0.0063 | 0.719 | 0.60 (default) |
| DE | 1.41 | 1.5 y | 0.616 | 0.0066 | 0.702 | 0.60 |
| AR | 2.00 | 1.1 y | 0.387 | 0.0058 | 0.580 | 0.60 |
**Fit: 39 of 39 targets inside their range, including 35 of 35 measured
targets.**
- **Fitted against data:** adoption speed k and alignment t* (level and
growth), `wL0` (B level), `aext` (attention, US measured, others prior) and
`auto` (US B trend).
- **Set by assignment:** the channel levels are set to the measured values,
and the channel counter coefficients are fitted so that those levels are at
rest. That is a calibration of the counters, not a test of them.
Findings:
1. **Adoption.** The anchor verdict holds. B1 cannot produce the observed
growth anywhere, and B3 fits best (US z 0.0, AR 0.0, EU +0.5).
2. **Automation.** The measured US labour-share decline is slower than the
default automation strength implies. Fitted `auto` is 0.26 instead of 0.6.
3. **Domination starts at or above the floor:** US 0.68, EU 0.72, AR 0.75
(floor 0.70). The large contributions are measured: frontier-model spend
is 88 % with three firms, and search is 85–94 % with one.
4. **Ecology is close to its floor.** Measured E is 0.235 against a floor of
0.20. Ecological regeneration becomes one of the leading sensitivity
drivers (§ 4.1).
Still priors: market concentration Pm for the EU and AR, and AR adoption
*growth* (only one level point). They stay in ASSEMBLY-WP-0015-T06.
## 4. Readings from the calibrated start (T04)
`calibrated_readings.py` applies each archetype's levers from the calibrated
present, with the legitimacy loop off and on.
| Reading (uncalibrated source) | US | EU | AR | Status |
|---|---|---|---|---|
| R1 rights-first levers give the best VFAC (§ 4.3 of AdoptionBand) | holds | holds | holds | **survives** |
| R2 the legitimacy loop damps adoption (§ 3.3) | fails under J1 | holds | fails under J1 | **revised** |
| R3 lagging alone costs early output (§ 4.3) | −0.074 Ȳ | −0.071 | −0.121 | **survives, stronger** |
| R4 the current regime breaks the domination floor by t 100 | yes (J3; P 0.68 → 0.82) | yes (J1; 0.72 → 0.82) | yes (J2; 0.75 → 0.86) | **new** |
1. **R2 revised: the loop's sign depends on the regime.** Under rights-first
levers, domination falls, perceived benefit rises, and sentiment
*accelerates* adoption (US: K_Ω peak 0.21 → 0.26). Under extractive regimes
it brakes adoption as before. Damping is not a property of the loop. It
is a property of the loop in a regime where adoption raises domination.
2. **R4: today's domination is at the floor.** Calibrated to measured
concentration (v0.3), aggregate P starts at 0.69–0.75 against a floor of
0.70.
Under the current regime, continued adoption pushes it over the floor in
all three jurisdictions. Uncalibrated GADM started at P = 0.37 and
understated this.
3. **The EU has no lever headroom left within J1.** The channel counters are
calibrated so that the current regime is at rest. Lever effects are
therefore *relative to the current regime*. The US gains by moving from J3
to J1 levers (P 0.68 → 0.54). The EU is already at J1 settings, and its P
rises to 0.82. Within this closed-economy model, the EU's domination comes
from levels set abroad (lineages, platforms), which its levers do not
reach. This is the strongest argument yet for WP-0011.
4. **Readings that still need re-running:** the GSA per anchor (WP-0009-T05)
was computed around the uncalibrated anchors. The prediction ranges
(P-2026-001 … 003) used growth alignment without k. They are consistent
with § 3, because B2–B3 bracket the fitted speed.
### 4.1 Global sensitivity around the calibrated start (WP-0015-T04)
`gsa.py --model gadm04 --start US|EU` (`results/gsa_gadm04_start_US.md`,
`_EU.md`): Morris and Sobol analysis of final VFAC around calibration v0.4.
The scenario's policy levers are applied; adoption and automation stay at
their fitted values.
| Scenario | US: top 3 by ST | EU: top 3 by ST |
|---|---|---|
| Baseline | `dO` 0.29, `IX` 0.26, `ell` 0.08 | `IX` 0.33, `dO` 0.13, `lX` 0.11 |
| Generative regime | `IX` 0.20, `ereg` 0.11, `dX` 0.10 (`expl` 0.09, rank 5) | `IX` 0.24, `lX` 0.13, `ereg` 0.10 |
1. **The commons block leads from the calibrated start.** Commons
investment `IX`, enclosure loss `lX` and decay `dX` rank at the top in both
jurisdictions and both scenarios.
2. **Ecology becomes a leading driver.** With E measured near its floor,
ecological regeneration `ereg` ranks second or third in the generative
regime. It did not appear in the uncalibrated top five.
3. **The governance reading of WP-0009-T05 does not survive calibration
unchanged.** Around the uncalibrated B3–B4 anchors, explainability `expl`
led the generative regime. From the calibrated start it is fifth (US) or
lower (EU). With domination already high and the counters calibrated to
hold it, the commons and ecology parameters matter more for VFAC than the
epistemic lever.
4. **Organism depreciation `dO` still matters most for the US baseline** (ST
0.29), less for the EU (0.13), where adoption is slower and smaller.
## 5. Re-calibration at checkpoints (T05)
When a checkpoint brings new data:
1. Replace `prior` targets with `measured` ones where an indicator now has
data, and record the change (date, source) in the JSON `op` text.
2. Re-run `calibrate_data.py` and `calibrated_readings.py`. Commit the
results with the checkpoint.
3. Compare k, t* and the anchor verdict with the previous calibration. A
change of verdict (for example B3 → B4 fitting best) is a flip candidate
for WP-0012.
4. Predictions are not edited. New predictions from the re-calibrated start
are added as new register entries.
## 6. Limitations
- Four targets are still priors (§ 3.1). Several measured values come from
secondary reports (see the review record).
- One adoption speed parameter (k) for four parameters (aO, ell, oseed,
selfenh). k does not separate investment from learning.
- The channel-counter calibration makes the current regime a rest point by
construction. A jurisdiction that is in fact far from rest (for example
concentration still rising for reasons outside the model) is misread as
stable.
- Closed economy (WP-0011).