Cloud ex Machina blog

Why AWS's Commitments Utilization and Coverage Fall Short

Written by Samuel Cozannet | Sep 1, 2026, 1:20:24 PM

Every Tuesday, Tomás - the FinOps analyst at Alpenglow Outfitters - opens AWS Cost Explorer and checks two numbers: Savings Plan utilization and coverage. They land in the same slide deck every month. Utilization above 90% looks disciplined. Coverage trending up looks mature. Together they feel like proof that the commitment strategy is working.

That is the trap.

Utilization and coverage are not false metrics. They are useful measurements of a narrow thing: how the current commitment position behaved. The problem is that Tomás - and teams like his - often treats them as if they answer a broader question: whether the estate is committed at the right level.

They do not.

Alpenglow runs roughly $900/hour of eligible on-demand equivalent spend across three business units: the Storefront ($450/hr, day-peaking), Data & ML ($300/hr, night-peaking), and Marketplace & Logistics ($150/hr, nearly flat). Alpenglow covers 35% of its eligible ODE against a Minimum Commitment Rate of 45% - a Minimum Commitment Capture Rate of 0.78. At the ~30% blended discount, that works out to an Effective Savings Rate of 10.5%, roughly $828K/year saved against an ESR ceiling of 13.5% at the minimum level, with the rest of the gap still money left on the table. But utilization and coverage cannot show Tomás where or why.

A company can have 100% utilization and still save almost nothing. It can have 100% coverage and lose money. It can have mediocre utilization and coverage while buying more commitment is still the economically correct decision - as Alpenglow will discover with its legacy m5 Savings Plan in eu-west-1. It can improve Effective Savings Rate while both dashboard metrics remain flat - as happens when Alpenglow's day-peaking Storefront and night-peaking Data & ML are pooled.

The reason is structural: utilization and coverage are Lever 2 metrics. They describe execution against the commitments already bought. They do not reveal the Minimum Commitment Threshold, the structurally minimum level of spend the hourly usage shape can support.

That makes them useful signals, but dangerous targets.

Where Utilization and Coverage Fit

In the previous post, we separated AWS commitment strategy into two metrics and three levers.

Metric 1 is the Minimum Commitment Rate (Minimum Commitment Threshold ÷ Ideal Commitment Redline). It tells you how much of your on-demand equivalent spend is structurally safe to commit, based on the level covered in every hour of each exclusive commitment segment. The lever attached to it is Reshape: pooling business units, filling valleys, moving flexible workloads, and tracking the minimum level more continuously.

Metric 2 is ESR (Effective Savings Rate, ie. the share of on-demand equivalent spend you avoided paying because of commitments; see the previous post for the full formula), which decomposes into Covered ODE % × blended discount. The coverage factor's lever is Buy: the right products, at the right time, with the right sharing rules, without creating avoidable breakage. The discount factor's lever is Structure: term, payment option and product scope, which move ESR without changing coverage at all, and which this post's metrics are structurally blind to.

Utilization and coverage sit under the second lever. They help Tomás explain how Alpenglow's current commitment position performed. They do not tell him what the commitment position should have been.

That distinction sounds small. At Alpenglow's $8.0M/year of eligible spend (precisely $7.884M), it changes the recommendation. It compresses into one ratio:

Minimum Commitment Capture Rate = Covered ODE % / Minimum Commitment Rate.

Alpenglow's 35% ÷ 45% = 0.78 - a mixed band where both levers matter. Coverage was never a lying metric so much as a denominatorless one; Minimum Commitment Capture Rate is coverage measured against the denominator it was missing. Everything below is what goes wrong when Tomás tries to run that diagnosis using only utilization and coverage instead.

What the Metrics Actually Measure

Utilization answers one question: Did we use the commitments we bought?

If you bought $69/hour of post-discount Savings Plan commitment and all $69/hour was applied to eligible usage, utilization is 100%. With a 31% discount, that $69/hour commitment covers $100/hour of on-demand equivalent usage when fully used. That is good. It means you did not pay for unused commitment in that hour.

But it says nothing about whether $69/hour of committed spend was the right amount. If the estate had $300/hour of stable eligible ODE, that commitment is absorbing $100/hour of it, and 100% utilization may simply mean you bought too little.

Coverage answers a different question: How much eligible ODE received a commitment discount?

Coverage is measured on the pre-discount usage side, not the purchased commitment side. Take a $100/hour hour in which $40 received Savings Plan or Reserved Instance discounting: coverage is 40%. The commitment required to create that coverage is a smaller post-discount dollar amount, determined by the product discount.

