Skip to content
Calcrivo

Storage Optimization Score Calculator

Score AWS storage hygiene across six waste levers and estimate the monthly spend each one is quietly consuming.

Inputs

USD
%
%
%
%
%
GB
USD per GB-month

Storage Optimization Score

57out of 100

Rating

D — Weak

Estimated Monthly Waste

$16,108.20

Estimated Annual Waste

$193,298.40

Share of Spend Recoverable

35.8%

Biggest Single Lever

Expire noncurrent object versions

Step by step

  1. Values used

    Monthly AWS storage spend = 45,000 USD; Share of buckets with a lifecycle policy = 55 %; Share of spend on unattached EBS volumes = 8 %; Share of spend on snapshots of deleted volumes = 12 %; Share of spend on noncurrent object versions = 15 %; Share of spend still on gp2 volumes = 30 %; Incomplete multipart upload data = 900 GB; Storage price for the abandoned uploads = 0.0230 USD per GB-month

  2. Storage Optimization Score

    waste = unattached share + 0.5 x orphan snapshot share + 0.6 x noncurrent version share + 0.15 x uncovered bucket share + 0.2 x gp2 share, all x spend, plus abandoned upload GB x rate; score = 100 − 1.2 x waste share.

  3. Storage Optimization Score

    = 57 out of 100

  4. Rating

    = D — Weak

  5. Estimated Monthly Waste

    = 16,108.20

  6. Estimated Annual Waste

    = 193,298.40

  7. Share of Spend Recoverable

    = 35.8

  8. Biggest Single Lever

    = Expire noncurrent object versions

How it works

Each lever gets a recovery factor rather than being counted in full, because not every noncurrent version or snapshot is safe to delete: unattached volumes are fully recoverable, orphaned snapshots about half, and a gp2 to gp3 migration saves roughly 20% of the volume line. Multipart uploads are handled separately because abandoned parts are billed as storage but are invisible in the object listing, so they never appear in a bucket size report. Weights and rates here are user-supplied estimates and list prices — confirm the prices for your region and calibrate the factors against your own cleanup results. It turns a vague sense that storage costs too much into a ranked list with a number attached, so the first cleanup sprint targets the lever with the largest recoverable spend rather than the easiest one.

Formula

Storage Optimization Score

waste = unattached share + 0.5 x orphan snapshot share + 0.6 x noncurrent version share + 0.15 x uncovered bucket share + 0.2 x gp2 share, all x spend, plus abandoned upload GB x rate; score = 100 − 1.2 x waste share.

recovery factor
Portion of each category that is realistically reclaimable
waste share
Recoverable spend as a percentage of total storage spend
score
100 is clean, 0 is entirely recoverable waste

Frequently Asked Questions

How is Storage Optimization Score calculated?

waste = unattached share + 0.5 x orphan snapshot share + 0.6 x noncurrent version share + 0.15 x uncovered bucket share + 0.2 x gp2 share, all x spend, plus abandoned upload GB x rate; score = 100 − 1.2 x waste share. Each lever gets a recovery factor rather than being counted in full, because not every noncurrent version or snapshot is safe to delete: unattached volumes are fully recoverable, orphaned snapshots about half, and a gp2 to gp3 migration saves roughly 20% of the volume line. Multipart uploads are handled separately because abandoned parts are billed as storage but are invisible in the object listing, so they never appear in a bucket size report. Weights and rates here are user-supplied estimates and list prices — confirm the prices for your region and calibrate the factors against your own cleanup results.

Why does Storage Optimization Score matter?

It turns a vague sense that storage costs too much into a ranked list with a number attached, so the first cleanup sprint targets the lever with the largest recoverable spend rather than the easiest one.

What values do I need to enter?

This calculator takes 8 inputs: Monthly AWS storage spend, Share of buckets with a lifecycle policy, Share of spend on unattached EBS volumes, Share of spend on snapshots of deleted volumes, Share of spend on noncurrent object versions, Share of spend still on gp2 volumes, Incomplete multipart upload data, Storage price for the abandoned uploads. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

Why are incomplete multipart uploads so easy to miss?

Uploaded parts are billed as storage but do not appear as objects in the bucket, so they are absent from ListObjects and from most size dashboards. Only an AbortIncompleteMultipartUpload lifecycle rule or a ListMultipartUploads call reveals them.

You might also need