Editorial photograph of an enterprise boardroom interior
Oracle · Java Business Case · Sub

Building the CFO Business Case to Leave Oracle Java

This is the finance paper, not the engineering plan. It sets out the three scenarios a CFO should be shown, the seven assumptions finance will attack, and what happens to payback when each one turns out to be wrong.

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

This is the finance paper, not the engineering plan. It sets out the three scenarios a CFO should be shown, the seven assumptions finance will attack, and what happens to payback when each one turns out to be wrong.

Key takeaways

  • Frame it as retiring a recurring cost, not funding a project. The subscription is a headcount linked annuity. The migration is a bounded one time coordination effort.
  • Show three scenarios, never one. Stay, migrate self supported, migrate with a paid support tier. Let the CFO choose the risk posture rather than presenting a single answer.
  • Use your invoice, not a published band. Published tiers make a defensible ceiling, but finance will discount any number you cannot tie to a document.
  • Separate incremental cash from reallocated capacity. A CFO will not accept internal effort as a cash cost unless you show which part actually is.
  • Model the timeline slipping to 24 months. The downside case costs one additional year of subscription, which is survivable and worth showing before you are asked.
  • The cost line grows with hiring, not with usage. That is the single most persuasive fact in the paper, because finance already models headcount growth independently.
  • A residual footprint is the only failure that kills the case. Partial migration keeps the obligation and loses the saving, so put a contingency line in the model.
  • A funded exit pays even if you stay. The credibility of the plan is what changes the commercial conversation, and it does not expire if you decide to keep a subset.

What is the CFO actually being asked to approve?

Not a Java project. The proposal is to retire a recurring cost that scales with hiring and has no relationship to how much Java the business runs, and to fund a bounded coordination effort in order to do it. Frame it that way on the first slide, because it changes which mental model finance applies.

Since January 2023 Oracle has sold the Java SE Universal Subscription on an employee metric. The count is total headcount, including full time, part time and temporary staff, plus the staff of your agents, contractors, outsourcers and consultants who support your internal business operations.

Two cost shapes, and why finance treats them differently

AttributeOracle Java subscriptionMigration effort
ShapeRecurring, annual, indefiniteOne time, bounded, with an end date
DriverTotal headcount including contractorsApplication count and integration complexity
Direction of travelRises with every hire and every outsourcing arrangementFalls as the estate standardizes
ControlVendor sets the metric and the rate cardYou set the scope, the sequence and the pace
What ends itNothing, while any unlicensed use remainsCompletion, evidenced

That single design choice is the whole case. Two companies running identical Java estates pay wildly different amounts if one employs five times the people, and the larger one gets nothing extra for it. Oracle's own Java SE subscription page sets out the metric.

You are not funding a Java project. You are retiring a headcount tax that grows with hiring, not with usage.

What does staying on Oracle Java cost, at list?

Start from Oracle's own published tiers rather than from a modeled estimate, then replace them with your actual quote the moment you have one. Oracle publishes the Java SE Universal Subscription rate card in its global price list library, and the same document carries a worked example.

Published list tiers and what they mean at three year scale

Employee bandPublished list, per employee per monthAnnual list at the top of the bandThree year list
1 to 999$15.00$179,820$539,460
1,000 to 2,999$12.00$431,856$1,295,568
3,000 to 9,999$10.50$1,259,874$3,779,622
10,000 to 19,999$8.25$1,979,901$5,939,703
20,000 to 29,999$6.75$2,429,919$7,289,757
40,000 to 49,999$5.25$3,149,937$9,449,811

Oracle's own worked example in that price list takes a company at 28,000 total employees, being 23,000 staff plus 5,000 contractors, at $6.75 per employee per month. That is $2,268,000 a year. Using Oracle's arithmetic rather than yours removes an entire category of argument from the room.

Two gaps to note before finance finds them. Bands the table omits should be read off the live price list rather than interpolated, and above 50,000 employees Oracle publishes no rate at all, so that figure has to come from your quote.

The band cliff, and why it belongs in the paper

The tiers create a discontinuity that finance will spot immediately if you do not raise it first. At the top of the 3,000 to 9,999 band the annual list is higher than at the bottom of the next band, because the rate step is larger than the volume step.

Show the cliff explicitly. It demonstrates you understand the rate card rather than having been handed a number, and it prepares the ground for the headcount discussion that follows. The full band mechanics sit in our Oracle Java SE procurement insights.

