Editorial photograph of a negotiation handshake across a boardroom table
Oracle · Java Migration Patterns · Analysis

Subscribe, migrate or hybrid. All three, priced honestly.

The three responses to Oracle's per employee Java metric, modeled on one estate across four cost buckets. The two buckets most business cases omit are the ones that decide the five year answer, and they are the reason the hybrid usually loses.

Contact Us Oracle Hub
500+Enterprise clients
$2B+Under advisory
Industry Recognized
500+ Enterprise Clients
$2B+ Under Advisory
11 Vendor Practices
100% Buyer Side Independent

Most Java cost models compare two numbers: the Oracle invoice and a support quote. That prices half the problem. This page models all three patterns on one estate across four cost buckets, including the internal effort that never reaches a business case.

Key takeaways

  • Four buckets, not one. License, supplier support, one time internal effort, and recurring internal effort. Most business cases contain the first two and lose the argument on the last two.
  • Migration effort is a portfolio calculation. On a 220 application estate we model 700 to 1,200 person days, and roughly 60 percent of it sits in twenty percent of the applications.
  • The hybrid is the expensive one. Staying free on Oracle binaries buys an estate wide version upgrade every two years, at 40 to 60 percent of the original migration effort, forever.
  • Most of the effort is not cash. Internal days are usually absorbed capacity, not new spend. Say so out loud, because a finance team that sees days presented as cash will discount the whole model.
  • Payback lands between 9 and 24 months on the estates we model, and it is driven by the counted employee number rather than by how efficiently you migrate.
  • A scoped Oracle remnant is priced at full headcount. The subscription bills on total counted employees regardless of how few machines run Oracle Java, so a small remnant can cost what the whole estate costs.

What are the three patterns, and what does each really cost?

Subscribe to Oracle, migrate fully to a non Oracle build, or run a hybrid where free Oracle binaries carry most of the estate and a scoped subscription covers the rest. The technical difference between these three is small. The cost difference is not, and it is not where buyers look for it.

The four cost buckets, and the two that get dropped

  • License and subscription. What you pay a vendor for the right to run the software. Always in the model.
  • Supplier support. What you pay for a response commitment behind the runtime. Usually in the model.
  • One time internal effort. The person days to inventory, pilot, migrate, validate, package, evidence and terminate. Rarely in the model.
  • Recurring internal effort. Patch currency, version upgrades, headcount reconciliation, audit response. Almost never in the model, and it is the bucket that decides the five year answer.

Two of the three patterns are cheap in buckets one and two and expensive in bucket four. That is why a model built on invoices alone reaches the wrong conclusion so reliably. The finance framing that survives challenge is set out in the CFO business case to leave Oracle Java.

The reference estate this page prices against

All three patterns are priced on one estate so the comparison means something. Substitute your own numbers, but keep the structure, because the shape of the answer changes with the ratio rather than with the absolute size.

The reference estate

Attribute Value Why it matters to the model
Counted employees5,000Sets the entire Oracle bill, regardless of footprint
Server and container JVMs400Sets the supplier support bill on the alternatives
Distinct applications carrying Java220Sets the migration effort, which is per application not per JVM
Desktops with a Java runtime900Adds packaging and user acceptance effort, and a support unit
Employees per JVM12.5The ratio that predicts the answer before any modeling starts

Note the last line. At 12.5 counted employees per JVM this estate is not an extreme case, which is deliberate. The gate that reads this ratio and returns a provisional destination sits in the Oracle Java decision gate.

What does subscribing actually cost end to end?

On the reference estate, roughly 630,000 dollars a year at list, plus 20 to 40 person days a year of internal effort that nobody counts. The license line is the visible cost. The invisible cost is the annual work of defending a number that only ever grows.

The license line

The Java SE Universal Subscription is priced per employee per month on published volume bands. Confirm the current bands against Oracle's price list before you use these in a paper, because Oracle revises them.

Published employee bands and what they produce annually

Employee band List rate per employee per month Annual cost at the band minimum
1 to 999$15.00$179,820 at 999
1,000 to 2,999$12.00$144,000 at 1,000
3,000 to 9,999$10.50$378,000 at 3,000
10,000 to 19,999$8.25$990,000 at 10,000
20,000 to 29,999$6.75$1,620,000 at 20,000
40,000 to 49,999$5.25$2,520,000 at 40,000

The reference estate sits at 5,000 employees and $10.50, which is $630,000 a year at list. A realistic negotiated outcome lands between $400,000 and $480,000. The counting rules that produce the 5,000 are decoded in the employee metric decode.

The internal effort of staying, which nobody budgets either

