Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/fix-9815-wi-works-cmc-age.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Compare the Wisconsin Works Custodial Parent of an Infant (CMC) age limit with the child's age in weeks, and set the limit to 12 weeks before 2012 and 8 weeks from 2012, so children aged 1 and 2 no longer get the CMC placement and its $673 grant.
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
description: Wisconsin limits the Custodial Parent of Infant placement to parents with children at or below this age in months under the Wisconsin Works program.
description: Wisconsin limits the Custodial Parent of an Infant placement to custodial parents of children at or below this age in weeks under the Wisconsin Works program.

values:
2011-10-01: 2
1997-09-01: 12
2012-01-01: 8

metadata:
unit: month
unit: week
period: month
label: Wisconsin Works CMC infant age limit
reference:
# Wisconsin statute specifies 8 weeks; 2 months is an approximation.
- title: Wisconsin Statutes 49.148(1m)(a)1
href: https://docs.legis.wisconsin.gov/statutes/statutes/49/iii/148
- title: W-2 Manual 7.4.5 - Custodial Parent of an Infant
- title: 1997-98 Wisconsin Statutes 49.148(1m)(a)
href: https://docs.legis.wisconsin.gov/1997/statutes/statutes/49.pdf#page=19
- title: "2011 Wisconsin Act 32, sections 1361s and 9408(1d) #page 226,530"
href: https://docs.legis.wisconsin.gov/2011/related/acts/32.pdf#page=226
- title: W-2 Manual 7.4.3 - Custodial Parent of an Infant (CMC)
href: https://dcf.wisconsin.gov/manuals/w-2-manual/Production/07/7.4.3_Custodial_Parent_of_an_Infant_CMC_.htm
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
is_tax_unit_head_or_spouse: true
tanf_gross_earned_income: 1_000
person2:
age: 0 # Newborn (monthly_age = 0 ≤ 2)
age: 0 # Newborn (0 x 52 = 0 weeks ≤ 8)
spm_units:
spm_unit:
members: [person1, person2]
Expand Down Expand Up @@ -211,7 +211,7 @@
is_tax_unit_head_or_spouse: true
tanf_gross_earned_income: 0
person2:
age: 3 # monthly_age = 3 > 2 threshold
age: 3 # 3 x 52 = 156 weeks > 8-week limit
spm_units:
spm_unit:
members: [person1, person2]
Expand Down Expand Up @@ -280,3 +280,28 @@
wi_works_eligible: true
wi_works_placement: CSJ
wi_works: 653

- name: Case 12, child aged 1 year (above CMC threshold) gets CSJ.
period: 2025-01
input:
people:
person1:
age: 27
is_tax_unit_head_or_spouse: true
tanf_gross_earned_income: 0
person2:
age: 1 # 1 x 52 = 52 weeks > 8-week limit
spm_units:
spm_unit:
members: [person1, person2]
spm_unit_cash_assets: 500
households:
household:
members: [person1, person2]
state_code: WI
output:
# CMC covers a custodial parent of a child 8 weeks old or less
# (Wis. Stat. 49.148(1m)(a)1); a 1-year-old gets the $653 CSJ grant.
wi_works_eligible: true
wi_works_placement: CSJ
wi_works: 653
Original file line number Diff line number Diff line change
Expand Up @@ -14,56 +14,187 @@
output:
wi_works_placement: CSJ

- name: Case 2, CMC with infant under 2 months.
- name: Case 2, CMC with a newborn.
period: 2025-01
input:
people:
person1:
age: 25
is_pregnant: false
person2:
monthly_age: 1
age: 0
households:
household1:
members: [person1, person2]
state_code: WI
output:
# 0 years x 52 = 0 weeks <= 8-week limit (Wis. Stat. 49.148(1m)(a)1)
wi_works_placement: CMC

- name: Case 3, CMC with infant exactly 2 months.
- name: Case 3, CMC with an infant 6.5 weeks old.
period: 2025-01
input:
people:
person1:
age: 25
person2:
monthly_age: 2
age: 0.125
households:
household1:
members: [person1, person2]
state_code: WI
output:
# 0.125 years x 52 = 6.5 weeks <= 8
wi_works_placement: CMC

- name: Case 4, CSJ with child over 2 months.
- name: Case 4, CMC with an infant 56 days old.
period: 2025-01
input:
people:
person1:
age: 25
# Explicit monthly_age to avoid formula calculation issues
monthly_age: 300
person2:
# monthly_age > 2 to exceed CMC threshold
monthly_age: 3
age: 0.1533
households:
household1:
members: [person1, person2]
state_code: WI
output:
# 0.1533 years (56 days) x 52 = 7.97 weeks <= 8. W-2 Manual 7.4.3.4
# ends CMC on day 56 (7 days x 8 weeks).
wi_works_placement: CMC

