Banking & financial services
Know every interest, fee and lending rule in your core before you replace it.
PYD ENTERPRISES parses deposit, lending and payments code on IBM z/OS and extracts accrual bases, fee waivers, rate tiers, underwriting decisions and ACH return handling into DMN 1.5 tables your analysts can sign off line by line.
pyd rules --domain deposits,lending
DDA + LOANS- Interest accrual rulesactual/360, actual/365, 30/360
- 214
- Fee and waiver rulesmaintenance, overdraft, NSF, wire
- 1,086
- Rate tier tablesloaded from RATE.MASTER (VSAM KSDS)
- 37
- Underwriting decisions
- 412
- ACH posting and return rules
- 268
paths flagged for review: 118 · dead paragraphs: 9.6%
Core banking logic, extracted
Five places core banking rules hide.
Switch between routines to see the COBOL, the decision table PYD ENTERPRISES extracts from it and the findings it raises for your reviewers.
1 2100-ACCRUE-INTEREST.2 IF DA-ACCT-CLOSED OR DA-ACCT-DORMANT3 GO TO 2100-EXIT4 END-IF5 IF DA-BASIS-3606 MOVE 360 TO WS-DAY-BASIS7 ELSE8 MOVE 365 TO WS-DAY-BASIS9 END-IF10 COMPUTE WS-DAILY-ACCR ROUNDED =11 DA-COLL-BAL * WS-APPLIED-RATE / WS-DAY-BASIS12 ADD WS-DAILY-ACCR TO DA-ACCR-MTD.13 2100-EXIT.14 EXIT.
| # | accountStatus | dayBasisCode | dayBasis | dailyAccrual |
|---|---|---|---|---|
| 1 | "CLOSED", "DORMANT" | - | - | 0 |
| 2 | not("CLOSED", "DORMANT") | "A" | 360 | collectedBalance * appliedRate / 360 |
| 3 | not("CLOSED", "DORMANT") | not("A") | 365 | collectedBalance * appliedRate / 365 |
source: DPACCR01.cbl:2214-2231
- resolvedDA-BASIS-360 is an 88-level on DA-DAY-BASIS-CD VALUE 'A' (copybook DPACCT, line 41)
- resolvedROUNDED: nearest, away from zero, to WS-DAILY-ACCR PIC S9(9)V9(5) COMP-3 (8 bytes)
- reviewAccrual uses collected balance, not ledger balance: confirm with deposit operations
Core replacement de-risking
Vendor core, custom core or a rebuild: the rules come first.
Most banks we work with are moving between core platforms rather than writing a core from nothing. PYD ENTERPRISES is neutral about the destination. Customers migrate from or to core platforms such as FIS, Fiserv and Jack Henry, from heavily customized in-house cores, and from vendor cores that were modified locally for decades until upgrades stopped being possible. PYD ENTERPRISES has no partnership with any core vendor; it reads your code and tells you what it does.
Three questions decide whether a core conversion goes well, and all three are answered in code, not in product manuals:
- Which rules are actually live? Interest and fee logic accumulates through decades of rate-change and product projects. Dead code analysis shows which of the fourteen accrual paragraphs can still execute.
- Where do local modifications differ from the vendor baseline? For a modified vendor core, the rule inventory of your source can be compared with the vendor's documented behavior to isolate what your bank added.
- What must the new core reproduce to the cent? Accrual basis, rounding scale and order, tier boundaries and waiver precedence become calculation specs and equivalence fixtures the conversion team runs against the new platform.
The public cost of getting a migration wrong is high. The UK regulators fined TSB a combined £48.65M in December 2022 over its 2018 platform migration. Specifications with source references do not remove migration risk, but they move the discovery of edge cases to before cutover, when they are cheap.
- combined FCA and PRA fine on TSB over its 2018 core platform migration
- £48.65M
- combined FCA and PRA fine on TSB over its 2018 core platform migration
- UK FCA and PRA final notices, 20 December 2022
- lines of COBOL estimated in daily production use worldwide
- 800B+
- lines of COBOL estimated in daily production use worldwide
- Vanson Bourne survey for Micro Focus, February 2022 (estimate range 775 to 850 billion)
- of surveyed COBOL code runs on IBM z/OS
- 43%
- of surveyed COBOL code runs on IBM z/OS
- Vanson Bourne survey for Micro Focus, February 2022
How a bank program runs
Three weeks from PDS export to signed-off rules.
The sequence a Tier 2 bank followed on 2.5 million lines of COBOL and CICS.
- 01Install inside the bankSigned images on your Kubernetes cluster or a single 32-vCPU node, egress denied, offline license key. Security reviews the network policy before source is mounted.Day 1 to 2
- 02Ingest from Endevor and DB2PDS exports of COBOL, copybooks, BMS mapsets, JCL and PROCs, plus DB2 DDL. Parsing 2.5M lines takes a few hours.Day 3
- 03Extract and classifyBusiness rules separated from plumbing (file status checks, abend handling, audit logging). Rate and fee tables mapped to the datasets that hold them.Day 4 to 5
- 04Review with deposit and lending SMEsAnalysts confirm each DMN row beside its COBOL, rename rules in business language and close the review list.Week 2 to 3
- 05Hand off to the conversion teamDMN for decision services, OpenAPI 3.1 from CICS COMMAREAs, lineage for data conversion and equivalence fixtures for parallel run.Week 3
“We extracted thirty-five years of undocumented lending calculation rules from 1.5 million lines of COBOL, and not one byte left our data center.”
FAQ
Questions from bank architects.
We are replacing our core with a vendor platform. Why extract rules from the old one?
Because the vendor platform is configured, not coded, and configuration needs a complete list of what the old core did. The rule inventory becomes the gap analysis: which accrual bases, fee waivers and return-handling rules the new core covers in parameters, which need product configuration or extension, and which can be retired.
Does any source code or customer data leave the bank?
No. PYD ENTERPRISES installs inside your data center or private VPC and runs with egress denied. It reads source code and DDL, not production account data. Generated test fixtures are synthesized from branch conditions, not copied from customer records.
How are rates and fee amounts held in VSAM or DB2 tables handled?
Values read from files and tables at run time are exported as data inputs with the dataset or table they come from, not as constants. You supply an extract of the current values if you want them populated in the decision tables.
Can regulators or internal audit use the output?
The output is evidence for your own validation: every DMN row links to the file and line range it came from, and every reviewer decision is recorded. It does not replace your model risk or audit process; it gives that process something checkable to work from.
How does PYD ENTERPRISES handle COMP-3 and rounding in interest calculations?
The COBOL front end computes byte-accurate layouts for every packed-decimal field and records the precision of every intermediate and receiving field, plus whether ROUNDED is specified. Calculation specs state the rounding mode and scale at each step so the target implementation can match it exactly.
Go deeper
- Extracting interest calculation rulesAccrual bases, rounding and rate tables from COBOL
- COMP-3 packed decimal arithmeticWhy balances drift when packed decimals are translated naively
- COBOL to Java Spring Boot guideFrom extracted spec to target services
- COBOL, CICS and JCL parserCopybooks, REDEFINES, BMS maps and JCL lineage
Scan one core banking system in your own data center.
A Discovery Scan covers one system up to 500,000 LOC for $25,000. Or start a 14-day trial on up to 100,000 lines.