Subscribing is not effort free. It carries a recurring internal load that appears in nobody's business case because it is spread across procurement, human resources and the platform team.

  • Headcount reconciliation, 10 to 20 days a year. Producing a defensible counted number across staff, contractors, outsourcers and acquired entities is genuine work, and it is the single highest value work in this pattern.
  • Renewal negotiation, 5 to 15 days. Every year, and more in a year when an adjacent Oracle agreement is also in play.
  • Deployment evidence, 5 to 10 days. You still have to know where Oracle Java runs, because the subscription has usage boundaries of its own.
  • Growth exposure. An acquisition adds counted employees from the acquisition date. The bill moves without anybody deploying anything.
The subscription's recurring internal cost is small. Its recurring commercial cost grows every time your company hires, acquires or outsources, and none of that is a Java decision.

What does full migration cost, including the effort nobody budgets?

On the reference estate, 700 to 1,200 person days one time, plus a supplier support line of zero to roughly 60,000 dollars a year depending on how narrowly you scope it. The license line goes to zero, because every mainstream alternative is built from the OpenJDK project and ships free for production use.

Effort by application class, which is where the model lives

Migration effort is per application, not per JVM, and it is wildly uneven. Sorting the portfolio into six classes turns a guess into a calculation, and it also tells you which applications to pilot first.

Person days per application, by class, on a 220 application portfolio

Application class Share of portfolio Days each What consumes the time
Plain server or container applicationAbout 65 percent1 to 3Base image change, regression run, change record, owner sign off
Carries a monitoring or security agentAbout 15 percent2 to 5Agents pinned to a vendor version string stop reporting silently rather than failing
Cryptography or federal standard sensitiveAbout 5 percent5 to 12Provider ordering, keystore types and policy defaults differ by build
Reporting and document generationAbout 6 percent3 to 10Font availability and rasterizer differences move PDF layout
Desktop, applet or Java Web Start deliveredAbout 4 percent10 to 25Repackaging, a Web Start replacement, and user acceptance testing
Vendor product with an embedded runtimeAbout 5 percent5 to 15Vendor management and contract work, almost no engineering

Run those percentages against 220 applications and the portfolio lands around 450 to 800 days. The distribution matters more than the total: the 9 percent of applications in the desktop and cryptography classes consume roughly a third of the effort, which is why piloting three easy microservices proves nothing.

The program level effort that sits on top

Application work is not the whole bill. A migration carries a program overhead that is largely independent of how many applications you have, and it is the part platform teams underestimate most consistently.

Program level effort on the reference estate

Workstream Person days Note
Binary inventory across servers, containers, agents and desktops25 to 60Scan for the binary, not for an installed product name
Distribution selection and the written standard10 to 15One primary build, one named exception build
Base images, provisioning templates and pipelines20 to 40If the old binary is still available internally, it returns
Desktop packaging and rollout, 900 machines30 to 80Usually the largest single line, and usually missing
Evidence pack, download blocking and termination10 to 20Cheap now, expensive to reconstruct in two years
Program management across 9 to 14 months100 to 160Roughly half a full time role for the duration

Program overhead lands between 195 and 375 days. Added to the portfolio range, the reference estate models at 700 to 1,200 person days one time. The pipeline and workstation share of that is broken out in the CI/CD and developer workstation cleanup guide, and the vendor product share in when third party applications bundle Oracle Java.

Cash cost against absorbed cost, and why the distinction wins the room

Person days are not automatically money. On the estates we advise, 60 to 80 percent of migration effort is absorbed by existing internal capacity, and the genuine incremental cash is contractor cover, tooling and any specialist testing you cannot do in house.

Present both figures. A model that converts 1,000 days into a single cash number invites a finance team to challenge the rate and discard the paper. A model that separates absorbed days from incremental cash survives the meeting.

  • Incremental cash on the reference estate. Typically 120,000 to 300,000 dollars across the program, dominated by contractor cover and desktop packaging.
  • Absorbed internal days. The rest, expressed as days and as an opportunity cost against the roadmap they displace.
  • Recurring cost afterwards. A named owner for quarterly patch currency, and a support contract only where an external obligation exists.

What does the hybrid cost once you price the treadmill?

More than either alternative over five years, in most estates we model, and the reason is recurring effort rather than license fees. The hybrid keeps most of the estate on free Oracle binaries and pays a scoped subscription where an Oracle build is genuinely required.

The recurring upgrade bill

Oracle's No Fee Terms and Conditions license covers a long term support release for a bounded window. Staying free therefore means moving the whole estate to the next long term support release inside each window, roughly every two years, on Oracle's calendar.

That is not a small change. A version upgrade touches the same applications a migration touches, and carries the same regression testing, change records and owner sign off. We model it at 40 to 60 percent of the original migration effort.

