All posts

Cloud Storage Minimum Duration Charges: The Early-Deletion Penalty Nobody Reads

Cold object tiers commit you to 30, 90, 180, even 365 days of billing per object — you pay the full window even if you delete tomorrow. Why "cheap" archive storage costs more for churny data, with a checkable per-provider table.

You can get billed for a file weeks after you deleted it

Upload an object to AWS Glacier Deep Archive, delete it the next morning, and you still pay for 180 days of storage on that object. The data is gone. The charge stays. AWS calls it an early-deletion fee, Wasabi calls it Timed Deleted Storage, Azure and Google call it an early-deletion penalty. Same mechanism, four labels, and it's the most common reason a "cheap" archive tier turns out more expensive than the standard one it was supposed to undercut.

How the charge actually works

Write an object to a tier with a minimum duration and the provider commits you to paying for it for the full window no matter when you delete. The fee is prorated against the days you skipped, not a flat fine. A few worked examples, all from the providers' current docs:

  • Move a blob to Azure's archive tier (180-day minimum), delete it after 45 days, and you owe an early-deletion fee equal to 180 − 45 = 135 days of archive storage for that blob.
  • Store an object in Google Coldline (90-day minimum), delete after 45 days, and you pay for the full 90.
  • Delete a Wasabi object after 30 days under the pay-as-you-go 90-day minimum, and you owe 60 days of Timed Deleted Storage.

Deletes aren't the only trigger. The clock also trips on overwrites and tier transitions. Lifecycle-rule your Standard-IA objects down to Glacier before the IA minimum is up and that counts as an early deletion of the IA copy — the transition is treated as ending its life. Versioning compounds it: every overwritten version is its own object with its own clock, so a churny prefix with versioning enabled can accrue minimum-duration charges on data you can't even see in a normal bucket listing.

The per-provider table, with the windows that bite

These are the minimum storage durations in the providers' current documentation. Standard and hot tiers have no minimum; the penalty is the price of admission to everything cheaper per GB.

ProviderTierMinimum duration
AWS S3StandardNone
AWS S3Standard-IA / One Zone-IA30 days
AWS S3Glacier Instant & Flexible Retrieval90 days
AWS S3Glacier Deep Archive180 days
Azure BlobHotNone
Azure BlobCool30 days
Azure BlobCold90 days
Azure BlobArchive180 days
Google Cloud StorageStandardNone
Google Cloud StorageNearline30 days
Google Cloud StorageColdline90 days
Google Cloud StorageArchive365 days
WasabiPay-as-you-go90 days
WasabiReserved / capacity bundle30 days
Backblaze B2(single tier)None

Two rows are worth a second look. Google's Archive minimum is a full 365 days — delete a file after a month and you've bought the next eleven you'll never use. And Wasabi applies its 90-day minimum to its only storage product, so there's no penalty-free hot tier to retreat to. That's the catch hiding behind the flat $6.99/TB headline. Backblaze B2 is the outlier with no minimum at all, which is why it tends to win on genuinely churny workloads.

Why does cheap-per-GB cold storage cost more for high-churn data?

Because the headline per-GB rate only describes data that sits still. The instant your data churns faster than the minimum window, you're paying rent on storage that no longer exists.

Take AWS. Standard runs about $0.023/GB-month; Standard-IA is roughly $0.0125/GB-month, near half. Looks like free money. Now write 1 TB of logs you process and delete after 10 days. In Standard you pay for about 10 days of that terabyte — call it $7.50. In Standard-IA you pay the 30-day minimum regardless: about $12.50. The "cheaper" tier costs 67% more because the minimum-duration floor swamps the per-GB saving. Push the same pattern into Glacier Deep Archive's 180-day floor and it stops being a rounding error: six months of billing for ten days of data, with retrieval fees stacked on top.

The rule of thumb is simple. Cold tiers are priced for data whose expected lifetime clears the minimum by a wide margin. Backups you keep for years, compliance archives, a finished project you're parking — fine. Data that gets rewritten, expired, or deleted on a weekly or monthly cadence belongs in a no-minimum tier, and the per-GB discount on the cold tier is bait.

How do you avoid the early-deletion fee?

Match the tier to the data's actual lifetime, not its access frequency. "Rarely accessed" is the marketing hook; "deleted before the minimum" is the bill. A file you touch once a month but keep for two years belongs in cold storage. The same file deleted after six weeks does not.

Then audit your lifecycle rules. Auto-transitioning objects to a colder tier and expiring them shortly after is the classic self-inflicted penalty — the transition resets the clock, the expiry trips it. Watch versioning and overwrites for the same reason: both mint new objects with fresh minimum-duration clocks, so a high-write bucket with versioning on quietly accumulates liability you never listed. And read the line item. On an AWS bill it shows as EarlyDelete; on Wasabi it's Timed Deleted Storage. If it's there, your tiering strategy and your data's real lifetime have drifted apart.

Where flat consumer pricing sidesteps the whole thing

The minimum-duration trap is specific to tiered object storage billed per GB-month. It exists so a provider can advertise a low per-GB rate while guaranteeing itself a floor of revenue per object. Flat-rate consumer and prosumer storage doesn't have the mechanism. You pay for a capacity bucket, and deleting a file frees space you reuse immediately with no clock attached.

That's the model we run at Beebeeb. One per-TB price — Starter €1.99/month for 100 GB, Basic €3.99/month for 200 GB, Pro €10.99/month for 1 TB, scaling to 99 TB self-serve at +€10.99 per extra TB (custom quote beyond) — with no early-deletion fee, no retrieval fee, and no minimum retention window on the data you store. Delete a file a minute after you upload it and your usage drops by exactly that file. Every byte is also end-to-end encrypted before it leaves your device, which is a separate conversation from billing but worth knowing: the only thing watching your deletes is your own quota meter, not a 180-day penalty timer. For short-lived or churny data the question isn't "what's the per-GB rate" — it's "what happens when I delete," and for cold object tiers the honest answer is "you keep paying."

Minimum-duration fees aren't a scam. They're a rational price for a guarantee, and if your data really does sit for years they cost you nothing. The mistake is reaching for a cheap archive tier by reflex when your data's real lifetime is measured in days. Check the window before you write, not after the invoice clears.

Files only you can read

Beebeeb is end-to-end encrypted, zero-knowledge cloud storage — stored in Europe, open source, with a 14-day free trial on Starter, Basic and Pro. Encryption happens on your device; we only ever hold ciphertext we can’t read.

Start a 14-day trial See pricing How the encryption works