Why this became a finance problem in 2023

Before January 2023 Java licensing was usage based and comparatively small: a per user desktop metric and a processor metric for servers. A firm with a modest Java estate paid a modest amount, and the number moved with deployment.

The employee metric broke that link. Organizations with large non technical workforces saw the largest multiples, because they now pay for warehouse staff, retail staff and field engineers who will never open a Java application. That is the fact to put in front of a CFO, because it is a structural argument rather than a complaint about price.

What does the migration itself cost to fund?

Less than finance expects, and in a shape finance likes. This is a coordination effort rather than a rewrite: inventory, standardize on a distribution, repave build pipelines, validate, and evidence the removal. The runtimes themselves are free and production ready.

The honest cost driver is not code. It is the number of distinct application owners you have to coordinate and the number of third party products that ship their own runtime. Model against those two counts, not against total application count.

The one time cost lines, and how a CFO wants each one treated

LineWhat it coversCash or capacityHow to present it
Discovery and inventoryScanning hosts, images, templates, workstationsUsually capacityDays by role, with a rate, marked as reallocated
Assessment and lab testingPer workload validation against the target buildCapacity, plus cash if outsourcedSplit the two explicitly. Finance will ask.
RemediationThe minority of applications needing code or config changeMixedSize from the assessment, not from an assumption
Pipeline and image reworkBuild agents, base images, deployment automationCapacityOne team, one quarter, in most estates
Evidence packRescans, dated records, sign offCapacitySmall line, disproportionate value at audit
ContingencyResidual footprint that cannot be removed in the windowCashPrice a partial subscription. Do not assume zero.

On timeline, Azul's published State of Java survey has reported that a large majority of organizations completing a migration finished within a year. Our own benchmark for a full estate cutover at enterprise scale runs nine to fourteen months, documented in the 9 to 14 month migration timeline.

If the CFO will not accept a self supported runtime

Then model the paid scenario properly instead of arguing. A commercial OpenJDK support contract gives finance a named vendor and a contractual response commitment, and it is priced per server, per JVM or per developer rather than per employee.

That metric difference is the entire point: you replace a cost that scales with your workforce with one that scales with the infrastructure you actually run. Compare the options in our OpenJDK distribution guide, and the operational exposure in OpenJDK support and rollback risk.

Which assumptions will the CFO attack?

Seven, and they are the same seven every time. Put them in the paper as an assumption register with a source and a sensitivity for each, before anyone asks. A model that anticipates its own challenges reads as competence rather than advocacy.

The assumption register a CFO will actually read

AssumptionThe challenge you will getThe evidence that answers itIf you are wrong
1. The avoided subscription cost"That is list. What do we actually pay?"The invoice or live quote. Published bands only as a labelled ceiling.Net saving moves proportionally. The shape of the case does not change.
2. The employee count"Our headcount is lower than that."Oracle's definition, which adds agents, contractors and outsourcers supporting internal operations.A higher count raises the avoided cost. This challenge usually helps you.
3. Application portability"How do you know they just move?"Your own lab results per workload, not a vendor statistic.Each exception adds remediation days, not subscription years.
4. Internal effort"That is not a saving. We already pay those people."Two numbers: incremental cash, and reallocated capacity at a stated rate.The reallocated case lengthens payback modestly and survives scrutiny.
5. Timeline"What if it takes twice as long?"A modeled 24 month downside alongside the 9 to 14 month base case.One extra year of subscription. Payback moves by roughly that year.
6. Support posture"Who supports the runtime afterwards?"A priced paid tier scenario for the workloads that need it.Adds a recurring line that stays well below the subscription.
7. Completeness"What if we miss some?"Scan evidence, a rescan cadence, and a funded contingency line.This is the one that can remove the saving entirely. Price it.

Assumption four is where most technology business cases lose credibility. Finance departments have seen too many models that count existing salaries as savings, and a paper that makes that mistake gets discounted wholesale rather than line by line.

Assumption seven is the one that actually matters. One application still running unlicensed Oracle JDK re establishes the subscription requirement, so a programme that stops at ninety percent keeps the obligation and surrenders the benefit. Cover the mechanics with the embedded JDK migration guide and the CI/CD and workstation cleanup.

Editorial photograph of a finance team reviewing a printed model around a meeting table
Business cases are rarely rejected on arithmetic. They are rejected because a number could not be traced back to a document.

How do you show payback and sensitivity?