On the reference estate that is 280 to 720 days every two years, indefinitely. Take the window dates from the Oracle Java SE Support Roadmap rather than from an article, and diarize them with a named owner.

Why a version upgrade costs almost as much as a distribution swap

Work item Distribution swap Version upgrade
Application code changesRareCommon, as removed APIs and defaults change
Regression testingFullFull
Change records and owner sign offFullFull
Vendor certification checksFullFull
FrequencyOnceEvery window, indefinitely

Read the last row twice. The hybrid trades a one time cost for a recurring one, and the recurring one is nearly as large. On the reference estate that is the difference between roughly 900 days once and roughly 500 days every two years for as long as the pattern lasts.

The metric that makes a scoped subscription cost full price

The paid half of the hybrid rarely behaves as buyers expect. The Universal Subscription is priced on total counted employees, not on the number of machines running Oracle Java, so a remnant of ten servers is quoted against 5,000 employees.

There are two ways the scoped half genuinely costs less. The remnant sits inside a pre 2023 Named User Plus or Processor entitlement you already hold, or it sits inside an Oracle product entitlement that grants restricted use Java rights. Absent one of those, the hybrid pays the full subscription plus the full upgrade treadmill.

The hybrid is the only pattern that can pay a full subscription and a full migration effort at the same time, every two years, and still be described in a steering paper as the cautious option.

How do the three compare on the same estate over five years?

Full migration wins by a wide margin, the subscription is second, and the hybrid is last once recurring effort is priced. Here is the same estate, the same 400 JVMs and the same 220 applications, across five years.

Five year comparison, 5,000 counted employees and 400 JVMs

Line Subscribe Full migration Hybrid
License, five years$2.0m to $2.4m negotiatedZero$2.0m to $2.4m, priced on full headcount
Supplier support, five yearsIncludedZero to $300,000, scoped to real needZero to $150,000
One time internal effortMinimal700 to 1,200 daysMinimal at the start
Recurring internal effort20 to 40 days a year15 to 30 days a year for patch currency280 to 720 days every two years
Audit surface for JavaPresent, and priced on headcountRemoved once binaries are gone and evidencedPresent, on the paid remnant and the free window
Exposure to headcount growthDirect and immediateNoneDirect and immediate

Where the payback actually lands

Between 9 and 24 months on most estates we model, and it moves with the counted employee number rather than with migration efficiency. That is worth stating plainly, because it means a slow, careful migration still pays back if the headcount is large.

  • Under 1,000 counted employees. Payback can exceed two years. Model it honestly, and be willing to conclude that staying is right for now.
  • 1,000 to 10,000 counted employees. Payback typically 12 to 24 months. This is the band where the decision is usually made and usually made correctly.
  • Over 10,000 counted employees. Payback often inside 12 months, and the recurring saving quickly exceeds the entire program cost.

Whichever band you sit in, the credible ability to leave is what moves an Oracle quote. That is why the exit model is worth building even in the estates that end up staying, as the Illinois manufacturer case shows.

A spreadsheet and financial statements on a desk beside a pen and calculator
The business cases that fail do not fail on the license arithmetic. They fail when the first challenge from finance lands on an effort number nobody built from the bottom up.
700 to 1,200
Person days, 220 applications
40 to 60%
Of migration effort, every free window
9 to 24
Months to payback

Source: Redress Compliance advisory engagement file, 2024 to 2025.

What the model deliberately does not claim

Three honest limits, because a cost model that claims certainty is a sales document. Publish these next to the numbers and the model becomes harder to attack, not easier.

  • Day counts are ranges, not estimates. They come from portfolio patterns, and a bottom up estimate from your own application owners will beat them.
  • Support pricing is negotiated. Published rates from any supplier are a ceiling. Model a band, not a point.
  • The free build is not zero cost. It is zero license cost. Patch currency, escalation and version refresh remain yours, and they are the recurring line in bucket four.

Where the common advice on Java migration cost is wrong

The standard business case compares the Oracle invoice with a support quote and declares a saving. We disagree with that framing, and it loses in front of a competent finance function for a simple reason: it prices the two buckets that are easy to obtain and ignores the two that decide the five year answer. Build the model the other way around. Start with the application portfolio effort, add the program overhead, separate absorbed days from incremental cash, then put the license lines in last. Done that way the migration case still wins in the large majority of estates, but it wins on numbers that survive challenge, and it correctly identifies the minority of estates where the honest answer is to stay another year.

