Skip to content

Conversation

@vahid-ahmadi
Copy link
Collaborator

@vahid-ahmadi vahid-ahmadi commented Oct 17, 2025

Overview

This PR adds empirically grounded age heterogeneity (65+) to the US labor supply response (LSR) parameters used in behavioral microsimulation. The implementation follows the multiplier approach consistent with CBO (2012) and French (2005), applying an age-based scaling factor to both substitution and income elasticities for individuals aged 65 and over.

Implementation

  • Introduces age_multiplier_65_and_over parameter for both substitution and income elasticities
  • Keeps the existing structure (by_position_and_decile for substitution; base for income)
  • Default values remain 0 for base elasticities (no behavioral response) and 2.0 for the 65+ multiplier
  • Applies multiplier only when age >= 65

Why a Multiplier Approach (vs. Full Age Breakdown)

  1. Evidence-based: Literature shows older workers (especially 62–70) have higher labor supply elasticities, mainly on the extensive margin. However, no studies provide age-by-income-decile or age-by-earner breakdowns.

  2. Parsimony: A single multiplier avoids an unnecessary 44-parameter expansion and is easier to calibrate.

  3. Transparency: Multiplier interpretation is straightforward: "65+ workers are X times more responsive."

  4. Flexibility: Users can tune the multiplier (e.g., 1.5–3.0 range) or revert to 1.0 for no age effect.


Empirical Basis

Substitution Elasticity (after-tax wage responsiveness)

Study Population Age Group Elasticity Implied 65+/<65 Multiplier Margin Notes
CBO WP 2012-13 (Reichling & Whalen) US working-age 25–64 0.27–0.53 (central 0.40) Frisch Baseline for CBO fiscal analysis
French (2005) REStud Male heads 40 → 60 0.2–0.4 → 1.0–1.3 ≈ 3.0–3.25× Structural Strong age elasticity increase
Blau & Shvydko (2011) JLE Mixed 62–69 0.5–0.8 (extensive) / 0.05–0.2 (intensive) ≈ 2–3× Reduced form Driven by retirement decisions
Coile & Gruber (2007) RESTAT Mixed 62–64 0.4–0.7 ≈ 2× Extensive SS incentives near retirement
Gustman & Steinmeier (2009) JLE Mixed 65–69 0.45–0.8 ≈ 2–2.5× Extensive Pension/SS interactions

Recommended parameters:

Type Base (under 65) 65+ Multiplier (default) Range for sensitivity Source rationale
Substitution 0.3–0.4 2.0 × 1.5–3.0 × CBO (2012), French (2005), Blau & Shvydko (2011)

Income Elasticity (disposable income responsiveness)

Study Population Age Group Elasticity Implied 65+/<65 Multiplier Notes
CBO WP 2012-12 (McClelland & Mok) US working-age 25–64 −0.02 to −0.05 (central −0.04) Baseline CBO value
French (2005) Male heads 60+ −0.06 to −0.08 ≈ 1.5–2× Life-cycle model
Gustman & Steinmeier (2009) Mixed 65+ −0.07 to −0.10 ≈ 2× Structural retirement
Rogerson & Wallenius (2009) Model ≈ 1.3–1.5× Calibration support

Recommended parameters:

Type Base (under 65) 65+ Multiplier (default) Range for sensitivity Source rationale
Income −0.04 2.0 × 1.3–2.0 × CBO (2012), French (2005), Gustman & Steinmeier (2009)

References

  • CBO (2012-12): A Review of Recent Research on Labor Supply Elasticities. Working Paper by Robert McClelland and Shannon Mok. Link

  • CBO (2012-13): Review of Estimates of the Frisch Elasticity of Labor Supply. Working Paper by Felix Reichling and Charles Whalen. Link

  • French (2005): The Effects of Health, Wealth, and Wages on Labour Supply and Retirement Behaviour. Review of Economic Studies 72(2): 395–427. Link

  • Blau & Shvydko (2011): Labor Market Rigidities and the Employment Behavior of Older Workers. ILR Review 64(3): 464–484. Link

  • Coile & Gruber (2007): Future Social Security Entitlements and the Retirement Decision. Review of Economics and Statistics 89(2): 234–246.

  • Gustman & Steinmeier (2009): How Changes in Social Security Affect Recent Retirement Trends. Journal of Labor Economics 27(2): 213–252.

  • Rogerson & Wallenius (2009): Micro and Macro Elasticities in a Life Cycle Model with Taxes. Journal of Economic Theory 144(6): 2277–2292. Link

  • Keane (2011): Labor Supply and Taxes: A Survey. Journal of Economic Literature 49(4): 961–1075. Link

@codecov
Copy link

codecov bot commented Oct 17, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (03f1ee1) to head (fafb2bb).
⚠️ Report is 134 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##            master     #6681    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files           29         2    -27     
  Lines          415        49   -366     
  Branches         0         4     +4     
==========================================
- Hits           415        49   -366     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@MaxGhenis MaxGhenis marked this pull request as draft October 17, 2025 17:24
@vahid-ahmadi vahid-ahmadi self-assigned this Oct 20, 2025
@vahid-ahmadi vahid-ahmadi marked this pull request as ready for review October 21, 2025 13:09
@vahid-ahmadi
Copy link
Collaborator Author

@PavelMakarchuk @MaxGhenis All tests passed. The CI job was canceled due to a timeout.

@vahid-ahmadi
Copy link
Collaborator Author

@MaxGhenis Before this PR, all elasticities were set to zero by default (users could change them manually in the web app if they wanted). We don't have any default elasticity values.

Following up on our discussion, I think we should clarify in the elasticity parameter descriptions that these are unweighted values for people under 65. For people 65 and older, these base values are multiplied by the age multiplier.

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.

2 participants