ASSEMBLY-WP-0007 active, T01 done: GADM-0.5-dev rival/non-rival output (phi_r, xn); commons feed carries the non-rival effect, no genuine decoupling (BR-010)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 14913@bnt-lap001 Assistant-Session: add7ef69-b901-4756-9a67-34cf1125d96f
This commit is contained in:
parent
824187da3b
commit
e05c8f100f
10 changed files with 285 additions and 8 deletions
|
|
@ -39,6 +39,7 @@ cd simulations/gadm02 && for j in US EU; do python3 -B gsa.py --model gadm04 --j
|
|||
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 nonrival.py # GADM-0.5-dev rival vs. non-rival output across the band
|
||||
cd simulations/gadm02 && python3 -B matching.py && python3 -B matching.py --imm # model matching; IMM flip-detection acceptance test (~6 min)
|
||||
```
|
||||
|
||||
|
|
|
|||
60
models/GADM-0.5.md
Normal file
60
models/GADM-0.5.md
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
# GADM-0.5 (in development)
|
||||
|
||||
**Status:** dev (2026-10-13), ASSEMBLY-WP-0007. Scope:
|
||||
`models/GADM-Sectors-Scope.md`. Module: `simulations/gadm02/gadm05.py`
|
||||
(gadm04 plus base-model parameters with defaults that reproduce GADM-0.4).
|
||||
|
||||
## 1. Rival and non-rival output (T01)
|
||||
|
||||
### 1.1 Structure
|
||||
|
||||
K_r = 1 − (1 − K_phys)(1 − φ_r K_Ω) rival capacity (physical goods)
|
||||
Y_r = K_r √E rival output, limited by ecological headroom
|
||||
Y_n = (1 − φ_r) K_Ω (1 − K_phys) non-rival output (information, organism services)
|
||||
Y* = Y_r + Y_n equals K at E = 1 for every φ_r
|
||||
|
||||
Non-rival output flows into commons X as far as it is openly inheritable:
|
||||
`dX += xn · Y_n · lin_open · (1 − X)`. The ecological draw is unchanged
|
||||
(physical capital `e1 K_phys dem thr` plus compute energy `e2 K_Ω`).
|
||||
φ_r = 1 and xn = 0 reproduce GADM-0.4 exactly.
|
||||
|
||||
Priors: φ_r = 0.2 (organism use is dominated by information tasks, Anthropic
|
||||
Economic Index); xn = 0.3 (about the commons formation rate aX).
|
||||
|
||||
### 1.2 Results across the band (`nonrival.py`, `results/nonrival.md`)
|
||||
|
||||
| Reading | B1 | B2 | B3 | B4 | class |
|
||||
|---|---|---|---|---|---|
|
||||
| ΔVFAC, GADM-0.5 vs. 0.4, baseline | +0.015 | +0.026 | +0.039 | +0.049 | quantitative shift |
|
||||
| of which from the commons feed alone | +0.016 | +0.026 | +0.039 | +0.049 | quantitative shift |
|
||||
| ΔE, baseline | −0.011 | −0.020 | −0.026 | −0.025 | quantitative shift |
|
||||
| ΔVFAC, generative regime | +0.002 | +0.003 | +0.003 | +0.007 | quantitative shift |
|
||||
| ΔE, generative regime | 0.000 | 0.000 | 0.000 | −0.002 | — |
|
||||
| generative − baseline VFAC (GADM-0.5) | +0.274 | +0.308 | +0.303 | +0.266 | robust |
|
||||
|
||||
Non-rival share of output at t 100: baseline 0.12 (B1) to 0.66 (B4);
|
||||
generative regime 0.08 to 0.31.
|
||||
|
||||
### 1.3 Readings
|
||||
|
||||
1. **The non-rival effect works through the commons, not through the output
|
||||
split.** The whole VFAC gain comes from non-rival output feeding X. Calling
|
||||
output non-rival does not change VFAC, because VFAC measures stocks, not
|
||||
output.
|
||||
2. **The generative regime's ecological cost does not shrink** (scope test 2:
|
||||
no). Its low ecological headroom (E 0.48 against 0.68–0.82 in the baseline)
|
||||
comes from the physical-capital and compute-energy draw, which a non-rival
|
||||
output share does not reduce. In the baseline, the commons feed even
|
||||
lowers E slightly, because more commons raise activity and throughput.
|
||||
3. **No genuine throughput decoupling** (scope test 1: no). VFAC rises while
|
||||
throughput falls only in the baseline at B3–B4 (20–40 % of five-year
|
||||
windows), and there only because organism capability peaks and declines,
|
||||
taking its compute draw with it. The generative regime shows no decoupling.
|
||||
4. **What genuine decoupling would need:** non-rival output that *replaces*
|
||||
rival consumption (dematerialization of demand), so that demand for physical
|
||||
throughput falls as Y_n grows. GADM has no demand composition. This is the
|
||||
question for the ecological classes (T02) and, if needed, sectors (T04).
|
||||
It is recorded as BR-010.
|
||||
5. **The generative regime's advantage is robust across the band** (+0.27 to
|
||||
+0.31), slightly smaller than in GADM-0.4 (+0.29 to +0.34), because the
|
||||
baseline also gains from the commons feed.
|
||||
|
|
@ -101,6 +101,14 @@ or could fail:
|
|||
| T03 endogenous selection weights | leader displacement declined since 2000 (Bessen et al.); lobbying shifts enactment probability only marginally but with high returns (Kang 2016) | Selection capture should be slow and incremental, not abrupt. A model where domination flips selection weights within a few years would contradict the evidence. |
|
||||
| all | adoption-speed band (grounded central vs. slow) | Every WP-0007 reading should be reported under both adoption variants (reading 3). |
|
||||
|
||||
**T01 result (2026-10-13, `models/GADM-0.5.md` § 1):** test passed. With
|
||||
the split, the commons effect is carried by non-rival output (`xn`): it
|
||||
accounts for the whole VFAC gain (+0.015 to +0.049 in the baseline across
|
||||
B1–B4). The split did not produce throughput decoupling (BR-010). New priors
|
||||
`phi_r` 0.2 (organism output mostly information tasks; Anthropic Economic
|
||||
Index) and `xn` 0.3 (about aX) need grounding: φ from task-level usage data
|
||||
(L4), xn from open-licensing shares of AI-generated output.
|
||||
|
||||
## 4. Remaining open grounding needs
|
||||
|
||||
1. Commons investment `IX`: needs a mapping concept, not just data.
|
||||
|
|
|
|||
|
|
@ -22,3 +22,4 @@ that part of the band.
|
|||
| BR-007 | 2026-10-13 (WP-0013-T04) | Rights-first levers bound domination | holds when switching to J1 levers (US: P 0.64 → 0.54) → fails for a jurisdiction already at J1 levers (EU: P 0.65 → 0.77) | calibrated domination comes from levels set abroad that local levers cannot reach | **structural:** cross-border coupling (ASSEMBLY-WP-0011) | open |
|
||||
| BR-008 | 2026-10-13 (WP-0011-T05) | Which levers bound domination (BR-007 follow-up) | closed model: host rights levers → coupled model: only host access rules on foreign operators and the home's levers reach the foreign-run channels | measured channels (Pd, Pmem, Plin, Pi) are operated from the US for EU and AR hosts | **structural, implemented:** cross-border coupling (`world.py`); observed DMA effect on search ≈ 0 (at most a 0.006/yr) | update 2026-10-13 (WP-0016-T01): a host lineage access rule does reach imported-lineage concentration (EU Plin 0.91 → 0.19 at a 0.15); portability needs the domestic lineage market's concentration (CB3) |
|
||||
| BR-009 | 2026-10-13 (WP-0012) | Sentiment dynamics of the legitimacy loop | Σ relaxes toward 0.5 + gain × Δ(perceived benefit), so from the measured US Σ 0.285 it rises → measured US sentiment fell 2021–2026 (0.405 → 0.285) while adoption grew fast | the neutral reference 0.5 is an assumption; US adoption also shows no braking by low sentiment (all loop-on candidates fail the US match) | **resolved 2026-10-13 (WP-0017-T01):** parameter `sig_ref`; calibrated runs anchor Σ at its measured level, and adoption and legislation respond to changes relative to it. Default (None = 0.5) keeps earlier results. R1–R4 and H1/H2 verdicts unchanged; the matching loop weights become ≈ 0.5 | resolved; `sig_adopt` not yet identified |
|
||||
| BR-010 | 2026-10-13 (WP-0007-T01) | Non-rival growth decouples welfare from throughput (core hypothesis, GADM-0.1 § 14) | output split rival / non-rival (GADM-0.5-dev): no genuine decoupling in any anchor; the generative regime's ecological cost unchanged | GADM has no demand composition: non-rival output adds to, but never replaces, rival consumption | **structural candidate:** demand substitution (dematerialization) and ecological classes (WP-0007-T02, T04) | open |
|
||||
|
|
|
|||
|
|
@ -42,6 +42,10 @@ PARAMS = {
|
|||
# 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,
|
||||
# ASSEMBLY-WP-0007-T01: rival / non-rival output. phi_r = share of organism output that is rival
|
||||
# (physical, limited by ecological headroom); 1 = GADM up to 0.4 (all output scaled by sqrt(E)).
|
||||
# xn = rate at which non-rival output, as far as it is openly inheritable, flows into commons X.
|
||||
"phi_r": 1.0, "xn": 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,
|
||||
|
|
@ -85,7 +89,10 @@ def auxiliaries(s: dict, p: dict) -> dict:
|
|||
"""Flows and auxiliaries for state s under parameters p."""
|
||||
H, X, Kp, Ko, F, G, N, Q, P, E, S, A = (s[k] for k in STOCKS)
|
||||
K = 1 - (1 - Kp) * (1 - Ko)
|
||||
ystar = K * math.sqrt(E)
|
||||
phi = p.get("phi_r", 1.0)
|
||||
y_r = (1 - (1 - Kp) * (1 - phi * Ko)) * math.sqrt(E) # rival output, limited by ecology
|
||||
y_n = (1 - phi) * Ko * (1 - Kp) # non-rival output (sum = K at E = 1)
|
||||
ystar = y_r + y_n
|
||||
|
||||
wl = p["wL0"] * (1 - p["auto"] * Ko)
|
||||
cap = 1 - wl
|
||||
|
|
@ -104,7 +111,7 @@ def auxiliaries(s: dict, p: dict) -> dict:
|
|||
sigma = sum(a * b for a, b in zip(w, q)) / sum(w)
|
||||
vsel = V * sigma
|
||||
rho = min(1.0, p["rho0"] + p["rhoO"] * Ko * p["lin_open"])
|
||||
return {"K": K, "Ystar": ystar, "B": B, "dem": dem, "V": V, "sigma": sigma,
|
||||
return {"K": K, "Ystar": ystar, "Yr": y_r, "Yn": y_n, "B": B, "dem": dem, "V": V, "sigma": sigma,
|
||||
"Vsel": vsel, "rho": rho, "wl": wl}
|
||||
|
||||
|
||||
|
|
@ -115,7 +122,7 @@ def derivatives(s: dict, p: dict) -> tuple[dict, dict]:
|
|||
m, L, lo, std = p["m"], p["L"], p["lin_open"], p["std"]
|
||||
|
||||
d = {}
|
||||
d["X"] = (p["aX"] * rho * vsel + p["IX"]) * (1 - X) \
|
||||
d["X"] = (p["aX"] * rho * vsel + p["IX"] + p.get("xn", 0.0) * a["Yn"] * lo) * (1 - X) \
|
||||
- (p["dX"] + p["lX"] * P + p["lXo"] * Ko * (1 - lo)) * X
|
||||
d["Kp"] = p["aK"] * vsel * dem * (1 - Kp) - p["dK"] * Kp
|
||||
d["Ko"] = (p["aO"] * vsel * dem + p["ell"] * Ko * dem * Q + p["oseed"]) * (1 - Ko) \
|
||||
|
|
|
|||
|
|
@ -234,7 +234,7 @@ def simulate(params: dict | None = None, init: dict | None = None,
|
|||
if i % record_every == 0:
|
||||
row = {"t": round(i * dt, 6), **s, "P": g3.total_p(s), "G": a["Gagg"],
|
||||
**{k: a[k] for k in ("H", "A", "n_ch", "n_w", "n_s", "n_d", "care_need",
|
||||
"Ystar", "B", "V", "Vsel", "Hch", "Hw", "Hs", "Hd")}}
|
||||
"Ystar", "Yr", "Yn", "dem", "B", "V", "Vsel", "Hch", "Hw", "Hs", "Hd")}}
|
||||
row["VFAC"] = g2.vfac(row)
|
||||
rows.append(row)
|
||||
if i < steps:
|
||||
|
|
|
|||
36
simulations/gadm02/gadm05.py
Normal file
36
simulations/gadm02/gadm05.py
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
"""GADM-0.5 (in development): rival and non-rival output (ASSEMBLY-WP-0007-T01).
|
||||
|
||||
Extends gadm04 through two base-model parameters (gadm02):
|
||||
|
||||
phi_r share of organism output that is rival (physical, limited by ecological
|
||||
headroom). Rival output Y_r = (1 - (1 - Kp)(1 - phi_r K_Omega)) sqrt(E);
|
||||
non-rival output Y_n = (1 - phi_r) K_Omega (1 - Kp); Y* = Y_r + Y_n,
|
||||
which equals K at E = 1 for every phi_r (phi_r = 1 is GADM-0.4).
|
||||
xn non-rival output, as far as it is openly inheritable (lin_open), flows
|
||||
into commons X.
|
||||
|
||||
The ecological draw was already physical (e1 K_phys) plus compute energy
|
||||
(e2 K_Omega) in GADM-0.2 to 0.4; it is unchanged. Scope: models/GADM-Sectors-Scope.md § 1.
|
||||
|
||||
Priors: phi_r = 0.2 (organism use is dominated by information tasks: code,
|
||||
writing, analysis; Anthropic Economic Index), xn = 0.3 (about aX).
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import gadm04 as g4
|
||||
|
||||
MODEL_VERSION = "GADM-0.5-dev"
|
||||
STOCKS = g4.STOCKS
|
||||
INIT = g4.INIT
|
||||
PARAMS = {**g4.PARAMS, "phi_r": 0.2, "xn": 0.3}
|
||||
|
||||
|
||||
def simulate(params: dict | None = None, init: dict | None = None, **kw) -> list[dict]:
|
||||
return g4.simulate({**PARAMS, **(params or {})}, init, **kw)
|
||||
|
||||
|
||||
def throughput(row: dict, p: dict | None = None) -> float:
|
||||
"""Physical throughput (ecological draw rate per unit of E): e1 K_phys dem thr + e2 K_Omega."""
|
||||
p = {**PARAMS, **(p or {})}
|
||||
return p["e1"] * row["Kp"] * row["dem"] * p["thr"] + p["e2"] * row["Ko"]
|
||||
95
simulations/gadm02/nonrival.py
Normal file
95
simulations/gadm02/nonrival.py
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
"""Rival vs. non-rival output across the adoption band (ASSEMBLY-WP-0007-T01).
|
||||
|
||||
Tests (models/GADM-Sectors-Scope.md § 1):
|
||||
1. Throughput decoupling: can VFAC rise while physical throughput falls?
|
||||
2. Does the generative regime's ecological cost shrink when its growth is mostly
|
||||
non-rival?
|
||||
Variants: GADM-0.4 (phi_r 1), phi_r 0.5 and 0.2 with commons feed xn 0.3, and phi_r 0.2
|
||||
without commons feed (xn 0), at band anchors B1-B4, baseline and generative regime.
|
||||
|
||||
Usage: python3 -B simulations/gadm02/nonrival.py
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
sys.dont_write_bytecode = True
|
||||
|
||||
import band_probe as bp # noqa: E402
|
||||
import gadm04 as g # noqa: E402
|
||||
import gadm05 as g5 # noqa: E402
|
||||
import grounding as gr # noqa: E402
|
||||
from scenarios import load_all # noqa: E402
|
||||
|
||||
OUT = Path(__file__).resolve().parent / "results"
|
||||
ANCHORS = list(gr.BAND)
|
||||
VARIANTS = {"GADM-0.4 (φ 1)": {"phi_r": 1.0, "xn": 0.0}, "φ 0.5, xn 0.3": {"phi_r": 0.5, "xn": 0.3},
|
||||
"φ 0.2, xn 0.3": {"phi_r": 0.2, "xn": 0.3}, "φ 0.2, xn 0": {"phi_r": 0.2, "xn": 0.0}}
|
||||
|
||||
|
||||
def decoupling(rows: list[dict], p: dict, step: int = 5) -> float:
|
||||
"""Share of 5-year windows in which VFAC rises while physical throughput falls."""
|
||||
hits = n = 0
|
||||
for i in range(0, len(rows) - step, step):
|
||||
a, b = rows[i], rows[i + step]
|
||||
n += 1
|
||||
hits += b["VFAC"] > a["VFAC"] and g5.throughput(b, p) < g5.throughput(a, p)
|
||||
return hits / n
|
||||
|
||||
|
||||
def main() -> None:
|
||||
OUT.mkdir(exist_ok=True)
|
||||
scs = load_all()
|
||||
var = {a: gr.variant(gr.BAND[a]) for a in ANCHORS}
|
||||
res = {}
|
||||
for a in ANCHORS:
|
||||
for sc in ("baseline", "generative_regime"):
|
||||
for vn, vp in VARIANTS.items():
|
||||
p = {**scs[sc]["params"], **var[a][0], **vp}
|
||||
rows = g.simulate(p, {**scs[sc]["init"], **var[a][1]})
|
||||
f = rows[-1]
|
||||
res[(a, sc, vn)] = {"V": f["VFAC"], "E": f["E"], "X": f["X"], "Y": f["Ystar"],
|
||||
"yn": f["Yn"] / f["Ystar"] if f["Ystar"] else 0.0,
|
||||
"thr": g5.throughput(f, p), "dec": decoupling(rows, p)}
|
||||
lines = ["# GADM-0.5-dev: rival vs. non-rival output across the band", "",
|
||||
"Generated by `simulations/gadm02/nonrival.py` (ASSEMBLY-WP-0007-T01). t = 100. Y_n share =",
|
||||
"non-rival share of output. Decoupling = share of 5-year windows with VFAC rising while physical",
|
||||
"throughput (e1 K_phys dem thr + e2 K_Ω) falls.", ""]
|
||||
for sc in ("baseline", "generative_regime"):
|
||||
lines += [f"## {scs[sc]['title']}", "",
|
||||
"| Anchor | Variant | VFAC | E | X | Y* | Y_n share | throughput | decoupling |",
|
||||
"|---|---|---|---|---|---|---|---|---|"]
|
||||
for a in ANCHORS:
|
||||
for vn in VARIANTS:
|
||||
r = res[(a, sc, vn)]
|
||||
lines.append(f"| {a} | {vn} | {r['V']:.3f} | {r['E']:.2f} | {r['X']:.2f} | {r['Y']:.3f} | "
|
||||
f"{r['yn']:.2f} | {r['thr']:.4f} | {r['dec']:.2f} |")
|
||||
lines.append("")
|
||||
readings = []
|
||||
for sc in ("baseline", "generative_regime"):
|
||||
title = scs[sc]["title"]
|
||||
readings.append((f"ΔVFAC φ 0.2/xn 0.3 vs. GADM-0.4: {title}",
|
||||
[res[(a, sc, "φ 0.2, xn 0.3")]["V"] - res[(a, sc, "GADM-0.4 (φ 1)")]["V"] for a in ANCHORS]))
|
||||
readings.append((f"ΔE φ 0.2/xn 0.3 vs. GADM-0.4: {title}",
|
||||
[res[(a, sc, "φ 0.2, xn 0.3")]["E"] - res[(a, sc, "GADM-0.4 (φ 1)")]["E"] for a in ANCHORS]))
|
||||
readings.append((f"ΔVFAC from commons feed alone (xn 0.3 vs. 0 at φ 0.2): {title}",
|
||||
[res[(a, sc, "φ 0.2, xn 0.3")]["V"] - res[(a, sc, "φ 0.2, xn 0")]["V"] for a in ANCHORS]))
|
||||
gen_vs_base = [res[(a, "generative_regime", "φ 0.2, xn 0.3")]["V"] - res[(a, "baseline", "φ 0.2, xn 0.3")]["V"]
|
||||
for a in ANCHORS]
|
||||
old_gap = [res[(a, "generative_regime", "GADM-0.4 (φ 1)")]["V"] - res[(a, "baseline", "GADM-0.4 (φ 1)")]["V"]
|
||||
for a in ANCHORS]
|
||||
readings.append(("generative − baseline VFAC, GADM-0.5 (φ 0.2, xn 0.3)", gen_vs_base))
|
||||
readings.append(("generative − baseline VFAC, GADM-0.4", old_gap))
|
||||
lines += ["## Readings and robustness class", "", "| Reading | " + " | ".join(ANCHORS) + " | class |",
|
||||
"|---|" + "---|" * (len(ANCHORS) + 1)]
|
||||
for name, vals in readings:
|
||||
lines.append(f"| {name} | " + " | ".join(f"{v:+.3f}" for v in vals) + f" | {bp.classify(vals, 'sign')} |")
|
||||
lines.append("")
|
||||
(OUT / "nonrival.md").write_text("\n".join(lines))
|
||||
print("\n".join(lines))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
60
simulations/gadm02/results/nonrival.md
Normal file
60
simulations/gadm02/results/nonrival.md
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
# GADM-0.5-dev: rival vs. non-rival output across the band
|
||||
|
||||
Generated by `simulations/gadm02/nonrival.py` (ASSEMBLY-WP-0007-T01). t = 100. Y_n share =
|
||||
non-rival share of output. Decoupling = share of 5-year windows with VFAC rising while physical
|
||||
throughput (e1 K_phys dem thr + e2 K_Ω) falls.
|
||||
|
||||
## Baseline (current trends)
|
||||
|
||||
| Anchor | Variant | VFAC | E | X | Y* | Y_n share | throughput | decoupling |
|
||||
|---|---|---|---|---|---|---|---|---|
|
||||
| B1 | GADM-0.4 (φ 1) | 0.396 | 0.75 | 0.25 | 0.293 | 0.00 | 0.0131 | 0.00 |
|
||||
| B1 | φ 0.5, xn 0.3 | 0.405 | 0.74 | 0.27 | 0.307 | 0.08 | 0.0137 | 0.00 |
|
||||
| B1 | φ 0.2, xn 0.3 | 0.411 | 0.74 | 0.28 | 0.316 | 0.12 | 0.0141 | 0.00 |
|
||||
| B1 | φ 0.2, xn 0 | 0.396 | 0.75 | 0.25 | 0.298 | 0.13 | 0.0130 | 0.00 |
|
||||
| B2 | GADM-0.4 (φ 1) | 0.328 | 0.82 | 0.20 | 0.251 | 0.00 | 0.0099 | 0.00 |
|
||||
| B2 | φ 0.5, xn 0.3 | 0.344 | 0.80 | 0.24 | 0.278 | 0.25 | 0.0109 | 0.00 |
|
||||
| B2 | φ 0.2, xn 0.3 | 0.353 | 0.80 | 0.27 | 0.295 | 0.38 | 0.0115 | 0.00 |
|
||||
| B2 | φ 0.2, xn 0 | 0.328 | 0.82 | 0.20 | 0.262 | 0.41 | 0.0099 | 0.00 |
|
||||
| B3 | GADM-0.4 (φ 1) | 0.298 | 0.76 | 0.19 | 0.376 | 0.00 | 0.0148 | 0.00 |
|
||||
| B3 | φ 0.5, xn 0.3 | 0.325 | 0.75 | 0.27 | 0.424 | 0.36 | 0.0164 | 0.15 |
|
||||
| B3 | φ 0.2, xn 0.3 | 0.337 | 0.74 | 0.31 | 0.451 | 0.54 | 0.0173 | 0.20 |
|
||||
| B3 | φ 0.2, xn 0 | 0.298 | 0.76 | 0.19 | 0.406 | 0.59 | 0.0148 | 0.00 |
|
||||
| B4 | GADM-0.4 (φ 1) | 0.263 | 0.68 | 0.17 | 0.569 | 0.00 | 0.0234 | 0.05 |
|
||||
| B4 | φ 0.5, xn 0.3 | 0.298 | 0.66 | 0.30 | 0.647 | 0.44 | 0.0254 | 0.35 |
|
||||
| B4 | φ 0.2, xn 0.3 | 0.311 | 0.65 | 0.36 | 0.691 | 0.66 | 0.0263 | 0.40 |
|
||||
| B4 | φ 0.2, xn 0 | 0.263 | 0.68 | 0.17 | 0.648 | 0.69 | 0.0234 | 0.05 |
|
||||
|
||||
## Generative regime
|
||||
|
||||
| Anchor | Variant | VFAC | E | X | Y* | Y_n share | throughput | decoupling |
|
||||
|---|---|---|---|---|---|---|---|---|
|
||||
| B1 | GADM-0.4 (φ 1) | 0.684 | 0.52 | 0.78 | 0.610 | 0.00 | 0.0466 | 0.00 |
|
||||
| B1 | φ 0.5, xn 0.3 | 0.685 | 0.52 | 0.79 | 0.619 | 0.05 | 0.0466 | 0.00 |
|
||||
| B1 | φ 0.2, xn 0.3 | 0.685 | 0.52 | 0.79 | 0.624 | 0.08 | 0.0466 | 0.00 |
|
||||
| B1 | φ 0.2, xn 0 | 0.684 | 0.52 | 0.78 | 0.624 | 0.08 | 0.0466 | 0.00 |
|
||||
| B2 | GADM-0.4 (φ 1) | 0.658 | 0.50 | 0.77 | 0.626 | 0.00 | 0.0510 | 0.00 |
|
||||
| B2 | φ 0.5, xn 0.3 | 0.660 | 0.49 | 0.78 | 0.644 | 0.10 | 0.0510 | 0.00 |
|
||||
| B2 | φ 0.2, xn 0.3 | 0.661 | 0.49 | 0.79 | 0.655 | 0.15 | 0.0511 | 0.00 |
|
||||
| B2 | φ 0.2, xn 0 | 0.658 | 0.50 | 0.77 | 0.655 | 0.15 | 0.0510 | 0.00 |
|
||||
| B3 | GADM-0.4 (φ 1) | 0.637 | 0.48 | 0.76 | 0.641 | 0.00 | 0.0543 | 0.00 |
|
||||
| B3 | φ 0.5, xn 0.3 | 0.639 | 0.48 | 0.78 | 0.669 | 0.13 | 0.0543 | 0.00 |
|
||||
| B3 | φ 0.2, xn 0.3 | 0.641 | 0.48 | 0.79 | 0.685 | 0.21 | 0.0543 | 0.00 |
|
||||
| B3 | φ 0.2, xn 0 | 0.637 | 0.48 | 0.76 | 0.685 | 0.21 | 0.0542 | 0.00 |
|
||||
| B4 | GADM-0.4 (φ 1) | 0.570 | 0.48 | 0.68 | 0.667 | 0.00 | 0.0542 | 0.00 |
|
||||
| B4 | φ 0.5, xn 0.3 | 0.575 | 0.48 | 0.72 | 0.711 | 0.20 | 0.0544 | 0.00 |
|
||||
| B4 | φ 0.2, xn 0.3 | 0.577 | 0.48 | 0.74 | 0.737 | 0.31 | 0.0546 | 0.00 |
|
||||
| B4 | φ 0.2, xn 0 | 0.570 | 0.48 | 0.67 | 0.739 | 0.32 | 0.0541 | 0.00 |
|
||||
|
||||
## Readings and robustness class
|
||||
|
||||
| Reading | B1 | B2 | B3 | B4 | class |
|
||||
|---|---|---|---|---|---|
|
||||
| ΔVFAC φ 0.2/xn 0.3 vs. GADM-0.4: Baseline (current trends) | +0.015 | +0.026 | +0.039 | +0.049 | quantitative shift |
|
||||
| ΔE φ 0.2/xn 0.3 vs. GADM-0.4: Baseline (current trends) | -0.011 | -0.020 | -0.026 | -0.025 | quantitative shift |
|
||||
| ΔVFAC from commons feed alone (xn 0.3 vs. 0 at φ 0.2): Baseline (current trends) | +0.016 | +0.026 | +0.039 | +0.049 | quantitative shift |
|
||||
| ΔVFAC φ 0.2/xn 0.3 vs. GADM-0.4: Generative regime | +0.002 | +0.003 | +0.003 | +0.007 | quantitative shift |
|
||||
| ΔE φ 0.2/xn 0.3 vs. GADM-0.4: Generative regime | -0.000 | -0.000 | -0.000 | -0.002 | quantitative shift |
|
||||
| ΔVFAC from commons feed alone (xn 0.3 vs. 0 at φ 0.2): Generative regime | +0.002 | +0.003 | +0.004 | +0.007 | quantitative shift |
|
||||
| generative − baseline VFAC, GADM-0.5 (φ 0.2, xn 0.3) | +0.274 | +0.308 | +0.303 | +0.266 | robust |
|
||||
| generative − baseline VFAC, GADM-0.4 | +0.288 | +0.330 | +0.339 | +0.308 | robust |
|
||||
|
|
@ -4,20 +4,23 @@ type: workplan
|
|||
title: "GADM: rival/non-rival goods, ecological classes, selection mechanisms"
|
||||
domain: communication
|
||||
repo: assembly-economics
|
||||
status: proposed
|
||||
status: active
|
||||
flavor: implementation
|
||||
depends_on: [ASSEMBLY-WP-0006, ASSEMBLY-WP-0009]
|
||||
owner: claude-code
|
||||
topic_slug: coulomb-social
|
||||
created: "2026-10-12"
|
||||
updated: "2026-10-12"
|
||||
updated: "2026-10-13"
|
||||
state_hub_workstream_id: "8e45d434-3684-589a-b0a8-2dcdd4d39616"
|
||||
---
|
||||
|
||||
# GADM: rival/non-rival goods, ecological classes, selection mechanisms
|
||||
|
||||
Implements the scope fixed in `models/GADM-Sectors-Scope.md`
|
||||
(ASSEMBLY-WP-0006-T06). Not to be started until it is promoted to `ready`.
|
||||
(ASSEMBLY-WP-0006-T06). Promoted and started by the owner on 2026-10-13. The
|
||||
scope was reviewed against the current state: still valid. Measured ecological
|
||||
headroom near its floor (E 0.235, Calibration v0.5) makes T01 and T02 more
|
||||
relevant.
|
||||
|
||||
Every reading is reported across the adoption band (B1–B4) with its
|
||||
robustness class (`research/ScenarioBandMethod.md` § 5). The validation and
|
||||
|
|
@ -27,11 +30,17 @@ falsification tests in `models/ParameterGrounding.md` § 3 apply.
|
|||
|
||||
```task
|
||||
id: ASSEMBLY-WP-0007-T01
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "7b7f6246-aade-59ea-86e9-2f029f486550"
|
||||
```
|
||||
|
||||
**Done 2026-10-13:** `gadm05.py` (GADM-0.5-dev), base parameters `phi_r`, `xn`
|
||||
(defaults reproduce GADM-0.4), `nonrival.py`, `models/GADM-0.5.md` § 1. The
|
||||
non-rival effect works only through the commons feed. There is no genuine
|
||||
decoupling, and the generative regime's ecological cost is unchanged.
|
||||
BR-010: demand substitution is needed (T02/T04).
|
||||
|
||||
Split Y* into rival Y_r (draws on E) and non-rival Y_n (feeds X). Test
|
||||
throughput decoupling and the generative regime's ecological cost (scoping
|
||||
note § 1).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue