Skip to content

Implement §3.3.2 power generation (Eqs. 71–138) - #10

Merged
vahid-ahmadi merged 1 commit into
mainfrom
feat/power-section-3.3.2
Aug 12, 2026
Merged

Implement §3.3.2 power generation (Eqs. 71–138)#10
vahid-ahmadi merged 1 commit into
mainfrom
feat/power-section-3.3.2

Conversation

@vahid-ahmadi

Copy link
Copy Markdown
Contributor

All 68 equations of the power sector, clean-room from the published manual. With §3.2 and §3.3.1 the registry is now Eqs. 21–138, contiguous with no gaps.

The headline finding is not an equation

§3.3.2 as published cannot be simulated forward.

Six parameters are absent from Table 5 — the intercepts in the investment, green-share and credit-rationing equations — and two variables, r_KNFF and r_KFF, are never defined anywhere in the manual. At explicit zero defaults:

  • credit rationing collapses to a constant (0.939)
  • the green investment share degenerates to 50:50 against a tabulated 69:31
  • a one-period solve returns power-sector investment of −0.021 against a tabulated +2.15

This is the section the climate-policy scenarios run through, so it is the one that most needs the authors' answer.

Fourteen identities disagree with Table 6, several decisively

Thirty hold within four-significant-figure noise. Fourteen do not; each is implemented as printed and pinned with its measured gap. The corroborated ones:

Eq. (84) — marginal cost × (1 + mark-up) gives 0.9725 against a tabulated 0.3198, a factor of 3.04. Both inputs check out independently: Eqs. (82)+(83) reproduce the marginal cost to 4.5e-5, Eq. (74) reproduces the price to 3.7e-4. So the manual's two chains meet at a contradiction rather than one side being mistranscribed. The tabulated price implies a mark-up of −0.267 — electricity sold below marginal cost — which the tabulated gross operating surplus of −4.479 independently supports.

Four sign contradictions in the financial-transfer block (Eqs. 107, 112, 113, 116) need no lag to falsify. Table 6 is the corroborated side: Eqs. (90)/(118) imply the same lagged interest-bearing assets to 1.4e-4, and (91)/(119) agree to 3.6e-5. Aggravating: Table 5 marks the parameters involved "model-constrained — calculated from Eq. (…)", meaning they were derived so these equations would reproduce these values.

Eq. (131) tabulates nominal power-sector capital equal to its own real value to four digits — impossible at any deflator ≠ 1 — and Table 6 then propagates that error consistently through its own Eqs. (134) and (135).

A family of four gaps at ~3.9e-3 is one systematic finding: Table 6's whole capital block is tabulated at a deflator near 1.031 while the equations prescribe 1.035.

Two structural findings

  • Eq. (88)'s printed inequality points opposite to its own prose. As printed, fossil capacity is retired when the ban date is beyond the horizon rather than within it. The printed form is implemented, with the baseline switch set so the no-ban case behaves as the manual annotates.
  • The price block is undefined at full decarbonisation. Eqs. (81), (82) and (85) all divide by fossil quantities that go to zero on exactly the path Eq. (88) exists to simulate. The guards raise rather than invent a limit.

A third witness for the §3.3.1 fuel-price finding

Table 6 tabulates the power sector's fuel input at 15.75 both nominally and in real terms — only possible if the fuel price is 1, as Table 5 states and as Eq. (61) contradicts. It reaches no identity here, but in simulation it moves the electricity price by a third.

Status

229 tests pass, 72 new. Milestone 2 still needs §3.3.3 and the oracle comparison.

Manual defects surfaced by reimplementing rather than reading the R: now well past twenty, including two — the missing parameters and the undefined variables — that block forward simulation of the published specification entirely.

🤖 Generated with Claude Code

All 68 equations of the power sector: electricity demand and the Leontief
inverse, the fossil/non-fossil cost split, marginal-cost pricing, the
forward-looking expectation block v1.1 adds, credit-rationed investment,
the financial transfers and balance sheet, and the leverage and illiquidity
measures the credit-rationing feeds on. With §3.2 and §3.3.1 the registry is
Eqs. 21-138, contiguous with no gaps.

The headline finding is not an equation: §3.3.2 as published cannot be
simulated forward. Six parameters are absent from Table 5 — the intercepts
in the investment, green-share and credit-rationing equations — and two
variables, r_KNFF and r_KFF, are never defined anywhere in the manual. At
explicit zero defaults the credit-rationing term collapses to a constant,
the green investment share degenerates to 50:50 against a tabulated 69:31,
and a one-period solve returns power-sector investment of -0.021 against a
tabulated +2.15. This is the section the climate scenarios run through, so
it is the section that most needs the authors' answer.

Thirty identities hold at Table 6's initial values within four-significant-
figure noise. Fourteen do not, each implemented as printed and pinned, and
several are corroborated well enough to say which side is wrong.

Eq. (84) is the largest: marginal cost times one plus the mark-up gives
0.9725 against a tabulated electricity price of 0.3198, a factor of 3.04.
Both inputs check out independently — Eqs. (82) and (83) reproduce the
marginal cost to 4.5e-5, Eq. (74) reproduces the price to 3.7e-4 — so the
manual's two chains meet at a contradiction rather than one side being
mistranscribed. The price implies a mark-up of -0.267, electricity sold
below marginal cost, which the tabulated gross operating surplus of -4.479
independently supports.

Four sign contradictions in the financial-transfer block need no lag to
falsify, and Table 6 is the corroborated side: Eqs. (90) and (118) imply the
same lagged interest-bearing assets to 1.4e-4, and (91) and (119) agree to
3.6e-5. Table 5 marks the parameters involved "model-constrained, calculated
from Eq. (...)", meaning they were derived so these equations would
reproduce these values.

Eq. (131) tabulates nominal power-sector capital equal to its own real value
to four digits, impossible at the prescribed deflator, and Table 6 then
propagates that error consistently through its own Eqs. (134) and (135). A
related family of four gaps at 3.9e-3 is one systematic finding: the whole
capital block is tabulated at a deflator near 1.031 while the equations
prescribe 1.035.

Two structural findings. Eq. (88)'s printed inequality points opposite to
its own prose, so as printed fossil capacity is retired when the ban date is
beyond the horizon rather than within it; the printed form is implemented
with the baseline switch set so the no-ban case behaves as annotated. And
the price block is undefined at full decarbonisation — Eqs. (81), (82) and
(85) all divide by fossil quantities that go to zero on exactly the path
Eq. (88) exists to simulate — so the guards raise rather than invent a
limit.

§3.3.1's Eq. (61) fuel-price finding gains a third independent witness here:
Table 6 tabulates the power sector's fuel input at 15.75 both nominally and
in real terms, which is only possible if the fuel price is 1, as Table 5
says and as Eq. (61) contradicts. It does not reach any identity above, but
in simulation it moves the electricity price by a third.

229 tests pass, 72 of them new. Milestone 2 still needs §3.3.3 and the
oracle comparison.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vahid-ahmadi
vahid-ahmadi merged commit 58d816b into main Aug 12, 2026
2 checks passed
@vahid-ahmadi
vahid-ahmadi deleted the feat/power-section-3.3.2 branch August 12, 2026 12:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant