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.mdwith 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.pyreproduces 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 intests/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 indata/raw/fred/_RETRIEVAL_NOTE.md.
Open problems / next actions
- Run the scenario catalogue on the cluster; check horizon truncation for the explosive scenarios.
- HA general-equilibrium loop (relaxation on the interest-rate path) for baseline + 3 scenarios.
- Stochastic AGI-arrival extension (risk premia) in a two-regime version.
- 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.pylists macros not yet generated (HA ones untilmake 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.