Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

District Child Tax Credit #5262

Draft
wants to merge 8 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 5 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
4 changes: 4 additions & 0 deletions changelog_entry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- bump: minor
changes:
added:
- DC Child Tax Credit.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Child Tax Credit.
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
description: DC provides a Child Tax Credit of this amount per eligible child.
metadata:
unit: currency-USD
label: DC Child Tax Credit amount
period: year
uprating:
parameter: gov.irs.uprating
rounding:
type: downwards
interval: 5
reference:
- title: Code of the District of Columbia § 47–1806.17(b)(1)
hua7450 marked this conversation as resolved.
Show resolved Hide resolved
href: https://code.dccouncil.gov/us/dc/council/code/sections/47-1806.17#(b)(1)

values:
2025-01-01: 420
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
description: DC provides a Child Tax Credit amount for children below this age.
metadata:
unit: age
label: DC Child Tax Credit child age threshold
period: year
reference:
- title: Code of the District of Columbia § 47–1806.17(b)(1)
hua7450 marked this conversation as resolved.
Show resolved Hide resolved
href: https://code.dccouncil.gov/us/dc/council/code/sections/47-1806.17#(b)(1)

values:
2025-01-01: 6
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
description: DC caps the number of eligible children for the Child Tax Credit at this number.
hua7450 marked this conversation as resolved.
Show resolved Hide resolved
values:
2025-01-01: 3
metadata:
type: single_amount
label: DC Child Tax Credit child cap
reference:
- title: Code of the District of Columbia § 47–1806.17(b)(2)
hua7450 marked this conversation as resolved.
Show resolved Hide resolved
href: https://code.dccouncil.gov/us/dc/council/code/sections/47-1806.17##(b)(2)
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
description: DC limits its Child Tax Credit to filers with taxable income below the following amount, based on filing status.
metadata:
label: DC Child Tax Credit taxable income threshold
unit: currency_USD
period: year
breakdown:
- filing_status
reference:
- title: Code of the District of Columbia § 47–1806.17(e)(5)
href: https://code.dccouncil.gov/us/dc/council/code/sections/47-1806.17#(e)(5)

SINGLE:
values:
2025-01-01: 160_000
metadata:
uprating:
parameter: gov.irs.uprating
rounding:
type: downwards
interval: 100
JOINT:
values:
2025-01-01: 240_000
metadata:
uprating:
parameter: gov.irs.uprating
rounding:
type: downwards
interval: 100
SEPARATE:
values:
2025-01-01: 120_000
metadata:
uprating:
parameter: gov.irs.uprating
rounding:
type: downwards
interval: 100
HEAD_OF_HOUSEHOLD:
values:
2025-01-01: 160_000
metadata:
uprating:
parameter: gov.irs.uprating
rounding:
type: downwards
interval: 100
SURVIVING_SPOUSE:
values:
2025-01-01: 160_000
metadata:
uprating:
parameter: gov.irs.uprating
rounding:
type: downwards
interval: 100
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could you add it to the refundable credits in DC

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add it to the refundable credits list would cause errors in the "conrtib" folder.

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
description: DC reduces the Child Tax Credit expansion by this amount for each increment by which one's income exceeds the phase-out thresholds.
hua7450 marked this conversation as resolved.
Show resolved Hide resolved
values:
2025-01-01: 20
metadata:
unit: currency-USD
label: DC Child Tax Credit phase-out amount
period: year
reference:
- title: Code of the District of Columbia § 47–1806.17(b)(2)
href: https://code.dccouncil.gov/us/dc/council/code/sections/47-1806.17##(b)(2)
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
description: DC reduces the Child Tax Credit expansion by a certain amount for each of this increment by which one's income exceeds the phase-out thresholds.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
description: DC reduces the Child Tax Credit expansion by a certain amount for each of this increment by which one's income exceeds the phase-out thresholds.
description: DC reduces the Child Tax Credit by a certain amount for each of this increment by which one's income exceeds the phase-out thresholds.

values:
2025-01-01: 1_000
metadata:
unit: currency-USD
label: DC Child Tax Credit phase-out increment
period: year
reference:
- title: Code of the District of Columbia § 47–1806.17(b)(2)
href: https://code.dccouncil.gov/us/dc/council/code/sections/47-1806.17#(b)(2)
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
- name: Case 1, no phase_out, single filer with 2 qualifying children.
period: 2025
input:
adjusted_gross_income: 120_000
filing_status: SINGLE
dc_ctc_eligible_children_count: 2
state_code: DC
output:
dc_ctc: 840

