CostLensLow Savings Plan Utilization

Low Savings Plan Utilization

CostLens flags Savings Plan commitments that are sitting partly unused — committed hourly spend is being wasted on capacity you aren't consuming.

Updated July 20262 min read

A Savings Plan bills its full hourly commitment whether or not you actually consume that much compute. Coverage tells you whether enough of your eligible spend is under a Savings Plan; utilization tells you whether the commitment you already made is being fully used. Low utilization means part of your committed hourly spend is going to waste every single hour.

Advisory only

This check can't be auto-fixed — the commitment is locked in until it expires. The available actions are to shift more eligible workloads onto it, or right-size your next commitment when this one renews.

How it works

CostLens measures your Savings Plan utilization

Queries AWS Cost Explorer's GetSavingsPlansUtilization for the previous full calendar month. Utilization is the percentage of your committed hourly spend that was actually matched against eligible usage.

Applies the utilization threshold

Accounts with utilization below 90% and at least $10/month of unused commitment are flagged. Accounts with no Savings Plan, or with negligible unused commitment under that threshold, are skipped entirely.

Estimates the waste

The finding's estimated savings is AWS's own UnusedCommitment for the period — the dollar amount of your hourly commitment that had no matching usage to apply to.

What to do

Step 1 — Understand why utilization is low

Common causes:

  • Overall eligible usage (EC2, Fargate, Lambda) dropped below the committed hourly rate after the plan was purchased
  • Workloads moved to an instance family, Region, or service not covered by this Savings Plan type
  • The commitment was sized against a temporary usage peak that didn't hold

Step 2 — Shift more eligible spend onto it

Savings Plans apply automatically and broadly — a Compute Savings Plan covers any combination of EC2 (any family/size/Region/OS), Fargate, and Lambda. If utilization is low, check whether other eligible workloads could be consolidated onto accounts/Regions where the plan applies, since no manual "assignment" step exists — AWS applies it automatically to the highest-value matching usage first.

Step 3 — Fix the next commitment, not this one

The current plan can't be cancelled or resized. When it's due for renewal:

  • Size the new commitment closer to your sustained, not peak, eligible spend.
  • Prefer a shorter term or lower hourly commitment if usage has been trending down, to avoid repeating the same waste.

Step 4 — Re-check after usage stabilizes

CostLens re-measures utilization on every billing sync using a rolling calendar-month window, so the finding clears on its own once eligible usage rises to match the commitment.

Severity levels

Severity is based on the estimated monthly waste (UnusedCommitment), using the same scale as every other CostLens check:

SeverityEstimated monthly savings
critical>$500
high$100–$500
medium$20–$100
low<$20

Required IAM permissions

Included in the CostLens IAM policies from AWS Accounts:

ce:GetSavingsPlansUtilization

This is an account-level recommendation

Savings Plan utilization is measured across the entire AWS account, not per individual resource — AWS's utilization API reports one aggregate figure per account per period. The recommendation appears once per account rather than once per resource.

CostLens
Previous
Savings Plan Coverage
CostLens
Next
Lambda High Error Rate