Refinery
refinery.guru/portal/audits/REF-20260523-0001
SyntheticRunner
Audit Engine
Audit Records 3
Blast Radius
Change Contracts 2
CI/CD
refinery_bot
API / Webhooks
Governance
Sign-off Queue
📄 Regulatory Map
Runner
SyntheticRunner
Audit Records + Run audit
INTEREST01.cob FLAGGED
*--- AMORTISATION ACCUMULATORS --- - 01 WS-TOTAL-INTEREST PIC 9(11)V99 VALUE ZEROS. + 01 WS-TOTAL-INTEREST PIC 9(11)V99 COMP-3 VALUE ZEROS. - 01 WS-RUNNING-BALANCE PIC 9(9)V99 VALUE ZEROS. + 01 WS-RUNNING-BALANCE PIC 9(9)V99 COMP-3 VALUE ZEROS. *--- DEAD STORAGE REMOVED --- - 01 WS-UNUSED-RATE-COPY PIC 9V9999 VALUE ZEROS. - 01 WS-SCRATCH-AMT PIC 9(7)V99 VALUE ZEROS. - 01 WS-LEGACY-TERM PIC 9(3) VALUE ZEROS.
Risk score
40/100
DATA_TYPE HIGH
Blast radius
38/100
3 callers + 5 copybooks
CPU reduction
8.3%
COMP-3 6 fields
Checks run
10
1 fired · HIGH
Today — 2026-05-23
INTEREST01.cob FLAGGED
DATA_TYPE · COMP-3 addition · IBM Bob
REF-20260523-0001 · SyntheticRunner
PAYROLL01.cob PASS
VERB_COUNT · PERFORM reorder · Copilot
REF-20260523-0002 · SyntheticRunner
CREDIT-SCORE.cob CRO pending
CONDITION_NAME · 88-level change · IBM Bob
REF-20260523-0003 · SyntheticRunner
Yesterday — 2026-05-22
LOAN-AMORT.cob Deployed
COMPUTE_EXPR · CRO signed · 09:14
REF-20260522-0009 · SyntheticRunner
RATE-CALC.cob PASS
No semantic changes · risk_score 0
REF-20260522-0008 · SyntheticRunner
INTEREST01.cob — REF-20260523-0001
IBM Bob  ·  INTEREST01_ORIGINAL.cob → INTEREST01_MODIFIED.cob  ·  14:23  ·  FLAGGED  ·  exit code 1
R
audit.engine 14:23:01.042
Audit initiated. Program: INTEREST01  ·  Author: FNB-RISK-ANALYTICS  ·  Runner: SyntheticRunner  ·  Source: IBM Bob commit a3f2c4d1.
Comparing INTEREST01_ORIGINAL.cobINTEREST01_MODIFIED.cob.
R
parser.cobol_tree 14:23:01.188
AST built. Original: 280 LOC  ·  PIC clauses: 31  ·  PERFORM verbs: 7  ·  cyclomatic complexity: 12.
Modified: 278 LOC  ·  PIC clauses: 28  ·  PERFORM verbs: 7  ·  cyclomatic complexity: 12.
Dead storage detected: WS-UNUSED-RATE-COPY, WS-SCRATCH-AMT, WS-LEGACY-TERM removed.
R
audit.differ 14:23:01.341
Running 10 semantic checks. Checks run: 10  ·  Divergences found: 1.
10 Checks  ·  DiffResult.semantic_changes1 HIGH
COMPUTE_EXPRCALC-MONTHLY-PAYMENTPASS
DATA_TYPEWS-TOTAL-INTEREST + 6 fieldsHIGH
VERB_COUNTPROCEDURE DIVISIONPASS
REDEFINESDATA DIVISIONPASS
CALL_GRAPHNo external CALLsPASS
EQUIVALENCEequivalence_result: SKIPPEDSKIPPED
EXCEPTION_INJECTIONON SIZE ERROR intactPASS
IO_SEQUENCENo file I/O (pure compute)PASS
CONDITION_NAMENo 88-level definitionsPASS
DATAFLOWWS-MONTHLY-PAYMENT unchangedPASS
!
audit.engine — verdict 14:23:01.398
FLAGGED  ·  exit code 1  ·  risk_score: 40  ·  reduction_pct: 8.3%
DATA_TYPE HIGH: COMP-3 added to 6 accumulator fields. PIC clause storage representation changed from display decimal to packed decimal. Truncation behaviour under z/Architecture differs between formats — overflow semantics are not equivalent.
▲ 8.3% CPU saving detected  ·  COMP-3 is intentional optimisation
Bob — CRO narrative
IBM Bob added COMP-3 (packed decimal) to 6 amortisation accumulator fields in INTEREST01 and removed 3 unreferenced dead storage fields. The COMP-3 change improves z/Architecture CPU efficiency by ~8.3%, but the PIC storage representation change is flagged as DATA_TYPE HIGH under Refinery's semantic rules — packed decimal and display decimal handle truncation and overflow differently under z/OS Language Environment. A CRO review is required before promotion. The blast radius is 38/100: 3 direct callers (RETAIL-BATCH, CREDIT-CHK, AFFORD-CALC) and 5 copybook siblings share WS-RUNNING-BALANCE.
estate.impact 14:23:01.521
ImpactResult  ·  blast_radius_score: 38
direct_callers (×10): RETAIL-BATCH, CREDIT-CHK, AFFORD-CALC
transitive_callers (×3): none
copybook_siblings (×5): PAYROLL-RPT, MORTGAGE-CALC, LOAN-RPT, CREDIT-RPT, RISK-AGG
vsam_co_accessors (×4): none  ·  batch_jobs_at_risk: RETAIL-BATCH
CRO notified via portal  ·  14:24:03
CRO
Chief Risk Officer 14:31
CRO — 14:31
COMP-3 is standard on Z — why is this a HIGH severity flag? Can we approve if the test suite passes?
R
Refinery AI 14:31
Refinery AI — GET /api/audits/REF-20260523-0001/regulatory
COMP-3 is standard, but Refinery flags it as DATA_TYPE HIGH because the packed decimal format changes how z/OS Language Environment handles overflow and truncation — an issue a compiler or diff cannot detect. SR 11-7 §4.1 requires independent validation evidence for any storage representation change in a model used for credit calculations. If your test suite exercises the full range of WS-PRINCIPAL and WS-RUNNING-BALANCE values, a signed CRO approval with that evidence attached satisfies the requirement. I can generate the sign-off block — shall I draft it?
Governance Export CSV
Audits today
3
checks_run: 30 total
Flagged
2
DATA_TYPE · CONDITION_NAME
Avg reduction_pct
5.1%
CPU  ·  30-day
CRO sign-off
2
POST /api/sign pending
■ FLAGGED — Pending sign-off 2
INTEREST01.cob FLAGGED
DATA_TYPE HIGH  ·  IBM Bob
risk 40  ·  blast 38 14:23
CREDIT-SCORE.cob CRO req.
CONDITION_NAME HIGH  ·  IBM Bob
risk 55  ·  blast 62 13:41
✓ PASS — No CRO required 1
PAYROLL01.cob PASS
VERB_COUNT MEDIUM  ·  risk_score 15
risk 15  ·  blast 12 12:58
● Deployed — Signed 2
LOAN-AMORT.cob Deployed
CRO signed 09:14  ·  REF-20260522-0009
SHA-256 verified 2026-05-22
RATE-CALC.cob PASS
Auto-cleared  ·  risk_score 0
exit 0 2026-05-22