Skip to content
PYD ENTERPRISES

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.

ENGAGEMENT PROFILEPublic sector
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.”
Chief Information Officer, US state unemployment insurance agency

More stories

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.