assembly-economics/models/GADM-0.4.md
tegwick 09cace5e83 ASSEMBLY-WP-0006-T05: agency per cohort; finish WP-0006; add WP-0008
- gadm04: working-age and senior agency (restartability, digital exclusion,
  care support, education-shaped entry agency); equilibrium start; switch
  reproduces aggregate model (tested)
- agency.py: G1 supported modestly, G2 not supported (agency driven by
  current conditions), G3 supported (care relief ~55% of senior gain)
- GADM-0.4 complete; ASSEMBLY-WP-0008 (empirical grounding, proposed residual)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1494246@bnt-lap001
Assistant-Session: caf6de6f-f9e4-47ce-a584-49baa271fa4b
2026-10-12 09:37:43 +02:00

299 lines
14 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.

<!--
Created 2026-10-12 under ASSEMBLY-WP-0006. Sections are added as the
GADM-0.4 tasks are completed. Implemented by simulations/gadm02/gadm04.py;
the code is the reference if the two ever disagree.
-->
# Generative Assembly Dynamics Model — GADM-0.4
**Status:** GADM-0.4, exploratory. Complete for ASSEMBLY-WP-0006: durable
human capability (§ 1, T01), grounded organism depreciation and robustness
checks (§ 2, T02), global sensitivity analysis (§ 3, T03), equilibrium
initialisation (§ 4, T04), agency per cohort (§ 5, T05). Sectors and goods
were scoped into ASSEMBLY-WP-0007 (T06, `GADM-Sectors-Scope.md`).
GADM-0.4 builds on the GADM-0.3 cohort model (`GADM-0.3.md` § 5), which stays
unchanged and reproducible in `gadm03c.py`. Time unit: one year.
---
## 1. Durable human capability (T01)
### 1.1 Motivation
GADM-0.3 failed hypothesis L3: an education push reached working-age
capability after only about 9 years, and weakly. Working-age capability had no
memory of childhood, because it relaxed to current conditions within about 8
years.
### 1.2 Structure
Each cohort's capability is split into:
| Component | Formed by | Depreciation (per year) | Carried by ageing |
|---|---|---|---|
| **durable D_c** | education in childhood (`hform`, scaled by `edu`, plus commons X); small lifelong formation for adults (`ll`) | 0.01 (children, working age), 0.02 (seniors), 0.04 (very old) | yes |
| **current C_c** | GADM-0.3 cohort dynamics (learning, mentoring, deskilling, care) | as GADM-0.3 | yes |
Effective cohort capability: \(H_c = \tfrac12 D_c + \tfrac12 C_c\). Aggregate H,
which the rest of the model uses, is population-weighted as in GADM-0.3.
Two couplings:
- **Learning begets learning:** a cohort's current-capability gains are
scaled by \(1 + lbl\,(D_c - 0.5)\).
- **Birth dilution:** newborns enter the children's cohort with no durable
capability, so the cohort average is diluted at the birth rate (about 1/20
per year). A first draft omitted this term; durable capability then
saturated near 0.85, leaving no room for an education effect.
Initial values: D_c = C_c = GADM-0.3 H_c, so effective capability starts
identical to GADM-0.3 (unit-tested).
### 1.3 Results
Computed at T01, before `dO` was grounded (§ 2). The grounded values differ
by at most 0.004.
| | GADM-0.3 cohorts | GADM-0.4 |
|---|---|---|
| Baseline VFAC (t = 100) | 0.323 | 0.323 |
| Generative regime VFAC | 0.656 | 0.661 |
| L3: education +50 % → final ΔH working age | +0.010 | **+0.032** |
| L3: years to half of that effect | 9 | **17** (durable part: 21) |
| L1: ageing + strong mentoring (tg 0.15), ΔH | −0.018 | −0.029 |
| L1: stable, no mentoring, ΔH | −0.043 | −0.039 |
Full tables: `simulations/gadm02/results/life_cycle_gadm04.md`.
### 1.4 Readings
1. **L3 is now supported.** Education reaches working-age capability with a
17-year half-time, inside the hypothesised 15–20 years, and with three
times the effect. The lag comes from cohort turnover (about 2.2 % per year)
plus slow durable depreciation. The relaxation time is about
1/(0.01 + 0.022) ≈ 30 years.
2. **L1 still holds, more weakly.** Mentoring acts on current capability
only, so its leverage on effective capability halves. An ageing society
with strong mentoring still loses less than a stable society without it.
3. **Macro results are almost unchanged.** Durable capability adds memory,
not level: baseline and generative VFAC move by at most 0.005. Policies on
education matter mostly beyond a 20-year horizon, which strengthens the
case for longer simulation horizons in cohort experiments.
### 1.5 Limitations
- The split ½ / ½ between durable and current capability is assumed.
- Children's *current* capability (inherited from GADM-0.3) still has no
birth dilution. Only the durable component was corrected.
- `hform` was chosen so that baseline children's durable capability settles
near 0.6. It has no empirical anchor yet (see T02).
---
## 2. Parameter grounding (T02)
Details and sources: `ParameterGrounding.md`.
- **Organism depreciation is grounded:** `dO` = 0.20 per year (evidence range
0.15–0.35, from software, R&D-capital and AI-hardware depreciation), instead
of 0.06. Investment, learning and seeding are rescaled (×3.33) so the
baseline organism path is unchanged. The evidence changes the timescale;
the level of organism capability remains ungrounded.
- **The key readings are robust** to the grounded `dO` and to brackets on the
ungrounded channel self-reinforcement (0.15–0.45) and wealth conversion
(0.02–0.20). One exception at T02: P3's effect size grew to −0.078 at strong
self-reinforcement. *After T04 (§ 4) this exception disappears;* it was
partly an initial-condition artifact.
- With grounded `dO`: baseline VFAC 0.325, generative regime 0.665. The life-cycle results
are essentially unchanged: L3 half-time 17 years, final ΔH working age +0.032;
L1 ΔH −0.028 (ageing, strong mentoring) against −0.038 (stable, none).
---
## 3. Global sensitivity analysis (T03)
Same method as `GADM-0.2.md` § 5.1: Morris screening over all parameters, then
Sobol indices (S1 Saltelli 2010 centred, ST Jansen, N = 256, bootstrap 95 %
intervals) for the top 10 plus the reuse bundle; ±50 % ranges. New for
GADM-0.4:
- the channel counters c_* are recalibrated for every sample (not varied), so
each sample starts in equilibrium;
- the switch `wealth_on` is fixed;
- evaluation is parallel (`--jobs 8`). The parallel code reproduces the
GADM-0.2 analysis exactly.
Full tables: `simulations/gadm02/results/gsa_gadm04.md`. Values are after
the T04 equilibrium initialisation (§ 4). The analysis was rerun; values from
before T04 are given where they differ materially.
| | Baseline | Generative regime |
|---|---|---|
| Top ST | `IX` 0.26, `dO` 0.21, `lX` 0.10, `q0` 0.10, `dX` 0.08 | `expl` 0.15, `m` 0.14, `dO` 0.14, `q0` 0.13, `IX` 0.12 |
| ΣS1 (analysed set) | 1.05 | 0.99 (before T04: 0.89) |
| Reuse bundle ΣS1 / ΣST | 0.26 / 0.28 | 0.28 / 0.25 |
| Morris σ ≈ or ≥ μ* | none | `L` (σ 0.048 vs. μ* 0.034), `r_lin` (0.045 vs. 0.043), `m` (0.057 vs. 0.062) |
| Clear Sobol interaction share (ST − S1) | none above 0.03 | `m` +0.06 |
For comparison, GADM-0.2: baseline top ST was `dO` 0.34, `p7` 0.13, `ell` 0.10;
generative top ST was `m` 0.27, `L` 0.13, `ereg` 0.13; ΣS1 ≈ 1.04–1.06.
### 3.1 Readings
1. **The model is mostly additive, but the governance levers are strongly
non-linear in the generative regime.** For `m`, `L` and `r_lin`, the Morris
spread σ is as large as their mean effect: their effect depends strongly on
where in its range the lever sits, because the power channels have tipping
points (GADM-0.3 P1/P2). Only membrane control shows a clear interaction
share (ST − S1 ≈ 0.06). Overall, S1 sums to about 0.99. *Correction:*
before T04, the generative regime summed to 0.89, and lineage diffusion
looked purely interaction-driven (S1 ≈ 0). Part of that came from the
non-equilibrium start. For these three levers, one-at-a-time analysis
remains inadequate, because their effect depends on the operating point.
2. **The commons cluster now drives the baseline.** Commons investment `IX`,
enclosure `lX` and obsolescence `dX` together carry about 0.43 of total
ST. In GADM-0.2, the reuse bundle carried about 0.11. Two plausible reasons, not verified separately:
durable capability makes X's contribution to formation persist, and the
power channels make infrastructure control respond to X and standards. The
bundle's effect is mostly **IX alone**, without interaction (ΣST ≈ ΣS1).
So the GADM-0.2 correction ("reuse is not an interaction bundle") still
stands.
3. **The level of organism capability is a top uncertainty.** `dO` stays among
the top three drivers in both scenarios (ST 0.14–0.21), even after grounding.
Varying `dO` with investment held fixed moves the organism level, which is
exactly the parameter `ParameterGrounding.md` lists as ungrounded. Grounding
that level is the most valuable next empirical step.
4. **Explainability gains weight in the generative regime** (ST 0.15, up from
0.06 in GADM-0.2). With power channels, epistemic capacity Q does double
duty: it checks the political channel and feeds the discovery counter. So
`expl` acts on power as well as on knowledge.
---
## 4. Equilibrium initialisation (T04)
### 4.1 Change
GADM-0.3 started wealth concentration at W = 0.5 and cohort attention at
A_w = 0.45 and A_s = 0.65, none of which are equilibria. W then fell to about
0.25 and senior attention dropped by 0.25 in every run. That confounded
comparisons against t = 0, and the wealth-tax effect (`GADM-0.3.md` §§ 3.4
and 5.3).
GADM-0.4 now:
- starts W, A_w and A_s at their equilibria with all other stocks fixed:
**W = 0.18, A_w = 0.54, A_s = 0.52** (aggregate A = 0.54). The values are
computed by `equilibrium_init()`, hard-coded, and checked by a unit test;
- calibrates the channel counters at GADM-0.4's own initial state
(`gadm04.calibrate()`, applied at import) instead of reusing GADM-0.3's.
`c_m` and `c_pol` change, because they depend on W.
Every channel, W and the cohort attention stocks now start with
|rate| < 10⁻⁴.
### 4.2 Effect on results
| Result | before T04 | after T04 |
|---|---|---|
| Baseline / generative VFAC | 0.325 / 0.665 | 0.320 / 0.660 |
| Scenario ranking | — | unchanged |
| L1 (ageing, strong mentoring / stable, none) | −0.028 / −0.038 | −0.029 / −0.039 |
| L2 working-age A, care relief 0 → 0.15 (stable, care_sen 0.1) | 0.399 → 0.441 (GADM-0.3) | 0.403 → 0.446 |
| L3 half-time, working-age capability | 17 years | 18 years |
| P3 ΔP, grounded / r = 0.45 / k_w = 0.20 | −0.055 / −0.078 / — | −0.027 / −0.021 / −0.055 |
| P3 holds in all robustness variants | 5 of 6 | **6 of 6** |
### 4.3 Readings
1. **The T02 P3 exception was an artifact.** With W at its equilibrium
(0.18 rather than 0.5), there is less wealth for a tax to remove, and no
built-in decline of W leaking into the channels. P3 now holds in every
variant, with smaller effects (ΔP −0.017 to −0.055).
2. **The life-cycle readings are robust to initialisation.** L2 was already
evaluated as levels across settings, not against t = 0. It is confirmed
with near-identical numbers.
3. **Macro results move by at most 0.005 VFAC.** The earlier confound
affected comparisons against the starting point, not end states.
---
## 5. Agency per cohort (T05)
### 5.1 Structure
Effective agency G splits into working age G_w and seniors G_s. Both follow
the GADM-0.2 form (existence security, access, restartability, organism
access, minus domination and lock-in), with age-specific modifiers:
| Modifier | Working age | Seniors |
|---|---|---|
| Restartability weight (risk capacity F) | 1 | 0.5 (`g3s`) |
| Exposure to operator lock-in (K_Ω, 1 − m) | 1 | 1.5 (`b2s`), digital exclusion |
| Care support from participation claims | — | `gcare` × relief |
| Inflow by ageing | young adults enter with G = 0.3 + 0.5 × children's durable capability | from working age |
The aggregate G passed to the rest of the model is adult-weighted. Both stocks
start at their equilibria (G_w 0.537, G_s 0.521; unit-tested). The switch
`cohort_G = 0` reproduces the T04 aggregate model (tested).
### 5.2 Results
Full tables: `simulations/gadm02/results/agency.md`. Aggregate VFAC changes by
at most ±0.003 against the aggregate-agency model, so the macro readings are
unaffected.
| Scenario | G working age | G seniors | gap |
|---|---|---|---|
| Baseline | 0.41 | 0.36 | +0.048 |
| Universal venture access | 0.53 | 0.45 | **+0.081** |
| Generative regime | 0.70 | 0.69 | **+0.010** |
| Generative, concentrated lineages | 0.46 | 0.42 | +0.038 |
### 5.3 Hypotheses
**G1: operator-controlled membranes widen the senior agency gap. Supported,
modestly.** Raising user/community membrane control from 0.1 to 0.9 narrows
the gap from +0.052 to +0.033, and raises both cohorts' agency (working age
+0.09, seniors +0.11).
**G2: education raises working-age agency with a generational lag. Not
supported.** Education +50 % raises working-age agency by only +0.005, with
half the effect after 6 years. Agency is dominated by current conditions:
security, domination, restartability. Entry agency depends on children's
durable capability, which responds within about a decade. Education acts on
reachable futures mainly through capability, not directly.
**G3: care relief raises senior agency. Supported.** Participation claims
cp = 0.30 raise senior agency from 0.359 to 0.428. About 55 % of the gain comes
through care relief, the rest through broader claims (which also raise
working-age agency by +0.031).
### 5.4 Readings
1. **Restartability-centred policy widens the age gap.** Universal venture
access raises working-age agency most, and leaves the largest senior gap
(+0.081). Seniors benefit half as much from restartability.
2. **The generative regime nearly closes the age gap** (+0.010), mainly
through user-controlled membranes (G1) and care relief (G3).
3. **Post-work participation claims are an agency instrument for older
people,** not only an income instrument. More than half of their effect on
senior agency runs through care relief.
### 5.5 Limitations
- The modifier values (`g3s`, `b2s`, `gcare`, entry agency) are assumed.
- Children's and the very old's agency are not modeled.
- The global sensitivity analysis in § 3 describes the model before T05.
Given the ±0.003 VFAC change, the GSA was not rerun.
## Reproduce
```bash
python3 -B -m unittest discover -s simulations/gadm02
cd simulations/gadm02 && python3 -B life_cycle.py --model gadm04
cd simulations/gadm02 && python3 -B robustness.py # T02 robustness checks
cd simulations/gadm02 && python3 -B gsa.py --model gadm04 --jobs 8 # T03, ~12 min on 8 cores
cd simulations/gadm02 && python3 -B agency.py # T05: cohort agency G1–G3
```