diff --git a/AGENTS.md b/AGENTS.md index 79ed3db..9166712 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -35,6 +35,7 @@ cd simulations/gadm02 && python3 -B legitimacy.py # sentiment and legitimacy l cd simulations/gadm02 && python3 -B jurisdictions.py # jurisdiction archetypes J1–J4 across the band cd simulations/gadm02 && python3 -B predictions_v1.py # band ranges for the prediction register (P-2026-*) cd simulations/gadm02 && python3 -B calibrate_data.py && python3 -B calibrated_readings.py # calibration to measured data (models/Calibration.md) +cd simulations/gadm02 && for j in US EU; do python3 -B gsa.py --model gadm04 --jobs 8 --start $j; done # GSA around calibrated starts, ~30 min ``` Reality checkpoints (ASSEMBLY-WP-0010): scheduled by activity-core and diff --git a/checkpoints/2026/2026-10-13-review.md b/checkpoints/2026/2026-10-13-review.md index 6f9f7fe..d0bcc82 100644 --- a/checkpoints/2026/2026-10-13-review.md +++ b/checkpoints/2026/2026-10-13-review.md @@ -42,6 +42,24 @@ the mean of DE, FR, IT and ES. | L6 optimistic / sceptical about AI | AR | 30.7 / 44.2 % | June 2026 | La Nación Data (via [secondary report](https://blog.donweb.com/ia-futuro-argentinos-encuesta-2026/)); not checked against the original | | L3 firms applying AI in daily operations; planning to | AR | 20.4 %; 44.4 % | 2026 | Google / IDB study (via [iProfesional](https://www.iprofesional.com/management/424296-que-cantidad-de-argentinos-ya-usa-inteligencia-artificial-para-trabajar)) | +### L4 and L7 + +| Indicator | Jurisdiction | Observation | Source | +|---|---|---|---| +| L4 augmentation / automation share of Claude.ai conversations | global | 52 % / 45 % (Nov 2025 data, report Jan 2026); automation passed augmentation briefly in Aug 2025. Enterprise API use is mostly automation (about 3/4). | Anthropic Economic Index, Jan 2026 report (via [summary](https://zenvanriel.com/ai-engineer-blog/anthropic-economic-index-ai-workforce-impact-data/)); check against [anthropic.com/research](https://www.anthropic.com/research/the-anthropic-economic-index) | +| L7 AI Omnibus, Reg. (EU) 2026/1744 | EU | In force 27 Jul 2026. Annex III high-risk duties moved from 2 Aug 2026 to 2 Dec 2027, Annex I to 2 Aug 2028. Transparency (Art. 50) and GPAI enforcement started 2 Aug 2026 as planned. | [Addleshaw Goddard](https://www.addleshawgoddard.com/en/insights/insights-briefings/2026/technology/eu-ai-act-ai-omnibus-formally-adopted/), [Mondaq](https://www.mondaq.com/eu-digital-omnibus-on-ai-enters-into-force/1825722) | +| L7 EO 14365 "Ensuring a National Policy Framework for AI" | US | Signed 11 Dec 2025: DOJ task force against state AI laws, FCC/FTC preemption, funding conditions. White House legislative framework 20 Mar 2026. Bipartisan draft (Jun 2026) stalled. Colorado rewrote its act; California SB 53 in force. | [Morgan Lewis](https://www.morganlewis.com/pubs/2026/03/white-house-ai-framework-puts-federal-preemption-at-the-center-of-the-debate), [CASRAI](https://casrai.org/news/federal-ai-moratorium-state-preemption-fight-2026) | +| L7 national AI law | AR | None passed. 53 bills in 2025, 11 comprehensive. Executive bill "Sociedad Automatizada" (AI-operated companies) sent 29 May 2026 (secondary source). Stated policy: promote AI "without regulating". Buenos Aires province: Resolution 9/2025. | [Diario Judicial](https://www.diariojudicial.com/news-97386-regular-la-ia), [DPL News](https://dplnews.com/?p=311680), [Ecosistema Startup](https://ecosistemastartup.com/sociedad-automatizada-milei-crea-empresas-con-ia-en-argentina/) | + +### Remaining priors, measured later the same day + +| Indicator | Jurisdiction | Value | Source | +|---|---|---|---| +| Planetary boundaries breached | world | 7 of 9 (ocean acidification newly breached) | [Planetary Health Check 2025, Stockholm Resilience Centre](https://www.stockholmresilience.org/news--events/general-news/2025-09-24-seven-of-nine-planetary-boundaries-now-breached) | +| Top-7 firms' share of S&P 500 market cap | US | about 34 % (Aug 2026) | [Charles Schwab](https://www.schwab.com/learn/story/what-are-magnificent-7-stocks) | +| Wage share of GDP | AR | 45.5 % (2025; 43.9 % in 2024) | INDEC income accounts via [Tiempo Argentino](https://www.tiempoar.com.ar/ta_article/en-nueve-anos-los-salarios-perdieron-casi-diez-puntos-porcentuales-de-participacion-en-el-pbi/), [Economis](https://economis.com.ar/indec-los-salarios-aumentaron-60-y-mejoraron-su-peso-en-la-economia-argentina-en-2025/); check against INDEC | +| Leisure; TV and streaming; all media (h/day) | DE | 6.1; 2.1; about 3 | [Destatis Zeitverwendungserhebung 2022](https://www.destatis.de/DE/Themen/Gesellschaft-Umwelt/Einkommen-Konsum-Lebensbedingungen/Zeitverwendung/Ergebnisse/_inhalt.html) (via press summaries) | + Secondary-source figures are marked. They should be checked against the originals at the next review. @@ -67,8 +85,12 @@ not an observation against the prediction, which starts at checkpoint 0. - Σ for the EU and AR uses each survey's positive − negative balance. The questions differ from Pew's, so the ranges are wide. +- Ecological headroom E = share of planetary boundaries still in the safe + zone (global). +- Market concentration Pm = top-7 share of US market capitalization + (economy-wide). + ## Still priors after this review -Market concentration Pm (F2), ecological headroom E, EU and DE attention, AR -claims breadth and AR adoption *growth* (only one level point). They remain in -WP-0015-T02. +Pm for the EU and AR, and AR adoption *growth* (one level point only; a +second Google/IDB or INDEC data point gives growth). diff --git a/checkpoints/predictions.md b/checkpoints/predictions.md index 7310992..0dbe3db 100644 --- a/checkpoints/predictions.md +++ b/checkpoints/predictions.md @@ -39,6 +39,8 @@ Predictions v1 (P-2026-001 … 004) were registered by ASSEMBLY-WP-0009-T06 on A value below ~31 % in 2027-10 is outside every anchor. - Observations: - (none yet) + - 2026-10-12 (checkpoint 0): 23.8 % (BTOS 2026 period 20) → base value of the prediction, not yet a test + - 2026-10-13: 23.8 % (same period). Short-run growth 19.5 % (period 10) → 23.8 % (period 20) ≈ 1.7× annualized: no slowdown yet; nothing to separate B2 from B3 so far ### P-2026-002 — L2 enterprises using AI (EU27), reference years 2026, 2027, 2029 - Registered: 2026-10-13, model GADM-0.4, by ASSEMBLY-WP-0009-T06 @@ -80,6 +82,7 @@ Predictions v1 (P-2026-001 … 004) were registered by ASSEMBLY-WP-0009-T06 on faster anchors gain weight. EU sentiment should move less than US sentiment. - Observations: - (none yet; baseline values to be collected at the first review, L6 manual) + - 2026-10-13 (baseline, review): US Σ 0.285 (Pew, June 2026: 52 % concerned, 9 % excited; 2021: Σ 0.405). EU Σ ≈ 0.60 (Eurobarometer, fieldwork 2024; different question). AR Σ ≈ 0.43 (La Nación Data, June 2026; secondary). Later observations are compared with these values ### Not registered in v1 - **L3 (AR):** no adoption base value (manual source missing), so no diff --git a/models/AdoptionBand.md b/models/AdoptionBand.md index fd870f0..98932ef 100644 --- a/models/AdoptionBand.md +++ b/models/AdoptionBand.md @@ -249,6 +249,18 @@ checkpoint updates it, and the mapping is revisited at every full checkpoint. | Argentina | J2 by stance | Deregulation programme (DNU 70/2023, Ley Bases 2024 with the RIGI investment regime); no comprehensive AI law as of 2025. | adoption level unknown (L3 manual); AR adopts foreign lineages, so its L and lin_open are set abroad; initial sentiment unmeasured (L6) | | (reference) China | J4 | state-coordinated deployment, algorithm registration and generative-AI rules | not a tracked jurisdiction; anchors J4 only | +**Mapping update 2026-10-13 (review, L7):** the EU's drift toward higher +permissiveness is now law: the AI Omnibus (Reg. 2026/1744, in force 27 July +2026) delays Annex III high-risk duties to December 2027, while transparency +and GPAI enforcement started in August 2026. The EU stays J1 for rights +levers, with perm moving up. The US federal stance moved further toward J2 +(EO 14365, December 2025: preemption of state AI laws), but no federal +statute exists, and state rights levers (California SB 53, Colorado) remain. +US: J3 market structure with a J2 federal stance, unchanged as a label but +stronger. Argentina: J2 confirmed. No AI law; the executive promotes +AI-operated companies ("Sociedad Automatizada" bill, May 2026). Sources: +`checkpoints/2026/2026-10-13-review.md`. + ### 4.5 Limitations - Closed economy: no lineage import, trade or capital flows between diff --git a/models/Calibration.md b/models/Calibration.md index 45b7a56..d4f6dfc 100644 --- a/models/Calibration.md +++ b/models/Calibration.md @@ -1,7 +1,7 @@ # Calibration of GADM-0.4 to measured data -**Status:** v0.3 (2026-10-13). ASSEMBLY-WP-0013, then the 2026-10-13 review -(§ 3.1): 28 measured targets, all inside their ranges after fitting. Calibrates starting states +**Status:** v0.4 (2026-10-13). ASSEMBLY-WP-0013, then the 2026-10-13 review +(§ 3.1): 35 of 39 targets measured, all 39 inside their ranges after fitting. 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. @@ -77,9 +77,9 @@ 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.3: measured targets and fitted parameters +### 3.1 Calibration v0.4: measured targets and fitted parameters -The review `checkpoints/2026/2026-10-13-review.md` measured 28 of the 39 +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 @@ -88,19 +88,21 @@ targets: frontier-model top-3 share (Plin); - claims breadth B (compensation plus social benefits, % of GDP) and the US B trend; -- US attention (ATUS 2025); +- 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.0096 | 0.387 | **0.26** (fitted to the B trend) | -| EU | 1.54 | 0.9 y | 0.523 | 0.0098 | 0.931 | 0.60 (default) | -| DE | 1.41 | 1.5 y | 0.616 | 0.0103 | 0.983 | 0.60 | +| 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.0500 | 0.580 | 0.60 | -**Fit: 39 of 39 targets inside their range, including 28 of 28 measured +**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 @@ -116,13 +118,16 @@ Findings: 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.69, EU 0.72, AR 0.75 +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. -Still priors: market concentration Pm, ecological headroom E, EU and DE -attention, AR claims breadth, and AR adoption *growth* (only one level point). -They stay in ASSEMBLY-WP-0015-T02. +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) @@ -133,8 +138,8 @@ present, with the legitimacy loop off and on. |---|---|---|---|---| | 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.088 Ȳ | −0.084 | −0.121 | **survives, stronger** | -| R4 the current regime breaks the domination floor by t 100 | yes (J3; P 0.69 → 0.82) | yes (J1; 0.72 → 0.82) | yes (J2; 0.75 → 0.86) | **new** | +| 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 @@ -150,7 +155,7 @@ present, with the legitimacy loop off and on. 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.69 → 0.55). The EU is already at J1 settings, and its P + 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. @@ -159,6 +164,33 @@ present, with the legitimacy loop off and on. (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: @@ -175,7 +207,7 @@ When a checkpoint brings new data: ## 6. Limitations -- Nine targets are still priors (§ 3.1). Several measured values come from +- 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. diff --git a/simulations/gadm02/calibration_targets.json b/simulations/gadm02/calibration_targets.json index 98ebf47..454be37 100644 --- a/simulations/gadm02/calibration_targets.json +++ b/simulations/gadm02/calibration_targets.json @@ -40,10 +40,10 @@ "op": "top-3 share of enterprise LLM API spend 40+27+21 = 88 % (Menlo Ventures, Dec 2025); US firms paying Anthropic 43.8 %, OpenAI 39.8 % (Ramp, Aug 2026) (checkpoints/2026/2026-10-13-review.md)" }, "Pm": { - "lo": 0.4, - "hi": 0.6, - "basis": "prior", - "op": "market ~ top-firm sales concentration in digital sectors (F2)" + "lo": 0.28, + "hi": 0.45, + "basis": "measured", + "op": "top-7 firms' share of S&P 500 market capitalization about 34 % (Aug 2026, Charles Schwab); economy-wide concentration operator, upper range for sector concentration (checkpoints/2026/2026-10-13-review.md)" }, "B": { "lo": 0.57, @@ -64,10 +64,10 @@ "op": "ATUS 2025 (BLS, 2026-06-25): leisure 5.2 h/day, TV 2.6 h (half); A = leisure share not taken by TV and engagement media, about 0.42-0.50 (checkpoints/2026/2026-10-13-review.md)" }, "E": { - "lo": 0.2, - "hi": 0.45, - "basis": "prior", - "op": "6 of 9 planetary boundaries transgressed (Richardson et al. 2023); national E1 measured but not yet mapped" + "lo": 0.15, + "hi": 0.32, + "basis": "measured", + "op": "Planetary Health Check 2025 (Stockholm Resilience Centre / PIK): 7 of 9 boundaries breached; E = share still in the safe zone = 2/9 = 0.22 (global) (checkpoints/2026/2026-10-13-review.md)" }, "Sig": { "lo": 0.22, @@ -120,16 +120,16 @@ "op": "compensation D1 / GDP 0.479 (Eurostat nama_10_gdp 2025) plus social benefits D62 16.5 % of GDP (gov_10a_main 2025): 0.644 (checkpoints/2026/2026-10-13-review.md)" }, "A": { - "lo": 0.4, - "hi": 0.6, - "basis": "prior", - "op": "HETUS where available" + "lo": 0.45, + "hi": 0.65, + "basis": "measured", + "op": "DE time-use survey 2022 as EU proxy (HETUS not current); range widened (checkpoints/2026/2026-10-13-review.md)" }, "E": { - "lo": 0.2, - "hi": 0.45, - "basis": "prior", - "op": "as US; E2/E4 measured, not yet mapped" + "lo": 0.15, + "hi": 0.32, + "basis": "measured", + "op": "Planetary Health Check 2025 (Stockholm Resilience Centre / PIK): 7 of 9 boundaries breached; E = share still in the safe zone = 2/9 = 0.22 (global) (checkpoints/2026/2026-10-13-review.md)" }, "Sig": { "lo": 0.45, @@ -168,6 +168,12 @@ "hi": 0.76, "basis": "measured", "op": "D1 / GDP 0.544 plus D62 16.8 %: 0.712 (Eurostat 2025) (checkpoints/2026/2026-10-13-review.md)" + }, + "A": { + "lo": 0.48, + "hi": 0.65, + "basis": "measured", + "op": "Destatis time-use survey 2022: leisure 6.1 h/day, TV and streaming 2.1 h, all media about 3 h; A = 0.51-0.65 (checkpoints/2026/2026-10-13-review.md)" } }, "AR": { @@ -190,10 +196,10 @@ "op": "top-3 share of enterprise LLM API spend 40+27+21 = 88 % (Menlo Ventures, Dec 2025); US firms paying Anthropic 43.8 %, OpenAI 39.8 % (Ramp, Aug 2026); same foreign lineages (checkpoints/2026/2026-10-13-review.md)" }, "B": { - "lo": 0.45, - "hi": 0.65, - "basis": "prior", - "op": "wage share fell sharply in 2024 (INDEC income accounts)" + "lo": 0.49, + "hi": 0.61, + "basis": "measured", + "op": "wage share 45.5 % of GDP 2025 (INDEC income accounts, via press) plus social transfers not yet measured (assumed 4-15 % of GDP) (checkpoints/2026/2026-10-13-review.md)" }, "Sig": { "lo": 0.36, diff --git a/simulations/gadm02/gsa.py b/simulations/gadm02/gsa.py index 9dc9b72..b55752c 100644 --- a/simulations/gadm02/gsa.py +++ b/simulations/gadm02/gsa.py @@ -10,12 +10,16 @@ reading in models/GADM-0.2.md can be tested directly. Ranges: each parameter varies ±50 % around its scenario value; levers are clipped to [0, 1]; zero-valued parameters vary in [0, 0.1]. -Usage: python3 -B simulations/gadm02/gsa.py [--quick] [--model gadm04] [--jobs 8] [--anchor B1..B4] +Usage: python3 -B simulations/gadm02/gsa.py [--quick] [--model gadm04] [--jobs 8] + [--anchor B1..B4 | --start US|EU|DE|AR] --anchor (gadm04 only, ASSEMBLY-WP-0009-T05) runs the analysis around an adoption band anchor (grounding.variant): anchor parameters and equilibrium initial state; channel counters are recalibrated at that state. The legitimacy-loop and permissiveness parameters (WP-0009-T03/T04) are not varied. +--start (gadm04 only, ASSEMBLY-WP-0015-T04) runs it around a jurisdiction's +calibrated start (results/calibrated_starts.json); counters recalibrated at +that state. For models with power channels (gadm03, gadm03c, gadm04), the channel counter coefficients c_* are not varied but recalibrated for every sample, so each @@ -41,6 +45,7 @@ JOBS = int(sys.argv[sys.argv.index("--jobs") + 1]) if "--jobs" in sys.argv else g = importlib.import_module(MODEL) CHANNELS = "Pm" in g.STOCKS ANCHOR = sys.argv[sys.argv.index("--anchor") + 1] if "--anchor" in sys.argv else None +START = sys.argv[sys.argv.index("--start") + 1] if "--start" in sys.argv else None FIXED = {"wealth_on"} | ({c for c in gadm03.COEF.values()} if CHANNELS else set()) \ | {k for k in getattr(g, "PARAMS", {}) if k in ("sent", "perm") or k.startswith(("sig_", "leg_"))} @@ -68,7 +73,7 @@ def model(base: dict, rng: dict, names: list[str], u: list[float], init: dict) - lo, hi = rng[k] p[k] = lo + x * (hi - lo) if CHANNELS: - p.update(g.calibrate(p, init) if ANCHOR else getattr(g, "calibrate", gadm03.calibrate)(p)) + p.update(g.calibrate(p, init) if (ANCHOR or START) else getattr(g, "calibrate", gadm03.calibrate)(p)) return g.simulate(p, init)[-1]["VFAC"] @@ -179,6 +184,15 @@ def main() -> None: vp, vi = gr.variant(gr.BAND[ANCHOR]) sc = {**sc, "params": {**sc["params"], **vp}, "init": {**sc["init"], **vi}, "title": f"{sc['title']} — anchor {ANCHOR} ({gr.BAND[ANCHOR]})"} + if START: + import json as _json + st = _json.loads((OUT / "calibrated_starts.json").read_text())[START] + # calibrated parameters first; the scenario's policy levers on top, but not its + # technology assumptions (adoption and automation stay at their fitted values) + tech = {"auto", "aO", "ell", "oseed", "selfenh"} + sc = {**sc, "params": {**{k: v for k, v in st["params"].items() if k in g.PARAMS}, + **{k: v for k, v in sc["params"].items() if k not in tech}}, + "init": dict(st["init"]), "title": f"{sc['title']} — calibrated start {START}"} base = {**g.PARAMS, **sc["params"]} rng = ranges(base) mres = morris(base, sc["init"], rng, r, rnd) @@ -201,7 +215,7 @@ def main() -> None: lines += ["", f"Sum of S1 over analysed parameters: {tot1:.3f}. Reuse bundle: " f"ΣS1 = {b1:.3f}, ΣST = {bt:.3f}.", ""] print(f"done {name}", file=sys.stderr) - stem = ("gsa" if MODEL == "gadm02" else f"gsa_{MODEL}") + (f"_{ANCHOR}" if ANCHOR else "") + stem = ("gsa" if MODEL == "gadm02" else f"gsa_{MODEL}") + (f"_{ANCHOR}" if ANCHOR else "") + (f"_start_{START}" if START else "") (OUT / (f"{stem}-quick.md" if quick else f"{stem}.md")).write_text("\n".join(lines)) print("\n".join(lines)) diff --git a/simulations/gadm02/results/calibrated_readings.md b/simulations/gadm02/results/calibrated_readings.md index 8fd5b8b..f892ca2 100644 --- a/simulations/gadm02/results/calibrated_readings.md +++ b/simulations/gadm02/results/calibrated_readings.md @@ -9,27 +9,27 @@ already contains today's permissiveness). | Regime | Loop | K_Ω t5 / t25 / peak | Ȳ 0–25 | VFAC t100 | G | A | P t0 → t100 | floors broken | |---|---|---|---|---|---|---|---|---| -| J1 | off | 0.18 / 0.22 / 0.22 | 0.294 | 0.431 | 0.48 | 0.56 | 0.69 → 0.55 | none | -| J1 | on | 0.11 / 0.27 / 0.28 | 0.292 | 0.425 | 0.47 | 0.54 | 0.69 → 0.56 | none | -| J2 | off | 0.38 / 0.40 / 0.44 | 0.339 | 0.277 | 0.37 | 0.33 | 0.69 → 0.78 | P | -| J2 | on | 0.19 / 0.22 / 0.27 | 0.288 | 0.311 | 0.40 | 0.40 | 0.69 → 0.76 | P | -| J3 | off | 0.33 / 0.36 / 0.39 | 0.324 | 0.262 | 0.36 | 0.32 | 0.69 → 0.82 | P | -| J3 | on | 0.16 / 0.19 / 0.22 | 0.275 | 0.304 | 0.39 | 0.39 | 0.69 → 0.77 | P | -| J4 | off | 0.33 / 0.38 / 0.40 | 0.332 | 0.296 | 0.38 | 0.41 | 0.69 → 0.77 | P | -| J4 | on | 0.16 / 0.31 / 0.31 | 0.297 | 0.307 | 0.39 | 0.43 | 0.69 → 0.76 | P | +| J1 | off | 0.18 / 0.23 / 0.23 | 0.253 | 0.419 | 0.48 | 0.56 | 0.68 → 0.54 | none | +| J1 | on | 0.11 / 0.29 / 0.29 | 0.252 | 0.413 | 0.48 | 0.54 | 0.68 → 0.55 | none | +| J2 | off | 0.38 / 0.41 / 0.44 | 0.289 | 0.268 | 0.37 | 0.33 | 0.68 → 0.78 | P | +| J2 | on | 0.19 / 0.23 / 0.27 | 0.247 | 0.301 | 0.40 | 0.41 | 0.68 → 0.75 | P | +| J3 | off | 0.33 / 0.36 / 0.39 | 0.277 | 0.253 | 0.36 | 0.32 | 0.68 → 0.82 | P | +| J3 | on | 0.16 / 0.19 / 0.22 | 0.235 | 0.295 | 0.39 | 0.39 | 0.68 → 0.77 | P | +| J4 | off | 0.34 / 0.39 / 0.41 | 0.284 | 0.285 | 0.38 | 0.41 | 0.68 → 0.77 | P | +| J4 | on | 0.17 / 0.31 / 0.31 | 0.254 | 0.297 | 0.39 | 0.43 | 0.68 → 0.76 | P | ## EU (current regime ≈ J1) | Regime | Loop | K_Ω t5 / t25 / peak | Ȳ 0–25 | VFAC t100 | G | A | P t0 → t100 | floors broken | |---|---|---|---|---|---|---|---|---| -| J1 | off | 0.24 / 0.30 / 0.31 | 0.306 | 0.293 | 0.41 | 0.36 | 0.72 → 0.82 | P | -| J1 | on | 0.26 / 0.18 / 0.28 | 0.285 | 0.311 | 0.41 | 0.42 | 0.72 → 0.80 | P | -| J2 | off | 0.54 / 0.52 / 0.58 | 0.374 | 0.195 | 0.33 | 0.15 | 0.72 → 0.91 | P,A | -| J2 | on | 0.46 / 0.14 / 0.47 | 0.274 | 0.248 | 0.38 | 0.26 | 0.72 → 0.88 | P | -| J3 | off | 0.48 / 0.49 / 0.54 | 0.362 | 0.187 | 0.32 | 0.14 | 0.72 → 0.92 | P,A | -| J3 | on | 0.41 / 0.12 / 0.41 | 0.262 | 0.239 | 0.38 | 0.25 | 0.72 → 0.90 | P | -| J4 | off | 0.49 / 0.50 / 0.55 | 0.367 | 0.209 | 0.34 | 0.20 | 0.72 → 0.90 | P,A | -| J4 | on | 0.51 / 0.35 / 0.53 | 0.340 | 0.230 | 0.36 | 0.24 | 0.72 → 0.89 | P | +| J1 | off | 0.25 / 0.30 / 0.31 | 0.261 | 0.289 | 0.41 | 0.41 | 0.72 → 0.82 | P | +| J1 | on | 0.26 / 0.18 / 0.28 | 0.244 | 0.306 | 0.41 | 0.47 | 0.72 → 0.80 | P | +| J2 | off | 0.55 / 0.52 / 0.59 | 0.318 | 0.193 | 0.33 | 0.18 | 0.72 → 0.91 | P,A | +| J2 | on | 0.46 / 0.14 / 0.47 | 0.234 | 0.245 | 0.38 | 0.31 | 0.72 → 0.88 | P | +| J3 | off | 0.49 / 0.49 / 0.54 | 0.308 | 0.186 | 0.32 | 0.17 | 0.72 → 0.92 | P,A | +| J3 | on | 0.41 / 0.11 / 0.41 | 0.224 | 0.237 | 0.38 | 0.30 | 0.72 → 0.90 | P | +| J4 | off | 0.50 / 0.51 / 0.55 | 0.313 | 0.207 | 0.33 | 0.24 | 0.72 → 0.90 | P | +| J4 | on | 0.51 / 0.35 / 0.53 | 0.290 | 0.228 | 0.36 | 0.29 | 0.72 → 0.89 | P | ## AR (current regime ≈ J2) @@ -48,6 +48,6 @@ already contains today's permissiveness). | Jurisdiction | R1 J1 best VFAC | R2 loop damps | R3 lagging costs early output (ΔȲ, ΔVFAC) | R4 current regime breaks P floor | |---|---|---|---|---| -| US | holds | **fails** | holds (-0.088, +0.042) | yes | -| EU | holds | holds | holds (-0.084, +0.026) | yes | +| US | holds | **fails** | holds (-0.074, +0.041) | yes | +| EU | holds | holds | holds (-0.071, +0.025) | yes | | AR | holds | **fails** | holds (-0.121, +0.036) | yes | diff --git a/simulations/gadm02/results/calibrated_starts.json b/simulations/gadm02/results/calibrated_starts.json index 2c3a9f1..85f4a36 100644 --- a/simulations/gadm02/results/calibrated_starts.json +++ b/simulations/gadm02/results/calibrated_starts.json @@ -61,55 +61,55 @@ }, "DE": { "init": { - "As": 0.48980323387568897, - "Aw": 0.49482257426652876, - "Cch": 0.4441648034819571, - "Cd": 0.34617316016465904, - "Cs": 0.5184755053991729, - "Cw": 0.5619538231854824, - "Dch": 0.45222328828671904, - "Dd": 0.40237155735053637, - "Ds": 0.534051971434396, - "Dw": 0.5412207640198076, - "E": 0.3248298954736303, - "F": 0.40587535591155427, - "G": 0.44811082106136974, - "Gs": 0.43000444357509027, - "Gw": 0.45414733881795505, - "Ko": 0.11234398697833374, - "Kp": 0.4813608094712152, + "As": 0.5599288424043934, + "Aw": 0.5595642615483107, + "Cch": 0.44606561637805564, + "Cd": 0.34624573024760946, + "Cs": 0.5194055619662479, + "Cw": 0.563580622192313, + "Dch": 0.4522600176030964, + "Dd": 0.4023715575613355, + "Ds": 0.5340519790596704, + "Dw": 0.5412211368980316, + "E": 0.23486643582643155, + "F": 0.40376104620616343, + "G": 0.44808171081056014, + "Gs": 0.4299840929679978, + "Gw": 0.45411530817377127, + "Ko": 0.11335989592626683, + "Kp": 0.48192186244043217, "Lg": 0.535, - "N": 0.46215059748089454, + "N": 0.46214558382237997, "Nch": 0.227299207505914, "Nd": 0.0909055888190386, "Ns": 0.17049683002365584, "Nw": 0.5114007924940861, - "Pd": 0.8804850333571789, - "Pi": 0.661976211103832, - "Plin": 0.876740750775282, - "Pm": 0.50128095279319, - "Pmem": 0.6002811359417883, - "Ppol": 0.5023583760033836, - "Q": 0.4917127861508988, - "S": 0.4820035643089187, + "Pd": 0.8804855464849508, + "Pi": 0.6619591288561137, + "Plin": 0.8767697856588446, + "Pm": 0.5012800826351705, + "Pmem": 0.6002862986481262, + "Ppol": 0.502247695174575, + "Q": 0.49172382234185763, + "S": 0.48339721687145243, "Sig": 0.535, - "W": 0.14836036568082947, - "X": 0.3778200367466775 + "W": 0.12902620854069197, + "X": 0.3780888608429845 }, "k": 1.4142135623730951, "params": { "L": 0.6, "aO": 0.3535533905932738, - "aext": 0.9831283569335938, + "aext": 0.7022445678710938, "c_d": 0.1627, "c_i": 0.3161, "c_lin": 0.0741, - "c_m": 0.0683, + "c_m": 0.0679, "c_mem": 0.1358, - "c_pol": 0.4045, + "c_pol": 0.4022, "care_load": 0.03, "ell": 0.5868986283848344, - "ereg": 0.010267111111111112, + "ereg": 0.0065505098039215694, "expl": 0.7, "lin_open": 0.6, "m": 0.7, @@ -126,55 +126,55 @@ }, "EU": { "init": { - "As": 0.4937836203396411, - "Aw": 0.49896308458637634, - "Cch": 0.426294685819212, - "Cd": 0.3657278892931665, - "Cs": 0.5295695555856555, - "Cw": 0.5566611062469996, - "Dch": 0.4308098298656463, - "Dd": 0.4018519214238028, - "Ds": 0.5402872245541102, - "Dw": 0.5444431095847656, - "E": 0.32493207314438577, - "F": 0.4028309712113618, - "G": 0.4328125482458494, - "Gs": 0.4131728688642662, - "Gw": 0.4393603073192635, - "Ko": 0.09101991941647128, - "Kp": 0.4878961969619115, + "As": 0.547253539111859, + "Aw": 0.548224625767804, + "Cch": 0.4272032249357156, + "Cd": 0.3657481101191295, + "Cs": 0.5300003504494355, + "Cw": 0.5574458274764564, + "Dch": 0.43082056226817644, + "Dd": 0.40185192143119564, + "Ds": 0.5402872251399204, + "Dw": 0.544443167177392, + "E": 0.23494814917684614, + "F": 0.40163610217993473, + "G": 0.43280316908266564, + "Gs": 0.41316669929349137, + "Gw": 0.43934985809595245, + "Ko": 0.09150868360327788, + "Kp": 0.48813726708482263, "Lg": 0.535, - "N": 0.4765659398459323, + "N": 0.4765639299171411, "Nch": 0.22729951420364686, "Nd": 0.09090351693347513, "Ns": 0.17049805681458743, "Nw": 0.5114004857963531, - "Pd": 0.890186133559438, - "Pi": 0.6607139553167074, - "Plin": 0.8756873973062851, - "Pm": 0.5003930796435053, - "Pmem": 0.570135040320222, - "Ppol": 0.5009721717160969, - "Q": 0.4948158265527009, - "S": 0.4862857394652712, + "Pd": 0.8901863182693627, + "Pi": 0.6607094653142659, + "Plin": 0.875695868800961, + "Pm": 0.5003873745051807, + "Pmem": 0.5701365716974683, + "Ppol": 0.5009311028707848, + "Q": 0.49481882396446897, + "S": 0.4869511365194517, "Sig": 0.535, - "W": 0.1754134603387214, - "X": 0.38616450279192865 + "W": 0.1531825186893347, + "X": 0.386286326958335 }, "k": 1.5422108254079407, "params": { "L": 0.6, "aO": 0.3855527063519852, - "aext": 0.9310928344726562, + "aext": 0.7186294555664062, "c_d": 0.1507, "c_i": 0.3161, "c_lin": 0.0741, - "c_m": 0.0735, + "c_m": 0.073, "c_mem": 0.1387, - "c_pol": 0.4273, + "c_pol": 0.4247, "care_load": 0.03, "ell": 0.6400174925442954, - "ereg": 0.009816444444444445, + "ereg": 0.006262980392156864, "expl": 0.7, "lin_open": 0.6, "m": 0.7, @@ -191,40 +191,40 @@ }, "US": { "init": { - "As": 0.4638561505217184, - "Aw": 0.47095929341363896, - "Cch": 0.4332185525265263, - "Cd": 0.3554804338324086, - "Cs": 0.5209267906156767, - "Cw": 0.5554727722506773, - "Dch": 0.43881655455166524, - "Dd": 0.402177333960535, - "Ds": 0.5371442836459209, - "Dw": 0.542748194853914, - "E": 0.32475029967213903, - "F": 0.4034487151448105, - "G": 0.4241337094438139, - "Gs": 0.4020491232007042, - "Gw": 0.4314965577581139, - "Ko": 0.1243134793968734, - "Kp": 0.484041964344501, + "As": 0.4637886597324476, + "Aw": 0.4708912712885, + "Cch": 0.4332376843396394, + "Cd": 0.3554802311708495, + "Cs": 0.5209218105092162, + "Cw": 0.5554746836783269, + "Dch": 0.4388525127347231, + "Dd": 0.40217733404614336, + "Ds": 0.5371442878970177, + "Dw": 0.5427484729157492, + "E": 0.2348127910138574, + "F": 0.4019226367895594, + "G": 0.42717955590953194, + "Gs": 0.40530821191422817, + "Gw": 0.4344713107332175, + "Ko": 0.12518257777530525, + "Kp": 0.4843707773756649, "Lg": 0.285, - "N": 0.46840082573714836, + "N": 0.4695950957345203, "Nch": 0.22729935918753863, "Nd": 0.09090457861394226, "Ns": 0.17049743675015444, "Nw": 0.5114006408124614, - "Pd": 0.8504430615397236, - "Pi": 0.6313462967709835, - "Plin": 0.8768277636112062, - "Pm": 0.5006822876704253, - "Pmem": 0.5011181593225171, - "Ppol": 0.5016418357629986, - "Q": 0.49220841683727995, - "S": 0.4828360374678574, + "Pd": 0.8504253145857318, + "Pi": 0.6313187120405613, + "Plin": 0.8768509945133794, + "Pm": 0.36539578850727567, + "Pmem": 0.5011312389614087, + "Ppol": 0.5015193643253176, + "Q": 0.4926257295998362, + "S": 0.48418788964527376, "Sig": 0.285, - "W": 0.18562318134613848, - "X": 0.3811184088807723 + "W": 0.16235252953395493, + "X": 0.38160201689555423 }, "k": 2.0, "params": { @@ -234,12 +234,12 @@ "c_d": 0.2661, "c_i": 0.3805, "c_lin": 0.2603, - "c_m": 0.0757, + "c_m": 0.0764, "c_mem": 0.576, - "c_pol": 0.4316, + "c_pol": 0.4267, "care_load": 0.03, "disc": 0.6, - "ereg": 0.009643111111111111, + "ereg": 0.0061523921568627455, "lin_open": 0.1, "m": 0.1, "r_d": 0.6, diff --git a/simulations/gadm02/results/calibration.md b/simulations/gadm02/results/calibration.md index 94b0869..e837449 100644 --- a/simulations/gadm02/results/calibration.md +++ b/simulations/gadm02/results/calibration.md @@ -8,20 +8,20 @@ range. Adoption scaled from anchor B2 by k; t* aligned by observed growth. | Jurisdiction | Archetype levers | k | t* (y) | K_Ω(t*) | fitted wL0 | fitted ereg | fitted aext | auto | |---|---|---|---|---|---|---|---|---| -| US | J3 | 2.00 | 1.2 | 0.124 | 0.478 | 0.0096 | 0.387 | 0.26 | -| EU | J1 | 1.54 | 0.9 | 0.091 | 0.523 | 0.0098 | 0.931 | 0.60 | -| DE | J1 | 1.41 | 1.5 | 0.112 | 0.616 | 0.0103 | 0.983 | 0.60 | +| US | J3 | 2.00 | 1.2 | 0.125 | 0.478 | 0.0062 | 0.387 | 0.26 | +| EU | J1 | 1.54 | 0.9 | 0.092 | 0.523 | 0.0063 | 0.719 | 0.60 | +| DE | J1 | 1.41 | 1.5 | 0.113 | 0.616 | 0.0066 | 0.702 | 0.60 | | AR | J2 | 2.00 | 1.1 | 0.110 | 0.387 | 0.0500 | 0.580 | 0.60 | -**Fit summary:** 39 of 39 targets inside their range; measured targets 28 of 28. +**Fit summary:** 39 of 39 targets inside their range; measured targets 35 of 35. ## Fixed anchors aligned by growth: K_Ω level miss | Jurisdiction | B1 | B2 | B3 | B4 | |---|---|---|---|---| -| US | cannot reach growth | K_Ω 0.055, z -0.9 | K_Ω 0.124, z -0.0 | K_Ω 0.209, z +1.1 | -| EU | cannot reach growth | K_Ω 0.055, z -0.7 | K_Ω 0.125, z +0.5 | K_Ω 0.201, z +1.9 | -| DE | cannot reach growth | K_Ω 0.074, z -0.6 | K_Ω 0.171, z +0.9 | K_Ω 0.347, z +3.6 | +| US | cannot reach growth | K_Ω 0.055, z -0.9 | K_Ω 0.125, z +0.0 | K_Ω 0.220, z +1.3 | +| EU | cannot reach growth | K_Ω 0.055, z -0.7 | K_Ω 0.125, z +0.6 | K_Ω 0.203, z +2.0 | +| DE | cannot reach growth | K_Ω 0.075, z -0.6 | K_Ω 0.173, z +0.9 | K_Ω 0.353, z +3.7 | | AR | cannot reach growth | cannot reach growth | K_Ω 0.110, z +0.0 | K_Ω 0.163, z +0.9 | ## Residuals at the calibrated start @@ -30,47 +30,47 @@ range. Adoption scaled from anchor B2 by k; t* aligned by observed growth. | Target | Range | Model at t* | z | basis | |---|---|---|---|---| -| Ko | 0.05–0.2 | 0.124 | -0.01 | prior | -| Ko_ratio_1y | 1.3–1.6 | 1.447 | -0.02 | measured | +| Ko | 0.05–0.2 | 0.125 | +0.00 | prior | +| Ko_ratio_1y | 1.3–1.6 | 1.449 | -0.01 | measured | | Pd | 0.8–0.9 | 0.850 | +0.01 | measured | | Pi | 0.56–0.7 | 0.631 | +0.02 | measured | | Pmem | 0.4–0.6 | 0.501 | +0.01 | measured | | Plin | 0.8–0.95 | 0.877 | +0.02 | measured | -| Pm | 0.4–0.6 | 0.501 | +0.01 | prior | +| Pm | 0.28–0.45 | 0.365 | +0.00 | measured | | B | 0.57–0.67 | 0.613 | -0.13 | measured | -| B_trend | -0.01–0.0 | -0.005 | +0.01 | measured | +| B_trend | -0.01–0.0 | -0.005 | -0.00 | measured | | A | 0.4–0.55 | 0.469 | -0.08 | measured | -| E | 0.2–0.45 | 0.325 | -0.00 | prior | +| E | 0.15–0.32 | 0.235 | -0.00 | measured | | Sig | 0.22–0.35 | 0.285 | +0.00 | measured | ### EU | Target | Range | Model at t* | z | basis | |---|---|---|---|---| -| Ko | 0.04–0.15 | 0.091 | -0.07 | prior | -| Ko_ratio_1y | 1.35–1.6 | 1.449 | -0.21 | measured | +| Ko | 0.04–0.15 | 0.092 | -0.06 | prior | +| Ko_ratio_1y | 1.35–1.6 | 1.452 | -0.18 | measured | | Pd | 0.84–0.94 | 0.890 | +0.00 | measured | | Pi | 0.56–0.76 | 0.661 | +0.01 | measured | | Pmem | 0.47–0.67 | 0.570 | +0.00 | measured | | Plin | 0.8–0.95 | 0.876 | +0.01 | measured | | B | 0.6–0.69 | 0.636 | -0.21 | measured | -| A | 0.4–0.6 | 0.498 | -0.02 | prior | -| E | 0.2–0.45 | 0.325 | -0.00 | prior | +| A | 0.45–0.65 | 0.548 | -0.02 | measured | +| E | 0.15–0.32 | 0.235 | -0.00 | measured | | Sig | 0.45–0.62 | 0.535 | +0.00 | measured | ### DE | Target | Range | Model at t* | z | basis | |---|---|---|---|---| -| Ko | 0.05–0.18 | 0.112 | -0.04 | prior | -| Ko_ratio_1y | 1.2–1.45 | 1.316 | -0.08 | measured | +| Ko | 0.05–0.18 | 0.113 | -0.03 | prior | +| Ko_ratio_1y | 1.2–1.45 | 1.318 | -0.06 | measured | | Pd | 0.83–0.93 | 0.880 | +0.01 | measured | | Pi | 0.56–0.76 | 0.662 | +0.02 | measured | | Pmem | 0.5–0.7 | 0.600 | +0.00 | measured | | Plin | 0.8–0.95 | 0.877 | +0.02 | measured | -| B | 0.66–0.76 | 0.693 | -0.33 | measured | -| A | 0.4–0.6 | 0.494 | -0.06 | prior | -| E | 0.2–0.45 | 0.325 | -0.00 | prior | +| B | 0.66–0.76 | 0.693 | -0.34 | measured | +| A | 0.48–0.65 | 0.560 | -0.06 | measured | +| E | 0.15–0.32 | 0.235 | -0.00 | measured | | Sig | 0.45–0.62 | 0.535 | +0.00 | measured | ### AR @@ -80,7 +80,7 @@ range. Adoption scaled from anchor B2 by k; t* aligned by observed growth. | Ko | 0.05–0.17 | 0.110 | +0.00 | measured | | Pd | 0.89–0.98 | 0.935 | +0.01 | measured | | Plin | 0.8–0.95 | 0.876 | +0.02 | measured | -| B | 0.45–0.65 | 0.540 | -0.10 | prior | +| B | 0.49–0.61 | 0.540 | -0.17 | measured | | Sig | 0.36–0.5 | 0.430 | +0.00 | measured | | Pmem | 0.68–0.88 | 0.780 | +0.00 | measured | | Ko_ratio_1y | 1.25–1.65 | 1.443 | -0.03 | prior | diff --git a/simulations/gadm02/results/gsa_gadm04_start_EU.md b/simulations/gadm02/results/gsa_gadm04_start_EU.md new file mode 100644 index 0000000..67d81e9 --- /dev/null +++ b/simulations/gadm02/results/gsa_gadm04_start_EU.md @@ -0,0 +1,102 @@ +# GADM-0.4 global sensitivity analysis + +Channel counters c_* are recalibrated per sample (not varied); wealth_on is fixed. + +Generated by `simulations/gadm02/gsa.py`. +Output: final VFAC (t = 100 years). Parameters vary ±50 % around the scenario +value (levers clipped to [0, 1]; zero-valued parameters in [0, 0.1]). +Morris: 20 trajectories, 4 levels. Sobol: S1 Saltelli (2010, centred), ST Jansen, N = 256, +bootstrap 95 % intervals, seed 20261012. Parameters outside the Sobol set stay at +their scenario values. + +μ* ranks importance. A σ that is large relative to μ* indicates +interactions or non-linearity. ST − S1 is the share of variance due to +interactions involving that parameter. + +## Baseline (current trends) — calibrated start EU + +### Morris screening (top 15) + +| Rank | Parameter | μ* | μ | σ | +|---|---|---|---|---| +| 1 | `IX` | 0.0431 | +0.0431 | 0.0100 | +| 2 | `dO` | 0.0297 | +0.0285 | 0.0164 | +| 3 | `lX` | 0.0279 | -0.0279 | 0.0068 | +| 4 | `ereg` | 0.0265 | +0.0265 | 0.0086 | +| 5 | `arec` | 0.0251 | +0.0251 | 0.0079 | +| 6 | `dX` | 0.0239 | -0.0239 | 0.0084 | +| 7 | `q0` | 0.0237 | +0.0237 | 0.0075 | +| 8 | `aext` | 0.0235 | -0.0235 | 0.0067 | +| 9 | `n1` | 0.0222 | +0.0222 | 0.0103 | +| 10 | `x_att` | 0.0219 | -0.0219 | 0.0051 | +| 11 | `q2` | 0.0213 | -0.0213 | 0.0076 | +| 12 | `g1` | 0.0192 | +0.0192 | 0.0046 | +| 13 | `n3` | 0.0180 | -0.0180 | 0.0043 | +| 14 | `aX` | 0.0179 | +0.0179 | 0.0109 | +| 15 | `b1` | 0.0173 | -0.0173 | 0.0034 | + +Reuse bundle Morris ranks: `rho0` 29, `IX` 1, `lin_open` 28, `std` 32 + +### Sobol indices + +| Parameter | S1 | S1 95 % CI | ST | ST 95 % CI | ST − S1 | +|---|---|---|---|---|---| +| `IX` | 0.336 | [0.259, 0.425] | 0.326 | [0.273, 0.390] | -0.009 | +| `dO` | 0.138 | [0.075, 0.194] | 0.127 | [0.102, 0.158] | -0.011 | +| `lX` | 0.112 | [0.050, 0.159] | 0.112 | [0.092, 0.132] | -0.000 | +| `dX` | 0.097 | [0.044, 0.147] | 0.082 | [0.069, 0.100] | -0.015 | +| `q0` | 0.004 | [-0.048, 0.058] | 0.074 | [0.061, 0.089] | +0.070 | +| `ereg` | 0.069 | [0.026, 0.109] | 0.071 | [0.058, 0.086] | +0.001 | +| `arec` | 0.070 | [0.037, 0.110] | 0.064 | [0.051, 0.079] | -0.006 | +| `aext` | 0.066 | [0.021, 0.105] | 0.058 | [0.048, 0.070] | -0.007 | +| `x_att` | 0.060 | [0.019, 0.097] | 0.057 | [0.046, 0.070] | -0.003 | +| `n1` | 0.062 | [0.023, 0.101] | 0.048 | [0.039, 0.057] | -0.014 | +| `std` | 0.006 | [-0.018, 0.033] | 0.025 | [0.021, 0.030] | +0.019 | +| `lin_open` | 0.019 | [-0.001, 0.039] | 0.014 | [0.011, 0.017] | -0.005 | +| `rho0` | 0.002 | [-0.018, 0.023] | 0.013 | [0.011, 0.016] | +0.011 | + +Sum of S1 over analysed parameters: 1.042. Reuse bundle: ΣS1 = 0.364, ΣST = 0.379. + +## Generative regime — calibrated start EU + +### Morris screening (top 15) + +| Rank | Parameter | μ* | μ | σ | +|---|---|---|---|---| +| 1 | `IX` | 0.0420 | +0.0420 | 0.0167 | +| 2 | `ereg` | 0.0363 | +0.0363 | 0.0105 | +| 3 | `dO` | 0.0297 | +0.0286 | 0.0148 | +| 4 | `lX` | 0.0279 | -0.0279 | 0.0107 | +| 5 | `arec` | 0.0268 | +0.0268 | 0.0080 | +| 6 | `n1` | 0.0262 | +0.0262 | 0.0118 | +| 7 | `dX` | 0.0244 | -0.0244 | 0.0097 | +| 8 | `aext` | 0.0242 | -0.0242 | 0.0063 | +| 9 | `q0` | 0.0240 | +0.0240 | 0.0123 | +| 10 | `x_att` | 0.0228 | -0.0228 | 0.0058 | +| 11 | `aX` | 0.0223 | +0.0223 | 0.0103 | +| 12 | `q2` | 0.0219 | -0.0219 | 0.0099 | +| 13 | `g1` | 0.0201 | +0.0201 | 0.0064 | +| 14 | `std` | 0.0198 | +0.0198 | 0.0096 | +| 15 | `expl` | 0.0192 | +0.0192 | 0.0112 | + +Reuse bundle Morris ranks: `rho0` 20, `IX` 1, `lin_open` 29, `std` 14 + +### Sobol indices + +| Parameter | S1 | S1 95 % CI | ST | ST 95 % CI | ST − S1 | +|---|---|---|---|---|---| +| `IX` | 0.240 | [0.168, 0.328] | 0.241 | [0.202, 0.283] | +0.001 | +| `lX` | 0.098 | [0.035, 0.150] | 0.125 | [0.100, 0.152] | +0.028 | +| `ereg` | 0.088 | [0.038, 0.142] | 0.103 | [0.085, 0.127] | +0.014 | +| `dX` | 0.167 | [0.118, 0.215] | 0.090 | [0.072, 0.109] | -0.077 | +| `dO` | 0.056 | [0.012, 0.097] | 0.072 | [0.058, 0.088] | +0.016 | +| `arec` | 0.064 | [0.031, 0.106] | 0.058 | [0.046, 0.074] | -0.005 | +| `x_att` | 0.032 | [-0.005, 0.075] | 0.055 | [0.046, 0.068] | +0.023 | +| `q0` | 0.066 | [0.023, 0.105] | 0.055 | [0.043, 0.067] | -0.011 | +| `n1` | 0.034 | [-0.007, 0.072] | 0.053 | [0.044, 0.064] | +0.019 | +| `aext` | 0.032 | [-0.011, 0.071] | 0.053 | [0.045, 0.064] | +0.021 | +| `std` | 0.046 | [0.013, 0.074] | 0.053 | [0.042, 0.063] | +0.006 | +| `rho0` | 0.019 | [-0.006, 0.048] | 0.039 | [0.030, 0.048] | +0.020 | +| `lin_open` | 0.021 | [-0.011, 0.055] | 0.032 | [0.025, 0.041] | +0.012 | + +Sum of S1 over analysed parameters: 0.963. Reuse bundle: ΣS1 = 0.326, ΣST = 0.364. diff --git a/simulations/gadm02/results/gsa_gadm04_start_US.md b/simulations/gadm02/results/gsa_gadm04_start_US.md new file mode 100644 index 0000000..bded064 --- /dev/null +++ b/simulations/gadm02/results/gsa_gadm04_start_US.md @@ -0,0 +1,102 @@ +# GADM-0.4 global sensitivity analysis + +Channel counters c_* are recalibrated per sample (not varied); wealth_on is fixed. + +Generated by `simulations/gadm02/gsa.py`. +Output: final VFAC (t = 100 years). Parameters vary ±50 % around the scenario +value (levers clipped to [0, 1]; zero-valued parameters in [0, 0.1]). +Morris: 20 trajectories, 4 levels. Sobol: S1 Saltelli (2010, centred), ST Jansen, N = 256, +bootstrap 95 % intervals, seed 20261012. Parameters outside the Sobol set stay at +their scenario values. + +μ* ranks importance. A σ that is large relative to μ* indicates +interactions or non-linearity. ST − S1 is the share of variance due to +interactions involving that parameter. + +## Baseline (current trends) — calibrated start US + +### Morris screening (top 15) + +| Rank | Parameter | μ* | μ | σ | +|---|---|---|---|---| +| 1 | `dO` | 0.0496 | +0.0496 | 0.0160 | +| 2 | `IX` | 0.0393 | +0.0393 | 0.0084 | +| 3 | `ell` | 0.0263 | -0.0263 | 0.0082 | +| 4 | `ereg` | 0.0231 | +0.0231 | 0.0069 | +| 5 | `arec` | 0.0229 | +0.0229 | 0.0061 | +| 6 | `aext` | 0.0228 | -0.0228 | 0.0053 | +| 7 | `n1` | 0.0213 | +0.0213 | 0.0096 | +| 8 | `lX` | 0.0205 | -0.0205 | 0.0048 | +| 9 | `g1` | 0.0201 | +0.0201 | 0.0044 | +| 10 | `x_att` | 0.0177 | -0.0177 | 0.0029 | +| 11 | `dX` | 0.0173 | -0.0173 | 0.0048 | +| 12 | `q0` | 0.0167 | +0.0167 | 0.0068 | +| 13 | `oseed` | 0.0157 | -0.0157 | 0.0059 | +| 14 | `wL0` | 0.0142 | +0.0142 | 0.0061 | +| 15 | `e2` | 0.0138 | -0.0138 | 0.0049 | + +Reuse bundle Morris ranks: `rho0` 31, `IX` 2, `lin_open` 78, `std` 36 + +### Sobol indices + +| Parameter | S1 | S1 95 % CI | ST | ST 95 % CI | ST − S1 | +|---|---|---|---|---|---| +| `dO` | 0.321 | [0.247, 0.408] | 0.293 | [0.246, 0.353] | -0.028 | +| `IX` | 0.281 | [0.185, 0.362] | 0.255 | [0.207, 0.312] | -0.026 | +| `ell` | 0.079 | [0.027, 0.121] | 0.082 | [0.068, 0.099] | +0.003 | +| `lX` | 0.068 | [0.017, 0.113] | 0.070 | [0.058, 0.082] | +0.002 | +| `ereg` | 0.055 | [0.016, 0.091] | 0.059 | [0.049, 0.070] | +0.004 | +| `arec` | 0.066 | [0.034, 0.102] | 0.054 | [0.044, 0.067] | -0.012 | +| `g1` | 0.067 | [0.027, 0.102] | 0.054 | [0.044, 0.064] | -0.014 | +| `aext` | 0.075 | [0.037, 0.117] | 0.052 | [0.043, 0.062] | -0.023 | +| `n1` | -0.012 | [-0.051, 0.030] | 0.045 | [0.038, 0.053] | +0.057 | +| `x_att` | 0.035 | [-0.000, 0.069] | 0.042 | [0.033, 0.052] | +0.006 | +| `std` | -0.001 | [-0.019, 0.017] | 0.014 | [0.010, 0.017] | +0.014 | +| `rho0` | 0.003 | [-0.011, 0.015] | 0.006 | [0.005, 0.007] | +0.003 | +| `lin_open` | 0.002 | [-0.000, 0.005] | 0.000 | [0.000, 0.000] | -0.002 | + +Sum of S1 over analysed parameters: 1.041. Reuse bundle: ΣS1 = 0.285, ΣST = 0.275. + +## Generative regime — calibrated start US + +### Morris screening (top 15) + +| Rank | Parameter | μ* | μ | σ | +|---|---|---|---|---| +| 1 | `ereg` | 0.0398 | +0.0398 | 0.0113 | +| 2 | `IX` | 0.0378 | +0.0378 | 0.0205 | +| 3 | `n1` | 0.0314 | +0.0314 | 0.0133 | +| 4 | `expl` | 0.0274 | +0.0274 | 0.0230 | +| 5 | `aX` | 0.0271 | +0.0271 | 0.0174 | +| 6 | `lX` | 0.0263 | -0.0263 | 0.0116 | +| 7 | `dX` | 0.0255 | -0.0255 | 0.0123 | +| 8 | `arec` | 0.0241 | +0.0241 | 0.0084 | +| 9 | `q0` | 0.0240 | +0.0240 | 0.0073 | +| 10 | `dO` | 0.0238 | +0.0214 | 0.0159 | +| 11 | `q2` | 0.0227 | -0.0227 | 0.0195 | +| 12 | `m` | 0.0223 | +0.0223 | 0.0102 | +| 13 | `std` | 0.0221 | +0.0221 | 0.0122 | +| 14 | `e2` | 0.0217 | -0.0217 | 0.0083 | +| 15 | `aext` | 0.0205 | -0.0205 | 0.0063 | + +Reuse bundle Morris ranks: `rho0` 23, `IX` 2, `lin_open` 22, `std` 13 + +### Sobol indices + +| Parameter | S1 | S1 95 % CI | ST | ST 95 % CI | ST − S1 | +|---|---|---|---|---|---| +| `IX` | 0.165 | [0.093, 0.229] | 0.196 | [0.162, 0.237] | +0.031 | +| `ereg` | 0.166 | [0.111, 0.224] | 0.113 | [0.096, 0.131] | -0.054 | +| `dX` | 0.129 | [0.078, 0.184] | 0.098 | [0.078, 0.123] | -0.031 | +| `aX` | 0.056 | [0.008, 0.109] | 0.097 | [0.076, 0.120] | +0.040 | +| `expl` | 0.086 | [0.039, 0.140] | 0.094 | [0.077, 0.111] | +0.009 | +| `lX` | 0.121 | [0.071, 0.174] | 0.089 | [0.075, 0.107] | -0.032 | +| `n1` | 0.091 | [0.057, 0.134] | 0.072 | [0.059, 0.087] | -0.019 | +| `q0` | 0.066 | [0.019, 0.110] | 0.069 | [0.055, 0.082] | +0.002 | +| `std` | 0.066 | [0.023, 0.104] | 0.057 | [0.045, 0.068] | -0.009 | +| `lin_open` | 0.068 | [0.032, 0.113] | 0.056 | [0.044, 0.069] | -0.011 | +| `arec` | 0.046 | [0.005, 0.090] | 0.051 | [0.043, 0.061] | +0.006 | +| `rho0` | 0.065 | [0.029, 0.100] | 0.049 | [0.038, 0.061] | -0.016 | +| `dO` | 0.058 | [0.019, 0.100] | 0.048 | [0.036, 0.058] | -0.011 | + +Sum of S1 over analysed parameters: 1.183. Reuse bundle: ΣS1 = 0.363, ΣST = 0.358. diff --git a/workplans/ASSEMBLY-WP-0011-cross-border-coupling.md b/workplans/ASSEMBLY-WP-0011-cross-border-coupling.md index 38dc696..ed2f6b5 100644 --- a/workplans/ASSEMBLY-WP-0011-cross-border-coupling.md +++ b/workplans/ASSEMBLY-WP-0011-cross-border-coupling.md @@ -35,11 +35,11 @@ Goal: two scenario modes on one model. This workplan was revised against the calibrated, partly measured start (`models/Calibration.md` v0.2, `results/calibrated_starts.json`): -- Concentration is measured (Calibration v0.3, 28 of 28 measured targets +- Concentration is measured (Calibration v0.4, 35 of 35 measured targets fitted): leading search share 0.85–0.94, mobile-OS HHI 0.50–0.78, cloud top-3 share 0.63, frontier-model top-3 spend 0.88. Outside the US, all of these channels are run by foreign operators. -- Starting domination is US 0.69, EU 0.72, AR 0.75: at or above the floor +- Starting domination is US 0.68, EU 0.72, AR 0.75: at or above the floor (0.70) everywhere. - BR-007: the EU, already at rights-first levers, cannot bring P down. Its domination is set abroad. That is the acceptance test for this workplan: @@ -48,7 +48,7 @@ This workplan was revised against the calibrated, partly measured start - Adoption: present between B2 and B3; fitted speed k 1.3–1.8 × B2. All runs start from `calibrated_starts.json`. WP-0015 continues to replace -the remaining priors (Pm, E, EU/DE attention, AR B and growth); re-run T05 after each re-calibration. +the remaining priors (EU/AR Pm, AR growth; WP-0015-T06); re-run T05 after each re-calibration. ## Cross-border channels: inventory and evidence diff --git a/workplans/ASSEMBLY-WP-0012-model-matching-flipping.md b/workplans/ASSEMBLY-WP-0012-model-matching-flipping.md index 83f0d9d..f8c081f 100644 --- a/workplans/ASSEMBLY-WP-0012-model-matching-flipping.md +++ b/workplans/ASSEMBLY-WP-0012-model-matching-flipping.md @@ -24,8 +24,8 @@ jurisdiction or society operates under has changed significantly. ## Calibrated starting point (set up 2026-10-13, after calibration) -The calibration (`models/Calibration.md` v0.3: 39 of 39 targets in range, -28 measured) gives the first matching evidence: +The calibration (`models/Calibration.md` v0.4: 39 of 39 targets in range, +35 measured) gives the first matching evidence: - Aligned by measured growth, **B1 cannot reproduce today's adoption growth** (US, EU, DE). B2 lands slightly low, B3 fits, and B4 overshoots the level diff --git a/workplans/ASSEMBLY-WP-0015-first-checkpoint-review.md b/workplans/ASSEMBLY-WP-0015-first-checkpoint-review.md index c28eb51..ded0128 100644 --- a/workplans/ASSEMBLY-WP-0015-first-checkpoint-review.md +++ b/workplans/ASSEMBLY-WP-0015-first-checkpoint-review.md @@ -4,7 +4,7 @@ type: workplan title: "First checkpoint review: measured targets, manual indicators, re-calibration" domain: communication repo: assembly-economics -status: proposed +status: active flavor: residual depends_on: [ASSEMBLY-WP-0013, ASSEMBLY-WP-0009] owner: claude-code @@ -30,12 +30,12 @@ the re-calibrated state this workplan produces. ```task id: ASSEMBLY-WP-0015-T01 -status: progress +status: done priority: high state_hub_task_id: "cb9cc96b-ab9c-5df1-956a-d168efce1fd6" ``` -**Partly done 2026-10-13:** L6 US, EU, AR and L3 AR (level) in `checkpoints/2026/2026-10-13-review.md`. L4 and L7 are open, and secondary-source figures need checking against the originals. +**Done 2026-10-13:** L3 (AR level), L4, L6 (US, EU, AR) and L7 (EU, US, AR) in `checkpoints/2026/2026-10-13-review.md`; mapping update in `models/AdoptionBand.md` § 4.4. Secondary-source figures are marked there; checking them against the originals is part of the next regular review. For each indicator, record the value with source, reference period and retrieval date in a review record `checkpoints/2026/-review.md`: @@ -58,12 +58,12 @@ Where a source is machine-readable after all, add a `sources.json` spec. ```task id: ASSEMBLY-WP-0015-T02 -status: progress +status: done priority: high state_hub_task_id: "7533595c-21cc-5526-84fc-a33a1d1adc90" ``` -**Partly done 2026-10-13:** 28 targets measured (Pd, Pmem, Pi, Plin, B, US A, Σ, AR adoption level). Open: Pm, E, EU/DE attention, AR B, AR adoption growth. +**Done 2026-10-13:** 35 of 39 targets measured (Calibration v0.4). The rest moved to T06. Replace `prior` targets in `simulations/gadm02/calibration_targets.json` with measured ranges, citing source and date in `op`: @@ -88,7 +88,7 @@ priority: high state_hub_task_id: "0813f5cd-9ba1-5530-a2e5-4a66f3d98610" ``` -**Done 2026-10-13:** Calibration v0.3, 39 of 39 targets in range; `aext` and `auto` fitted in addition. Verdict and R1–R4 unchanged. Later updates follow `models/Calibration.md` § 5. +**Done 2026-10-13:** Calibration v0.4, 39 of 39 targets in range; `aext` and `auto` fitted in addition. Verdict and R1–R4 unchanged. Later updates follow `models/Calibration.md` § 5. Follow `models/Calibration.md` § 5. Re-run `calibrate_data.py` and `calibrated_readings.py`. Compare k, t*, the anchor verdict (today: between @@ -103,11 +103,13 @@ rather than taken from the archetype. ```task id: ASSEMBLY-WP-0015-T04 -status: todo +status: done priority: medium state_hub_task_id: "5ee785e7-004c-5f59-b558-64341412e9bf" ``` +**Done 2026-10-13:** `gsa.py --start`; results for US and EU in `models/Calibration.md` § 4.1. Commons and ecology lead; explainability falls back. + The WP-0009-T05 GSA ran around the uncalibrated band anchors. Add a `--start ` option to `gsa.py` that uses `results/calibrated_starts.json`. Run it for US and EU. Question: do the @@ -118,14 +120,38 @@ dominant drivers of VFAC change once domination starts near the floor ```task id: ASSEMBLY-WP-0015-T05 -status: todo +status: done priority: medium state_hub_task_id: "5a862792-59c7-5e95-acfb-f370ba84d267" ``` +**Done 2026-10-13:** first observations appended to P-2026-001 (BTOS still about 1.7× per year, no slowdown) and baselines to P-2026-004. The alignment did not change in Calibration v0.3 (B3 fits best, as v1 assumed), so no predictions v2 are needed yet. + Append the first observations to P-2026-001 (BTOS, from the setup and monthly checkpoints) and P-2026-004 (sentiment baseline from T01), following the register rules: append only, never edit. Note whether the US BTOS series still grows at about 1.46 per year. A clear slowdown already in late 2026 would favour B2 over B3. If the re-calibration (T03) changes the alignment, register predictions v2 as new entries that supersede v1. + +## Remaining priors: EU/AR market concentration, AR adoption growth + +```task +id: ASSEMBLY-WP-0015-T06 +status: wait +priority: medium +``` + +Waits for data that does not exist yet as of 2026-10-13. + +- **AR adoption growth:** the second data point of the Google/IDB study, or + INDEC's ICT survey. Then fit AR's k from measured growth instead of the + prior 1.25–1.65. +- **Pm for the EU and AR:** an economy-wide concentration operator consistent + with the US one (top-firm share of listed market value, for example the + STOXX 600 top 10, MERVAL top 5). Add it as `sources.json` specs if + machine-readable. + +Then re-calibrate (`models/Calibration.md` § 5) and check whether readings +R1–R4 change. Also verify the secondary-source figures marked in +`checkpoints/2026/2026-10-13-review.md` against their originals.