That is useful because it tells you how much eligible ODE is still exposed to on-demand pricing. But it says nothing about whether the uncovered usage is stable enough to commit. It also says nothing about whether the covered usage was profitable after breakage.

Both are ratios. Neither is a dollar.

Two more questions do determine strategy, and neither is readable from a single hour.

ESR asks the economic question: How much did commitments actually save relative to on-demand equivalent spend?

The Minimum Commitment Threshold asks the structural question: How much could this estate safely commit, given its hourly shape?

ESR needs a dollar count. The Minimum Commitment Threshold needs a full seasonal window of hours - 8,760 of them, not one. Utilization and coverage only help debug the mechanics. When Tomás reports "utilization 94%, coverage 35%" to Alpenglow's CTO Elena, the numbers are real - but they don't tell her whether the company should buy more, reshape the estate, or hold.

Four metrics, four different questions:

Metric The question it answers
Utilization
Did we use the commitments we bought?
Coverage How much eligible ODE received a commitment discount?
ESR How much did commitments actually save, relative to on-demand equivalent spend?
Minimum Commitment Threshold How much could this estate safely commit, given its hourly shape?

They Are Correlated, Not Independent

A common dashboard mistake is to treat utilization and coverage as two independent axes: push utilization up, push coverage up, and assume the result is optimal.

They are not independent. Coverage divides by the usage you had; utilization divides by the commitment you bought. That is the entire difference between them, and it is why they move against each other when you change the commitment amount. Buying more commitment raises coverage until coverage hits 100%. After that it only lowers utilization, because there is no more usage to absorb the extra. Buying less raises utilization - a smaller commitment is easier to fill - but lowers coverage.

They are not two dials, then. They are one curve, and the commitment level is the only thing that moves along it:

Utilization plotted against coverage as the commitment level rises: a solid purchasable curve that holds at 100% to the minimum level and falls after it, a dashed aggregate curve that stays flat much longer, and three shaded decision zones

Covered ODE and the minimum level are opposite decisions - buy, hold - and utilization reports 100% at both. It only starts moving past the minimum level, once the safe part of the choice has already been made, and everything after that point is priced risk appetite rather than free savings. Savings across the three marked rungs run $94.50 to $193.79 per hour, $870K/year between the position Alpenglow holds today and the redline. The dashed line is the same sweep measured on the pooled aggregate - the view a dashboard reports, flat far past the point where the decision changes.

So neither metric can be optimized alone, and neither is a verdict. High utilization may indicate discipline, or it may indicate under-buying. High coverage may indicate maturity, or it may indicate over-commitment. You need the Minimum Commitment Threshold and ESR to know which interpretation is correct.

Edge Cases That Break the Dashboard

100% utilization, terrible ESR

Imagine Alpenglow bought only enough commitment to cover $100/hour of its $900/hour eligible ODE. The commitment is filled every hour.

Utilization is 100%. Tomás's dashboard looks clean.

But 89% of eligible usage is still on-demand. At a 31% discount, the company saves about $31/hour against a $900/hour opportunity. ESR is roughly 3.4%.

The metric says execution is perfect. The economics say the company barely participated in the savings opportunity.

