Summary
never_eligible_for_social_security_benefits currently uses a heuristic (age >= 70 & social_security == 0) to infer eligibility. This causes false positives — anyone age 70+ with no SS income in their simulation gets flagged as never eligible, triggering the NJ Other Retirement Special Exclusion ($3,000 for single filers) when it shouldn't apply.
How the law works
The NJ-1040 Worksheet D asks a yes/no question: "Will you (and/or your spouse, if filing jointly) ever be eligible to receive Social Security or Railroad Retirement Benefits?" This applies only to people whose employer never participated in Social Security (e.g., certain state/local government workers). It's self-reported, not derivable from age or current SS income.
Example (from policyengine-taxsim#765)
NJ single filer, age 71, $104,762 interest income, $0 SS:
- PE: Applies 37.5% exclusion ($39,286) plus $3,000 special exclusion = $42,286 total → NJ tax $1,849
- TaxAct: Applies only 37.5% exclusion ($39,286) → NJ tax $2,014
The $3,000 special exclusion is incorrect — the filer simply has no SS income in this scenario, not that their employer never participated in SS.
Suggested fix
Change never_eligible_for_social_security_benefits from a formula variable to an input variable with default_value = False. Filers who truly had employers outside SS would explicitly set it to True.
References
Summary
never_eligible_for_social_security_benefitscurrently uses a heuristic (age >= 70 & social_security == 0) to infer eligibility. This causes false positives — anyone age 70+ with no SS income in their simulation gets flagged as never eligible, triggering the NJ Other Retirement Special Exclusion ($3,000 for single filers) when it shouldn't apply.How the law works
The NJ-1040 Worksheet D asks a yes/no question: "Will you (and/or your spouse, if filing jointly) ever be eligible to receive Social Security or Railroad Retirement Benefits?" This applies only to people whose employer never participated in Social Security (e.g., certain state/local government workers). It's self-reported, not derivable from age or current SS income.
Example (from policyengine-taxsim#765)
NJ single filer, age 71, $104,762 interest income, $0 SS:
The $3,000 special exclusion is incorrect — the filer simply has no SS income in this scenario, not that their employer never participated in SS.
Suggested fix
Change
never_eligible_for_social_security_benefitsfrom a formula variable to an input variable withdefault_value = False. Filers who truly had employers outside SS would explicitly set it toTrue.References