Decide the GPI multiplier's impulse definition (1.78 total spending vs 2.30 power-sector only vs 1.94 with green investment)

Đang mở
#16 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
38/100
Loại issue
Tính năng
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python
Lĩnh vực
data

Hướng nghiên cứu

Start with gpi_multiplier() in src/define_uk/validation.py and the gpi_multiplier entry in validation/reference_outputs.json; compare the existing calculation with the four denominator definitions and the cached run evidence described in the issue. Decide which definition to publish, then update the validation output and run record as specified. Done means the chosen definition and caveats are recorded consistently, the upstream label explanation is corrected, and the macro-site follow-up is opened.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

question

The published GPI multiplier is 1.78: cumulative nominal ΔGDP / cumulative nominal ΔSPEND_GVT, GPI + Green Bonds vs baseline, 2023–2040 (src/define_uk/validation.py, gpi_multiplier(); validation/reference_outputs.json gpi_multiplier). PR #15 corrected the caveat on its denominator. This issue asks which impulse definition we publish. Until it is decided, 1.78 stays as published and none of the alternatives below is quoted.

Evidence (cached pinned run 846081a, output/tables/gvt_investment)

All figures are cumulative scenario-minus-baseline sums over the 216 quarters (nonzero from 2023Q1). They are recomputed from the CSVs; no model run was needed.

Denominator Cum Δ Ratio What it measures
SPEND_GVT = OCONS_GVT + SOCB_GVT + GCF_GVT + SPEND_GVTPS (published) 118.2 1.78 (nominal ΔGDP 209.9) Total government spending excluding wages. It mixes the policy impulse with endogenous items: OCONS +21.1, SOCB +8.0, GCF −2.3 (GCF_GVTG +17.0 offset by GCF_GVTC −19.3)
SPEND_GVTPS only (government power-sector spending) 91.2 2.30 Closest to the policy switch itself (GREEN_POWER*3.33*P_P per quarter plus the common GVT_ENERGY term)
SPEND_GVTPS + GCF_GVTG ("green investment") 108.3 1.94 Power-sector impulse plus green public GCF. GCF_GVTG is partly endogenous and offset by conventional GCF
Upstream's own G: (CONS_GVT + GCF_GVT + SPEND_GVTPS) deflated by the baseline P_P, against ΔGDP_R 104.1 2.41 (real ΔGDP 250.6) The definition upstream's fiscal_multiplier chunk uses

Two findings explain the upstream Multiplier_Summary.csv. They change what validation.py says about why that file is unusable:

  1. The upstream labels are shifted by one. The Rmd's scenario config has S8 = "GPI + Green Bonds" and S9 = "Green Power Subsidy". The multiplier chunk's sce_list labels num 8 "Green Public Investment" and num 9 "GPI + Green Bonds". So the row "Green Public Investment" (TotalDeltaG 104.22, TotalDeltaGDP 250.76) is our GPI + Green Bonds, which we reproduce as 104.1 / 250.6 (4-significant-figure CSVs). The row "GPI + Green Bonds" (52.27 / −48.9) is actually Green Power Subsidy, reproduced as 51.95 / −48.9. TotalDeltaG therefore does match a series: upstream's real G at baseline prices. validation.py says it "matches no variable", and that statement should be corrected.
  2. M_Impact = −32.22 is the same in all eight rows because every policy scenario sets GVT_ENERGY = 1. The first quarter in which cumulative ΔG moves is the same common switch in every scenario, not the policy. M_Impact/M_4Q/M_8Q are therefore not policy multipliers, and the "unusable" verdict on those columns stands.

Two other facts bear on the choice:

  • Nominal and real ratios differ materially, because the scenario lowers the GDP deflator (cum ΔP_P −0.11; nominal ΔGDP 209.9 vs real 250.6). Only a nominal/nominal ratio or a real/real ratio is coherent. 1.78 is nominal/nominal. The upstream 2.41 is real/real at baseline prices.
  • The same capacity delivered as a subsidy (Green Power Subsidy, GVT_INVEST = 0) has SPEND_GVTPS +110.8 but CONS_GVT −49.1 and SOCB −27.7, with real ΔGDP −48.9. Any definition we pick should give a sensible answer for both designs. With SPEND_GVTPS as the denominator it gives −2.24 nominal for the subsidy.

Options

A. Keep 1.78 (total spending excluding wages). It is reproducible and already published. But the denominator includes endogenous responses, so it is not an impulse multiplier, and the caveat has to say so prominently.
B. SPEND_GVTPS only (≈2.30 nominal). The cleanest impulse, because it is the variable the policy switch sets. It ignores GCF_GVTG and the induced OCONS response.
C. SPEND_GVTPS + GCF_GVTG (≈1.94 nominal). Matches the "green investment" wording on the site, but GCF_GVTG is partly endogenous, and the conventional GCF offset is left out.
D. Upstream's definition (≈2.41 real/real at baseline prices). It matches the model authors' own table once the labels are corrected. It is a real ratio, so it is not comparable with A–C.

Recommendation

B as the headline impulse multiplier, with A kept as a secondary "per £ of total non-wage government spending" ratio. B is the only denominator that is the policy instrument itself. D is useful as a cross-check: real/real 2.41 sits close to B's 2.30, which is reassuring. But publishing D would mean adopting a G that excludes social benefits, and its label bug would need explaining. Whichever we choose, the number stays a full-horizon cumulative ratio under a demand-led closure, not comparable to short-horizon multipliers. That caveat does not change.

If B is chosen, the follow-up is:

  • add a definition switch to gpi_multiplier()
  • record 2.30 in reference_outputs.json with a VALIDATION.md run-record row
  • correct the "matches no variable" text
  • open a macro-site issue for the label and number change

Raised from the 6 Nov 2026 review (PR #15).

🤖 Generated with Claude Code

Ngôn ngữ chính
Python
Star
0
Fork
0
Merge trung bình
4 ngày 14 giờ
Pull request đã merge (30 ngày)
5

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của PolicyEngine/define-uk-model

Tất cả issue của PolicyEngine/define-uk-model

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.