SPB Git

spb/wp24_uqo

Public
9.2 KB

# Research log — UQO WP 24 "From Labor to Capital"

Chronological record of completed steps, assumptions taken, residuals, unresolved problems and next actions (required by CLAUDE.md). Dates are 2026-10-27 unless stated.

# Stage A — Source audit (done)

  • Downloaded the NBER conference PDF (20 pp., July 4 2025 draft) and wrote docs/source_audit.md with page references for every primitive, definition and proposition (P1–P11). Observations: no proofs in the source, compute is an endowment, no capital/prices/ownership; P6's own caveat (p. 11) identifies scarce resources as the point of failure of the wage result.
  • Literature matrix and 118 verified references delivered by the bibliography task (docs/literature_matrix.md, docs/references_verification.md); 6 entries flagged PARTIAL, none invented.

# Stage B — Smallest exact benchmark (done)

  • tasks.py reproduces Restrepo's static economy with 4 bottleneck + 2 accessory task classes and CES σ_B = 0.5. On a grid Q ∈ {0,…,1e5}: A constant from Q = 5 on, Y linear in Q (slope = A to 1e-6), w_H = A·CEU(H) = 8A, w_L = 2A < 3A = A·CEU(L) (the accessory task with the highest α is not worth automating: the skill is in Restrepo's group 𝒩 and gets the discounted \widetilde{CEU}), labor share 1 → 4e-4, compute share → 1, total wages higher than pre-AGI. Tests in tests/test_static.py (P1–P6).
  • A nuance not in the source: the "discount" of P4 arises whenever the max-α task of a skill is not automated, even if nobody works in it (accessory output abandoned entirely because its marginal value Zγ_a is below the wage available in bottleneck tasks).
  • Observation on definitions: with a CES aggregator every task is a bottleneck unless the elasticity is infinite; accessory work in the sense of Definition 2 requires asymptotically linear entry.