What should a buyer do next?

  1. Write down your four reference numbers: counted employees, JVMs, distinct applications carrying Java, and desktops with a runtime.
  2. Sort the application portfolio into the six classes above. An approximate sort by an application owner beats a precise sort by a tool.
  3. Build the effort model bottom up from that sort, and have three application owners sanity check their own class before anyone sees a total.
  4. Split the total into absorbed days and incremental cash, and present both. Never convert everything into one cash figure.
  5. Price the hybrid honestly, including a full version upgrade every free window and a subscription quoted at full headcount.
  6. Model payback against your counted employee number rather than against how quickly you think you can migrate.
  7. Choose the primary build with the distribution comparison, and check the wider option set with the six Java options landscape.
  8. Set the delivery schedule against the 9 to 14 month timeline, then sequence the exit with the Oracle Java SE exit map, and bring in the OpenJDK migration advisory service if the model has to be defensible to a renewal deadline.

Frequently asked questions

What does an Oracle Java migration actually cost?

On a 220 application estate with 400 JVMs and 900 desktops we model 700 to 1,200 person days one time. Roughly 450 to 800 of those days are application work and the rest is program overhead. Of the total, 60 to 80 percent is normally absorbed internal capacity rather than incremental cash.

Why is the hybrid pattern the most expensive over five years?

Because it pays a full subscription and a recurring migration at the same time. The Universal Subscription is priced on total counted employees regardless of how few machines run Oracle Java, and staying free on the rest of the estate requires a version upgrade inside every No Fee Terms window at 40 to 60 percent of the original migration effort.

Which cost buckets do most business cases miss?

One time internal effort and recurring internal effort. Almost every draft we review contains the license line and the support line, which are easy to obtain, and omits the two that decide the five year answer. Building the model in the reverse order is what makes it survive a finance challenge.

How do we estimate effort without a completed inventory?

Sort the application portfolio into six classes and apply a day range to each. Plain server applications run 1 to 3 days, applications with monitoring agents 2 to 5, cryptography sensitive applications 5 to 12, and reporting engines 3 to 10. Desktop and Java Web Start applications run 10 to 25 days.

How long until a migration pays back?

Between 9 and 24 months on most estates we model. Payback is driven by the counted employee number rather than by migration efficiency, so above 10,000 counted employees it often lands inside a year, and below 1,000 it can exceed two years. In that lowest band, staying another year is sometimes the correct answer.

Should we convert person days into a single cash number?

No, and doing so is the most common way a good business case gets rejected. Separate absorbed internal capacity from genuine incremental cash such as contractor cover, tooling and specialist testing. A finance team that can see the split will engage with the model instead of challenging the day rate.

Is free OpenJDK genuinely zero cost?

It is zero license cost, which is not the same thing. You still own patch currency, escalation and version refresh, which we model at 15 to 30 days a year on the reference estate. Budget a named owner for quarterly updates, because an unpatched free build reintroduces the risk the migration was meant to remove.

Free White Paper

Oracle Database ULA Negotiation

The full white paper on Oracle Database ULA negotiation. Scope, term, certification, territory, growth, exit, Oracle Database vs Oracle Cloud Database.

Gated with a work email on the download page. No sales follow up you did not ask for.

Get the White Paper →
Independent, buyer side. We never share your details with vendors.
Run a software spend health check against your Oracle estate in under five minutes.
Open the Tool →
Deep Library

More on this topic.

Oracle Hub →
Oracle Java to OpenJDK Migration in 2026: The Decision and Execution Guide
Oracle · Guide
Oracle Java to OpenJDK Migration in 2026: The Decision and Execution Guide
The full guide this article belongs to.
Guide
Exiting Oracle Java SE. The migration map.
Oracle
Exiting Oracle Java SE. The migration map.
Exit the Oracle Java SE subscription by mapping where Oracle Java actually runs, then movi
Guide
The Oracle Java Universal Subscription Employee Metric, Fully Decoded
Oracle
The Oracle Java Universal Subscription Employee Metric, Fully Decoded
How Oracle's Java Universal Subscription employee metric is defined, counted, priced acros
Guide
Oracle Java SE Procurement. 20 critical insights: the per employee metric, the audit posture, and the OpenJDK escape route.
Oracle
Oracle Java SE Procurement. 20 critical insights: the per employee metric, the audit posture, and the OpenJDK escape route.
Oracle Java SE Universal Subscription procurement guide 2026. Independent buyer side advis
Guide
Editorial boardroom interior

The advisor your vendors do not want.

500+ enterprise clients. 11 vendor practices. Industry recognized. One conversation can change what you pay for the next three years.

Stay ahead of Oracle licensing changes.

One buyer side briefing a week. Renewal signals, audit moves, and the levers that work. No vendor spin.

Pass it on

Know someone facing this exact decision?

Send this to whoever owns the renewal, the audit response, or the budget. It takes two clicks and it saves them a quarter of guessing.

Share on LinkedInShare by email