Storage classes
When R2 Infrequent Access stops being cheaper
A two-class R2 comparison with a 50% monthly byte break-even, the 30-day retention gate, Class A and Class B request consequences, and internet egress kept at not charged rather than omitted.
Put your own numbers through the calculator to see what this meter does to a normal month and to the day you restore.
Infrequent Access saves $0.005 per stored GB-month and charges $0.01 per retrieved GB
Let f be the fraction of stored GB read during a 30-day billing month. R2 Standard costs $0.015 per GB-month with retrieval not charged. Infrequent Access costs $0.01 per GB-month plus f x $0.01 per retrieved GB. Solving $0.01 + f x $0.01 = $0.015 gives f = 0.50, or 50% of stored bytes read per month. [1]
That byte crossover is only the first decision line. Infrequent Access has no free operation allowance, has higher Class A and Class B rates, and has a 30-day minimum storage duration. Internet egress is not charged for both classes, so it stays visible in a restore receipt but does not move the within-R2 byte crossover. [1]
| Input | Dataset value | Break-even treatment | Source ref |
|---|---|---|---|
| Standard storage and retrieval | $0.015/GB-month; retrieval not charged | Warmer baseline | [1] |
| Infrequent Access storage and retrieval | $0.01/GB-month + $0.01/GB retrieved | ($0.015 - $0.01) / $0.01 = 50% per month | [1] |
| Infrequent Access minimum duration | 30 days | 0.50 full reads during the 30-day minimum; early deletion applies only to a delete, move, or replacement before day 30 | [1] |
| Internet egress | not charged for both classes | No egress crossover inside R2; another metered service on the delivery path remains conditional | [1] |
The cheaper class loses at half a full read before request costs are added
The 50% result assumes a retained object and compares byte meters only. R2 rounds storage, operations, and Infrequent Access retrieval up to the next billing unit, so small usages can depart from the continuous formula. [1]
Reading or restoring without mutating the source does not delete, move, or replace it. That read-only event does not trigger the 30-day early-deletion remainder, but it still incurs Infrequent Access retrieval and Class B operations. [1]
| Class | Storage and retrieval | Minimum duration | Break-even access frequency | Wrong access pattern | Source ref |
|---|---|---|---|---|---|
| Standard | $0.015/GB-month; retrieval not charged | does not apply | does not apply; Standard is the online baseline | Long-lived data read below 50% per month when Infrequent Access request prices and its 30-day minimum do not erase the saving | [1] |
| Infrequent Access | $0.01/GB-month + $0.01/GB retrieved | 30 days | 50% per month; 0.50 full reads during the minimum | More than 50% of stored bytes read per month, mutation before day 30, or request-heavy access | [1] |
Zero egress does not mean a zero-cost restore
Standard includes 1 million Class A and 10 million Class B operations per month. Infrequent Access receives neither allowance and charges $0.009 per 1,000 Class A operations and $0.0009 per 1,000 Class B operations. The byte crossover therefore overstates Infrequent Access savings for many-small-object workloads. [1]
R2 charges no internet egress for either class, but the pricing page states that connected metered services can charge separately. The restore receipt must keep that adjacent-service line conditional instead of describing the whole delivery path as free. [1]
| One-million-read comparison | Standard | Infrequent Access | Decision effect | Source ref |
|---|---|---|---|---|
| Class B operations | $0.00 while the 10 million monthly allowance remains | 1,000,000 / 1,000 x $0.0009 = $0.90 | Moves the real crossover toward Standard | [1] |
| Retrieval for 1,000 GB read | not charged | 1,000 GB x $0.01 = $10.00 | This is the meter that produces the 50% byte crossover | [1] |
| Direct internet egress | not charged | not charged | Does not change the class comparison | [1] |
| Early deletion | does not apply | does not apply for a read-only restore | Add only if the scenario also deletes, moves, or replaces the source before day 30 | [1] |
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 ledger1 sources
- 1Cloudflare developer docs: R2 pricingdevelopers.cloudflare.com ยท checked 2026-07-25 15:34:44+00:00