Skip to content

Replace dead Mid-Atlantic state reference URLs - #9769

Merged
MaxGhenis merged 3 commits into
mainfrom
dead-urls-midatlantic
Oct 4, 2026
Merged

MaxGhenis merged 3 commits into
mainfrom
dead-urls-midatlantic

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Part of the repo-wide audit of dead reference URLs outside tax.ny.gov (follow-up to #9711 and #9730). This PR covers the Mid-Atlantic (Maryland Comptroller and Montgomery County, DC Office of Tax and Revenue, Delaware DHSS, Pennsylvania Revenue, Virginia DSS and open data, West Virginia DHHR and BFA, New Jersey).

  • 40 dead URLs, cited by 313 references, now point to a live copy of the same document, a live official page with the same content, or a pinned Wayback capture of the dead URL with the same #page.
  • Only URLs change, apart from ruff format re-wrapping eleven Python tuples whose longer URL pushed a line past 88 characters. A script checked that every changed line under parameters/, variables/ and docs/ differed from the old line only inside URLs before formatting.
  • policyengine_us/tests/code_health/known_dead_reference_urls/midatlantic.toml lists 39 of the dead prefixes, so the offline guard from Replace dead NY tax department reference URLs #9711 fails if they return.

How each URL was checked

  1. Dead: GET with curl -sL -A "Mozilla/5.0" on 2026-09-30, rechecked with a Chrome user agent. A 403, 429 or bot challenge counted as unknown, not dead, and was rechecked inside a real browser page; URLs still behind a bot wall were left unchanged. A 200 that landed on a home, search, login or not-found page counted as dead.
  2. Replacement: one research agent per batch looked for the same document on the agency's current site, then for an official page stating the same content for the same period, then for a pinned Wayback capture. Each mapping records the quoted content it checked.
  3. Independent verification: a second agent re-checked every live replacement and a sample of the Wayback ones against the values the citing file uses (pdftotext on the cited #page for PDFs). Disputed items went to an adjudicator under fixed rules: the agency's own site, then another official publisher, then a Wayback capture of the dead URL. Third-party mirrors (taxformfinder.org, NBER and the like) were not accepted for official citations.
  4. Mechanical: every replacement URL returned 200 with the expected content type. Wayback URLs use 14-digit timestamps and replay the same original URL, and every #page exists in its PDF. A few replacements behind bot walls were confirmed in a browser instead.

Changes

Dead URL Dead because Kind New target Refs
https://bfa.wv.gov/media/2766/download?inline 404 live, fragment updated https://bfa.wv.gov/media/40005/download?inline 9
https://data.virginia.gov/dataset/general-child-care-subsidy-program-maximum-reimbursement-rates 404 Wayback https://web.archive.org/web/20251223225619/https://data.virginia.gov/dataset/general-child-care-subsidy-program-maximum-reimbursement-rates 14
https://dhhr.wv.gov/bcf/Services/familyassistance/Documents/726/726%20ch11_1.pdf 404 Wayback https://web.archive.org/web/20161226193813/https://dhhr.wv.gov/bcf/Services/familyassistance/Documents/726/726%20ch11_1.pdf 1
https://dhhr.wv.gov/bcf/Services/familyassistance/Documents/744/ch10_apa.pdf 404 live, fragment updated https://bfa.wv.gov/media/40005/download?inline 1
https://dhhr.wv.gov/bcf/Services/familyassistance/PolicyManual/Documents/Chapter%2011/ch11_3.pdf 404 live, fragment updated https://bfa.wv.gov/media/40005/download?inline 1
https://dhss.delaware.gov/dss/childcr/ 404 Wayback https://web.archive.org/web/20260614012446/https://dhss.delaware.gov/dss/childcr/ 16
https://dhss.delaware.gov/wp-content/uploads/sites/11/dss/pdf/OCT2022COLA.pdf 404 live, fragment kept https://dhss.delaware.gov/wp-content/uploads/sites/2/dss/pdf/OCT2022COLA.pdf 1
https://dhss.delaware.gov/wp-content/uploads/sites/11/dss/pdf/PurchaseofCareProviderHandbook_FINAL1_25_2023.pdf 404 live, fragment updated https://dhss.delaware.gov/wp-content/uploads/sites/2/dss/pdf/PurchaseofCareProviderHandbook_FINAL1_25_2023.pdf 1
https://dhss.delaware.gov/wp-content/uploads/sites/11/dss/pdf/detanfstateplan2017.pdf 404 live, fragment kept https://dhss.delaware.gov/wp-content/uploads/sites/2/dss/pdf/detanfstateplan2017.pdf 16
https://dhss.delaware.gov/wp-content/uploads/sites/11/dss/pdf/tanf_ffy2012_stateplan.pdf 404 live, fragment updated https://dhss.delaware.gov/wp-content/uploads/sites/2/dss/pdf/tanf_ffy2012_stateplan.pdf 1
https://marylandtaxes.gov/forms/22_forms/502CR.pdf 404 Wayback, fragment kept https://web.archive.org/web/20250228155322/https://marylandtaxes.gov/forms/22_forms/502CR.pdf 3
https://marylandtaxes.gov/forms/24-forms/502CR.pdf 404 live, fragment kept https://www.marylandcomptroller.gov/content/dam/mdcomp/tax/forms/2024/502CR.pdf 2
https://otr.cfo.dc.gov/page/individual-income-tax-special-circumstances-faqs 404 Wayback https://web.archive.org/web/20220726171620/https://otr.cfo.dc.gov/page/individual-income-tax-special-circumstances-faqs 1
https://otr.cfo.dc.gov/sites/default/files/dc/sites/otr/publication/attachments/2023_D40_Book_Final_012324 404 live, fragment kept https://otr.cfo.dc.gov/sites/default/files/dc/sites/otr/publication/attachments/2023_D40_Book_Final_012324.pdf 1
https://otr.cfo.dc.gov/sites/default/files/dc/sites/otr/publication/attachments/2025_D40_Book_Final_wLinks_021226_v1.0.pdf 404 live, fragment updated https://otr.cfo.dc.gov/sites/default/files/dc/sites/otr/publication/attachments/2025_D40_Book_082026_v1.pdf 18
https://otr.cfo.dc.gov/sites/default/files/dc/sites/otr/publication/attachments/2025_D40_Book_Final_wLinks_030526_v1.0.pdf 404 live, fragment kept https://otr.cfo.dc.gov/sites/default/files/dc/sites/otr/publication/attachments/2025_D40_Book_082026_v1.pdf 2
https://www.dss.virginia.gov/files/division/bp/tanf/manual/200_7-20.pdf 404 live, fragment kept https://www.dss.virginia.gov/media/vdss/benefit-programs/documents/tanfx2fview/tanf/Chapter-200---Categorical-Eligibility-Requirements.pdf 1
https://www.dss.virginia.gov/files/division/bp/tanf/manual/300_11-20.pdf 404 Wayback, live, fragment updated https://web.archive.org/web/20210719231146/https://www.dss.virginia.gov/files/division/bp/tanf/manual/300_11-20.pdf
https://www.dss.virginia.gov/media/vdss/benefit-programs/documents/tanfx2fview/tanf/Chapter-300---Need-and-Amount-of-Assistance.pdf
31
https://www.dss.virginia.gov/files/division/bp/tanf/manual/700_07-20.pdf 404 live, fragment kept https://www.dss.virginia.gov/media/vdss/benefit-programs/documents/tanfx2fview/tanf/Chapter-700---TANF-UP-Unemployed-Parent-Program.pdf 2
https://www.marylandcomptroller.gov/content/dam/mdcomp/tax/instructions/2022/Resident_Booklet.pdf 404 live, fragment kept https://interactive.marylandtaxes.gov/Individuals/iFile_ChooseForm/PriorYearForms/Resident_Booklet_2022.pdf 11
https://www.marylandcomptroller.gov/content/dam/mdcomp/tax/instructions/2023/Resident_Booklet.pdf 404 live, fragment kept https://www.marylandcomptroller.gov/content/dam/mdcomp/tax/instructions/2023/Resident-Booklet.pdf 11
https://www.marylandcomptroller.gov/content/dam/mdcomp/tax/instructions/2024/Resident_Booklet.pdf 404 live, fragment kept https://www.marylandcomptroller.gov/content/dam/mdcomp/tax/instructions/2024/Resident-Booklet.pdf 11
https://www.marylandtaxes.gov/forms/20_forms/502CR.pdf 404 Wayback, fragment kept https://web.archive.org/web/20210421021929/https://www.marylandtaxes.gov/forms/20_forms/502CR.pdf 1
https://www.marylandtaxes.gov/forms/20_forms/Resident_Booklet.pdf 404 live, fragment kept https://interactive.marylandtaxes.gov/Individuals/iFile_ChooseForm/PriorYearForms/Resident_Booklet_2020.pdf 1
https://www.marylandtaxes.gov/forms/21_forms/502CR.pdf 404 Wayback, fragment updated https://web.archive.org/web/20220511190607/https://www.marylandtaxes.gov/forms/21_forms/502CR.pdf 3
https://www.marylandtaxes.gov/forms/21_forms/Resident_Booklet.pdf 404 live, fragment kept https://interactive.marylandtaxes.gov/Individuals/iFile_ChooseForm/PriorYearForms/Resident_Booklet_2021.pdf 32
https://www.marylandtaxes.gov/forms/22_forms/Resident_Booklet.pdf 404 live, fragment updated https://interactive.marylandtaxes.gov/Individuals/iFile_ChooseForm/PriorYearForms/Resident_Booklet_2022.pdf 24
https://www.marylandtaxes.gov/forms/24-forms/Nonresident-Booklet.pdf 404 live, fragment kept https://www.marylandcomptroller.gov/content/dam/mdcomp/tax/instructions/2024/Nonresident-Booklet.pdf 1
https://www.marylandtaxes.gov/forms/24-forms/Resident-Booklet.pdf 404 live, fragment updated https://www.marylandcomptroller.gov/content/dam/mdcomp/tax/instructions/2024/Resident-Booklet.pdf 40
https://www.marylandtaxes.gov/forms/current_forms/Md_Tax_Computation.pdf 404 Wayback https://web.archive.org/web/20200929021131/https://www.marylandtaxes.gov/forms/current_forms/Md_Tax_Computation.pdf 5
https://www.marylandtaxes.gov/forms/current_forms/Resident-Booklet.pdf 404 live, fragment kept https://www.marylandcomptroller.gov/content/dam/mdcomp/tax/instructions/2023/Resident-Booklet.pdf 2
https://www.montgomerycountymd.gov/OLO/Resources/Files/eis/2021/EIS-EBill14-21.pdf 404 live https://assets.montgomerycountymd.gov/files/EIS-EBill14-21.pdf 1
https://www.nj.gov/humanservices/providers/grants/public/publicnoticefiles/Draft%20New%20Jersey%20State%20Plan%20for%20Temporary%20Assistance%20for%20Needy%20Families%20(TANF)%20FFY%202024%20-%20FFY%202026.pdf 404 live, fragment kept https://www.nj.gov/humanservices/notices/documents/public-notices/Draft%20New%20Jersey%20State%20Plan%20for%20Temporary%20Assistance%20for%20Needy%20Families%20(TANF)%20FFY%202024%20-%20FFY%202026.pdf 6
https://www.nj.gov/treasury/taxation/proptaxdeduc_credit.shtml 404 live https://www.nj.gov/treasury/taxation/njit35.shtml 1
https://www.nj.gov/treasury/taxation/staynj/calculation.shtml 404 Wayback https://web.archive.org/web/20260710135754/https://www.nj.gov/treasury/taxation/staynj/calculation.shtml 2
https://www.revenue.pa.gov/FormsandPublications/FormsforIndividuals/PIT/Documents/2021/2021_pa-40in.pdf redirects live, fragment kept https://www.pa.gov/content/dam/copapwp-pagov/en/revenue/documents/formsandpublications/formsforindividuals/pit/documents/2021/2021_pa-40in.pdf 26
https://www.revenue.pa.gov/FormsandPublications/FormsforIndividuals/PIT/Documents/2021/2021_pa-40sp.pdf redirects live https://www.pa.gov/content/dam/copapwp-pagov/en/revenue/documents/formsandpublications/formsforindividuals/pit/documents/2021/2021_pa-40sp.pdf 1
https://www.revenue.pa.gov/FormsandPublications/FormsforIndividuals/PIT/Documents/2022/2022_pa-40dc.pdf redirects live, fragment kept https://www.pa.gov/content/dam/copapwp-pagov/en/revenue/documents/formsandpublications/formsforindividuals/pit/documents/2022/2022_pa-40dc.pdf 2
https://www.revenue.pa.gov/FormsandPublications/FormsforIndividuals/PIT/Documents/2023/2023_pa-40dc.pdf redirects live, fragment kept https://www.pa.gov/content/dam/copapwp-pagov/en/revenue/documents/formsandpublications/formsforindividuals/pit/documents/2023/2023_pa-40dc.pdf 1
https://www.revenue.pa.gov/FormsandPublications/FormsforIndividuals/PIT/Documents/2023/2023_pa-40in.pdf redirects live, fragment kept https://www.pa.gov/content/dam/copapwp-pagov/en/revenue/documents/formsandpublications/formsforindividuals/pit/documents/2023/2023_pa-40in.pdf 9

Left unchanged

These URLs are not changed here; each needs more than a URL swap or turned out not to be dead.

  • https://www.pa.gov/content/dam/copapwp-pagov/en/revenue/documents/: not-dead (False positive. In pa_property_tax_or_rent_rebate_income.py, lines 11, 14 and 17 each start a URL split over three implicitly concatenated Python string literal)

Not listed in the guard

  • https://otr.cfo.dc.gov/sites/default/files/dc/sites/otr/publication/attachments/2023_D40_Book_Final_012324: replacement differs only in scheme or www., which the guard treats as the same URL.

Pre-existing citation gaps (not fixed here)

The replacement keeps the original document and page, but the cited page does not show every value the file uses. These need a separate look because one URL is shared by files that cite different pages.

  • https://dhss.delaware.gov/wp-content/uploads/sites/11/dss/pdf/detanfstateplan2017.pdf#page=6: Same document, same page; recipient $30+1/3 (p7) and the $50 child-support disregard (absent) were never on the cited page.
  • https://www.marylandtaxes.gov/forms/24-forms/Resident-Booklet.pdf#page=14: Same 2024 booklet on the renamed agency domain (pp14/18/20/22/26 text identical to the Jan 2025 capture). EITC and poverty-credit values were on pp22/26, never p14.
  • https://www.marylandtaxes.gov/forms/24-forms/Resident-Booklet.pdf#page=20: Same 2024 booklet, same page. The $1,200 two-income cap (max_two_income_subtraction.yaml) is on p18, a gap already in the original.
  • https://www.marylandtaxes.gov/forms/24-forms/Nonresident-Booklet.pdf#page=13: Same 2024 Nonresident booklet (Feb 27 2025 reprint; p13 values unchanged). Single $2,700 is on p12, a gap already in the original. A resident booklet would be a different document.
  • https://www.marylandtaxes.gov/forms/current_forms/Md_Tax_Computation.pdf: Exact-URL capture; every 2020-2025 capture has the same digest. The 2%/3%/4% brackets were never in this 1-page table, a gap already in the original.
  • https://www.marylandtaxes.gov/forms/21_forms/Resident_Booklet.pdf#page=12: Byte-identical live copy; page kept. pension/min_age.yaml's age 65 is on p13, a gap already in the original (dropping the page per the verifier would lose precision).
  • https://www.marylandtaxes.gov/forms/22_forms/Resident_Booklet.pdf#page=13: Byte-identical live copy; page kept. sources.yaml spans subtractions on pp13-18, a gap already in the original.

Changes after review

An independent review (GPT-6.1 Sol) found no wrong replacement and raised three should-fix items:

  • Virginia child care rates (adopted). The thirteen rate and ready-region references now cite the live VDOE Child Care Program Guidance Manual, Appendix F (page 143), instead of an archived open-data page. The part-day factor keeps the archived dataset page, the only source for it.
  • Python re-wrapping (kept). Eleven Python files were re-wrapped by ruff format because the longer URLs push a line past 88 characters. CI's ruff format --check fails without it. So in those files the change is the URL plus the wrapping of the surrounding tuple; the reviewer confirmed by AST comparison that logic and values are unchanged.
  • Maryland 2021 Form 502CR page (kept). One reference moves from #page=7 to #page=6 on the archived form, because the 32% credit and thresholds it cites are on page 6; Replace dead NY tax department reference URLs #9711 corrected page citations the same way. The reviewer's alternative, a 2023 Department of Legislative Services report, is a different document from the Form 502CR the reference title names.

Overlap with #9627 and #9609

Both of those open PRs (untouched since late September) edit reference lines in Maryland files this PR also touches, so whichever lands second will need a small rebase:

Verification

  • pytest policyengine_us/tests/code_health/test_known_dead_reference_urls.py passes locally, including the new entries.
  • ruff format --check . (locked ruff 0.15.5) passes.
  • No parameter values, dates, titles or labels change.

axiom: n/a: reference-only

🤖 Generated with Claude Code

Repoints dead reference URLs to the same document at a live official URL, an official page with the same content, or a pinned Wayback capture of the dead URL. Only URLs change. Lists the dead prefixes in known_dead_reference_urls/midatlantic.toml for the offline guard.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov

codecov Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 73.65%. Comparing base (909176a) to head (7b85bc1).
⚠️ Report is 162 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##              main    #9769       +/-   ##
============================================
- Coverage   100.00%   73.65%   -26.35%     
============================================
  Files            4       58       +54     
  Lines           76      930      +854     
  Branches         2        4        +2     
============================================
+ Hits            76      685      +609     
- Misses           0      245      +245     
Flag Coverage Δ
unittests 73.65% <100.00%> (-26.35%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Cite the live VDOE Child Care Program Guidance Manual (Appendix F, Level 1
Maximum Reimbursable Rates) for the thirteen Virginia child care rate and
ready-region references instead of an archived open-data page. The part-day
factor keeps the archived dataset page, which is the only source for it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Hand-off to the US + core hub (session 621e3c96-545d-4048-a211-43cf6d93cfe8).

  • Head: 72ebd075f710e736d16e523c0ca6fc7340779bdd. The independent review (GPT-6.1 Sol, tier hard) at this head is APPROVE: /Users/maxghenis/reviews/dead-reference-urls-2026-09-30/outputs/delta-9769.md. Remaining notes in that review are pre-existing citation issues, tracked in ~/reviews/dead-reference-urls-2026-09-30/FOLLOWUPS.md and in a follow-up task.
  • Passing: every check except codecov/project and Full Suite - Rest.
  • Pending, not caused by this PR:
  • Depends on: Fix read-only cache tests with Core 3.32.16 #9782 Leave untested changed sources out of Quick Feedback coverage #9778.
  • Land: squash-merge with --match-head-commit once gh pr checks exits 0. This PR is reference-only (axiom: n/a: reference-only).

@MaxGhenis
MaxGhenis merged commit 8fa1688 into main Oct 4, 2026
37 checks passed
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Merged by the US + core hub on the merge gates:

  • Head: 7b85bc1. That is the reviewed head 72ebd07 plus a merge of main (picks up Fix read-only cache tests with Core 3.32.16 #9782 and Make Codecov's project status informational #9777). The PR diff is byte-identical.
  • CI: all check runs successful on this head.
  • Reviews: the dead-URL session's delta review APPROVE on 72ebd07 (/reviews/dead-reference-urls-2026-09-30/outputs/delta-9769.md). Reference URLs only. The hub's GPT-6.1 Sol batched main-merge check approved this head (/reviews/us-hub/lander/batch3-mainmerge-review-r2.md).
  • Admin merge: used only for the required-review rule, at the reviewed head.

@MaxGhenis
MaxGhenis deleted the dead-urls-midatlantic branch October 4, 2026 12:10
MaxGhenis added a commit that referenced this pull request Oct 4, 2026
Resolved two Maryland conflicts with #9769 by taking its replacement
URLs and re-adding the missing commas.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant