POV | What We Believe, On the Record | Mactores

Mainframe Modernization on AWS: What the Cutover Costs

Written by Kaja Hussain | Oct 28, 2026, 12:38:00 PM

Key takeaways

  • Total program cost is the build plus the cutover. At the bank in this guide, the cutover adds about $2.6 million to a $6.0 million build, and most proposals would leave it out.
  • The code conversion line has shrunk. Since March 2026, AWS hasn't charged for refactoring the code itself, and the money you'd have spent there is better spent on testing and data parity.
  • Month-end is where hidden logic shows up. A deposit system that matched for two quiet weeks can still break on its first month-end close, so the parallel run has to cover one.
  • The rollback plan is also a compliance document. A US bank examiner and an EU supervisor will both ask to see the way back, and they'll want to know it's been tested.
  • Fixed-date, fixed-fee terms are only as good as their delay clause. It has to say who pays when a date slips and how each phase gets signed off.

Mainframe modernization on AWS doesn't usually go wrong in the planning sessions. It goes wrong in the weeks between the last test cycle and the morning your branches, claims desks, or plant floors start running on the new stack. That's when two platforms run side by side, release freezes hold the business back, and every reconciliation break waits on someone with the authority to sign it off, so that's when budgets swell.

We've been building regulated systems on AWS since 2008: payment platforms that answer to PCI DSS assessors, claims platforms that answer to HIPAA, and agent-driven workflows that have to explain every decision to an auditor. When we're asked to rescue or price a mainframe program, we nearly always find the same thing. The code conversion has been estimated down to the line, and the cutover has been ballparked, even though the cutover is where the money and the risk sit.

We'll use one made-up but typical company to keep the numbers honest: a US regional bank whose deposits, consumer loans, and general ledger still run on a z/OS mainframe. There are about 4 million lines of COBOL behind them, some 2,500 batch jobs every night, and data split between Db2 for z/OS and VSAM files. Keeping it all running costs $9.6 million a year, and the hardware lease and two big ISV contracts renew in 20 months, which makes that the real deadline. Debit cards bring PCI DSS into scope, and because the bank is listed, SOX applies too.

If you're the one taking that number to the board, the bank's case shows where it usually goes wrong and what to ask for instead.

What does mainframe modernization on AWS cost once cutover is included?

Four things drive the cost of mainframe modernization on AWS. Two are about size: MIPS and lines of code. Two are choices you make: the path for each application and how many cutover waves you run. Then there's the one budgets tend to guess at, which is how long both platforms run side by side. Get that guess wrong, or skimp on reconciliation and hypercare, and the program comes back with a change order.

Cost layer

What it covers at the bank

Why it gets underpriced

How we'd price it

Build: discovery and assessment

Taking stock of 4 million lines of COBOL and untangling the scheduler that runs 2,500 jobs a night

"The documentation's current."

A fixed price, scoped from what automated discovery finds

Build: code transformation

COBOL, PL/I, and a few hundred Assembler routines converted or rewritten

"The tool price covers it." The edge-case rework turns up in testing.

Per application, each one tied to its own equivalence tests

Build: data migration engineering

Db2 for z/OS and VSAM data moved to relational targets, with EBCDIC and packed decimal conversion

"We'll load it once."

Per data domain, with the reconciliation priced in

Build: test harness and regression

Test case capture, automated comparison, batch replay

Test data is scarce and subject-matter experts are booked

Fixed, with test ownership named in the contract

Cutover: dual running

Three months of AWS at production scale while the mainframe keeps running alongside it

Parallel run length is guessed

Per month, sized by business cycles

Cutover: change freeze

Deferred releases and business changes held during cutover

Nobody books the opportunity cost

Agreed freeze calendar, priced by the business owner

Cutover: reconciliation and sign-off

Output diffing, break triage, business acceptance

Business staff time sits outside IT budgets

Per cycle, with named approvers

Cutover: hypercare

Elevated support, on-call engineers, performance tuning after go-live

Assumed to be "just support"

Fixed window with exit criteria

Cutover: rollback reserve

Mainframe contract extension and reverse synchronization if a wave fails

Treated as unthinkable until it happens

Reserve equal to at least one month of mainframe run cost

We keep two ledgers for every estimate. Most proposals show you the build ledger in detail. The cutover ledger tends to get a single vague line, and that's the one behind the 2 a.m. calls.

The cutover ledger deserves this much attention because downtime is expensive. Splunk's 2026 study with Oxford Economics put unplanned downtime for Global 2000 companies at $15,000 per minute on average. Four extra hours on a cutover weekend would cost $3.6 million at that rate, which is more than most programs budget for hypercare.

When one firm prices the build and another inherits the go-live, the cutover tends to fall between the two contracts, and nobody owns the overrun. So our legacy software modernization engagements put the cutover and the legacy switch-off in the same fixed-fee scope as the build.

Which AWS mainframe modernization path fits your estate: rehost, replatform, refactor, or reimagine?

There isn't one path for the whole estate. You choose per application, based on how much its business logic has to change and how long you plan to keep it. In the estates we assess, that usually leaves a few workloads refactored, a few reimagined, some retired outright, and a small set replatformed to buy time.

Path

What changes

Typical AWS tooling

Cost profile

Cutover risk

Best fit

Rehost / replatform

COBOL stays COBOL and moves to a compatible runtime on Amazon EC2

Commercial COBOL runtimes licensed from the runtime vendor

Lower build cost, ongoing runtime licensing

Lower, since logic is untouched

Stable systems with a planned retirement date

Automated refactor

COBOL and JCL converted to Java, data moved to relational stores

AWS Transform for mainframe refactor (formerly AWS Blu Insights)

Moderate build cost, open runtime on standard compute

Moderate, driven by test coverage

Core systems you plan to run for a decade

Reimagine

Business rules extracted into specifications and rebuilt as cloud-native services

AWS Transform for mainframe reimagine, plus modern engineering teams

Higher build cost, lowest long-term run cost

Higher, requires the strongest parallel run

Systems where the business process itself needs to change

Retire

Function absorbed by SaaS or an existing platform

Data archival to Amazon S3 with retention controls

Lowest

Low, mostly data retention

Reports and screens nobody has opened in years

Retain (for now)

Stays on the mainframe, with APIs in front of it

Change data capture streams its data to AWS for analytics and AI

Low now, with the cost deferred

None for now

Workloads held back by a regulatory or vendor dependency


At the bank, deposits and consumer loans would go to automated refactor, since the bank expects to run and change them for another decade. Loan origination, which the business wants to redesign anyway, would be reimagined. About 300 regulatory reports that nobody opens anymore would be retired, with their data archived to Amazon S3. The debit card system would stay put for now, behind APIs, because its processor contract runs another three years, and its data would stream to AWS through change data capture.

When you sort the portfolio, look at how often each application changes. If it changes often, refactoring or reimagining it starts to pay off. Code nobody has touched in ten years, with fewer users every year, rarely justifies a rewrite.

Ask two more questions now, or you'll be asking them in hindsight. First, which applications share data stores or batch chains, since they'll have to move in the same wave? (At the bank, that's the general ledger and the deposit system, which share a nightly batch chain.) Second, is anything tied to an exam, an audit, or a contract deadline that fixes the cutover window no matter what the engineers say?

What changed in the AWS mainframe toolchain, and how does it move your budget?

Until March 2026, refactoring a mainframe with AWS's tooling meant paying by the line of code. Now AWS Transform for mainframe refactor offers code transformation at no cost, and AI agents handle much of the analysis and planning that analysts used to bill for. That money hasn't vanished from the budget. It's moved to testing, data parity, the cutover, and the engineers who make the calls that hold it all together.

What changed

What it means for your budget

What it means for your cutover

AI agents in AWS Transform for mainframe handle code analysis, documentation, decomposition, wave planning, and refactoring

Discovery and planning shrink from months of analyst time to weeks

You get wave plans earlier, so there's more time to agree freeze calendars with the business

Refactor's code transformation (formerly AWS Blu Insights) is free now, instead of priced by lines of code, though the runtime is still billed

The conversion line shrinks, and fixing edge cases becomes the real build cost

There's money for a longer parallel run with better instrumentation

Reimagine workflows trace each extracted requirement back to source code

Business-rule extraction becomes auditable instead of tribal

Auditors and business owners can sign off on equivalence with evidence

Automated testing, launched with support for IBM z/OS batch applications

Test generation costs fall

Batch reconciliation can run nightly during the parallel run

AWS Mainframe Modernization's self-managed experience and Managed Runtime Environment experience no longer take new customers

Replatform plans built on those options need a different runtime route

Programs planned on older AWS guidance should revisit their target architecture before signing


The practical takeaway for a CFO: a proposal that still carries a large, opaque line for "code conversion" deserves a hard second look. Ask what the tool costs, what the remediation costs, and what the validation costs, as three separate numbers.

Two smaller changes matter for the run budget. AWS's pricing page lists the refactor runtime at $0.31 per AWS CPU core per hour, so the converted code still has a running cost. And if an older plan relied on AWS's own runtime for a replatform, those AWS Mainframe Modernization options no longer accept new customers, so the runtime has to come from the vendor directly.

We see the same shift in database work. On our application and database modernization programs, the savings from automated conversion are only real when the freed-up budget goes into validation and a clean cutover. Programs that pocket the savings and trim the test phase tend to give it all back during hypercare.

How do you build a mainframe migration to AWS cost model that survives CFO review?

A mainframe migration to AWS cost model survives CFO review when it prices the cutover as explicitly as the build and shows what each month of delay costs. We call this the Cost-Plus-Cutover model. It is the same arithmetic we put in front of finance teams before any statement of work is signed.

Total program cost = Build + (D × m) + F + R + H + B

D is what AWS costs each month at production scale while the parallel run lasts, and m is how many months it lasts. The mainframe bill isn't in there, because you're paying it until the exit date anyway. F is the cost of the change freeze, R covers reconciliation and business sign-off, H is hypercare, and B is the rollback reserve.

Finance and engineering have to agree on the inputs before anyone fills it in:

  • Peak and average MIPS or MSU consumption, plus the monthly license charges and ISV contracts tied to them
  • Renewal and notice dates for every mainframe contract, since these set your real deadline (for the bank, the hardware lease and two ISV renewals 20 months out)
  • Batch windows, scheduler dependencies, and the downstream files other systems expect
  • Data volumes for every store, along with the retention and residency rules each one falls under
  • Regulatory events and blackout dates: quarter-end close and exam dates for a bank, open enrollment for a health plan, peak weekends for a retailer

Here's how it works out for the bank, with its $9.6 million annual run cost, a $6.0 million build, and a three-month parallel run.

The ratio matters more than the absolute numbers. At the bank, the cutover ledger adds roughly 43% to the build, and the single largest cutover line is the rollback reserve, equal to one month of mainframe run cost.

Then run the sensitivity that most proposals skip. If the mainframe exit slips one month past the contract date, the bank pays another $0.8 million in mainframe run cost plus a month of team burn. Let it slip three months and the bank has paid $2.4 million before counting the team, which is 40% of the whole build budget. That's why we put the exit date in the contract as part of our delivery commitment, not as a target.

How should you plan a mainframe cutover strategy without taking the business offline?

The bank can't take its branches offline, so it would move in waves. Each wave keeps data in sync in both directions until it's accepted, and nothing switches over until it has cleared a go/no-go gate with measurable criteria. Whichever pattern you pick for a wave decides the cost, the downtime risk, and how much evidence you'll have for an auditor afterward.

Cutover pattern

How it works

Cost profile

Downtime exposure

Best fit

Big bang

All workloads switch in one window

Lowest dual-run cost, highest recovery cost if it fails

High, concentrated in one weekend

Small estates with simple batch chains

Phased waves

Applications move in dependency-ordered groups

Moderate, spread over months

Low per wave

Most mid-market and enterprise estates

Full parallel run

Both platforms process live input, outputs compared

Highest dual-run cost, lowest residual risk

Near zero

Ledgers, payments, claims, anything an examiner will ask about

Shadow run

AWS processes replayed or sampled production input without serving users

Moderate

None during the run

Read-heavy and reporting workloads

Incremental API facade

New services take over functions one at a time behind a routing layer

Spread out, with longer coexistence

Very low

Reimagined systems and customer-facing channels


At the bank, the reporting and inquiry workloads would go first, on a shadow run. Consumer loans would follow as their own wave. Deposits and the general ledger, which share that nightly batch chain, would move last and together, with a full parallel run across a quarter-end close.

Each wave runs through the same loop. A failed gate sends the wave back for fixes and another parallel cycle, and a breached rollback trigger during hypercare sends traffic back to the mainframe, which stays current through reverse change data capture until the wave is formally accepted.

We built our delivery model around gates like these. Agents do the repetitive analysis and a forward-deployed engineer makes the judgment calls. Nothing passes a phase exit without the customer's signature, so every go/no-go decision ends up written down with a name next to it.

Then there's the calendar. In the US, that means steering clear of quarter-end close, tax season if anything touches filings, open enrollment at health plans, and the run from Thanksgiving to Cyber Monday for retail and payments. European operations add year-end close and August, when a lot of people are on holiday. The worst week the bank could pick would be the one before a Call Report is due, since any reconciliation break that turned up late would leave it no time to recover.

How long should a parallel run last in a mainframe migration, and what should it prove?

A mainframe parallel run should go on until the workload has been through every business cycle it handles, at least once. For the bank's loan system, one month-end close would do. Its general ledger and regulatory reports need a quarter-end. A retailer or a tax processor would need its peak season too. We count the cycles first and turn them into weeks afterward.

Mainframe logic hides at the edges. Say the bank tested its deposit system for two weeks in the middle of a month and everything matched. Then month-end arrived. An interest accrual rule that only fires on the last business day ran on AWS for the first time, and 40,000 accounts came out a few cents off. Nobody had seen that rule in two weeks of testing, and the same goes for tax tables that change in January, leap-year paths, and the batch jobs that run once a quarter.

What the parallel run must prove, and the evidence your auditors and business owners will want to see:

What must be proven

Evidence to collect

Typical pass criterion

Functional equivalence

Automated output diffs for online transactions and batch files

Zero unexplained differences, every break triaged and signed

Data parity

Record counts, hash totals, control totals per file and table

Exact match after EBCDIC, packed decimal, and date conversions

Batch performance

Job start and end times against the batch window

Critical path completes inside the window with agreed headroom

Peak performance

Response times and throughput at peak volume

Meets or beats the mainframe service levels already in place

Interface integrity

Downstream file deliveries, API responses, partner feeds

Every consumer confirms receipt and format

Security and access

Role mappings, privileged access logs, encryption settings

Access review signed by the control owner

Audit trail

End-to-end lineage from source transaction to report

An auditor can trace a sample transaction without engineering help


This is where the cost trade-off comes in. A full dual run on live input gives you the strongest evidence, but both platforms run at production scale, so it's the most expensive option. Replaying production traffic in a shadow run costs less and suits read-heavy workloads. That's why many programs, the bank's included, use a full dual run for ledgers and payments and a shadow run for reporting and inquiry screens.

Ask about MAP early, too. AWS's Migration Acceleration Program runs a mainframe track that offers methodology guidance, investment incentives, and partner support. If you might qualify, it's far easier to fold into the parallel-run budget before the statement of work is signed.

What does a rollback plan look like when the mainframe is still your system of record?

For the bank's deposit wave, a rollback plan that works keeps the mainframe current through reverse data synchronization. It marks a point of no return, and it turns every trigger into a number with someone's name next to it. Leave one out and you end up arguing at 3 a.m. about whether to roll back, with the branches due to open at nine.

The criteria get agreed before the parallel run starts, so nobody can move the goalposts during the cutover window. For the bank's deposit wave, they'd look something like this:

Criterion

Example threshold

Decision owner

If the threshold is missed

Reconciliation breaks

Zero unexplained breaks across the last full business cycle

Business process owner

Hold the wave, extend the parallel run

Batch critical path

Finishes inside the window on two consecutive peak runs

Operations lead

Tune and re-run before the gate

Online response time

At or below current mainframe service levels at peak

Application owner

Hold, scale, or optimize before go

Downstream consumers

All consumers confirm format and delivery

Integration lead

Hold until confirmed in writing

Control evidence

Access reviews, encryption, and logging signed

Risk and compliance

No go until signed

Rollback rehearsal

Full rollback executed in a lower environment within the agreed time

Program lead

No go until rehearsed


We hold to four rules on every program. The rollback gets rehearsed with the same care as the cutover, run in full in a lower environment, with someone timing it against the real window. Reverse CDC keeps running through hypercare, so the mainframe stays a warm fallback until the wave is formally accepted. Everyone knows where the point of no return is: once downstream systems or customers depend on data that exists only on AWS, a rollback becomes a forward fix. And the reserve stays funded, with at least a month of mainframe run cost and enough contract flexibility to use it, until final acceptance.

That discipline is what made the difference for a branded-payments leader whose two earlier modernization attempts had stalled before cutover. Our write-up of that program sums up why the first two failed: "Discovery eats the budget; cutover gets de-funded." The third attempt delivered a PCI DSS-aligned, cloud-native AWS platform with no audit incident during cutover.

Which compliance requirements shape a mainframe cutover for US and European enterprises?

The bank's compliance team would ask three questions about the cutover. What evidence do we need before go-live? Which weeks are we allowed to switch in? And can we prove we'd get back if something broke? On both sides of the Atlantic, operational resilience and third-party oversight are now exam topics in their own right, so the bank's answers would go straight into its compliance file.

Framework

Who it applies to

What an examiner will ask

What we'd show them

FFIEC IT Examination Handbook

US banks and credit unions

Show me a recovery test on the new platform, and who approved the changes.

The AWS recovery test, signed change approvals, the rollback rehearsal log

Interagency Guidance on Third-Party Relationships

US banking organizations

What did you check before hiring AWS and your modernization firm, and how would you leave them?

Our third-party risk assessments, the contracts, the exit plan

SEC Regulation S-P (as amended)

Broker-dealers, investment advisers, and other covered firms

If the new platform has an incident, does your response plan cover it, and will your providers tell you within 72 hours?

The updated incident response program and vendor oversight records

SOX IT general controls

US-listed companies

Were change and access controls on the AWS environment tested before quarter-end?

ITGC walkthroughs and test results from the AWS environment

PCI DSS v4.x

Anyone storing, processing, or transmitting card data

What's in scope on AWS now, and are the requirements that took effect in March 2025 in place?

The scoping document, segmentation test results, our targeted risk analyses

HIPAA Security Rule

Covered entities and business associates

Did the BAA and the updated risk analysis come before the first PHI moved?

Updated risk analysis, BAA, and access and audit logs

EU DORA

EU financial entities

Is AWS in your register of information, and have you tested the exit strategy for critical functions?

Register of information, exit plan, and resilience test results

GDPR

Any organization processing EU residents' personal data

Where does the data live now, how does it get transferred, and can I see the DPIA?

DPIA, region and residency configuration, and transfer records


For US institutions, the hard part is usually timing, and that's what we see across our financial services programs. Exams, quarter-end SOX testing, and card network deadlines all fall on fixed dates. At the bank, a deposit cutover that slipped from March to May would land its new-platform evidence in the middle of an exam cycle planned around the old system. So we plan the freeze calendar backward from those dates and fit the parallel run inside it. The cost of getting it wrong is concrete: IBM's 2026 Cost of a Data Breach Report puts the average financial services breach at $6.29 million, second only to healthcare, against a global average of $4.99 million.

In Europe, DORA has made resilience something you report on. In 2025, EU financial entities reported 3,383 major ICT-related incidents, according to the first DORA report from the European Supervisory Authorities. Half of them came down to system failures or malfunctions, and a botched cutover is exactly that. So we treat a rehearsed rollback and a tested exit plan as compliance deliverables, not engineering extras. Since November 2025, AWS has also been on the ESAs' list of designated critical ICT third-party providers, as Amazon Web Services EMEA SARL, so your register of information and exit strategy should name it.

Healthcare and life sciences organizations face the same logic under HIPAA. PHI can't sit half-migrated without access controls and audit logging on both sides. Our healthcare data platform work retires legacy systems on schedule, with data movement and access events traceable to source for audit teams.

Can AI agents convert COBOL to Java on AWS accurately enough for production?

They can, if they don't work alone. On the programs we run, agents sit inside a deterministic pipeline, with regression tests checking every change and an engineer owning each judgment call. A general-purpose model left to do the whole job gets less accurate as programs get more complex, and the parallel run is where you'd find out.

The research points the same way. In a 2026 arXiv study, GPT-4o produced compilable COBOL on only 41.8% of COBOLEval tasks, and just 16.4% passed their tests on the first try, while a domain-adapted model, COBOL-Coder, reached 73.95% compilation success. Practitioners are cautious too. Of 61 surveyed for a paper at ESEM 2026, 62.3% were happy to use LLMs for single-file migration most of the time or almost always, but only 4.9% would say that about a whole project. And in BMC's 2026 mainframe survey, 40% of respondents would let AI recommend code-management actions, while only 23% would let it carry them out.

So agents are very good at the volume work, and what's left of the risk sits in a smaller set of complex programs, cross-program dependencies, and data edge cases. That's where you want your senior engineers, and it's where the cutover gets decided. For the bank, that means the interest calculations and a few hundred Assembler routines. The hundreds of CICS screens that just read and update records are the easy part.

Task

Agents would take on

The bank's engineers would keep

Discovery and inventory

The 4 million lines of COBOL, with their JCL, copybooks, and dependencies

Where one wave ends and the next begins

Code conversion

Most of the deposit and loan code, plus a write-up of its business rules

The interest calculations, the Assembler, anything performance-critical

Data migration

Db2 and VSAM schema maps, conversion scripts, lineage

The target data model and where it lives

Testing

Test cases, nightly output diffs, the regression harness

What counts as accepted, and the business sign-off

Cutover

Rehearsal scripts and reconciliation reports

Go or no-go, roll back or not, and keeping branches and finance on board

Fixed fee, time and materials, or outcome-based: how should you buy mainframe modernization services?

Here's how the bank's contracts would change over the program. Discovery would be time and materials, because nobody could price a scope that moved every week. After that, each of the three waves would get a fixed date and a fixed fee that fit the 20-month exit. The contract would also need a clause naming who pays when a date slips, and how each phase gets signed off. Put simply, the risk sits with whoever controls it.

Commercial model

Who carries delay risk

Where it fits

What to insist on

Time and materials

You

Discovery and early assessment

Phase caps, weekly burn reporting, named staff

Fixed fee

The provider for scope, you for change requests

Well-defined waves

Written acceptance criteria and clear test ownership

Fixed date and fixed fee

Whoever caused the delay

Programs with a hard contract or regulatory date

A clause that assigns each delay, overage terms, and a signature on every phase

Outcome-based

Shared

Results you can measure, like the mainframe off by a set date

A baseline you both agree on, and how you'll measure against it


Whatever the model, read the scope line by line. Cutover, hypercare, rollback rehearsal, and the mainframe switch-off should all be inside the fee. A proposal that stops at "code delivered to UAT" leaves the most expensive weeks of the program outside the price, and that is where change orders tend to appear.

One more point for CFOs. A fixed fee only has teeth if the provider's delivery economics make it sustainable. A firm that bills by the hour has every reason to add people when a program runs long. If most of the delivery runs on agents, an extra validation cycle costs the provider very little, and that's what makes committing to a date possible.

What should you ask a mainframe modernization partner before you sign?

If the bank were choosing a partner, we'd tell its CFO to get three things proven before signing: that the people scoping the work will run the cutover, that the cutover is in the price, and that the partner has named customers running in production on AWS today. Here's how that test might play out.

Say the bank put three firms through that test. The first couldn't promise that the engineers in the pitch would still be there on the cutover weekend. The second firm's fee stopped at UAT, with hypercare, rollback rehearsal, and the mainframe switch-off marked "to be scoped." Only the third could say who'd write the test cases and sign off that the new system behaved like the old one, what would happen to its fee if it caused a slip, and when each wave's rollback would be rehearsed.

The bank would still have a few questions for that third firm: how much of the work agents would do and how many hours that saves against a traditional proposal, how an auditor could trace an automated decision back to source, and which AWS competencies and service validations the team holds for migration and modernization.

Last, and most important, it would ask to speak to a named customer whose cutover looked like its own, and find out where they started, what changed, and how long the value took to arrive.