Editorial photograph of a Kroger grocery retail operations team reviewing the Oracle Java framework
Case Study · Oracle · Kroger Java

Kroger. A $20M Java claim at 450,000 employees, closed at zero.

Oracle priced a Java claim at approximately twenty million dollars against a workforce of roughly four hundred fifty thousand people. It closed at zero, and the estate moved to OpenJDK. At that scale the employee metric argues against itself.

Contact Us Oracle Practice
500+Vendor engagements
$20MJava claim zero cost
Industry Recognized
500+ Enterprise Clients
$2B+ Under Advisory
11 Vendor Practices
100% Buyer Side Independent

Oracle opened a Java claim of approximately twenty million dollars against Kroger, a leading US grocery retailer with operations across the United States and a workforce of roughly four hundred fifty thousand people. The claim closed at zero.

Kroger also moved its Java estate toward OpenJDK and came off the Universal Subscription entirely. Both results came from the same observation: at that headcount, the per employee metric had stopped describing anything the company actually consumed.

This page is about exposure at scale. The counting rules and the general response method live in the Oracle Java audit defense practice and the Oracle Java audit response playbook. Use the Oracle knowledge hub and the Oracle advisory practice for the surrounding programs.

Key takeaways

  • Above 49,999 employees there is no published rate. Oracle's tier ladder stops at the 40,000 to 49,999 band at $5.25 per employee per month. Beyond it every input is a proposal, which means every input is negotiable.
  • The metric prices people, the estate delivers value. A runtime footprint of desktops, servers and developer machines does not grow with store hiring, so at very large employers the two curves separate completely.
  • The biggest headline is the weakest claim. A twenty million dollar annual position makes migration obviously cheaper than compliance, and a claim that funds its own answer is not a strong negotiating asset.
  • The rate falls at every boundary and nothing is retroactive. Crossing from 9,999 to 10,000 employees moves the rate from $10.50 to $8.25 and lowers the annual bill by roughly $270,000. Growth does not compound the way finance teams fear.
  • Divide the number by the runtimes. Cost per deployed Java instance is the one slide a CFO needs, and at large employers the figure is usually indefensible against any supported alternative.
  • A workforce linked software fee is a finance problem. It converts a technology cost into a headcount cost that rises with hiring, which is why the largest employers are the ones that leave.

How does a $20M Java claim appear at a company with 450,000 employees?

Arithmetic, not misuse. The Java SE Universal Subscription prices on total workforce rather than on Java installations, so an employer of that size generates an enormous number from a metric that never asks what is deployed.

The published tiers explain the shape of it, and they also explain where the shape breaks down.

What the employee metric counts

  • Everyone on the payroll. Full time, part time and temporary staff, whether or not they ever touch a Java application.
  • Contractors, agents and consultants who support internal business operations, which in a retail estate reaches into logistics, facilities and store systems support.
  • No usage test at all. A store colleague on a checkout lane counts exactly the same as a Java developer, which is the entire design of the metric.
  • Customers do not count. Shoppers sit outside the definition entirely, no matter how many of them touch a Java application.

The tier ladder, and where it stops

Oracle publishes rates up to a workforce of 49,999. There is no published rate above that band, and that single fact does more work in a large employer negotiation than any technical finding. Tier mechanics and the wider metric history are covered in the Oracle Java licensing pillar.

Published tiers, and what lies beyond them

Workforce bandPublished rate per employee per monthAnnual list at the top of the band
1 to 999$15.00$179,820
1,000 to 2,999$12.00$431,856
3,000 to 9,999$10.50$1,259,874
10,000 to 19,999$8.25$1,979,901
20,000 to 29,999$6.75$2,429,919
30,000 to 39,999$5.70$2,735,932
40,000 to 49,999$5.25$3,149,937
50,000 and aboveNo published rateConstructed for the account, case by case

Extend the last published rate to a workforce of four hundred fifty thousand and the arithmetic returns roughly $28.4M a year. That figure is an extrapolation of a rate Oracle does not publish at that scale and will not confirm in writing.

Which is the point. At the very top of the market the price is a proposal, and a proposal invites a counter proposal. Buyers below 50,000 argue about volumes; buyers above it should be arguing about the rate itself.

The boundary effect nobody expects

Because the rate falls at each threshold, crossing a boundary reduces the bill rather than raising it, and nothing reprices historically.

Hiring one more person can lower the annual list price

WorkforceRateAnnual listEffect of crossing the boundary
9,999$10.50$1,259,874Reference point
10,000$8.25$990,000About $270,000 a year lower
19,999$8.25$1,979,901Reference point
20,000$6.75$1,620,000About $360,000 a year lower

Two consequences follow for a large employer. Seasonal hiring is not a compliance event to be feared, and Oracle's habit of pricing headcount growth as escalating risk does not survive contact with its own published rates.

