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

Ouverte Adaptée aux débutants
#214 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 5 jours

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
67/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
python
Domaine
backend

Piste de recherche

Lisez integration/src/policyengine_macro/assumptions.py, en particulier from_hank_result autour des lignes 319–430, et examinez caveat_strings() pour voir comment les hypothèses HANK sont signalées. L’issue recommande d’ajouter une réserve et de signaler la trajectoire fiscale avec le facteur de revenus ; vérifiez les tests existants pour ces sorties. Le travail est terminé lorsque les utilisateurs peuvent voir que le volet de financement fiscal de HANK n’est pas appliqué et peuvent examiner la trajectoire fiscale signalée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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

Langage dominant
HTML
Étoiles
3
Forks
0
Merge moyen
4 j 6 h
PR mergées (30 j)
15

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de PolicyEngine/macro

Toutes les issues de PolicyEngine/macro

Issues similaires

Plus d'issues Backend & API Design

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.