TL;DR. S3 Intelligent-Tiering saves money when objects are large or mostly cold, and loses money on buckets of sub-megabyte objects that stay busy. The monitoring fee is flat per object ($2.50 per million a month in US East); the saving grows with object size times the share of bytes nobody touches for 90 days. A 50 TB bucket of 100 million objects (about 537 KiB each) breaks even at 25.7% cold. The same 50 TB as 512 MiB table files breaks even at about 0.03% cold. Below: the meters, the formula, a lifecycle-rule comparison, and how to read your own cold share from S3 Inventory.
S3 Intelligent-Tiering is worth it when three things line up: objects of 128 KB or more, large enough on average to cover a per-object fee, and a real share of bytes that nobody reads for months. Object count is the trap. The fee is charged per object whether the object goes cold or not, so a bucket of many small, busy objects pays the fee for nothing.
The top-ranking guides describe the tiers without working out a break-even. This post works out the break-even from the US East price list (publication of November 4, 2026), as a formula you can apply to your own bucket.
Is S3 Intelligent-Tiering worth it? Check three numbers first
- Object size. Objects under 128 KB are never tiered: AWS says they are "not monitored and not eligible for auto-tiering" and bill at Frequent Access rates with no fee (storage class page). They neither gain nor lose.
- Cold share. Only bytes untouched for 30 days get cheaper, and only bytes untouched for 90 days get much cheaper.
- Object count. The fee scales with objects, not bytes. Rewind estimated that its 80 billion backed-up objects would cost "around $200,000 per month just for the monitoring" (June 2022).
If your average object is above about 1.35 MiB, Intelligent-Tiering pays for itself once a tenth of the bytes go cold. Below that size, work out the cold share before you switch.
What Intelligent-Tiering charges, tier by tier
AWS moves objects to Infrequent Access "when they haven't been accessed for 30 consecutive days", and to Archive Instant Access after 90 days. Two more tiers are opt-in and need a restore before a read.
| Meter (US East) | List price |
|---|---|
| Frequent Access tier | $0.023 per GB-month up to 50 TB, then $0.022 up to 500 TB, then $0.021 |
| Infrequent Access tier (after 30 days) | $0.0125 per GB-month |
| Archive Instant Access tier (after 90 days) | $0.004 per GB-month |
| Archive Access tier (opt-in) | $0.0036 per GB-month |
| Deep Archive Access tier (opt-in) | $0.00099 per GB-month |
| Monitoring and automation | $0.0025 per 1,000 objects a month |
| Lifecycle transition into Intelligent-Tiering | $0.01 per 1,000 transitions |
| PUT, COPY, POST, LIST | $0.005 per 1,000 requests |
Source: AWS Price List API, S3 offer for us-east-1, read November 8, 2026. There are "no retrieval charges" and no minimum storage duration (storage class comparison).
What resets the clock matters as much as the prices. GetObject, PutObject, RestoreObject, CompleteMultipartUpload, CopyObject, UploadPartCopy and console downloads all move an object back to Frequent Access. HeadObject, tagging calls and ListObjects do not. A backup tool or a full scan that copies everything once a month keeps the whole bucket at the top rate, fee included.
The break-even for your bucket: fee per object vs saving per object
Each monitored object costs $0.0025 / 1,000 = $0.0000025 a month. A byte in Archive Instant Access saves $0.023 - $0.004 = $0.019 per GB-month against Frequent Access. So the bucket breaks even when:
objects x 0.0000025 = cold share x stored GB x 0.019 break-even cold share = (objects x 0.0000025) / (stored GB x 0.019) break-even size (GB) = 0.0000025 / (cold share x 0.019)
AWS bills a GB as 1,073,741,824 bytes, so 1 GB is 1,048,576 KiB. With every object cold, the break-even size is 0.0000025 / 0.019 = 0.0001316 GB, or 138 KiB. At a quarter cold it is 552 KiB; at a tenth, 1,380 KiB.
A 50 TB bucket of 100 million objects breaks even at 25.7% cold
Take a hypothetical bucket of 50 TB (51,200 GB, all in the first price band) and 100 million objects, all at or above 128 KB. That is 0.000512 GB, about 537 KiB, per object.
| Bucket state | Monthly cost |
|---|---|
| All in S3 Standard: 51,200 x $0.023 | $1,177.60 |
| Monitoring fee: 100,000,000 x $0.0000025 | $250.00 |
| Intelligent-Tiering, 10% cold | $1,330.32 |
| Intelligent-Tiering, 25% cold | $1,184.40 |
| Intelligent-Tiering, 30% cold | $1,135.76 |
| Intelligent-Tiering, 50% cold | $941.20 |
| Intelligent-Tiering, all cold | $454.80 |
Each row is $1,177.60 + $250.00 - (cold share x 51,200 x $0.019). The break-even is $250.00 / $972.80 = 25.7% of the bytes untouched for 90 days. Below that, the fee costs more than the cheaper tier returns.
Moving the existing objects in costs 100,000,000 x $0.01 / 1,000 = $1,000 once. At 50% cold, the net saving is $236.40 a month, so the move pays back in about 4.2 months after the objects reach Archive Instant Access.
A data lake's table files clear the bar at almost any cold share
Data lake table files are large by design. Iceberg targets 512 MB files (write.target-file-size-bytes defaults to 536,870,912 bytes, which is 512 MiB) and Delta auto compaction targets 128 MB. The same 50 TB as 512 MiB files is 102,400 objects: a fee of $0.256 a month, and a break-even of about 0.03% cold.
For Parquet table files the fee is noise, so the question becomes which files go cold. The answer is uncomfortable: the files no query reads are often the files that should not exist. After compaction rewrites small files, or an update rewrites a file, the old file stays on S3 until VACUUM or snapshot expiry deletes it. Delta's default retention is 7 days; when that cleanup never runs, the dead files sit there, unread, and Intelligent-Tiering moves them to $0.004 per GB-month. The bill drops about 83% on bytes that could cost nothing.
That is the case against treating Intelligent-Tiering as a cleanup. It prices waste lower; it never deletes anything. The S3 storage cost guide measured how fast unreferenced Delta files pile up; they need a delete, and a cheaper shelf only hides them.
Keep the opt-in Archive Access tiers off table prefixes. AWS says to activate them "only if your objects can be accessed asynchronously": an archived object must be restored before a GET, so a query that touches one waits on a restore.
Intelligent-Tiering or a lifecycle rule: a known pattern wins
Intelligent-Tiering earns its fee when you cannot predict access. When you can, a lifecycle rule is cheaper, because it pays once per object instead of every month. Take a hypothetical raw landing zone: 1 TB (1,024 GB) written once, read by the day-one load, never read again, kept 12 months.
| Option for 1 TB kept 12 months | 1 MiB objects | 128 MiB objects |
|---|---|---|
| S3 Standard all year | $282.62 | $282.62 |
| Intelligent-Tiering | $117.47 | $86.26 |
| Lifecycle to Glacier Instant Retrieval at day 30 | $89.58 | $68.77 |
| Lifecycle expiration at day 90 | $70.66 | $70.66 |
The inputs, from the price list:
- Intelligent-Tiering storage: 1 month at $0.023, 2 months at $0.0125 and 9 months at $0.004 = $23.552 + $25.60 + $36.864 = $86.016, about $86.02. The fee adds 1,048,576 objects x $0.0000025 x 12 = $31.46 for 1 MiB objects, or $0.25 for 8,192 objects of 128 MiB.
- Glacier Instant Retrieval rule: 1 month at $0.023 plus 11 months at $0.004 = $68.61, plus transitions at $0.02 per 1,000, since "S3 Lifecycle Transition request pricing above represents requests to that storage class": $20.97 for 1 MiB objects, $0.16 for 128 MiB.
- Expiration: 3 months of Standard, then nothing.
The rule wins because it reaches $0.004 at day 30 instead of day 90 and pays no monthly fee. It carries risks Intelligent-Tiering does not: Glacier Instant Retrieval charges $0.03 per GB retrieved, bills objects under 128 KB as 128 KB and has a 90-day minimum. One unplanned full read of the terabyte costs 1,024 x $0.03 = $30.72, more than the rule saves over Intelligent-Tiering in either column ($27.89 and $17.49).
If nobody needs the data after 90 days, expire it: the expiration rule beats Intelligent-Tiering in both columns and its cost stops at day 90, while every other option keeps billing. For 128 MiB objects the Glacier Instant Retrieval rule is $1.89 cheaper over the year only because it leaves Standard at day 30; tiering makes a byte cheaper, deletion makes it free.
Read your cold share from S3 Inventory before you commit
You do not have to guess the cold share. S3 Inventory reports an Intelligent-Tiering access tier per object (FREQUENT, INFREQUENT, ARCHIVE_INSTANT_ACCESS and the opt-in tiers), at $0.0025 per million objects listed.
- Pick one prefix whose access you cannot predict and add a lifecycle transition into Intelligent-Tiering for it alone. A million objects cost $10 to move.
- Turn on a daily inventory and create the Athena table from AWS's definition, which includes
intelligent_tiering_access_tier. - After 90 days, run the query below, then plug the cold bytes and the monitored object count into the formula above.
SELECT intelligent_tiering_access_tier AS tier,
count(*) AS objects,
round(sum(size) / power(1024, 3), 1) AS gb
FROM s3_inventory
WHERE dt = '2026-11-08-01-00'
AND storage_class = 'INTELLIGENT_TIERING'
AND size >= 131072 -- monitored objects only
GROUP BY 1
ORDER BY gb DESC;
The ARCHIVE_INSTANT_ACCESS bytes over the total give the cold share; the objects column gives the fee. For the size distribution of a bucket still in Standard, the size-band query in our storage cost guide shows how many objects sit under 128 KB.
The case for turning it on everywhere, and where it fails
AWS calls Intelligent-Tiering "the ideal storage class when you want to optimize storage costs for data that has unknown or changing access patterns" and says customers have "saved more than $6 billion in storage costs" against Standard. For large objects that is a fair default: above a few MiB, the fee is a rounding error and the downside is close to zero.
The default fails in two places. Buckets of sub-megabyte objects with a low cold share pay more than Standard, as the 10% row shows. And on data that nobody reads, it settles for about 83% off when deletion gives 100%.
Limits of this analysis: US East list prices only, no discounts. The break-even assumes uniform object sizes and counts only the 90-day tier, so objects resting in Infrequent Access save a little more than shown. Both buckets are hypothetical, and the Athena query has not been run on real inventory data. Pipeline storage and request costs are out of scope.
Intelligent-Tiering knows when an object was last read, not who reads the dataset, or whether anyone should. Datapace is building one map of your data estate (databases, warehouses, pipelines and what consumes them) with usage and cost attached, and agents that propose changes as pull requests your team reviews and merges. For the rest of the S3 bill, read S3 storage cost: what data lakes pay for files nobody reads.
Sources
- AWS Price List API, Amazon S3 offer for us-east-1, published November 4, 2026, read November 8, 2026.
- AWS, Amazon S3 pricing and S3 FAQs, read November 8, 2026.
- AWS docs, How S3 Intelligent-Tiering works and Understanding and managing Amazon S3 storage classes.
- AWS, Amazon S3 Intelligent-Tiering storage class.
- AWS docs, Cataloging and analyzing your data with S3 Inventory and Querying Amazon S3 Inventory with Amazon Athena.
- Apache Iceberg, Configuration; Delta Lake, Optimizations and Table utility commands.
- Rewind, Saving money with AWS Glacier Instant Retrieval, June 2022.