Why was the biggest number the most defensible?

Because size destroys the metric's own logic. Under the employee model, price scales with people while value scales with deployment, and those two curves diverge further with every store, warehouse and distribution center added.

At four hundred fifty thousand employees the divergence is not a nuance. It is the case.

Price scales with people, value scales with deployment

A grocery retailer's Java estate is concentrated in three environments: corporate desktops, back end servers, and developer machines. None of those populations grows in step with store headcount.

  • Store hiring adds cost and adds nothing to the runtime estate. A new colleague raises the billable base without adding a single Java installation.
  • Server growth is capacity driven. It tracks transactions and data volume, which move with revenue, not with the payroll register.
  • Developer populations are small and stable. They are the group that genuinely needs a commercially supported runtime, and they are a rounding error against total workforce.
  • The result is a fee that behaves like a payroll tax. Finance recognizes that shape immediately, and it never survives a business case review.

The cost per runtime test

Divide the annual position by the number of Java instances actually deployed. Run it with your own denominator; the ratio is what turns a licensing argument into a board decision.

Illustrative arithmetic at a $20M annual position

Deployed Java instancesImplied cost per instance per yearWhat that buys elsewhere
1,000$20,000More than the hardware the instance runs on
5,000$4,000A commercially supported alternative several times over
10,000$2,000Still well above any third party support quote
25,000$800Comparable only if every instance is business critical

The comparison that matters is not Oracle against nothing. It is Oracle against a certified build with a support contract attached, published openly by the OpenJDK project and distributed as Eclipse Temurin among others.

A headcount linked fee is a finance problem, not an IT problem

Once the fee is understood as a charge that rises with hiring, ownership of the decision moves. It stops being a renewal for a platform team to absorb and becomes a line the CFO has to defend to a board.

That transfer of ownership is the real turning point in large employer engagements. Technology teams negotiate for continuity. Finance teams negotiate for exit.

Where the common advice on large Java claims is wrong

The conventional wisdom holds that a huge opening number means huge danger, and that the sensible response is to seek the largest possible reduction as quickly as possible. We disagree. At very large employers the size of the claim is what disarms it, because a number that large forces an honest comparison the vendor cannot win: an annual fee measured in eight figures against a certified runtime with commercial support available for a fraction of it. Chasing a percentage reduction accepts the metric and locks the company into a fee that grows every time it hires. The correct response is to price the alternative properly, present cost per runtime to finance, and let the arithmetic decide whether you are negotiating a renewal or planning a departure.

Distribution center aisles at a large grocery retailer with staff working across the floor
In a workforce heavy business the billable base is the store floor, while the Java estate sits in a handful of buildings. The metric never sees the difference.

How did the response run, phase by phase?

In four phases that moved from the denominator to the numerator to the alternative, and only then to price. Nothing about the claim itself was contested until the estate had been described properly.

Phase one: fix the denominator

Every claim built on the employee metric begins with a workforce number, and workforce numbers in large retail organizations are not one number. They are several, and they disagree.

  1. Payroll register versus published figures. Annual report and jobs page numbers include populations that a contractual definition may not, and they are frequently the figures a vendor sized from.
  2. Seasonal and temporary staff. Peak trading distorts any point in time count, so the measurement date matters as much as the method.
  3. Contracted service populations. People engaged through service providers require a test of who directs the work and whose internal operations are supported.
  4. Franchise and joint venture staff. Employees of a separate legal person are that person's employees, and the affiliate definition in the agreement decides the rest.

Phase two: describe the numerator honestly

The runtime estate was segmented by environment, because each environment has a different migration profile and a different level of genuine dependence on a commercial runtime.

Three environments, three different answers

EnvironmentTypical dependenceMigration difficultyUsual answer
Corporate desktopLegacy applets and a small set of desktop toolsLow once the application inventory is honestRetire or repackage on a certified free build
Back end serverLong lived services on supported release linesModerate, driven by testing rather than codeMigrate on the normal patch cycle
Developer workstationToolchains, build agents and local runtimesLow, and usually already mixedStandardize the build image and control downloads

Phase three: cost the alternative before mentioning it

The migration case was built with real numbers: testing effort, certification for the release lines actually running, patch coverage, and the support arrangement that would replace the subscription.

An exit plan with a budget line and an owner is a commercial fact. An exit plan described in a meeting is an opinion, and vendors have heard thousands of them.

Phase four: settle the past separately from the future

  • Two lines, never one. Historic exposure and forward subscription are different negotiations with different logic. Blending them lets a vendor trade one against the other.
  • Support already sits within the subscription. No separate back maintenance charge exists to settle, which removes a line vendors sometimes present as though it were additive.
  • No punitive multiplier exists. Nothing in the standard clause multiplies a finding, so it belongs in the conversation as a commercial position rather than as a penalty.
  • Write down what happens next time. Whatever the outcome, the agreement should say how the population is measured and when, so the same argument is not repeated at renewal.