On one page, with three scenarios and a sensitivity block underneath. The recurring line is so much larger than the one time line in most brackets that payback usually lands inside the first year, which means the interesting question is not whether it pays back but what could stop it.

The three scenarios to present

  • Scenario A: stay. Three or five years of subscription at your actual rate, grown by your own headcount forecast. This is the counterfactual, and it is the number the other two are measured against.
  • Scenario B: migrate, self supported. One time effort plus a small recurring line for internal runtime stewardship. Lowest cost, highest internal responsibility.
  • Scenario C: migrate, paid support on tier one. One time effort plus a recurring support line priced per server or JVM. Costs more than B and gives the CFO a named vendor.

Present B and C side by side and let the CFO pick. A paper that offers a risk choice gets approved faster than one that argues for a single answer, because it hands the decision to the person who owns the risk appetite.

The sensitivity block, which is where credibility is won

What moves the answer, and by how much

Change to the base caseEffect on the multi year netEffect on payback
Project runs 24 months rather than the base caseReduced by roughly one additional year of subscriptionMoves out by about that year
Headcount grows across the periodImproved, because the avoided cost grows with itShortens
Paid support elected on tier one workloadsReduced by the support fee, which is priced on infrastructureSmall effect in most brackets
Remediation scope doublesReduced by a one time amount onlyMoves out by weeks, not years
A residual footprint survives cutoverCan eliminate the saving entirely, because a subscription is still requiredMay never arrive

Read the bottom row aloud in the meeting. It is the one risk in the model that is binary rather than proportional, and naming it yourself is what earns the room's trust in everything above it.

3
Scenarios the paper must show
7
Assumptions finance will attack
$2.27M
Oracle list example, 28,000 employees
1
Failure that removes the saving

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

Where the common advice on the Java business case is wrong

The common advice is to lead with the headline percentage saving, because a large percentage is memorable and easy to put on a slide. We disagree. Finance departments see inflated percentage savings from technology functions constantly, and a large one triggers scepticism rather than enthusiasm, particularly when the denominator is a list price nobody has ever paid. The framing that actually works is the shape of the two cost lines: one recurring and indexed to hiring, one bounded and ending on a date you control. A CFO already models headcount growth independently, which means the growth in the Oracle line is something finance can verify without trusting you at all. Lead with the shape, put the percentage in an appendix, and let the verifiable fact do the persuading.

How do you price the cost of doing nothing?

As a contingent liability with a clock on it, not as an abstraction. A CFO signs faster when the downside of inaction has a number and a date attached, and Oracle Java offers three of them.

  • The free release clock. Oracle publishes LTS releases under the No Fee Terms and Conditions, but only until roughly a year after the next LTS ships. Patch pipelines that keep running walk an estate out of the free window silently.
  • The legacy contract assumption. Older per user or per processor agreements are not a permanent safe harbour. When a subscription term ends, Oracle can require a move to the current metric, and helpful language in a public FAQ is not a contractual right.
  • Audit exposure. Claims in this area are large and they are real. Redress Compliance resolved a $4.7 million Java claim against Avis Budget Group and a $1.5 million claim against CSAA Insurance, both to zero cost.

Put the audit line in the paper as a contingent cost with a probability the CFO can argue with, rather than as a scare. The details of the claim mechanics sit in the Avis Budget Group case, and Oracle's own release licensing notes are on its JDK licensing FAQ.

Does a funded exit pay for itself even if you stay?

Yes, and this is the argument to make to a CFO who is not yet convinced the migration should happen. A credible, funded, sequenced exit plan changes the commercial conversation whether or not you execute all of it.

The word doing the work is credible. A plan with an owner, a budget line, a schedule and a first completed wave behaves entirely differently in a negotiation from an intention. Our Oracle Java SE exit strategies page sets out how to build one that stands up.

What should a buyer do next?

Build the paper in the order finance reads it, and keep it to three pages. Numbers, risk, decision. Everything else belongs in an appendix that nobody will open but everyone will be reassured exists.

The three pages, and what goes on each

  • Page one, the numbers. Scenario A against B and C, the one time cost lines, the recurring lines, payback with the month circled, and a source column beside every input.
  • Page two, the risk. The assumption register, the sensitivity block, the free release clock with your specific versions dated, and the audit exposure as a contingent cost.
  • Page three, the decision. What you are asking for, who owns delivery, the first three milestones, and the date the contingency line gets released or spent.

