HANK incidence overlay omits the model's labour-tax financing

未关闭 适合新手
#214 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 9 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
67/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
python
领域
backend

调研方向

阅读 integration/src/policyengine_macro/assumptions.py,尤其是第319–430行附近的 from_hank_result,并检查 caveat_strings(),了解 HANK 假设是如何报告的。Issue 建议添加一条说明,并在报告收益因子的同时报告税收路径;检查现有测试对这些输出的验证。完成的标准是用户能够看到 HANK 的税收融资部分未被应用,并检查报告的税收路径。

由索引模型根据 Issue 内容生成。

描述

question

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

  1. 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.
  2. 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 needs tax carried in the hank_shock payload (it already is, in pp) and a decision on mapping the model's flat labour tax onto the US schedule.
  3. 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 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

PolicyEngine/macro 的其他 Issue

查看 PolicyEngine/macro 的全部 Issue

相似的 Issue

更多 Backend & API Design Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。