What did Kroger end up with?

Zero against the claim, and a Java estate moving to OpenJDK rather than onto the Universal Subscription. The company resolved the exposure and removed the metric that created it in the same engagement.

That combination is the outcome to aim for at scale. A settlement that leaves the per employee subscription in place resolves this year and guarantees the conversation returns.

Opening position against final position

ItemOutcome
Oracle opening Java claimApproximately $20M
Settlement paid against the claim$0
Reduction against the opening positionApproximately 100 percent
Forward runtime strategyTransition toward OpenJDK
Universal SubscriptionExited
$20M
Oracle opening claim
$0
Paid against the claim
450k
Approximate workforce
$5.25
Lowest published rate

Source: Redress Compliance advisory engagement file.

How does a large employer stay out of this in the first place?

By controlling the two things that put a company on a vendor's list: downloads and public headcount. Neither is expensive, and both are usually unmanaged.

The download control that prevents most claims

Oracle can see who pulls binaries from its portal, and a download record is the most common opening evidence in a Java matter. A large employer with an open engineering culture generates that record constantly.

  • Publish an approved runtime. Put a certified build in the internal artifact repository and make it the default in every base image.
  • Block the portal at the proxy. Not as a security measure, as a procurement control. Route exceptions through one approval path.
  • Scan build pipelines, not just laptops. Container base images and build agents are where uncontrolled runtimes accumulate fastest.
  • Keep the security story straight. The requirement is a supported and patched runtime, and Oracle's own critical patch update advisories are published on the same quarterly cycle the alternatives follow.

Why your public headcount is a pricing input

Sizing models start with whatever number is publicly available, which is usually an annual report figure or a professional network profile count. Those numbers were never built for licensing and rarely match a contractual definition.

The defensive move is to know, before any conversation, which internal figure you would stand behind and why. A company that cannot state its own denominator will be given one.

What does this mean for you?

If you run software at a workforce heavy organization, these six moves transfer directly, whatever the size of the letter on your desk.

  1. Ask for the published basis of the rate. Above 49,999 employees no rate is published, so request the list source in writing. A price with no published basis is an opening offer, and it should be answered as one.
  2. Establish your own workforce definition first. Reconcile payroll, contingent labor and service provider populations against the contractual wording before anyone quotes a number at you.
  3. Put cost per runtime on one page. Divide the annual position by deployed instances. Take that page to finance, not to the platform team, and size the position first with the Oracle Java license calculator.
  4. Segment the estate by environment before you plan anything. Desktop, server and developer populations have different migration profiles, and treating them as one estate makes an easy program look impossible.
  5. Cost the alternative properly, then decide. Include testing, certification of the release lines you run, and a support arrangement. An exit with a budget and an owner changes the negotiation; an exit described in a meeting does not.
  6. Separate the past from the future in writing. Historic exposure and forward subscription are two lines. Combined into one, the vendor decides the split and you inherit the metric for another term.

What should a buyer do next?

The first four steps are a week of work and remove most of the risk.

  1. Route all vendor correspondence to one named owner and confirm receipt promptly, sharing no figures.
  2. Produce three workforce numbers, payroll, contingent and total, each with a stated definition and measurement date.
  3. Inventory Java by environment, separating Oracle branded installations from builds distributed by others.
  4. Identify runtimes that arrived inside another vendor's product and attach the vendor agreement to each.
  5. Build the cost per runtime page and take it to finance before you take a position to the vendor.
  6. Cost the migration honestly, including certification for the release lines actually running, and read the Oracle Java advisory overview and the decision framework paper before committing.
  7. Install the download control so the estate stops generating new evidence while you negotiate.
  8. Agree measurement rules for the next cycle in the contract, so the same argument is not repeated at renewal.
Cover of the Redress Compliance Oracle white paper

White Paper · Oracle

The Oracle Java Audit Defence Playbook

What the Universal Subscription really costs and how buyers push back. Read it free.

Read the white paper

How Redress engages at this scale

  • Workforce and estate baseline. A short engagement that produces defensible population figures and an environment segmented runtime inventory. Oracle advisory practice.
  • Claim response. Correspondence management, position papers and the negotiation itself. Oracle Java audit response playbook.
  • Migration economics. Cost per runtime modelling, certification planning and the support arrangement that replaces the subscription. Oracle Java advisory overview.
  • Standing cover. Continuous vendor management across the portfolio once the matter closes. Vendor Shield.
  • Model it yourself. The Oracle Java license calculator prices the published tiers against your own population in minutes.

