diff --git a/changelog.d/ssi-disability-status-variable.added.md b/changelog.d/ssi-disability-status-variable.added.md new file mode 100644 index 00000000000..09c4ba88577 --- /dev/null +++ b/changelog.d/ssi-disability-status-variable.added.md @@ -0,0 +1 @@ +Added a data-overridable SSI disability criteria variable for calibrated SSI simulations. diff --git a/policyengine_us/tests/policy/baseline/gov/ssa/ssi/is_ssi_disabled.yaml b/policyengine_us/tests/policy/baseline/gov/ssa/ssi/is_ssi_disabled.yaml index 507084abb90..6647e1b1b0d 100644 --- a/policyengine_us/tests/policy/baseline/gov/ssa/ssi/is_ssi_disabled.yaml +++ b/policyengine_us/tests/policy/baseline/gov/ssa/ssi/is_ssi_disabled.yaml @@ -49,3 +49,21 @@ ssi_engaged_in_sga: false output: is_ssi_disabled: false + +- name: Data-provided SSI disability criteria can identify SSI disability + period: 2024 + input: + meets_ssi_disability_criteria: true + is_disabled: false + ssi_engaged_in_sga: false + output: + is_ssi_disabled: true + +- name: Data-provided SSI disability criteria can exclude broad disability + period: 2024 + input: + meets_ssi_disability_criteria: false + is_disabled: true + ssi_engaged_in_sga: false + output: + is_ssi_disabled: false diff --git a/policyengine_us/tests/policy/baseline/gov/ssa/ssi/meets_ssi_disability_criteria.yaml b/policyengine_us/tests/policy/baseline/gov/ssa/ssi/meets_ssi_disability_criteria.yaml new file mode 100644 index 00000000000..34bda3e47dd --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/ssa/ssi/meets_ssi_disability_criteria.yaml @@ -0,0 +1,23 @@ +- name: Case 1, disabled and not engaged in substantial gainful activity. + period: 2024 + input: + is_disabled: true + ssi_engaged_in_sga: false + output: + meets_ssi_disability_criteria: true + +- name: Case 2, disabled but engaged in substantial gainful activity. + period: 2024 + input: + is_disabled: true + ssi_engaged_in_sga: true + output: + meets_ssi_disability_criteria: false + +- name: Case 3, not disabled and not engaged in substantial gainful activity. + period: 2024 + input: + is_disabled: false + ssi_engaged_in_sga: false + output: + meets_ssi_disability_criteria: false diff --git a/policyengine_us/variables/gov/ssa/ssi/eligibility/status/is_ssi_disabled.py b/policyengine_us/variables/gov/ssa/ssi/eligibility/status/is_ssi_disabled.py index d110ea884a8..46e289b5720 100644 --- a/policyengine_us/variables/gov/ssa/ssi/eligibility/status/is_ssi_disabled.py +++ b/policyengine_us/variables/gov/ssa/ssi/eligibility/status/is_ssi_disabled.py @@ -10,7 +10,4 @@ class is_ssi_disabled(Variable): reference = "https://www.law.cornell.edu/uscode/text/42/1382c#a_3_A" def formula(person, period, parameters): - # Earnings in excess of the Substantial Gainful Activity threshold disqualify from either case. - is_disabled = person("is_disabled", period) - engaged_in_ssa = person("ssi_engaged_in_sga", period) - return is_disabled & ~engaged_in_ssa + return person("meets_ssi_disability_criteria", period) diff --git a/policyengine_us/variables/gov/ssa/ssi/eligibility/status/meets_ssi_disability_criteria.py b/policyengine_us/variables/gov/ssa/ssi/eligibility/status/meets_ssi_disability_criteria.py new file mode 100644 index 00000000000..a403ff97aee --- /dev/null +++ b/policyengine_us/variables/gov/ssa/ssi/eligibility/status/meets_ssi_disability_criteria.py @@ -0,0 +1,15 @@ +from policyengine_us.model_api import * + + +class meets_ssi_disability_criteria(Variable): + value_type = bool + entity = Person + definition_period = YEAR + documentation = "Indicates whether a person meets the Supplemental Security Income disability criteria" + label = "Meets SSI disability criteria" + reference = "https://www.law.cornell.edu/uscode/text/42/1382c#a_3_A" + + def formula(person, period, parameters): + is_disabled = person("is_disabled", period) + engaged_in_sga = person("ssi_engaged_in_sga", period) + return is_disabled & ~engaged_in_sga