Meter
Why a million small objects cost more than the same bytes in one file
A worked comparison of billable-size floors, per-object metadata, and per-object restore requests for equal logical capacity, with storage, retrieval, requests, temporary-copy storage, and egress kept as separate receipt lines.
Put your own numbers through the calculator to see what this meter does to a normal month and to the day you restore.
A size floor and metadata overhead are different meters
A minimum billable object size replaces the charged size when an object is below a class threshold. S3 Standard-IA, One Zone-IA, and Glacier Instant Retrieval bill objects smaller than 128 KB as 128 KB. S3 Glacier Flexible Retrieval and Deep Archive instead add 40 KB of metadata to every archived object. [1]
AWS splits that 40 KB into 8 KB billed at S3 Standard rates and 32 KB billed at the archive-class rate. One million archived objects therefore add 40 GB of metadata in the decimal KB-to-GB arithmetic used by the AWS records, even when their logical payload already totals 1,000 GB. [1] [2]
The dataset also contains GiB and KiB offers. This explainer keeps each published unit system visible and does not silently treat KB as KiB or GB as GiB. [3] [4]
| Meter | Published rule | One-million-object consequence | Source ref |
|---|---|---|---|
| S3 Deep Archive metadata | Add 40 KB per object: 8 KB at S3 Standard and 32 KB at Deep Archive rates [1] | 1,000,000 x 40 KB = 40 GB of metadata, made of 8 GB Standard-rate metadata and 32 GB Deep Archive-rate metadata | [1] [2] |
| S3 128 KB billable-size floor | Standard-IA, One Zone-IA, and Glacier Instant Retrieval charge objects below 128 KB as 128 KB [1] | One million 1 KB objects contain 1 GB logically but consume 128 GB of billable storage | [1] |
| Telnyx 4 KiB billing granularity | Each object is rounded in 4 KiB units and metadata is included [4] | The result remains in KiB or GiB; it is not converted through the decimal AWS example | [4] |
The same 1,000 GB can carry $0.99 or $216.67 of Deep Archive storage
The worked workload holds logical payload at 1,000 GB for one full month in S3 Glacier Deep Archive in us-east-1. Average object size divides the payload evenly, the decimal dataset units are kept as published, and replication, versioning, requests, retrieval, temporary copies, and egress are excluded from this storage-only table. [2] [1]
The payload line is always 1,000 GB x $0.00099 = $0.99. Object size changes only the object count and the two metadata lines. At a 1 MB average there are one million objects, so the backup carries 40 GB of pure metadata and costs $1.21 after rounding. [2] [1]
| Average object size | Object-count arithmetic | Added metadata | Monthly storage arithmetic | Monthly charge | Source ref |
|---|---|---|---|---|---|
| 1 KB | 1,000 GB x 1,000,000 KB/GB / 1 KB = 1,000,000,000 objects | 1,000,000,000 x 40 KB = 40,000 GB | 1,000 x $0.00099 + 8,000 x $0.023 + 32,000 x $0.00099 | $216.67 | [2] [1] |
| 10 KB | 1,000 GB x 1,000,000 KB/GB / 10 KB = 100,000,000 objects | 100,000,000 x 40 KB = 4,000 GB | 1,000 x $0.00099 + 800 x $0.023 + 3,200 x $0.00099 | $22.56 | [2] [1] |
| 100 KB | 1,000 GB x 1,000,000 KB/GB / 100 KB = 10,000,000 objects | 10,000,000 x 40 KB = 400 GB | 1,000 x $0.00099 + 80 x $0.023 + 320 x $0.00099 | $3.15 | [2] [1] |
| 1,000 KB, or 1 MB | 1,000 GB x 1,000,000 KB/GB / 1,000 KB = 1,000,000 objects | 1,000,000 x 40 KB = 40 GB | 1,000 x $0.00099 + 8 x $0.023 + 32 x $0.00099 | $1.21 | [2] [1] |
| 10,000 KB, or 10 MB | 1,000 GB x 1,000,000 KB/GB / 10,000 KB = 100,000 objects | 100,000 x 40 KB = 4 GB | 1,000 x $0.00099 + 0.8 x $0.023 + 3.2 x $0.00099 | $1.01 | [2] [1] |
| 100,000 KB, or 100 MB | 1,000 GB x 1,000,000 KB/GB / 100,000 KB = 10,000 objects | 10,000 x 40 KB = 0.4 GB | 1,000 x $0.00099 + 0.08 x $0.023 + 0.32 x $0.00099 | $0.99 | [2] [1] |
Below 9.80 KB, Deep Archive is more expensive than S3 Standard
For this 1,000 GB us-east-1 comparison, S3 Standard costs 1,000 x $0.023 = $23.00 in the first storage band and has no minimum billable object size. Deep Archive costs $0.99 for payload plus $215.68 divided by average object size in KB for its split metadata. [2] [1]
Setting $0.99 + $215.68 / size equal to $23.00 gives a crossover at 9.799 KB, rounded to 9.80 KB. Below that average, the nominally cheapest class is the more expensive of these two storage tiers. This is a storage-only crossover, not a restore winner, because retrieval, requests, temporary-copy storage, and egress remain separate. [2] [1]
| Average object size | S3 Standard monthly storage | Deep Archive monthly storage | Result in this two-tier comparison | Source ref |
|---|---|---|---|---|
| 1 KB | $23.00 | $216.67 | Deep Archive is the most expensive | [2] [1] |
| 5 KB | $23.00 | $44.13 | Deep Archive is the most expensive | [2] [1] |
| 9.80 KB | $23.00 | $23.00 after rounding | Crossover | [2] [1] |
| 10 KB | $23.00 | $22.56 | Deep Archive is cheaper by $0.44 | [2] [1] |
| 100 KB | $23.00 | $3.15 | Deep Archive is cheaper by $19.85 | [2] [1] |
| 1 MB | $23.00 | $1.21 | Deep Archive is cheaper by $21.79 | [2] [1] |
A read-only restore exposes the request cost of small objects
This restore keeps the archived source unchanged and restores the same 1,000 GB to the public internet using Deep Archive Standard retrieval. It assumes one RestoreObject request and one GET per object, the full 100 GB AWS internet-transfer allowance remains, and the temporary S3 Standard copy is kept for 7 days in an illustrative 30-day month. [2] [1] [5]
The byte-based subtotal is constant: $20.00 retrieval, $81.00 egress, and $5.37 temporary-copy storage, or $106.37 after rounding. Object count changes the request subtotal at $0.10 per 1,000 Standard restore requests plus $0.0004 per 1,000 GET requests. Real tools can issue additional HEAD, LIST, range, and retry operations, so the one-restore-plus-one-GET assumption is a lower-shape model rather than a universal request count. [2] [1]
Early deletion does not apply and contributes $0.00. A read-only restore can charge retrieval, restore and GET requests, temporary-copy storage, and egress, but it does not delete, overwrite, move, or transition the archived source. [1] [5]
| Average object size | Object count | Restore plus GET request arithmetic | Byte-based subtotal | Illustrative restore total | Source ref |
|---|---|---|---|---|---|
| 1 KB | 1,000,000,000 | 1,000,000,000 / 1,000 x ($0.10 + $0.0004) = $100,400.00 | $106.37 | $100,506.37 | [2] [1] |
| 10 KB | 100,000,000 | 100,000,000 / 1,000 x ($0.10 + $0.0004) = $10,040.00 | $106.37 | $10,146.37 | [2] [1] |
| 100 KB | 10,000,000 | 10,000,000 / 1,000 x ($0.10 + $0.0004) = $1,004.00 | $106.37 | $1,110.37 | [2] [1] |
| 1 MB | 1,000,000 | 1,000,000 / 1,000 x ($0.10 + $0.0004) = $100.40 | $106.37 | $206.77 | [2] [1] |
| 10 MB | 100,000 | 100,000 / 1,000 x ($0.10 + $0.0004) = $10.04 | $106.37 | $116.41 | [2] [1] |
| 100 MB | 10,000 | 10,000 / 1,000 x ($0.10 + $0.0004) = $1.004 | $106.37 | $107.37 | [2] [1] |
Egress and requests decide the restore, not the storage-rate headline
A storage-only crossover answers which tier holds the bytes more cheaply. It does not answer which provider restores them more cheaply. Backblaze B2, Cloudflare R2, and Wasabi expose three different restore boundaries: a proportional egress allowance with a published overage, no internet-egress charge with paid operations, and a fair-use policy with no published excess rate. [6] [8] [9]
The examples below use 1,000 GB of monthly average or active storage as the provider rule requires. They keep egress and request lines separate, and they do not add early-deletion charges because every restore remains read-only. [6] [8] [9] [5]
| Provider | 1,000 GB outbound restore | 4,000 GB outbound month | Object-count consequence | Required state | Source ref |
|---|---|---|---|---|---|
| Backblaze B2 | min(1,000 GB, 3 x 1,000 GB average storage) is inside the allowance; egress $0.00 | (4,000 GB - 3,000 GB allowance) x $0.01/GB = $10.00 | Class A and Class B operations are not charged in the captured offer | conditional allowance with a published overage | [6] [7] |
| Cloudflare R2 Standard | Internet egress is not charged | Internet egress remains not charged | At 1 KB average, one billion GETs leave 990 million billable Class B operations after the 10 million allowance: 990,000,000 / 1,000 x $0.00036 = $356.40. At 1 MB average, one million GETs remain inside the allowance. Writes use the separate paid Class A meter | egress not charged; Class A and Class B conditional on monthly operation counts | [8] |
| Wasabi | conditional: 1,000 GB egress is at the 1,000 GB active-storage boundary and has no metered egress fee | not published: 4,000 GB exceeds active storage, and Wasabi publishes policy enforcement but no per-GB overage rate | Object count cannot turn an unpublished excess-egress price into $0 | not published beyond the policy boundary | [9] |
All 18 vendors keep their published rule or honest state
The 61-offer provider dataset covers 18 vendors. A positive floor appears only where the captured record publishes one; not published remains unknown rather than zero, and does not apply is reserved for an explicit absence. Class-specific rules stay class-specific. [1] [10] [11]
Amazon S3, DigitalOcean Cold, Hetzner, Storj, and Telnyx have a positive billable-size rule in the current dataset. Amazon also has the separate 40 KB archive metadata meter. Backblaze, Akamai, and Filebase explicitly publish no positive floor. The remaining ten vendors stay not published, including the unresolved Wasabi conflict documented below. [1] [3] [7] [20] [25]
All 18 vendors keep their published rule or honest state18 rows
| Provider | Dataset rule | State | Source ref |
|---|---|---|---|
| Amazon S3 | Standard and Express One Zone: no positive floor. Standard-IA, One Zone-IA, and Glacier Instant Retrieval: 128 KB floor. Glacier Flexible Retrieval and Deep Archive: no floor, plus 40 KB metadata per object. Intelligent-Tiering's 128 KB threshold is eligibility, not a billable-size floor | 128 KB by class; 40 KB metadata by class; does not apply where specified | [1] [2] |
| Azure Blob Storage | No minimum billable object size was found in the Retail Prices API or checked tier documentation for Hot, Cool, Cold, or Archive | not published | [10] |
| Google Cloud Storage | No minimum billable object size was found for Standard, Nearline, Coldline, Archive, or Rapid | not published | [11] |
| Cloudflare R2 | No minimum billable object size was found for Standard or Infrequent Access | not published | [8] |
| Backblaze B2 | Backblaze states there is no minimum file-size fee | does not apply | [7] |
| Wasabi | The provider dataset found no minimum billable object size; the pre-existing explainer disagrees | not published | [9] [12] |
| IDrive e2 | No minimum billable object size was found. A statement about minimum upload size does not establish the billing rule | not published | [13] [14] |
| DigitalOcean Spaces | Standard is not published; Cold publishes a 128 KiB minimum billed object and a 128 KiB minimum retrieval charge | 128 KiB for Cold storage and reads; Standard remains not published | [3] |
| Scaleway Object Storage | No minimum billable object size was found for Standard Multi-AZ, Standard One Zone, or Glacier. The recommendation to use objects larger than 1 MB is not a billing floor | not published | [17] |
| OVHcloud Object Storage | No minimum billable object size was found for Standard 3-AZ, High Performance, Infrequent Access, Active Archive, or Cold Archive | not published | [18] |
| Hetzner Object Storage | 64 KB minimum billable object size | 64 KB | [19] |
| Akamai Cloud Object Storage | Akamai states there is no minimum billable object size and objects are billed at actual size | does not apply | [20] |
| Vultr Object Storage | No minimum billable object size was found for Standard, Premium, Performance, Accelerated, or Archive | not published | [21] |
| Storj | 50 KB minimum per object in the captured Standard record | 50 KB | [22] |
| Oracle OCI Object Storage | No minimum billable object size was found for Standard, Infrequent Access, or Archive | not published | [23] |
| Tigris | No minimum billable object size was found for Standard, Infrequent Access, Archive, or Archive Instant Retrieval | not published | [24] |
| Filebase | Filebase states there is no minimum object size | does not apply | [25] |
| Telnyx Cloud Storage | 4 KiB minimum billable object size and 4 KiB bucket-consumption granularity for the captured US and EU records | 4 KiB | [4] |
Conflicts and look-alike rules stay visible
The provider dataset is the rate and state input for this explainer. The DigitalOcean Cold mismatch was reconciled on 2026-07-29, so the canonical record now carries the documented 128 KiB storage and read floors. The separate Wasabi claim remains unresolved and is not silently promoted into arithmetic. [9] [12] [3]
Upload eligibility, tiering eligibility, and recommended object size are also rejected as substitutes for a billable-size rule. They can affect whether an upload or tiering action is supported, but they do not prove how stored bytes are billed. [14] [1] [17]
| Claim or conflict | Dataset evidence | Rejected inference | Calculator treatment | Source ref |
|---|---|---|---|---|
| Wasabi 4 KB | providers.json records not published from the Wasabi pricing FAQ fetched 2026-07-25; the pre-existing explainer claims a 4 KB floor from the same FAQ retrieved 2026-07-26 | Silently choosing either same-source result | not published pending source and dataset reconciliation | [9] [12] |
| DigitalOcean Cold 128 KiB | The canonical record and official documentation checked 2026-07-29 both publish a 128 KiB storage and retrieval floor for Cold | Applying the Cold floor to Standard or treating it as a request price | 128 KiB for Cold stored objects and reads only | [3] |
| IDrive minimum upload size | The provider dataset found no minimum billable object size; the FAQ discusses upload eligibility | No minimum upload size means no minimum billing floor | not published | [13] [14] |
| S3 Intelligent-Tiering 128 KB | Objects below 128 KB can be stored but are not auto-tiered | A tiering-eligibility threshold is a 128 KB billable-size floor | does not apply as a billable-size floor; retain the eligibility rule separately | [1] |
| Scaleway objects larger than 1 MB | The checked FAQ recommends larger Glacier objects but the dataset found no billing floor | An operational recommendation is a published minimum billable size | not published | [17] |
Sources
Every figure above comes from one of these pages, on the date shown. Each numbered reference in the text links to its entry here. Vendors change prices; if a date looks old, check the source. Three vendors publish a machine-readable feed and the rest are re-checked by hand, which is why the dates are not uniform.
The source ledger25 sources
- 1Amazon Web Services: S3 pricingaws.amazon.com · checked 2026-07-26
- 2AWS Price List API: Us east 1pricing.us-east-1.amazonaws.com · checked 2026-07-25
- 3DigitalOcean documentation: Pricingdocs.digitalocean.com · checked 2026-07-25
- 4Telnyx developer docs: Billingdevelopers.telnyx.com · checked 2026-07-25
- 5AWS documentation: Restoring objectsdocs.aws.amazon.com · checked 2026-07-26
- 6Backblaze: Transaction pricingwww.backblaze.com · checked 2026-07-25
- 7Backblaze: Cloud storage pricingwww.backblaze.com · checked 2026-07-25
- 8Cloudflare developer docs: R2 pricingdevelopers.cloudflare.com · checked 2026-07-25
- 9Wasabi: Faqwasabi.com · checked 2026-07-25
- 10Microsoft Learn: Access tiers overviewlearn.microsoft.com · checked 2026-07-25
- 11Google Cloud: Storage pricingcloud.google.com · checked 2026-07-25
- 12Wasabi: Faqwasabi.com · checked 2026-07-26
- 13IDrive: S3 storage e2 pricingwww.idrive.com · checked 2026-07-25
- 14IDrive: Faq pricingwww.idrive.com · checked 2026-07-26
- 15DigitalOcean: Spaces object storagewww.digitalocean.com · checked 2026-07-25
- 16DigitalOcean documentation: Pricingdocs.digitalocean.com · checked 2026-07-26
- 17Scaleway: Object storage faqwww.scaleway.com · checked 2026-07-25
- 18OVHcloud documentationdocs.ovhcloud.com · checked 2026-07-25
- 19Hetzner documentation: Object storage overviewdocs.hetzner.com · checked 2026-07-25
- 20Akamai techdocs: Object storage pricingtechdocs.akamai.com · checked 2026-07-25
- 21Vultr documentation: How is object storage billeddocs.vultr.com · checked 2026-07-25
- 22Storj: Pricingwww.storj.io · checked 2026-07-25
- 23Oracle documentation: Understandingstoragetiersdocs.oracle.com · checked 2026-07-25
- 24Tigris: Pricingwww.tigrisdata.com · checked 2026-07-25
- 25Filebase: Account pricingfilebase.com · checked 2026-07-25