Comparable engagements against different estates include Avis Budget Group, World Kinect and Mercy Health.

Frequently asked questions

Is there an Oracle Java price for companies with more than 50,000 employees?

No published one. Oracle's tier ladder ends at the 40,000 to 49,999 band at $5.25 per employee per month, and any figure quoted above that band is constructed for the account. Asking for the published basis in writing is the single most useful question a very large employer can ask.

Do part time and seasonal store staff count under the employee metric?

Yes. The metric counts full time, part time and temporary staff, along with contractors, agents and consultants who support internal business operations, regardless of whether any of them use Java. That is why the model produces such large numbers in retail, health systems and logistics.

Does hiring more people push us into a worse Java price?

No, the opposite at every published boundary. The rate falls as the workforce band rises, so moving from 9,999 to 10,000 employees takes the rate from $10.50 to $8.25 and lowers the annual list position by roughly $270,000. Nothing reprices retrospectively either.

Why would a company move to OpenJDK rather than negotiate a discount?

Because a discount preserves a fee that grows with hiring, while a migration removes it. At large workforces the annual position divided by deployed instances produces a cost per runtime that no supported alternative comes close to, and finance draws the obvious conclusion once it sees that page.

Is a free OpenJDK build safe for production in a regulated retail environment?

Yes, provided the distribution is certified and the patch cycle is covered. Certified builds follow the same quarterly security cadence as the commercial product, and support contracts for them are sold independently of Oracle. What a control framework asks for is a supported and patched runtime, not a particular brand.

Do we owe a penalty on top of the license value in a Java claim?

No. There is no punitive multiplier in Oracle's standard language, and support is bundled into the subscription rather than charged as a separate back line. A claim sets out the subscription Oracle believes was owed, which makes it commercial and therefore negotiable.

How long does a claim of this size take to resolve?

Months rather than weeks, and most of the elapsed time is internal rather than adversarial. Establishing defensible workforce figures and an environment segmented runtime inventory is the long pole; once those exist, the commercial conversation moves quickly because both sides are finally discussing the same estate.

Need help? Try our AI agents. Ask the Oracle Java licensing AI agent → Scoped to one vendor and one problem. Runs in your browser.
Put your own numbers on this. The free Oracle calculator prices your processor vs Named User Plus position, VMware cluster exposure, Java SE employee tiers, and the 22 percent support line, then hands you a two page executive summary you can forward to your CFO. No account, no sales call. Run the Oracle calculator →
Need help? Try our AI agents. Ask the Oracle Java licensing AI agent → Scoped to one vendor and one problem. Runs in your browser.
Control Oracle Spend: The 5 Year CIO Playbook

Forty pages. The full Oracle position from the practice.

The eleven move framework, the Oracle Java audit defense framework, the Oracle Java exit framework, the Oracle Java OpenJDK alternative framework, and the buyer side moves at every step of the Oracle Java audit cycle.

Used across more than five hundred enterprise software engagements. Independent. Buyer side. Built for CIOs running the next Oracle Java audit cycle.

Get the white paper →
Opens the white paper landing page. We only email you about this download.
Run the Oracle Java license calculator against your actual Oracle Java deployment in under five minutes.
Open the Tool →
$20M
Java claim avoided
11 moves
Buyer side framework
3 years
Contracted term
500+
Enterprise clients
100%
Buyer side

Oracle framed the Oracle Java audit as the immediate Oracle Java uplift at the audit cycle. Redress reframed the approach around Kroger's actual Oracle Java deployment. Twenty million dollars resolved at zero cost.

Director Software Asset Management
Kroger
Related Articles

Keep going.

Oracle Practice →
Oracle Services Practice
Oracle · Practice
Oracle Services Practice
The Oracle services practice for the Oracle Java audit cycle.
20 min read
Oracle Java Audit Defense
Oracle · Audit
Oracle Java Audit Defense
The Oracle Java audit defense.
16 min read
Oracle Java Audit Defense Playbook
Oracle · Playbook
Oracle Java Audit Defense Playbook
The Oracle Java audit defense playbook.
18 min read
Oracle Java License Calculator
Oracle · Tool
Oracle Java License Calculator
The Oracle Java license calculator.
8 min read
Oracle Knowledge Hub
Oracle · Hub
Oracle Knowledge Hub
The Oracle knowledge hub.
12 min read
Editorial photograph

The advisor your vendors do not want.

Vendor management, contract negotiation, audit defense, renewal strategy. One firm. Eleven practices.

Oracle Java intelligence, monthly.

Oracle Java audit signals, Oracle Java SE Universal Subscription signals, Oracle Java OpenJDK alternative signals, and the broader Oracle Java licensing leverage signals across the practice.

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