Restore and planning
What has changed in object storage pricing, and when we saw it
A dated change ledger for the billing rules around storage, retrieval, requests, constraints, and egress. The series starts on 2026-07-26. Earlier changes are cited from vendor announcements and are never presented as observations made by this project.
Put your own numbers through the calculator to see what this meter does to a normal month and to the day you restore.
The observed series starts on 2026-07-26
The first immutable snapshot was recorded at 00:35:07 UTC on 2026-07-26 and contains 61 region-specific offers across 18 vendors. That timestamp is the beginning of this project's observed history. [1]
A second snapshot at 01:52:49 UTC resolved the first as its predecessor and found zero changes across the 12 tracked meters. Zero is the observed change count for that interval, not a claim that prices never changed before collection began. [2]
The Wasabi and Backblaze moves shown below predate the first snapshot. They are included because each vendor published the old value, new value, and effective date. Each rests on the vendor's own announcement rather than on a value this project captured, so there is no first-observed date to state, and their effect on a standard-workload winner remains unknown. [3] [4] [1]
| Evidence class | Date | What the date proves | What it does not prove | Source ref |
|---|---|---|---|---|
| Project observation | 2026-07-26T00:35:07Z | The project held this complete 61-offer snapshot at this time | Any value before this time | [1] |
| Project observation | 2026-07-26T01:52:49Z | No tracked meter changed between the two snapshots | That no vendor changed before the series began | [2] |
| Vendor announcement | 2026-07-01 | Wasabi applied its announced Pay as You Go pricing change on or after this date | That this project observed the transition | [3] |
| Vendor announcement | 2026-05-01 | Backblaze applied its announced B2 price and API changes on this date | That this project observed the transition | [4] |
Twelve change-sensitive meters are compared for every offer
Price history compares 12 billing fields on each of the 61 offers. These are the change-sensitive paths used by the history collector, not a claim that the wider receipt registry contains only 12 concepts. [5] [6]
An offer is keyed as class_id@region. AWS, Azure, and Telnyx reuse class IDs across regional records, so class_id by itself would overwrite one region with another and hide a real regional change. [5] [6]
Each meter matters because a bill can change without the headline storage rate moving. An allowance, request schedule, retrieval tier, billing floor, or fixed fee can move the receipt and the ranking on its own. [6]
Twelve change-sensitive meters are compared for every offer12 rows
| Tracked meter | What is compared | What a change means for a reader | Source ref |
|---|---|---|---|
| storage.tiers | The full storage tier schedule | Stored-capacity cost can move, including graduated bands | [5] [6] |
| minimum_billable_object_size_kb | The billable size floor for each object | Repositories with many small objects can be billed for more capacity than they contain | [5] [6] |
| minimum_storage_duration_days | The minimum age before a qualifying mutation | Delete, overwrite, move, or transition timing can change the bill | [5] [6] |
| early_deletion_method | How the remaining minimum-duration charge is calculated | The same early mutation can produce a different remainder charge | [5] [6] |
| minimum_billable_capacity | The account, plan, or offer capacity floor | A small repository can still receive the full floor charge | [5] [6] |
| egress.free_allowance | The fixed, proportional, bundled, or unlimited transfer allowance | The point where downloaded bytes become paid or policy-limited can move | [5] [6] |
| egress.tiers_internet | The public-internet transfer schedule or explicit state | A restore can become more expensive, remain not charged, or stop at not published | [5] [6] |
| retrieval.usd_per_gb | The representative retrieval rate | Reading cold or infrequent data can change independently of egress | [5] [6] |
| retrieval.tiers | Named retrieval speeds, latencies, request prices, and byte rates | A faster or slower recovery path can change both time and price | [5] [6] |
| operations.class_a | Write, list, multipart, and other Class A rules | Write-heavy backup activity can move the monthly total | [5] [6] |
| operations.class_b | Read, metadata, and other Class B rules | Restore, verification, and integrity-check traffic can move the monthly total | [5] [6] |
| fixed_fees | Monthly, account, or bundled-plan fees | A base fee can change the winner even when usage rates do not | [5] [6] |
A change preserves both values and the date it was seen
For an observed rate or rule change, the ledger stores provider_id, class_id, region, meter, old, new, observed_at, source_url, and the vendor's effective_date when one is published. Old and new preserve the complete meter value, including tiers and explicit states, instead of flattening a rule to one headline number. [5]
observed_at answers when the project first saw the value. effective_date answers when the vendor says the rule took effect. Those dates can differ, and the page keeps both rather than moving the observation backward to match an announcement. [5]
A missing numeric rate uses an explicit state. not published does not mean free, unknown never becomes zero, and a bare null is rejected. [7]
| Field | Meaning | Reader use | Source ref |
|---|---|---|---|
| provider_id + class_id + region | The exact regional offer that changed | Prevents one region from being mistaken for another | [5] |
| meter | The tracked billing path that moved | Separates a storage change from egress, retrieval, request, floor, or fee changes | [5] |
| old | The complete value in the previous immutable snapshot | Shows the rule that an earlier estimate used | [5] |
| new | The complete value in the new immutable snapshot | Shows the rule a current estimate uses | [5] |
| observed_at | The UTC time at which collection first captured the new value | Defines the limit of what this project can claim to have observed | [5] |
| effective_date | The vendor-published effective date or an explicit state | Distinguishes billing effect from collection time | [5] [7] |
| source_url | The vendor page or feed attached to the changed offer | Lets the reader audit the change against first-party evidence | [5] |
Two recent moves are cited, not backfilled
Wasabi's May 2026 pricing FAQ identifies the prior $6.99 per TB-month Pay as You Go plan, gives the new $7.99 per TB-month price, and says current customers see the change on the first billing cycle on or after 2026-07-01. The announcement also says free egress and API request policies were unchanged. [3]
Backblaze announced that B2 Pay as You Go storage would move from $6.00 to $6.95 per TB-month on 2026-05-01. It made standard API calls free on the same date and left its 3x free-egress rule unchanged. [4] [8]
Neither row is an observed project event because both effective dates precede 2026-07-26. They remain useful context, but the standard-workload winner effect is unknown because there is no project snapshot of the earlier complete rate and rule set. [1] [3] [4]
| Offer | Meter | Old value | New value | Effective date | Observed by this project | Source ref |
|---|---|---|---|---|---|---|
| Wasabi Hot Cloud Storage, us-east-1 | storage.tiers | $6.99 per TB-month | $7.99 per TB-month | 2026-07-01 | does not apply; vendor announcement predates the series | [3] |
| Backblaze B2 Cloud Storage, us-west-004 | storage.tiers | $6.00 per TB-month | $6.95 per TB-month | 2026-05-01 | does not apply; vendor announcement predates the series | [4] |
A storage move does not decide the winner by itself
Egress is the decision variable because moving stored data back to a user can outweigh the storage line. Backblaze includes public-internet egress up to 3x average monthly storage and then charges $0.01/GB, while Cloudflare R2 charges no egress but meters Class A and Class B operations. [8] [9] [10]
Wasabi charges no metered egress while monthly egress is within its stored-volume guideline. For repeated excess, Wasabi publishes a right to limit or suspend service but no per-GB overage rate. A calculator must therefore stop at not published for the overage instead of multiplying the excess by $0. [11]
A restore is read-only. Retrieval, restore and read requests, temporary-copy storage, and egress can apply, but reading does not create an early-deletion charge. Early deletion applies only when a separate action deletes, overwrites, moves, or transitions an object before its minimum duration. [12] [13] [11]
| Changed rule | Immediate reader meaning | What still has to be checked | Source ref |
|---|---|---|---|
| Storage rate or tier | The stored-capacity line changes | Capacity floors, free storage, egress, retrieval, requests, fixed fees, and region | [6] |
| Free-egress allowance | The paid or policy-limited transfer boundary moves | Average or active storage denominator, destination, and any overage rate | [8] [11] |
| Class A or Class B schedule | Backup writes, listings, reads, or checks can become cheaper or more expensive | Actual request counts and class mapping | [10] [4] |
| Retrieval rate or tier | The cost or time to make cold data readable changes | Egress, request count, destination, and temporary-copy duration | [12] [13] |
| Minimum duration or early-deletion method | A qualifying early mutation can change the remainder charge | Object age and whether the workflow deletes, overwrites, moves, or transitions | [13] [11] |
Conflicting source text stays visible
The current Backblaze pricing page and its 2026 announcement agree on $6.95 per TB-month, but the transaction-pricing page still says storage after the first 10 GB is $0.005/GB-month. That storage note is treated as stale and is rejected for the current storage meter; the transaction page remains the source for the 3x egress allowance and $0.01/GB overage. [8] [4] [9]
The Wasabi provider record marks minimum_billable_object_size_kb as not published, while the current official FAQ says objects smaller than 4 KB are billed as 4 KB. This surface reports the disagreement but does not silently rewrite the provider dataset, which is outside this property's ownership. [6] [11]
The May 2026 Wasabi announcement describes 20 percent of 1 TB as 100 GB in prose but uses 200 GB in its formula. That transfer example is rejected as internally inconsistent. The price-change claim does not depend on that example because the same announcement separately names the old plan, new price, and effective billing date. [3]
| Property | Dataset or selected source | Conflicting source | Handling | Source ref |
|---|---|---|---|---|
| Backblaze B2 storage rate | $6.95 per TB-month | $0.005/GB-month note on the transaction page | Use the current pricing page and dated 2026 announcement; mark the transaction-page storage note stale | [8] [4] [9] |
| Wasabi minimum_billable_object_size_kb | not published in providers.json | 4 KB on the current official FAQ | Report the disagreement; do not mutate providers.json in this lane | [6] [11] |
| Wasabi announcement transfer example | Old and new storage prices are stated separately | The example labels 100 GB as 20 percent of 1 TB but calculates with 200 GB | Reject the transfer arithmetic; retain only the separately stated price move | [3] |
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 ledger13 sources
- 1This repository: 2026-07-26T00-35-07Z.jsonrepository · checked 2026-07-26
- 2This repository: 2026-07-26T01-52-49Z.jsonrepository · checked 2026-07-26
- 3Wasabi documentation: May 2026 wasabi pricing faqsdocs.wasabi.com · checked 2026-07-26
- 4Backblaze: Backblaze pricing and product updateswww.backblaze.com · checked 2026-07-26
- 5This repository: collect.pyrepository · checked 2026-07-26
- 6This repository: providers.jsonrepository · checked 2026-07-26
- 7This repository: meters.tsrepository · checked 2026-07-26
- 8Backblaze: Cloud storage pricingwww.backblaze.com · checked 2026-07-26
- 9Backblaze: Transaction pricingwww.backblaze.com · checked 2026-07-26
- 10Cloudflare developer docs: R2 pricingdevelopers.cloudflare.com · checked 2026-07-26
- 11Wasabi: Faqwasabi.com · checked 2026-07-26
- 12AWS documentation: Archived objectsdocs.aws.amazon.com · checked 2026-07-26
- 13Amazon Web Services: S3 pricingaws.amazon.com · checked 2026-07-26