AI-assisted COBOL migration · with proof of behavioral equivalence
The translation was faithful. The interest was off by a factor of one hundred.
AI can translate COBOL in an afternoon now. It still can't tell you what a field means when the meaning was never written down. I build the harness that runs the original and the migrated system over the same files and compares every byte they write. Your auditors get the evidence before anything touches production.
No divide by 100 anywhere. The picture clause accepts two readings. Choose one:
Bytes on disk03 50 00 0C
APR-RATE holds3.50000
Monthly rate (7 dp)0.2916667
Interest on $1,000.00$291.67
Faithful to the code, line for line. Wrong by a factor of one hundred.
Both readings compile, and both pass a test written from the source. The bytes your business loads into that field are the only thing that settles it.
Static analysis can't close that gap, and neither can a tool that checks its translation against the same ambiguous source it translated. The answer sits in production data and in the head of whoever loads that field. The job is finding that answer and proving the new system honors it. Decode your own bytes →
§1
Translation is close to free in 2026, and a wrong migration costs what it always did
On February 23, 2026, an AI lab described Claude Code reading and translating COBOL, and IBM had its worst trading day since 2000.1 By then AWS was already offering its own mainframe transformation agent at no charge.2 Turning COBOL into Java stopped being the hard part.
What changed is how migrations fail. A hand migration usually broke where everyone could see it, in code that wouldn't compile. An AI migration compiles, passes the tests the AI wrote for itself, and can still drop a rule the business depends on. It can also add one nobody asked for, which is harder to spot (Exhibit B).
97%of failed COBOL attempts where the AI agent believed it had succeeded3
34.8%the best score any agent posted on the same COBOL benchmark3
>70%of 2026 mainframe exits forecast to miss their goals by overestimating gen AI4
£48.65Min regulator fines for one bank's 2018 migration, before £330M in other costs5
Every source has an opinion. The stored bytes settle it.
In a real mainframe estate the sources disagree. The source says one thing, the copybook suggests another, the JCL a third, and the production files show something else again, and the engineer who knew why retired a decade ago. A tool that quietly picks one version to believe hides the problem, so every disagreement goes into the ledger as a finding.
VOICE 1 · SOURCE
"Divide the rate by twelve."
Says what happens. Never says what the number means.
VOICE 2 · COPYBOOK
"Seven digits, five after the point."
Wide enough for 0.03500 and for 3.50000. Silent on which.
VOICE 3 · DECLARATIONS AND JCL
"This file is line sequential."
One wrong line here sent two AIs to read packed bytes as text. See Exhibit D.
VOICE 4 · PRODUCTION BYTES
00 03 50 0C
The only voice that can't be mistaken about what the business stored.
§2From the public record
What two AIs got wrong in a banking program, and why a reviewer would have signed it
Two different AIs translated the same banking program with a one-line prompt and no hints. Both handled packed decimal, half-up rounding and the copybook layout correctly on the first pass. What remained were the failures that read as correct. All of it is published, with the code and prompts, so anyone can rerun it.6
The rule nobody asked for.
Asked to translate a monthly interest program, one AI added an accumulation into a year-to-date field that the original program never reads and never writes.
A dropped rule shows up when output goes missing. An added rule reads as correct, and is probably true somewhere else in the system, just not in this program.
EXHIBIT BFINDING
FieldDEP-INTEREST-YTD
Original reads itNo
Original writes itNo
Translation 2Adds to it monthly
Caught byOutput bytes, not code review
Limits, stated plainly: a synthetic single-program fixture, no CICS, DB2 or call graph, one reviewer. The comparison so far is at the code level. A byte-level comparison of all three programs over one shared input file has not been run yet.
§3
Four stages to the other side, each with a fixed scope and a fixed fee
I don't review translations by the hour. I build the instrument that checks them, and you keep it. Start with one program family and decide after you've watched it work.
I.
The Survey
THREE WEEKS · ONE PROGRAM FAMILY
I read the source, copybooks, JCL and a sample of real records. You get the source-of-truth ledger, an ambiguity register naming every field whose meaning isn't in the code, and a fixed quote for the harness.
From $8,000 · credited in full toward stage II
II.
The Harness
BUILT FOR YOUR ESTATE
An equivalence harness that runs the original and the migrated code over the same input files and compares every output byte. Each divergence comes back as a replayable case: the input, the two outputs and the cause.
From $15,000 · yours to keep and rerun
III.
The Crossing
TRANSLATION WITH A GATE
The migration itself, by your team, your integrator or me, with the tool your security office already approved. Nothing crosses to production until it clears the harness and a named person signs.
Sprint gate from $5,000/month
IV.
The Dossier
AT EVERY CROSSING
Behavioral equivalence written up finding by finding, in a document your model-risk team, internal audit and examiners can read, question and reproduce without me in the room.
Included with II and III
Already working with an integrator, or running a parallel run of your own? Good. The harness doesn't compete with either. It explains every difference a parallel run finds, and it gates your integrator's output the same way it would gate mine.
§4
The Equivalence Dossier, the document you hand the examiner
Every claim in it points to bytes you can produce again on demand. It's built to answer the questions examiners and model-risk teams already ask about software a machine helped write.
A note on guidance. U.S. model-risk guidance was rewritten in April 2026 and, for now, leaves generative AI out of scope.7 Until that's settled, the dossier follows what examiners already check for: testing, outcomes analysis, reproducibility and a named person at the gate.
Exactly which programs, copybooks, JCL and data are in scope, captured at a fixed point so every later claim refers to the same starting estate.
Where source, copybook, declarations and production bytes agree, and every place they don’t, with the bytes that settled it.
Every field whose meaning isn’t in the code, the reading chosen, the evidence for it, and the business owner who confirmed it by name.
The harness source and the input files it runs, including edge cases for packed decimal, rounding, sign handling, encoding and sort order.
Each difference between original and migrated output: the replayable input, both outputs, the cause, the fix and who approved it.
Model versions, prompts, configuration and rerun instructions, so your team can produce every result again without me.
Coverage limits and out-of-scope behavior, stated beside the claims rather than buried after them.
Named people, dated signatures, and the exact build each signature covers.
§5
What a harness does not prove.
Behavior on inputs that never appear in the test corpus. Coverage is reported, never implied.
What the business intended, where nobody alive can say. Those fields go in the ambiguity register with a named owner, not a guess.
Performance, capacity or batch-window timing. Those need their own tests, and the dossier says so.
Anything about systems outside the agreed scope.
Anyone who promises "100% equivalence" without this list is promising something no one can check.
§6
SIGNATORYJ. S.SANTA ROSA, CALIFORNIA
One accountable name on the sign-off page.
I'm Josef Stephens, an independent practitioner in Santa Rosa, California. I'm not a thirty-year mainframe veteran. I'm the one who checks what the veterans and the AIs both assume, and since March I've done it in public, with my misses published next to my results.
I don't sell a translation tool and no vendor pays me. The harness I build for you reruns without me, because a verifier that's tied to the translator isn't worth much to an auditor.
I came to this from commission sales and insurance, at State Farm and Allstate. If the Survey finds your migration doesn't need me, it will say that in writing.
The method that guards a bank's interest routine also runs a small studio for businesses and nonprofits in Sonoma County: reels, program apps and workflows, each shipped with its run logs. The small jobs keep it honest. Every week real people use what it makes, and they notice when something is off.
Write with the program family you're least sure about, roughly how large the estate is and where the migration stands. I'll reply personally with what I'd look at first, and if it isn't a fit, I'll tell you who is.