← All guides

Managing AWS Compute Savings Plans: Elasticity, Seasonality, and Planned Waste

Published October 17, 2026

Aiming for 100% Savings Plan utilization costs you money. In the model on this page, a commitment sized so that nothing goes unused saves $2,062 a week. One sized to leave about 11% unused saves $3,143.

Cost Explorer shows 91% utilization and someone in finance asks why 9% of the commitment went to waste. Sometimes the right answer is that the 9% was the plan working.

Compute Savings Plans don’t bill against a monthly pool. You commit to a fixed number of dollars every hour for one or three years, and unused commitment at 03:00 on Sunday doesn’t roll over to cover the spike at 14:00 on Wednesday.

Real traffic rises and falls. Size the commitment to your lowest Sunday-night trough and you leave 60% or more of your weekday business hours at full On-Demand rates. Saving the most money means sizing above the floor and accepting some idle commitment on nights and weekends, because the weekday discount is bigger than the off-peak waste.

A week has 168 hours, and demand uses them unevenly

Consider a typical business application running on EC2, ECS, or EKS:

If you calculate the average hourly spend across the week, say $90/hr, you might be tempted to commit to that average. But an elastic fleet rarely runs at its average. It oscillates between a floor of $40/hr on Sunday night and a peak of $205/hr on Wednesday afternoon.

Committing to the $90/hr average means burning $50 of unused commitment every single hour of the weekend ($50 × 48 hours = $2,400 wasted each weekend), while still paying full On-Demand rates for every dollar above $90 on weekdays.

Simulating the weekly cycle

Below is a simulated 168-hour week (Monday 00:00 through Sunday 23:59) for an elastic cluster. The fleet swings between a quiet weekend floor of $40/hr (On-Demand equivalent) and weekday peaks around $205/hr, totaling $14,747 in pure On-Demand spend over the week.

The chart models a 3-year Compute Savings Plan with a 45% discount. At that rate, $1.00 of hourly commitment covers $1.82 of On-Demand usage.

168-Hour Weekly Elasticity vs. Commitment

Hourly On-Demand demand vs. Savings Plan coverage. See where planned waste beats 100% utilization.

Presets:
$30.00/hrcovers up to $54.55/hr On-Demand
$0$50$100$150$200$/hr (OD)MonTueWedThuFriSatSunCommit: $30/hr ($55 OD)
Covered by Savings Plan (45% discount)
Uncovered Spilling to On-Demand
Unutilized Commitment ("Planned Waste")
Net Weekly Savings+$3,43122.8% off On-Demand
Total Weekly Bill$11,604vs. $15,035 purely On-Demand
Unutilized "Waste"$381/wkpaid commitment with 0 usage
Plan Utilization92.4%commitment absorbed
Workload Coverage56.3%total compute covered

Interactive 168-hour demand model. Shaded areas show usage covered by the plan (cyan), unutilized commitment (red striped waste), and uncovered spikes spilling to On-Demand (amber). Use the presets or slider to compare strategies.

Zero waste saves $2,062 a week. Some waste saves $3,143.

Try the presets on the chart. They show why “zero waste” is a financial trap:

  1. The Zero-Waste Floor ($15/hr commitment). This commitment covers up to $27.27/hr of On-Demand usage. Because the application never drops below $40/hr, utilization is 100%. Waste is $0.

    • Commitment paid: $2,520/week
    • On-Demand paid: $10,166/week
    • Net saved: $2,062/week (14% off On-Demand)
    • The team celebrates 100% utilization, but leaves thousands of dollars of weekday volume exposed to On-Demand rates.
  2. The Optimal Sweet Spot ($30/hr commitment). This commitment covers up to $54.55/hr of On-Demand usage. Over nights and weekends, demand dips below $54.55, generating $539/week in unutilized commitment. Plan utilization drops to 89.3%.

    • Commitment paid: $5,040/week
    • On-Demand paid: $6,564/week
    • Net saved: $3,143/week (21.3% off On-Demand)
    • Despite $539 in visible waste, the company pockets an extra $1,081 in net cash every week ($56,200/year) compared to the zero-waste strategy. The weekday savings easily swallow the weekend waste.
  3. The Aggressive Over-Commitment ($85/hr commitment). Trying to cover peak demand pushes the commitment line too high. The plan covers up to $154.55/hr, but on weekends and nights, $60 to $100/hr of commitment sits idle.

    • Commitment paid: $14,280/week
    • On-Demand paid: $1,012/week
    • Waste: $6,732/week
    • Net saved: -$545/week (a net loss)
    • Here, the waste exceeds the total discount earned during weekday peaks. The company spends more money holding the Savings Plan than if it had done nothing and paid full On-Demand rates.

