Public sector · US state unemployment insurance agency
A state unemployment agency turned its eligibility code into DMN tables its policy staff could read.
A Discovery Scan on the agency's claims and eligibility system extracted benefit eligibility rules from Java EE session beans and PL/SQL packages into reviewed DMN tables, replacing a planned third-party code audit of about $300,000.
- Customer
- US state unemployment insurance agency
- Code
- 800,000 LOC estate · 460,000 LOC scanned
- Stack
- Java EE 6 (EJB 3.0)Apache Struts 1.3Oracle PL/SQLOracle 12cSOAP / JAX-WSGit
- Discovery Scan fee for the claims and eligibility system
- $25,000
- Discovery Scan fee for the claims and eligibility system
- planned third-party code audit no longer needed
- ~$300,000
- planned third-party code audit no longer needed
- eligibility and benefit calculation rules in 96 DMN tables
- 1,137
- eligibility and benefit calculation rules in 96 DMN tables
- from install to policy staff sign-off
- 3 weeks
- from install to policy staff sign-off
The challenge
What they were up against.
The agency's unemployment insurance system is about 800,000 lines across a Java EE claims application, a Struts intake front end and a large body of Oracle PL/SQL that calculates monetary eligibility, weekly benefit amounts and disqualification periods. It was built in the mid-2000s by a vendor whose team has since dispersed. When the legislature changed the base period rules, the agency could not say with confidence where every base period calculation lived. Its modernization plan called for a third-party code audit, priced at roughly $300,000, before a procurement for the replacement system could be written. The procurement office also needed requirements a vendor could bid against, which meant the rules had to be readable by policy staff, not only by engineers.
The approach
How the work ran.
Scope: one system, one Discovery Scan
The agency scoped the Discovery Scan to the claims and eligibility system, about 460,000 lines: the EJB claim services, the Struts intake actions and the PL/SQL eligibility packages. Employer tax and reporting code, the remaining 340,000 lines, stayed out of scope for a later phase. PYD ENTERPRISES ran on a single virtual machine inside the state data center, with source pulled from the agency's internal Git server and Oracle DDL exported from the production schema.
Following eligibility across three layers
Eligibility logic was split across layers. Struts ActionForm validation rejected some claims at intake, a stateless session bean applied separate-employer rules, and the PL/SQL package PKG_MONETARY_ELIG computed the high-quarter wage test and the weekly benefit amount with cursors over the wage records table. A trigger on the claim table recalculated the maximum benefit amount on every update.
PYD ENTERPRISES' symbol graph connected the three: the JDBC CallableStatement in the session bean resolved to the package procedure, and trigger side effects were attached to every statement that updated the claim row. The extractor produced 1,137 rules, including two alternate base period paths that the agency's written policy manual described differently from the code.
Review with policy staff, not just engineers
Policy analysts reviewed 96 DMN decision tables with FEEL expressions instead of PL/SQL. Each row linked back to the source lines, so when the analysts disagreed with a rule, an engineer could open the exact procedure. The two base period discrepancies went to the agency's legal counsel, who confirmed the code reflected an older statute; both were recorded as known defects for the replacement system rather than carried forward.
Outcome
The Discovery Scan cost $25,000 and replaced a planned audit of about $300,000. The procurement office attached the DMN tables and the OpenAPI 3.1 contracts for the claim services to the replacement RFP, so bidding vendors priced against a rule inventory instead of a narrative. The agency has since started a second Discovery Scan on the employer tax code.
“It paid for itself many times over in the first sprint by eliminating four months of consultant code archeology.”
More stories
- Tier 2 US commercial bank18 days: from first PDS export to signed-off rule inventory
- Regional US property and casualty carrier2,380: rating and underwriting rules extracted
- Global systems integrator, core modernization practiceWeek 2: first client deliverable: rule inventory, DMN tables and OpenAPI specs
- The solution behind this storyHow PYD ENTERPRISES works for this industry
Want to check the arithmetic against your own estate? Run the ROI calculator.
Start with one system.
Request a Discovery Scan for one system up to 500,000 LOC, or try PYD ENTERPRISES on 100,000 lines for 14 days.