From 8bb8c8fd4b1c0bdcc2679ae2cb45d73a342776d4 Mon Sep 17 00:00:00 2001 From: tegwick Date: Tue, 13 Oct 2026 22:53:40 +0200 Subject: [PATCH] =?UTF-8?q?ASSEMBLY-WP-0016-T04:=20export=20channel=20(xpo?= =?UTF-8?q?rt),=20H2=20split=20(output=20yes=20from=204.5=20%=20of=20GDP?= =?UTF-8?q?=20exports=20without=20the=20loop;=20VFAC=20no);=20CrossBorder?= =?UTF-8?q?=20=C2=A7=207;=20CB6=20indicator?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Assistant: claude-code Assistant-Model: opus Assistant-Process: 14913@bnt-lap001 Assistant-Session: add7ef69-b901-4756-9a67-34cf1125d96f --- AGENTS.md | 1 + checkpoints/IndicatorCatalog.md | 10 +++ models/CrossBorder.md | 43 +++++++++++++ simulations/gadm02/exports.py | 64 +++++++++++++++++++ simulations/gadm02/gadm02.py | 5 +- simulations/gadm02/results/exports.md | 25 ++++++++ ...SEMBLY-WP-0016-open-economy-refinements.md | 10 ++- 7 files changed, 156 insertions(+), 2 deletions(-) create mode 100644 simulations/gadm02/exports.py create mode 100644 simulations/gadm02/results/exports.md diff --git a/AGENTS.md b/AGENTS.md index 5464801..19baec4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -38,6 +38,7 @@ cd simulations/gadm02 && python3 -B calibrate_data.py && python3 -B calibrated_r 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 cd simulations/gadm02 && python3 -B cross_border.py # coupled world US/EU/AR from the calibrated start (models/CrossBorder.md) cd simulations/gadm02 && python3 -B world_scenarios.py # contexts X1–X4, hypothesis re-test, local vs. global +cd simulations/gadm02 && python3 -B exports.py # export channel and the "Argentina may thrive" hypothesis cd simulations/gadm02 && python3 -B matching.py && python3 -B matching.py --imm # model matching; IMM flip-detection acceptance test (~6 min) ``` diff --git a/checkpoints/IndicatorCatalog.md b/checkpoints/IndicatorCatalog.md index 0c91937..5dc6730 100644 --- a/checkpoints/IndicatorCatalog.md +++ b/checkpoints/IndicatorCatalog.md @@ -249,3 +249,13 @@ an investment indicator (`research/ModelMatching.md` § 4.2). Hyperscaler capital expenditure (company filings) is a second candidate, but the 2026 guidance figures conflict across sources and are not audited quarterly values. + +## Export indicator for Argentina (ASSEMBLY-WP-0016-T04) + +| ID | Indicator | Jurisdiction | Source | Access | Cadence | +|---|---|---|---|---|---| +| CB6 | Knowledge-based services exports (USD; % of GDP) | AR | INDEC, Balance of payments / knowledge-economy reports (USD 9.6 bn in 2025) | manual | q | + +CB6 tells whether Argentina moves toward the export path that would let it +out-grow the EU on output (`models/CrossBorder.md` § 7): from about 4.5 % of +GDP upward. diff --git a/models/CrossBorder.md b/models/CrossBorder.md index 98125da..5ff76c3 100644 --- a/models/CrossBorder.md +++ b/models/CrossBorder.md @@ -282,3 +282,46 @@ Readings: overshoots (1.52). κ is therefore not identified by today's data, and the prior 0.8 does not double-count the calibrated adoption speed. κ matters only when the frontier pulls far ahead (context X3). + +## 7. Export channel and "Argentina may thrive" (WP-0016-T04) + +`gadm02` parameter `xport` (default 0) adds foreign demand for +organism-enabled output: `dem += xport · K_Ω`. Argentina's +knowledge-based services exports were USD 9.6 bn in 2025 (INDEC, +8.1 %), +about 1.5 % of GDP. The sector's goal is USD 30 bn (about 4.5 %). `exports.py` +sets Argentina's export demand to a share of its domestic demand at the +calibrated start (`results/exports.md`). + +| Context, loop | Export share | AR Ȳ 0–25 / 0–100 | EU Ȳ 0–25 / 0–100 | AR − EU VFAC | +|---|---|---|---|---| +| X1, off | none | 0.99 / 0.81 | 1.01 / 0.85 | −0.041 | +| X1, off | 1.5 % (today, upper bound) | 1.00 / 0.82 | 1.01 / 0.85 | −0.042 | +| X1, off | 4.5 % (sector goal) | **1.03** / 0.85 | 1.01 / 0.85 | −0.045 | +| X1, off | 10 % (export hub) | **1.07 / 0.90** | 1.02 / 0.85 | −0.052 | +| X1, on | 10 % | 0.93 / 0.71 | 0.95 / 0.76 | −0.040 | +| X2, off | 10 % | **1.14** / 1.00 | 1.09 / 1.01 | −0.071 | + +Ȳ is relative to each jurisdiction's own start. + +Readings: + +1. **H2a, output: Argentina can out-grow the EU through exports, but only + well above today's level.** At the sector goal (4.5 % of GDP), early output + growth passes the EU's. As an export hub (10 %), long-run growth does too. + Today's knowledge-services exports, even counted fully as organism-enabled, + do not change the result. With the legitimacy loop on, Argentina stays + behind in every case. +2. **H2b, VFAC: no.** More exports lower Argentina's VFAC relative to the EU + (−0.041 → −0.052 in X1, −0.055 → −0.071 in X2). The extra organism capacity + brings more displacement and attention extraction, while domination stays + at 0.83, all of it run from abroad. +3. **"Thriving" therefore splits.** A J2 jurisdiction can become richer through + AI-enabled exports, but not better off on the program's measure, as long as + its domination channels are foreign-run and its levers deregulated. + Checkpoint indicators that would show the path: knowledge-services exports + (INDEC, quarterly), and L3 adoption for Argentina. + +Caveats: export demand scales only with Argentina's own K_Ω (no price or +competition effects, no partner demand). Adding it at t 0 shifts the +calibrated rest point slightly; this is negligible at 1.5 % and noticeable at +10 %. diff --git a/simulations/gadm02/exports.py b/simulations/gadm02/exports.py new file mode 100644 index 0000000..08204d7 --- /dev/null +++ b/simulations/gadm02/exports.py @@ -0,0 +1,64 @@ +"""Export channel and the "Argentina may thrive" hypothesis (ASSEMBLY-WP-0016-T04). + +Argentina's knowledge-based services exports were USD 9.6 bn in 2025 (INDEC), +about 1.5 % of GDP; the sector's goal is USD 30 bn (about 4.5 %). The export +channel adds foreign demand for organism-enabled output, dem += xport * K_Omega +(gadm02 `xport`). xport is set so that at the calibrated start the export +demand equals the given share of domestic demand. Upper bound for today: all +knowledge-services exports count as organism-enabled. + +Usage: python3 -B simulations/gadm02/exports.py +""" + +from __future__ import annotations + +import sys +from pathlib import Path + +sys.dont_write_bytecode = True + +import cross_border as cb # noqa: E402 +import gadm04 as g # noqa: E402 +import world as w # noqa: E402 +from world_scenarios import CONTEXTS, build, summ # noqa: E402 + +OUT = Path(__file__).resolve().parent / "results" +SHARES = {"closed (no exports)": 0.0, "today, upper bound (1.5 %)": 0.015, + "sector goal (4.5 %)": 0.045, "export hub (10 %)": 0.10} + + +def xport_for(share: float, p: dict, s: dict) -> float: + _d, a = g.derivatives({**g.INIT, **s}, {**g.PARAMS, **p}) + return share * a["dem"] / s["Ko"] + + +def main() -> None: + OUT.mkdir(exist_ok=True) + cal = cb.base() + ar_p, ar_s = cal["AR"] + lines = [f"# {g.MODEL_VERSION}: export channel and the 'Argentina may thrive' hypothesis", "", + "Generated by `simulations/gadm02/exports.py` (ASSEMBLY-WP-0016-T04). World of", + "`world_scenarios.py` (US, EU, AR, J4; Calibration v0.5). Argentina's export demand for", + "organism-enabled output is set to a share of its domestic demand at the start. Ȳ relative to", + "own start. H2 holds if AR beats the EU on relative output (years 0–100) and on VFAC.", "", + "| Context | Loop | Export share | AR Ȳ 0–25 / 0–100 | EU Ȳ 0–25 / 0–100 | AR − EU VFAC t100 | AR P t100 | H2 |", + "|---|---|---|---|---|---|---|---|"] + for cname in ("X1 US-led concentrated frontier", "X2 open-lineage world"): + for lp, sent in (("off", 0.0), ("on", 1.0)): + for label, share in SHARES.items(): + x = xport_for(share, ar_p, ar_s) + wd = build(cal, CONTEXTS[cname], sent) + wd["AR"]["p"] = {**wd["AR"]["p"], "xport": x} + rows = w.simulate_world(wd) + ar, eu = summ(rows["AR"]), summ(rows["EU"]) + h2 = ar["Y100"] > eu["Y100"] and ar["V100"] > eu["V100"] + lines.append(f"| {cname} | {lp} | {label} | {ar['Y25']:.2f} / {ar['Y100']:.2f} | " + f"{eu['Y25']:.2f} / {eu['Y100']:.2f} | {ar['V100'] - eu['V100']:+.3f} | {ar['P']:.2f} | " + f"{'yes' if h2 else 'no'} |") + lines.append("") + (OUT / "exports.md").write_text("\n".join(lines)) + print("\n".join(lines)) + + +if __name__ == "__main__": + main() diff --git a/simulations/gadm02/gadm02.py b/simulations/gadm02/gadm02.py index 944c90d..a3dab97 100644 --- a/simulations/gadm02/gadm02.py +++ b/simulations/gadm02/gadm02.py @@ -39,6 +39,9 @@ PARAMS = { "wm": 0.35, "ws": 0.20, "wc": 0.15, "wp": 0.15, "wo": 0.30, # claims on output (§ 9) + participation claims C_p "wL0": 0.60, "auto": 0.6, "dshare": 0.10, "cp": 0.0, "od": 0.20, + # ASSEMBLY-WP-0016-T04: foreign demand for organism-enabled output (exports), dem += xport * K_Omega. + # 0 = closed economy (default; all earlier results unchanged). + "xport": 0.0, # commons (§ 7) "aX": 0.30, "rho0": 0.30, "rhoO": 0.40, "IX": 0.02, "dX": 0.04, "lX": 0.06, "lXo": 0.06, @@ -88,7 +91,7 @@ def auxiliaries(s: dict, p: dict) -> dict: cap = 1 - wl priv = cap * max(0.0, 1 - p["dshare"] - p["cp"]) B = min(1.0, wl + cap * (p["dshare"] + p["cp"]) + priv * p["od"]) - dem = (0.4 + 0.6 * B) * (0.6 + 0.4 * S) + dem = (0.4 + 0.6 * B) * (0.6 + 0.4 * S) + p.get("xport", 0.0) * Ko v_h = p["v0"] * (H ** p["eH"]) * (X ** p["eX"]) * (F ** p["eF"]) * (G ** p["eG"]) \ * (N ** p["eN"]) * (Q ** p["eQ"]) * ((1 - P) ** p["eP"]) diff --git a/simulations/gadm02/results/exports.md b/simulations/gadm02/results/exports.md new file mode 100644 index 0000000..d5b96d1 --- /dev/null +++ b/simulations/gadm02/results/exports.md @@ -0,0 +1,25 @@ +# GADM-0.4: export channel and the 'Argentina may thrive' hypothesis + +Generated by `simulations/gadm02/exports.py` (ASSEMBLY-WP-0016-T04). World of +`world_scenarios.py` (US, EU, AR, J4; Calibration v0.5). Argentina's export demand for +organism-enabled output is set to a share of its domestic demand at the start. Ȳ relative to +own start. H2 holds if AR beats the EU on relative output (years 0–100) and on VFAC. + +| Context | Loop | Export share | AR Ȳ 0–25 / 0–100 | EU Ȳ 0–25 / 0–100 | AR − EU VFAC t100 | AR P t100 | H2 | +|---|---|---|---|---|---|---|---| +| X1 US-led concentrated frontier | off | closed (no exports) | 0.99 / 0.81 | 1.01 / 0.85 | -0.041 | 0.83 | no | +| X1 US-led concentrated frontier | off | today, upper bound (1.5 %) | 1.00 / 0.82 | 1.01 / 0.85 | -0.042 | 0.83 | no | +| X1 US-led concentrated frontier | off | sector goal (4.5 %) | 1.03 / 0.85 | 1.01 / 0.85 | -0.045 | 0.83 | no | +| X1 US-led concentrated frontier | off | export hub (10 %) | 1.07 / 0.90 | 1.02 / 0.85 | -0.052 | 0.83 | no | +| X1 US-led concentrated frontier | on | closed (no exports) | 0.90 / 0.68 | 0.95 / 0.76 | -0.036 | 0.78 | no | +| X1 US-led concentrated frontier | on | today, upper bound (1.5 %) | 0.91 / 0.69 | 0.95 / 0.76 | -0.037 | 0.78 | no | +| X1 US-led concentrated frontier | on | sector goal (4.5 %) | 0.92 / 0.70 | 0.95 / 0.76 | -0.038 | 0.78 | no | +| X1 US-led concentrated frontier | on | export hub (10 %) | 0.93 / 0.71 | 0.95 / 0.76 | -0.040 | 0.78 | no | +| X2 open-lineage world | off | closed (no exports) | 1.06 / 0.93 | 1.09 / 1.01 | -0.055 | 0.66 | no | +| X2 open-lineage world | off | today, upper bound (1.5 %) | 1.07 / 0.94 | 1.09 / 1.01 | -0.057 | 0.66 | no | +| X2 open-lineage world | off | sector goal (4.5 %) | 1.10 / 0.96 | 1.09 / 1.01 | -0.061 | 0.66 | no | +| X2 open-lineage world | off | export hub (10 %) | 1.14 / 1.00 | 1.09 / 1.01 | -0.071 | 0.66 | no | +| X2 open-lineage world | on | closed (no exports) | 0.99 / 0.84 | 1.05 / 0.96 | -0.048 | 0.62 | no | +| X2 open-lineage world | on | today, upper bound (1.5 %) | 1.00 / 0.85 | 1.05 / 0.96 | -0.049 | 0.62 | no | +| X2 open-lineage world | on | sector goal (4.5 %) | 1.01 / 0.86 | 1.05 / 0.96 | -0.051 | 0.62 | no | +| X2 open-lineage world | on | export hub (10 %) | 1.03 / 0.87 | 1.05 / 0.96 | -0.055 | 0.62 | no | diff --git a/workplans/ASSEMBLY-WP-0016-open-economy-refinements.md b/workplans/ASSEMBLY-WP-0016-open-economy-refinements.md index 565d950..1502db9 100644 --- a/workplans/ASSEMBLY-WP-0016-open-economy-refinements.md +++ b/workplans/ASSEMBLY-WP-0016-open-economy-refinements.md @@ -72,11 +72,19 @@ start with J4 levers. ```task id: ASSEMBLY-WP-0016-T04 -status: todo +status: done priority: low state_hub_task_id: "b638c044-91ae-5629-9913-3f1c64b9eb21" ``` +**Done 2026-10-13 (export channel C6):** `xport` in gadm02 (default 0), +`exports.py`, `models/CrossBorder.md` § 7. H2 splits: on output, Argentina can +out-grow the EU only at export shares from the sector goal (4.5 % of GDP) +upward, and only without the legitimacy loop. On VFAC it never does, because +exports raise displacement and attention extraction while domination stays +foreign-run. Talent (C7) and sentiment contagion (C8) were not needed for any +reading so far. + Add C6 (trade in organism output), C7 (talent and founders) and C8 (sentiment contagion) only where a reading depends on them. First check whether H2 ("Argentina may thrive") changes with an export channel. That is