Do not put architecture in the paper. Every diagram you add invites a question that delays approval, and the technical case has its own home in our migration decision and execution guide.

The action sequence

  1. Fix the count first. Run a headcount under Oracle's employee definition, including agents, contractors and outsourcers supporting internal operations. Every other number depends on it.
  2. Pull the invoice and the current quote. Replace every published band in your model with a document you can hand across the table.
  3. Inventory where Oracle Java actually runs. Servers, workstations, build agents, container images, and copies embedded inside third party products.
  4. Size remediation from the assessment, not from a rule of thumb. The lab result per workload is the only defensible input here.
  5. Choose the support posture and price both versions. Self supported and paid tier, so the CFO chooses the risk rather than inheriting yours.
  6. Write the assumption register before the meeting. Seven rows, each with a source and a sensitivity.
  7. Fund a contingency for a residual subscription. Small, explicit, and released only when the evidence pack proves it is not needed.
  8. Book the follow up before you leave the room. A date to review actual against modeled is what stops a funded case quietly becoming an unfunded one.

If the modeling behaves the way it usually does at enterprise scale, the CFO's question stops being whether to migrate and becomes how quickly it can be funded. The three commercial patterns, including the hybrid one that gets chosen more often than it should, are compared in three Java migration patterns modeled.

Frequently asked questions

How fast does leaving Oracle Java pay for itself?

In most enterprise brackets, inside the first year. The subscription is a recurring cost sized by total headcount, while the migration is a bounded coordination effort, so the recurring line usually dwarfs the one time line. Model payback from your own invoice rather than from a published band.

What is the single strongest argument to put in front of a CFO?

That the cost line grows with hiring rather than with usage. Finance already forecasts headcount independently, so the growth in the Oracle line is verifiable without taking anyone in technology at their word. Percentage savings are far less persuasive than that structural fact.

Should internal effort be counted as a cost in the model?

Yes, and shown twice. Give finance the incremental cash number and the reallocated capacity number separately, each at a stated rate. Models that quietly treat existing salaries as savings get discounted in full rather than corrected.

What headcount does Oracle actually charge for?

Total employees, not Java users. The definition covers full time, part time and temporary staff, plus the staff of agents, contractors, outsourcers and consultants who support your internal business operations. The licensed quantity is set against that count as of the order effective date.

What if the migration takes twice as long as planned?

You pay one additional year of subscription and payback moves out by roughly that year. Model the 24 month case explicitly next to the base case. A downside you presented yourself is far less damaging than one finance discovers.

Does electing paid support ruin the business case?

No. Commercial OpenJDK support is priced per server, per JVM or per developer rather than per employee, so it replaces a workforce sized cost with an infrastructure sized one. It reduces the net saving without changing the direction of the answer.

What is the one risk that can eliminate the saving?

An incomplete migration. A single application still running unlicensed Oracle JDK is enough to re establish the requirement, so a residual footprint costs you the saving and none of the liability. Fund a contingency line and release it only against evidenced removal.

Is there value in building the case if we decide to stay?

Yes. A funded, sequenced exit with an owner and a completed first wave behaves very differently in a commercial conversation from a stated intention. The work is not wasted if the decision changes, because the same artefacts support both outcomes.

Free White Paper

Leaving Oracle: The PostgreSQL & Aurora Business Case

Migrating Oracle to PostgreSQL removes the licence and the 22 percent support annuity. The break even math, what migrates cleanly, and why a credible exit is leverage even if you s

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
Full Migration, Hybrid, or Subscribe: Three Java Patterns Modeled
Oracle · Deep dive
Full Migration, Hybrid, or Subscribe: Three Java Patterns Modeled
Another angle on the same decision.
Guide
Choosing an OpenJDK Distribution: Corretto vs Temurin vs Zulu vs Microsoft
Oracle · Deep dive
Choosing an OpenJDK Distribution: Corretto vs Temurin vs Zulu vs Microsoft
Another angle on the same decision.
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
Leaving Oracle: The PostgreSQL and Aurora Business Case
Oracle
Leaving Oracle: The PostgreSQL and Aurora Business Case
Migrating Oracle to PostgreSQL removes the licence and the 22 percent support annuity. The
Guide
Leaving Oracle: The PostgreSQL & Aurora Business Case
Oracle
Leaving Oracle: The PostgreSQL & Aurora Business Case
Migrating Oracle to PostgreSQL removes the licence and the 22 percent support annuity. The
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