On this page · 5 sections
What happened, in brief
In April 2020, unemployment claims in the United States rose faster than any state benefit system had been designed for. Several states whose systems run on COBOL struggled publicly, and the Governor of New Jersey asked for volunteers with COBOL skills to help. For a few weeks, a programming language from 1959 was front-page news.
Most of the coverage framed it as a story about old code failing under load. That framing is incomplete. Capacity problems in that period showed up in many layers, including web front ends, identity verification and call centers, and many of the mainframe batch systems kept processing. The part that was genuinely hard, and that matters for anyone planning modernization, was change: new federal programs and temporary benefit rules had to be implemented in weeks, in code whose eligibility logic was understood in detail by very few people.
The rules are the asset, and the risk
A state unemployment insurance system encodes a long list of rules: monetary eligibility from base period wages, the weekly benefit amount formula and its cap, waiting weeks, partial benefit earnings disregards, work search requirements, disqualification periods and overpayment recovery. Each was changed many times by legislation, and each change was implemented as a patch to existing code.
When a new rule arrives on short notice, the first question is not how to write the code. It is where the existing rules live and what else touches them. If the answer takes a senior developer three days of reading, the change takes weeks, and the risk of breaking an unrelated rule rises with every hour of pressure.
1 3000-CALC-WBA.2 COMPUTE WS-WBA = CLM-HIGH-QTR-WAGES / 263 IF WS-WBA > ST-MAX-WBA4 MOVE ST-MAX-WBA TO WS-WBA5 END-IF6 IF WS-WBA < ST-MIN-WBA7 MOVE ZERO TO WS-WBA8 SET CLM-MONETARY-INELIGIBLE TO TRUE9 END-IF10 IF CLM-DEPENDENTS > 0 AND ST-DEP-ALLOW-ON11 COMPUTE WS-WBA = WS-WBA + (CLM-DEPENDENTS * ST-DEP-ALLOW)12 END-IF.
Why an inventory changes response time
Look at the fragment above with an emergency change in mind. A new rule adds a flat weekly supplement for claimants who are eligible for any amount. Where does it go? Before the maximum cap, or after? Should the dependents allowance be capped? Does the supplement count against the earnings disregard in the partial benefits program three modules away?
With a rule inventory, each of those questions has a lookup answer. The weekly benefit amount is a small decision model with a formula, a cap, a floor that sets an eligibility flag, and a dependents allowance applied after the cap. Every program that reads WS-WBA or its persisted copy is listed, with the line where it reads it. The change can be designed in an afternoon and tested against generated fixtures for every branch: below the floor, at the floor, at the cap, above the cap, with and without dependents.
Note the subtle rule in the fragment: the dependents allowance is added after the cap, so a claimant at the maximum still receives it. A rewrite that applies the cap last would quietly cut benefits for every claimant with dependents at the maximum. That is the kind of difference that never shows up in a demo and always shows up in a constituent complaint.
The public sector budget reality
Agencies know their systems are old. The constraint is money and time. The US GAO reported in GAO-16-468 that about 75% of the federal FY2015 IT budget went to operating and maintaining existing systems, which leaves little for replacement. State agencies face similar arithmetic, plus procurement cycles that can take longer than a legislative session.
That makes the sequence important. A full replacement may be years away. A complete, reviewed inventory of the current system's rules is useful immediately: for emergency changes, for audit questions, for training new staff and, when the replacement does come, as the requirements baseline the vendor builds and tests against.
What we recommend to agencies
- Inventory before you replace. Run a full parse and rule extraction on the benefits system now, while the people who know it can still review the output.
- Keep the inventory current. Re-scan after each release so the rules and their source references stay accurate.
- Write the equivalence suite early. Fixtures for every eligibility and benefit amount rule turn the next emergency change into a test-first exercise.
- Separate policy from plumbing. Most of the code is I/O, screen handling and batch control. The policy is a much smaller set of decisions, and that is what legislators and program staff need to see.
None of this requires code to leave the agency's network. PYD ENTERPRISES runs inside the state data center or a government cloud tenancy with egress denied. The government and public sector page covers procurement-friendly options, and the state agency customer story describes a benefits rules extraction in practice.