Skip to content

Withdraw the one wrong claim, and separate manual defects from historical-mean calibration - #12

Merged
vahid-ahmadi merged 1 commit into
mainfrom
fix/finding-characterisation-audit
Aug 12, 2026
Merged

Withdraw the one wrong claim, and separate manual defects from historical-mean calibration#12
vahid-ahmadi merged 1 commit into
mainfrom
fix/finding-characterisation-audit

Conversation

@vahid-ahmadi

Copy link
Copy Markdown
Contributor

An independent audit re-derived every pinned discrepancy straight from
the manual's printed equations, without importing this repo's sector
modules, and re-checked all 661 calibration entries against the manual
page each cites. 661/661 transcribed correctly — the only misses are
the two documented SUBS_GVT/SUBS_PS placeholders the tables genuinely
do not contain — and every piece of arithmetic here reproduced. What did
not survive was interpretation.

One claim was wrong and is withdrawn. On Eq. (51) this repo said "the
equation is the corroborated one, since Eqs. (49)+(50) imply 0.1598".
That evaluates a lagged equation — Eq. (49) reads UC_{t-1} — at
contemporaneous unit costs. Honouring the lag, the tabulated mu needs
+0.91%/quarter unit-cost growth while Eq. (51)'s mu needs -0.12%, i.e.
deflation
; with the manual's initial period at 2022Q4 (Table 6 indexes
the deflator at Q4 2022, INF_A = 0.107, quarterly nominal GDP growth
1.019) the evidence points the other way. Table 5 also says alpha1MU is
calibrated to a historical mean, never to t=L. A first-period jump, not
a manual contradiction.

Three more findings are the same class. alpha_NELEC (Eq. 59) is "the
mean over past data" and 2022Q4 was a gas spike — the right direction and
roughly the right size for the 60% gap; alpha_DIVPPS (Eq. 94) and eta_PSB
(Eq. 111) are likewise past-data means. The gaps are real and matter
operationally, but none is the manual disagreeing with itself, and they
are no longer presented as if they were.

Two mislocations. Eq. (107)'s sign contradiction is not one of "four
in section 3.3.2": the identical alpha*GO rule is printed at Eqs. (177),
(231) and (284), and Table 6 tabulates all four transfers negative, out
by 1.7-4.6x. And Eqs. (27), (104), (105), (132), (133) are one finding,
not five — Table 6 deflates its entire capital block at 1.031 where the
equations prescribe P_P = 1.035, which looks like a national-accounts
investment deflator standing in for the production deflator.

Eq. (84) gains a likelier explanation. (1+1.228)x0.4365 = 0.9725
against a tabulated 0.3198 implies a negative mark-up, which no
historical mean can produce. Section 5 calibrates an electricity price
rule section 3 never prints: Table 5's t_ELECswitch is the quarter of
"the switch in the electricity price long-run formation rule" and Table
6's P_ELECLR is a "long run electricity price"; P_ELECLR occurs once
in the whole PDF and neither appears in any printed equation. The 3.04x
is most likely a missing equation, recorded as such.

The findings that carry weight survive intact and better supported: Eq.
(52) (Table 5 says alpha0WS was calibrated so the equation equals the
observed value at t=L; it does not, and 0.6233 is exactly W/GDP), Eq.
(61), Eq. (70), Eq. (108), Eq. (131), Eq. (136), the three sign
contradictions, the LENDM residual (the seven model-determined entries
sum to exactly 5.44 = -DIVN_ROW while national-accounts LEND sums to
-0.001), and all of issue #2 — six parameters and two variables that
occur in the body and in neither table. Both filed upstream issues hold
in full
, and the wrong claim never left this file.

Also: the 1.78 green multiplier is recorded with the three properties
that make it upper-leaning rather than comparable — a cumulative ratio to
2040 set against short-horizon IMF/OBR multipliers, an endogenous
SPEND_GVT denominator of which investment is only 12.8% and social
benefits fall when unemployment does, and a demand-led closure with
Kaldor-Verdoorn productivity where >1 over fifteen years is what the
model implies. test_oracle.py keyed its skip on Rscript being present,
which is the wrong condition — the comparison needs upstream outputs
and it is rekeyed on the cached run, with a test that fails the moment
section 3.3.3 lands so the outstanding gate stays visible in a green
suite.

229 -> 236 passed; no test removed or weakened.

Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com

🤖 Generated with Claude Code

…ical-mean calibration

An independent audit re-derived every pinned discrepancy straight from
the manual's printed equations, without importing this repo's sector
modules, and re-checked all 661 calibration entries against the manual
page each cites. **661/661 transcribed correctly** — the only misses are
the two documented `SUBS_GVT`/`SUBS_PS` placeholders the tables genuinely
do not contain — and every piece of arithmetic here reproduced. What did
not survive was interpretation.

**One claim was wrong and is withdrawn.** On Eq. (51) this repo said "the
equation is the corroborated one, since Eqs. (49)+(50) imply 0.1598".
That evaluates a *lagged* equation — Eq. (49) reads UC_{t-1} — at
contemporaneous unit costs. Honouring the lag, the tabulated mu needs
+0.91%/quarter unit-cost growth while Eq. (51)'s mu needs **-0.12%, i.e.
deflation**; with the manual's initial period at 2022Q4 (Table 6 indexes
the deflator at Q4 2022, INF_A = 0.107, quarterly nominal GDP growth
1.019) the evidence points the other way. Table 5 also says alpha1MU is
calibrated to a *historical mean*, never to t=L. A first-period jump, not
a manual contradiction.

**Three more findings are the same class.** alpha_NELEC (Eq. 59) is "the
mean over past data" and 2022Q4 was a gas spike — the right direction and
roughly the right size for the 60% gap; alpha_DIVPPS (Eq. 94) and eta_PSB
(Eq. 111) are likewise past-data means. The gaps are real and matter
operationally, but none is the manual disagreeing with itself, and they
are no longer presented as if they were.

**Two mislocations.** Eq. (107)'s sign contradiction is not one of "four
in section 3.3.2": the identical alpha*GO rule is printed at Eqs. (177),
(231) and (284), and Table 6 tabulates all four transfers negative, out
by 1.7-4.6x. And Eqs. (27), (104), (105), (132), (133) are one finding,
not five — Table 6 deflates its entire capital block at 1.031 where the
equations prescribe P_P = 1.035, which looks like a national-accounts
investment deflator standing in for the production deflator.

**Eq. (84) gains a likelier explanation.** (1+1.228)x0.4365 = 0.9725
against a tabulated 0.3198 implies a *negative* mark-up, which no
historical mean can produce. Section 5 calibrates an electricity price
rule section 3 never prints: Table 5's `t_ELECswitch` is the quarter of
"the switch in the electricity price long-run formation rule" and Table
6's `P_ELECLR` is a "long run electricity price"; `P_ELECLR` occurs once
in the whole PDF and neither appears in any printed equation. The 3.04x
is most likely a missing equation, recorded as such.

The findings that carry weight survive intact and better supported: Eq.
(52) (Table 5 says alpha0WS was calibrated so the equation equals the
observed value at t=L; it does not, and 0.6233 is exactly W/GDP), Eq.
(61), Eq. (70), Eq. (108), Eq. (131), Eq. (136), the three sign
contradictions, the LENDM residual (the seven model-determined entries
sum to exactly 5.44 = -DIVN_ROW while national-accounts LEND sums to
-0.001), and all of issue #2 — six parameters and two variables that
occur in the body and in neither table. **Both filed upstream issues hold
in full**, and the wrong claim never left this file.

Also: the 1.78 green multiplier is recorded with the three properties
that make it upper-leaning rather than comparable — a cumulative ratio to
2040 set against short-horizon IMF/OBR multipliers, an endogenous
`SPEND_GVT` denominator of which investment is only 12.8% and social
benefits fall when unemployment does, and a demand-led closure with
Kaldor-Verdoorn productivity where >1 over fifteen years is what the
model implies. `test_oracle.py` keyed its skip on `Rscript` being present,
which is the wrong condition — the comparison needs upstream *outputs* —
and it is rekeyed on the cached run, with a test that fails the moment
section 3.3.3 lands so the outstanding gate stays visible in a green
suite.

229 -> 236 passed; no test removed or weakened.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vahid-ahmadi
vahid-ahmadi merged commit 4849367 into main Aug 12, 2026
2 checks passed
@vahid-ahmadi
vahid-ahmadi deleted the fix/finding-characterisation-audit branch August 12, 2026 14:38
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