Correct diagnosis: compare coverage to the Minimum Commitment Rate, not to a raw dollar figure - dollars and a percentage don't divide into a usable ratio. Alpenglow's Minimum Commitment Rate is 45% ($405/hour of the $900/hour ODE). Covering only $100/hour of the $900/hour ODE is 11% coverage, so Minimum Commitment Capture Rate is 11%/45% ≈ 0.25: a massive acquisition gap, so buy more of the right commitments. (Alpenglow's actual capture rate is 0.78 - it has in fact committed substantially more. But the remaining gap of 10 coverage points, from 35% to 45%, is worth roughly 3 ESR points, about ~$237K/year at a 30% blended discount, in unrealized savings.)

Both below 100%, buying more is still right

This is the case that causes the most internal resistance - and it is happening at Alpenglow right now.

Maya, Alpenglow's staff platform engineer, notices something in the eu-west-1 commitment portfolio. The company holds a legacy m5 EC2 Instance Savings Plan, purchased before a partial migration to m6i instances. The dashboard numbers:

  • Utilization: 75%
  • Coverage: 52%

Tomás's immediate reaction is predictable: do not buy more until utilization improves. He reports this to Elena as a "wait and fix" item. On the surface, that sounds prudent.

But Maya digs into the hourly distribution. The uncovered 48% is not random. It is a stable tranche: every hour has a consistent layer of uncovered eligible ODE sitting above the current commitment stack in eu-west-1. The existing utilization problem comes from the older, poorly matched m5 Instance SP - the migration to m6i means some hours no longer have enough m5 usage to fill the original commitment.

In that case, a new Compute Savings Plan aimed at the stable uncovered tranche can be profitable even though aggregate utilization and coverage are both below 100%. The m5 Instance SP should be left to expire (or considered for a product switch), while the uncovered m6i usage justifies a fresh commitment.

The aggregate metrics said wait. The hourly shape said buy.

eu-west-1 m5 group: stable uncovered tranche above the legacy commitment

The legacy m5 Instance SP (75% utilization, 52% coverage) - and above it, a stable uncovered tranche present hour after hour. The metrics said wait; the shape says buy.

Correct diagnosis: do not use portfolio-level utilization as a veto on every new commitment. Segment the spend, inspect the uncovered hourly distribution, and calculate whether the marginal tranche clears the product break-even percentile - that is, sits below the Commitment Redline.

Three more ways the dashboard misleads

 

Scenario What the dashboard shows What actually happened Correct diagnosis
100% coverage, negative net savings Coverage near 100% for most of the period; position looks aggressive and mature Alpenglow's Storefront BU averages $450/hour, but the hourly shape swings from $650/hour during business hours to $250/hour overnight. If commitment is sized near the average, the overnight estate can't fill it; breakage in the trough hours erodes the savings earned in peak hours Coverage does not prove profitability. Check ESR and the hour-by-hour Risk Zone above the Minimum Commitment Threshold - commitment sized past the Commitment Redline sits in the Over-Commitment Zone, where negative marginal expected value makes the extra commitment waste with a discount label
Both high, still suboptimal Utilization 96%, coverage 88% - numbers look healthy Alpenglow sized commitments to October's pre-holiday traffic. By January, usage drops after the Q4 peak (Alpenglow's Q4 runs +40% above the May trough); the same commitment now sits above the seasonal minimum level, and breakage appears in predictable low-traffic hours even though the monthly average still looks acceptable High utilization and coverage do not eliminate timing risk. Compare the purchase to the seasonal Minimum Commitment Threshold, not the recent average - a minimum level that moves materially through the year makes quarterly purchasing lag the estate
Metrics flat, ESR improves Utilization and coverage roughly unchanged Alpenglow pools Storefront (day-peaking: $650/hr by day, $250/hr overnight) and Data & ML (night-peaking: $450/hr overnight, $150/hr daytime) at the payer level. The profiles offset each other, so the pooled Minimum Commitment Threshold rises - but the same commitments are still filled at roughly the same rate as before Utilization and coverage are blind to Lever 1. They can miss savings that come from reshaping demand rather than changing purchase execution

The Shape Argument

The deepest problem with utilization and coverage is that they compress time.

Averages hide shape, and shape is what determines whether commitments are safe.

Take two of Alpenglow's business units, each viewed in isolation with similar average coverage of roughly 55%.

Marketplace & Logistics is boring. It runs $120-180/hour, nearly flat around the clock. Coverage sits at roughly 55%, and that 55% is consistent hour after hour. There is always a stable layer of uncovered ODE above the current commitment stack. Buying another commitment is rational because the uncovered tranche appears every hour.

Storefront is volatile. It swings from $650/hour during business hours to $250/hour overnight, with Q4 holiday peaks pushing the daytime figure 40% higher. Average coverage might also land at 55%, but the interpretation is opposite. Buying more commitment would improve coverage in the low-traffic overnight hours and risk breakage if sized to daytime usage - or leave daytime savings on the table if sized to the overnight floor.

Same average coverage. Opposite decision.

Two BUs with the same 55% average coverage and opposite hourly shapes

Marketplace & Logistics vs Storefront: identical 55% average coverage, opposite commitment decisions. Averages hide the only thing that matters.

The same coverage average is bad enough. The harder case is two estates AWS scores identically on both metrics at once - because a commitment that sits below every hour of its own estate fills completely, whatever shape those hours have:

Two BUs with the same coverage and the same utilization, one with a safe layer left to buy and one already at its minimum level

Marketplace & Logistics and Storefront both report 44% coverage at 100% utilization. Storefront is already at its minimum level, so there is nothing left to buy without booking breakage. Marketplace & Logistics is two thirds of the way there, with $33/hour of safe layer still billed on demand - ~$87K/year realizable. The dashboard contains no number that separates them; capture (0.67 vs 1.00) does.

That is why the Minimum Commitment Threshold starts from hourly ODE distributions instead of dashboard averages. The question is not whether uncovered usage exists on average. The question is whether it exists consistently enough to fill a commitment in the hours where the bill arrives.