A commitment dollar breaks even at utilization of 1 minus the discount

To know whether an additional dollar of hourly commitment is worth buying, calculate its break-even utilization.

Let D be your plan’s discount percentage (e.g. 45% = 0.45).

An additional dollar of commitment breaks even across a period when the savings during active hours equal the waste during idle hours:

Hours Used × (D ÷ (1 − D)) = Hours Unused × $1.00

Since Hours Unused = Total Hours − Hours Used, substituting and rearranging gives the break-even utilization rate:

Break-Even Utilization = 1 − D
Plan typeTerm & paymentSample discount (D)Break‑even utilization (1 − D)Hours/week needed to break even
EC2 Instance Plan3-Year All Upfront66%34%57 hours / week
Compute Plan3-Year No Upfront45%55%92 hours / week
Compute Plan1-Year No Upfront28%72%121 hours / week

In practice:

Your workload’s shape sets the right commitment

No single rule of thumb (“cover 80% of compute”) works across architectures. Here are three common profiles:

1. The flat core (databases, message brokers, caching)

Clusters running Kafka, Elasticsearch/OpenSearch, RDS, or persistent queue workers rarely scale down on weekends.

2. The B2B SaaS application (business-hours traffic)

API gateways and microservices serving corporate customers during the workday.

3. Development and staging environments

Sandbox accounts configured with auto-stop scripts that turn off instances at 19:00 on weekdays and all weekend.

How to size a commitment, step by step

Work through these steps before you buy, instead of clicking the single recommendation button in AWS Cost Explorer.

1. Export hourly data, not daily totals

Cost Explorer defaults to daily or monthly granularity. Daily averages hide the swing between day and night. Export hourly usage from your AWS Cost and Usage Report (CUR) or Cost Explorer API for the past 30 to 90 days.

2. Plot the hourly duration curve

Take all 720 hours of a month and sort them from highest spend to lowest spend. The resulting downward slope shows how many hours each incremental dollar of compute was alive.

3. Layer your commitments

Instead of buying one massive 3-year Compute Plan, stack commitments into tranches:

Compute Spend ($/hr)
  ▲
  │   [ On-Demand / Spot ]         Top 25% (spikes, bursts, unpredictable growth)
  ├─────────────────────────────
  │   [ 1-Year Compute Plan ]      Middle 25% (weekday daytime volume, medium flexibility)
  ├─────────────────────────────
  │   [ 3-Year Instance/Compute ]  Bottom 50% (unshakable baseline, maximum discount)
  └─────────────────────────────► Time (Hours)

4. Check application changes before signing

A Savings Plan commitment is fixed in plan dollars. If you migrate your cluster to newer instances or to Graviton, your plan-rate cost per workload drops:

5. Account for the application ranking order

AWS applies Savings Plans each hour by ranking usage from highest discount percentage to lowest. If your commitment runs short during peak hours, your highest-discount instances are covered first, while lower-discount lines spill to On-Demand. For the exact worked math and queue order, see how Compute Savings Plans are applied.

Bottom line: size each tranche of commitment by how many hours a week it will be used, not by whether it will ever sit idle. A tranche used for more than the break-even share of the week earns its place, and one used for less loses money.

Next steps