# Stage C/D — Two-class, four-capital model and solver (done, with lessons)

  • Static block: SLSQP on scaled variables + Newton polish of the KKT equalities on the active set; the polished solution is independent of the warm start (banded FD Jacobian matches a dense one to 6e-10). Accepting the polish on its residual rather than on fsolve's status flag was necessary (10 % of calls were rejected with residuals of 1e-18).
  • Accounting identity GDP = factor payments holds to 1e-8 and a deliberately broken version (compute services counted as final output) is caught by test_income_identity_fails_when_accounting_is_broken.
  • Harrod-neutral trend growth on labor, land and the energy resource (TFP constant) gives an exact frozen-AI BGP (residual 2.5e-8 at the BGP guess). A first version with Hicks-neutral Z growing at g produced rentals growing at 1.5 %/yr — not a BGP — and was corrected.
  • Lesson 1 (calibration must match the scenario's anticipated prices). Calibrating the 2026 compute rental with the user cost of a declining price (g_pQ = 0.15) and then solving a scenario with a different g_pQ creates a jump at t = 0 (compute Euler off by 60 %), the task block switches regime (task 1 fully automated) and the Newton system becomes nearly singular along the (K_Q, r) direction. With the base point re-calibrated for each scenario's technology rates (calibrate(overrides=…)), the frozen case converges in 5 iterations to 1.8e-10.
  • Lesson 2 (accessory tasks and energy). With a linear accessory block and an energy constraint, the marginal value of compute is bounded below by Zγ_a/α_a while the marginal value of energy in the core (σ_T < 1) is bounded above; as ε_t → 0 compute would absorb all energy to produce accessory output and core output would collapse. Accessory tasks are therefore kept in the analytical replication only.
  • Lesson 3 (scenario magnitudes). g_pQ = 0.28 with a floor at 1e-5 and g_alpha = 0.2 produce compute stocks growing by e^40 within the horizon and no terminal state close to a BGP; the solver cannot find a 30-year path. The baseline uses g_pQ = 0.15 (floor 1e-3, Moore's law ends ≈ 2072), g_eps = 0.10, g_alpha = 0.15; the Epoch value (0.34) is a scenario.
  • Solver: banded Newton (colored FD Jacobian, band 2) with backtracking; homotopy in the size of the shock on T = 40; horizon continuation 40 → 80 → 140 → 200 → 275; truncation check with 50 extra years. A trust-region least-squares alternative (solve_trf) was tried and found much slower.

# Stage E — Asset pricing (implemented in transition.py)

  • Tobin's q per capital type, ex-dividend equity values, net payouts (negative = issuance), land prices by backward recursion with a Gordon terminal value, aggregate wealth = sum of claims. Decompositions in analysis.py (to do: Campbell–Shiller exact under perfect foresight).

# Stage F — Propositions (in progress)

  • Regime theorem drafted (see paper/sections/theory.tex): labor share → 0 is robust; wage level and the destination of income depend on whether compute is an endowment or a priced reproducible capital good and on the elasticity between the task composite and scarce complements.

# Stage G — Heterogeneous agents (implemented, GE loop to do)

  • households.py: EGM with housing-inclusive price index, Rouwenhorst(5), 3 discount types × 2 skills, 300-point grid; stationary solution in ≈ 1 s. At the reference prices β = (0.93, 0.97, 0.993) with masses (0.5, 0.3, 0.2) give wealth 8.3 × GDP, Gini 0.80, top-10 % share 65 %, top-1 % 13 % (data 32.5 %: not reachable without return heterogeneity — reported as an untargeted moment).

# Stage H — Data (done)

  • 162 targets retrieved (data/processed/calibration_targets.csv), all with URLs, vintages and sha256; FRED reached through a browser-fetch fallback (Akamai timeouts), documented in data/raw/fred/_RETRIEVAL_NOTE.md.

# Open problems / next actions

  1. Run the scenario catalogue on the cluster; check horizon truncation for the explosive scenarios.
  2. HA general-equilibrium loop (relaxation on the interest-rate path) for baseline + 3 scenarios.
  3. Stochastic AGI-arrival extension (risk premia) in a two-regime version.
  4. Empirical design section (industry exposure × margins/valuation) — design only.

# Stage I–K — Scenarios, figures, paper (2026-10-27, afternoon)

  • 26 scenarios solved directly at λ = 1 on the full horizon (275 years) from the partial-equilibrium guess; 6–10 Newton iterations, 7–15 minutes each on one core (12 in parallel). The short-horizon homotopy was abandoned: mid-transition terminal conditions made the Newton stall at the last period.
  • Lesson 4 (reference scenario). "Capability frozen" with Moore's law continuing still automates three task classes by 2060 (2026 compute requirements are finite). The clean reference is everything frozen (exact BGP); the capability-only freeze is reported as its own scenario (no_capability).
  • Lesson 5 (utilization margin cost). The energy-constrained scenarios spend most of their time in the utilization bisection (200 iterations to 1e-13 in log u); reduced to 60 iterations / 1e-11, which is still far below the Newton tolerance.
  • Lesson 6 (welfare metric). Infinite-horizon CEVs of hand-to-mouth workers whose consumption goes to zero are dominated by the far future (thousands of percent); CEVs are reported over 2026–2065.
  • Lesson 7 (HA general equilibrium). Relaxation with λ = 0.3 on log excess demand diverged at the first step (gap of 4 log points; r driven negative; singular production Jacobian). Replaced by a damped quasi-Newton using the finite-difference Jacobian of household log demand with respect to the return path (275 household solves, ≈ 7 min, terminal policy cached), a crude diagonal for the supply response, steps bounded by 0.2, checkpoints. Gap 4.0 → 1.0 in five iterations.
  • Baseline facts (two-class): tasks automated 2029/2043/2045/2057; labor share 0.56 → 0.28 (2050) → 3e-5 (2100); w_H transitory premium ×3.5 in 2050; GDP ×3.7 (2050), ×233 (2100); r peaks 40.5 % (2060); W/GDP 4.1 → 2.7 (2042) → 31 (2100); land share 0.60 in 2100; compute value ≤ 0.2 GDP; P/E compute ≈ 2 in the 2040s.
  • Paper compiles (54 pp.), slides (28 pp., to be extended), 0 undefined references; wide tables wrapped in resizebox; scripts/55_fallbacks.py lists macros not yet generated (HA ones until make ha).

# Final state (2026-10-27, evening)

  • 22 of 26 scenarios solved to 1e-9; 4 not (Cobb–Douglas, substitutes, energy-constrained, Moore without end): Newton stalls on utilization kinks / explosive compute stocks; documented in Appendix C and the referee report.
  • HA GE: baseline gap 2.5e-3, citizen fund 4.0e-3, frozen 9e-5 (quasi-Newton stops improving near 1e-3; reported as such). Lesson 8: the asset grid must scale with aggregate wealth (fixed grid → everyone at the cap → Gini → 0, a pure artifact). Lesson 9: with a citizen fund, households hold (1−θ_F) of the claims; counting all claims double-counts the fund's payout.
  • HA result: wealth Gini non-monotonic (0.74 → 0.60 in 2050 → 0.73 in 2100 → 0.80 in 2150): the boom is equalizing (premium of the last-automated skill + high returns on small savings), the limit is a rentier economy.
  • Paper 55 pp. (0 errors, no missing macro), slides 33 pp., 35 tests pass, README, referee report, pushed to spbgit wp24_uqo.git.
Files · main
Menu

Theme