HANK incidence overlay omits the model's labour-tax financing
维护者通常 9 天内回复
还没有人认领这个 Issue。
评估
调研方向
阅读 integration/src/policyengine_macro/assumptions.py,尤其是第319–430行附近的 from_hank_result,并检查 caveat_strings(),了解 HANK 假设是如何报告的。Issue 建议添加一条说明,并在报告收益因子的同时报告税收路径;检查现有测试对这些输出的验证。完成的标准是用户能够看到 HANK 的税收融资部分未被应用,并检查报告的税收路径。
由索引模型根据 Issue 内容生成。
描述
Problem
hank_shock_incidence scales pre-tax employment income by the HANK w and N paths (integration/src/policyengine_macro/assumptions.py from_hank_result, ~L319-430) and leaves PolicyEngine's statutory taxes unchanged. In the HANK DAG, though, the labour tax rate is endogenous: it balances tax*w*N = r*Bg + G every period (us-hank-model README.md, gated by tests/test_shocks.py). The overlay drops that financing leg, so the incidence omits a large part of what the model says happens to household income.
Sizes from the us-hank-model production-grid solve (CI run 42141004536, 6 Nov 2026; pinned in PolicyEngine/us-hank-model#4 tests/test_scenarios.py):
| shock | tax rate, impact | tax rate, q1 | wage bill (w+N), impact |
|---|---|---|---|
| G +1% of GDP, rho 0.8 | +0.51pp | +1.59pp | about +0.31% |
| 25bp/qtr easing, rho 0.61 | −0.63pp | — | — |
| 100bp/qtr easing, rho 0.9 | −6.56pp | — | — |
For a spending rise, the overlay shows a small pre-tax earnings gain for households while the model is charging them a labour tax 0.5–1.6pp higher. So the sign of the net income effect for workers can be wrong, not just its size. caveat_strings() doesn't mention this.
Options
- Add a caveat only: state that the HANK tax-financing leg is not applied, and report the tax path next to the earnings factor. Cheap, and honest about the gap.
- Apply the tax leg: scale the earnings factor by
(1 − tax_ss − dtax)/(1 − tax_ss)(post-tax wage income,tax_ss = 0.356), or apply an equivalent flat-rate employment-income tax change through a PE reform. This needstaxcarried in thehank_shockpayload (it already is, in pp) and a decision on mapping the model's flat labour tax onto the US schedule. - Refuse
kind='fiscal_spending'in incidence until option 2 exists.
Recommendation
Do option 1 now and option 2 as the follow-up. Option 1 is a one-line caveat plus a reported field. Option 2 changes published incidence numbers, so Vahid should decide the mapping.
🤖 Generated with Claude Code
- 主要语言
- HTML
- 星标
- 3
- 派生
- 0
- 平均合并
- 8 天 15 小时
- 30 天内合并 PR
- 1
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
PolicyEngine/macro 的其他 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 78/100
PolicyEngine/macro#225 · 2 条评论 ·
维护者通常 9 天内回复
-
bug documentation
难度 1/5 1-3 小时 新手友好度 76/100
PolicyEngine/macro#211 · 1 条评论 ·
维护者通常 9 天内回复
-
难度 5/5 一周以上 新手友好度 18/100
PolicyEngine/macro#230 ·
维护者通常 9 天内回复
-
question
难度 5/5 一周以上 新手友好度 22/100
PolicyEngine/macro#227 · 4 条评论 ·
维护者通常 9 天内回复
-
Nowcast can't archive a new round: the hosted forecast_uk is pinned to boe-var data ending 2026Q1未关闭data question
难度 4/5 3-5 天 新手友好度 34/100
PolicyEngine/macro#224 · 3 条评论 ·
维护者通常 9 天内回复
查看 PolicyEngine/macro 的全部 Issue
相似的 Issue
-
ToUnicode CMap writes code points above U+FFFF as plain hex (5-6 digits), not UTF-16BE可能已有人在做 @Rupali59 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 74/100
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
bug priority: lowest
难度 2/5 1-3 小时 新手友好度 62/100
SkriptLang/Skript#8953 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
aws/aws-sdk-net#4586 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 68/100
php/frankenphp#2829 ·
维护者通常 1 天内回复