- name: Case 2, no phase_out, jointly filers with 4 qualifying children.
period: 2025
input:
adjusted_gross_income: 200_000
filing_status: JOINT
dc_ctc_eligible_children_count: 4
state_code: DC
output:
dc_ctc: 1_260

- name: Case 3, income above income threshold, single filer with 2 qualifying children.
period: 2025
input:
adjusted_gross_income: 162_000
filing_status: SINGLE
dc_ctc_eligible_children_count: 2
state_code: DC
output:
dc_ctc: 800

- name: Case 4, income above income threshold, jointly filers with 4 qualifying children.
period: 2025
input:
adjusted_gross_income: 245_000
filing_status: JOINT
dc_ctc_eligible_children_count: 4
state_code: DC
output:
dc_ctc: 1_160
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
- name: Case 1, 1 dependent child that is also age qualify.
period: 2025
input:
people:
person1:
is_tax_unit_head: true
person2:
is_tax_unit_spouse: true
person3:
is_tax_unit_dependent: true
age: 5
tax_units:
tax_unit:
members: [person1, person2, person3]
households:
household:
members: [person1, person2, person3]
state_code: DC
output:
dc_ctc_eligible_children_count: 1

- name: Case 2, 2 dependent children, both age qualify.
period: 2025
input:
people:
person1:
is_tax_unit_head: true
person2:
is_tax_unit_dependent: true
age: 4
person3:
is_tax_unit_dependent: true
age: 5
tax_units:
tax_unit:
members: [person1, person2, person3]
households:
household:
members: [person1, person2, person3]
state_code: DC
output:
dc_ctc_eligible_children_count: 2

- name: Case 3, 2 dependent children, both age unqalify.
period: 2025
input:
people:
person1:
is_tax_unit_head: true
person2:
is_tax_unit_dependent: true
age: 8
person3:
is_tax_unit_dependent: true
age: 7
tax_units:
tax_unit:
members: [person1, person2, person3]
households:
household:
members: [person1, person2, person3]
state_code: DC
output:
dc_ctc_eligible_children_count: 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
from policyengine_us.model_api import *
from numpy import ceil


class dc_ctc(Variable):
value_type = float
entity = TaxUnit
label = "DC Child Tax Credit"
unit = USD
definition_period = YEAR
reference = (
"https://code.dccouncil.gov/us/dc/council/code/sections/47-1806.17"
)

def formula(tax_unit, period, parameters):
p = parameters(period).gov.states.dc.tax.income.credits.ctc
income = tax_unit("adjusted_gross_income", period)
filing_status = tax_unit("filing_status", period)
income_threshold = p.income_threshold[filing_status]
# For each $1000 above income threshold, the ctc amount decrease by $20.
excess = max_(0, income - income_threshold)
increments = ceil(excess / p.phase_out.increment)
phase_out = increments * p.phase_out.amount

eligible_children_count = tax_unit(
hua7450 marked this conversation as resolved.
Show resolved Hide resolved
"dc_ctc_eligible_children_count", period
)
children_count = min_(p.child.child_cap, eligible_children_count)
hua7450 marked this conversation as resolved.
Show resolved Hide resolved
amount_before_phase_out = p.amount * children_count
hua7450 marked this conversation as resolved.
Show resolved Hide resolved

return amount_before_phase_out - phase_out
hua7450 marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from policyengine_us.model_api import *


class dc_ctc_eligible_children_count(Variable):
value_type = float
entity = TaxUnit
label = "DC CTC eligible children count"
definition_period = YEAR
reference = (
"https://code.dccouncil.gov/us/dc/council/code/sections/47-1806.17"
)

def formula(tax_unit, period, parameters):
p = parameters(period).gov.states.dc.tax.income.credits.ctc.child
person = tax_unit.members
age = person("age", period)
age_qualify = age < p.age_threshold
is_dependent = person("is_tax_unit_dependent", period)
ctc_eligible_children = age_qualify & is_dependent
return tax_unit.sum(ctc_eligible_children)