A commitment is an hourly promise. The analysis has to be hourly too.

Why AWS Defaults to These Metrics - and When They're Still Useful

AWS surfaces utilization and coverage because they are easy to compute, easy to explain, and directionally useful in simple cases. They're also the right place to start a post-hoc diagnosis: if ESR drops unexpectedly, utilization is the first signal to check since a drop usually points to breakage, from a workload migration, seasonality, an account-sharing change, or an over-aggressive purchase. If coverage sits below the Minimum Commitment Rate while utilization is healthy, that points the other way: under-commitment, where stable eligible usage exists but the commitment stack isn't large enough or isn't aimed at the right product segment.

Those are real, useful signals. Used this way, both metrics help explain why ESR moved.

The blind spot appears when the estate is large enough, seasonal enough, or fragmented enough that the structural question matters more than the dashboard question. Alpenglow hits all three: $7.884M/year of eligible spend, Q4 seasonality of +40% over the May trough, and three business units buying commitments in isolation. Utilization and coverage do not know whether business-unit isolation is lowering the minimum level, whether uncovered spend is stable (as Maya found in eu-west-1), or whether a high-coverage position is quietly losing money above the Commitment Redline. They are measurements, not a model.

The mistake is promoting them from diagnostic signals to strategy targets. A target should describe the outcome you want or the constraint that determines the next action. ESR describes the economic outcome. The Minimum Commitment Threshold describes the structural constraint. Minimum Commitment Capture Rate tells you whether the next savings point should come from buying better, reshaping the estate, or accepting modeled risk in the Risk Zone above the minimum level. Utilization and coverage come after that.

The Right Diagnostic Order

The practical workflow - the one Tomás should adopt - is simple.

First, calculate the Minimum Commitment Threshold from hourly on-demand equivalent spend. Segment the spend by commitment product, use a full seasonal lookback (Alpenglow needs at least a year to capture the Q4 holiday peak and May trough), and take the level covered in every hour of each exclusive commitment segment, summed across segments.

Second, calculate Covered ODE % and the ESR it produces, using the same ODE definition. This tells you the savings actually captured. Alpenglow covers 35% of its eligible ODE, an ESR of 10.5% or roughly $828K/year.

Third, calculate Minimum Commitment Capture Rate:

Minimum Commitment Capture Rate = Covered ODE % / Minimum Commitment Rate.

Alpenglow's 35% ÷ 45% = 0.78. That ratio tells Tomás which lever to inspect first. At 0.78, both levers matter: acquisition execution is leaving the minimum level 22% uncaptured - 10 coverage points, worth roughly 3 ESR points or ~$237K/year at a 30% blended discount - and the minimum level itself could rise by pooling business units (the Storefront/Data & ML day-night offset alone is worth 15.6 points of Minimum Commitment Rate, from 45% to 60.6%). If capture were near one, the conservative execution gap would be mostly closed; the next low-risk improvement would be structural. If capture were above one, the company would be operating above the minimum level - in the Risk Zone, where expected value is positive but breakage is non-zero - and should verify it has not crossed the Commitment Redline into the Over-Commitment Zone.

A column of eligible ODE with the safe layer drawn across it at 45%, the 35% already bought filled in below, and the unbought remainder hatched - annotated as four ordered steps ending in the two levers, fill the layer or raise it, with utilization and coverage demoted to a fifth rung below

The order is not stylistic. Steps 2 and 3 divide by step 1's denominator, and the lever choice needs all three - which is why the whole diagnostic reduces to two moves on one picture: fill the layer, or raise it. Utilization and coverage hang off the bottom on purpose - worth knowing once the position is set, worth nothing while it is being decided.

Only then should utilization and coverage enter the conversation.

Use utilization to find breakage - as Maya did with the m5 Instance SP. Use coverage to find exposed usage - as she found in the stable uncovered tranche in eu-west-1. Use both to debug execution details. Do not use either as the final answer.

Utilization asks whether you filled what you bought. Coverage asks whether usage received a discount. Those are useful questions.

They are not the commitment strategy.

Want us to compute this for you?

Cloud ex Machina is offering a free Commitment Level Evaluation: we compute your Minimum Commitment Threshold from hourly AWS billing data, calculate your Minimum Commitment Capture Rate and your ESR Ceiling, and show whether your next savings point should come from reshaping the estate, buying better, repricing what you already hold, or explicitly accepting modeled risk above the minimum level.

This is the third in a series on AWS commitment strategy. Utilization and coverage tell you how the position you already bought behaved; they cannot tell you what the position should have been.