- name: Case 5, CSJ with an infant 57 days old.
period: 2025-01
input:
people:
person1:
age: 25
person2:
age: 0.1561
households:
household1:
members: [person1, person2]
state_code: WI
output:
# 0.1561 years (57 days) x 52 = 8.12 weeks > 8. A 2-month limit would
# give CMC here (0.1561 x 12 = 1.87 months).
wi_works_placement: CSJ

- name: Case 6, CSJ with an infant 13 weeks old.
period: 2025-01
input:
people:
person1:
age: 25
person2:
age: 0.25
households:
household1:
members: [person1, person2]
state_code: WI
output:
# 0.25 years x 52 = 13 weeks > 8
wi_works_placement: CSJ

- name: Case 7, CSJ with a child aged 1 year.
period: 2025-01
input:
people:
person1:
age: 25
person2:
age: 1
households:
household1:
members: [person1, person2]
state_code: WI
output:
# 1 year x 52 = 52 weeks > 8
wi_works_placement: CSJ

- name: Case 8, CSJ with a child aged 2 years.
period: 2025-01
input:
people:
person1:
age: 25
person2:
age: 2
households:
household1:
members: [person1, person2]
state_code: WI
output:
# 2 years x 52 = 104 weeks > 8
wi_works_placement: CSJ

- name: Case 9, CMC with an infant 10 weeks old in January 2011.
period: 2011-01
input:
people:
person1:
age: 25
person2:
age: 0.19
households:
household1:
members: [person1, person2]
state_code: WI
output:
# 0.19 years x 52 = 9.88 weeks <= 12. The limit was 12 weeks until
# 2011 Wis. Act 32 cut it to 8 weeks from January 1, 2012.
wi_works_placement: CMC

- name: Case 10, CSJ with an infant 10 weeks old in January 2012.
period: 2012-01
input:
people:
person1:
age: 25
person2:
age: 0.19
households:
household1:
members: [person1, person2]
state_code: WI
output:
# 0.19 years x 52 = 9.88 weeks > 8
wi_works_placement: CSJ

- name: Case 11, CMC with an infant 84 days old in January 2011.
period: 2011-01
input:
people:
person1:
age: 25
person2:
age: 0.23
households:
household1:
members: [person1, person2]
state_code: WI
output:
# 0.23 years (84 days) x 52 = 11.96 weeks <= 12
wi_works_placement: CMC

- name: Case 12, CSJ with an infant 85 days old in January 2011.
period: 2011-01
input:
people:
person1:
age: 25
person2:
age: 0.233
households:
household1:
members: [person1, person2]
state_code: WI
output:
# 0.233 years (85 days) x 52 = 12.12 weeks > 12
wi_works_placement: CSJ

- name: Case 5, ARP with pregnant person in third trimester.
- name: Case 13, ARP with pregnant person in third trimester.
period: 2025-01
input:
people:
Expand All @@ -78,7 +209,7 @@
output:
wi_works_placement: ARP

- name: Case 6, CSJ with pregnant person not in third trimester.
- name: Case 14, CSJ with pregnant person not in third trimester.
period: 2025-01
input:
people:
Expand All @@ -93,7 +224,7 @@
output:
wi_works_placement: CSJ

- name: Case 7, CMC takes priority over ARP.
- name: Case 15, CMC takes priority over ARP.
period: 2025-01
input:
people:
Expand All @@ -102,7 +233,7 @@
is_pregnant: true
current_pregnancy_month: 8
person2:
monthly_age: 1
age: 0
households:
household1:
members: [person1, person2]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,19 @@ class wi_works_placement(Variable):
reference = (
"https://docs.legis.wisconsin.gov/statutes/statutes/49/iii/148",
"https://dcf.wisconsin.gov/manuals/w-2-manual/Production/07/7.4.1_Community_Service_Jobs_(CSJ).htm",
"https://dcf.wisconsin.gov/manuals/w-2-manual/Production/07/7.4.3_Custodial_Parent_of_an_Infant_CMC_.htm",
)

def formula(spm_unit, period, parameters):
p = parameters(period).gov.states.wi.dcf.works.placement
person = spm_unit.members

# CMC: Custodial Parent of Infant (child <= 8 weeks ≈ 2 months)
child_age_months = person("monthly_age", period)
has_infant = spm_unit.any(child_age_months <= p.cmc_infant_age_limit)
# CMC: Custodial Parent of Infant (child 8 weeks old or less;
# 12 weeks before 2012). The limit is in weeks and age is in years.
# With age in whole years (as in the microdata), every child aged 0
# counts as at or below the limit, so age 0 always gives CMC.
age_in_weeks = person("age", period.this_year) * WEEKS_IN_YEAR
has_infant = spm_unit.any(age_in_weeks <= p.cmc_infant_age_limit)

# ARP: At Risk Pregnancy (3rd trimester = month 7+)
is_pregnant = person("is_pregnant", period)
Expand Down
Loading