Check the Worksheet Sign the petition

A model of the worksheet, checked against the form’s own scripts as well as against itself

Findings states what the checks show.

This page is the proof.

model/worksheet.py reimplements CJ-D 304 line by line

model/worksheet.py transcribes the 2025 Guidelines Worksheet start to finish: income, income shares and cap, Table A and B, the age adjustment, the low-income floor, child care, the income-disparity adjustment, the hardship test, and all three custody boxes. model/guidelines.py holds Table A and B as published, checked against all 1,104 rows of the Commonwealth’s own Guidelines Chart (data/extracted/guidelines-chart.json), with no disagreement over one dollar.

A tax model computes what each party actually keeps

model/net_position.py converts gross income to spendable income after tax, so a finding can compare an order against what a household spends. Every published figure on this site uses its withholding basis: federal income tax, Massachusetts income tax, and Social Security and Medicare, the same formula for both parents, no filing status, no dependents, no credits — reproducible from a published table by anyone. The module can also compute a credits-inclusive figure, adding the EITC, Child Tax Credit, and the refundable Massachusetts Child and Family Tax Credit; that mode is not used for any headline figure, and is exposed as the calculator’s optional “count credits” view, explained on its own page. One figure computed on it is published: the 49.7 percent child care share on the recommendations page, shown there beside the narrower figure the comments actually ask for.

Five extension models, and scripts printing every quoted figure

Six test suites, 496 checks, all passing, gate every quoted number

Suite Checks What it pins
model/test_guidelines.py 20 Table A/B vs. the published chart
model/test_worksheet.py 60 The disclosed order and the form’s rounding
model/test_box1_fix.py 258 The Box 1 credit and its redlines
model/test_childcare_post_transfer.py 20 Child care on post-transfer shares
model/test_ccpa_grid.py 55 Orders over the federal withholding ceiling, all four rates, plus the round-4 hardship overlap
model/test_net_caps.py 88 The 40 and 30 percent net-pay ceilings

A harness runs the Commonwealth’s own scripts instead of a re-derivation

The published CJ-D 304 is a fillable XFA form with embedded scripts, extracted at data/extracted/cjd304-xfa.xml by model/inspect_worksheet.py. The dependency-free model/official_xfa_harness.js (Node) executes those scripts. model/run_official_xfa.py runs six scenarios against model/worksheet.py.

The two agree on the final order in all six: $1,016, $1,091, $1,355, $1,280, $1,274, $1,010 (unrounded arithmetic differs by a few dollars, e.g. $1,012.72 against $1,016, from rounding each line before the next uses it, reproduced with round_lines=True). This is the project’s strongest check: the Commonwealth’s own code, not another analyst’s reading of the form.

Reproduce every number here

Nothing beyond the standard library is needed, plus Node on PATH for the XFA harness. Each file above runs as python3 <path>. Redrawing the figures needs matplotlib and numpy, then python3 model/charts/make_all.py.

Check it yourself

Every command above runs against files in this repository; no network access needed.

Sign the petition to fix child support →