From 89d972dc59a29043f8ff6f5c2c33d9db4d06c499 Mon Sep 17 00:00:00 2001 From: ToriLindsay Date: Thu, 17 Jul 2025 16:30:57 +0100 Subject: [PATCH 1/5] [Images] Transformation pricing with R2 - storage only --- src/content/docs/images/pricing.mdx | 32 +++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/content/docs/images/pricing.mdx b/src/content/docs/images/pricing.mdx index 779752c082552d..931a514ddd3547 100644 --- a/src/content/docs/images/pricing.mdx +++ b/src/content/docs/images/pricing.mdx @@ -57,9 +57,37 @@ Unique transformations are counted over a 30-day sliding window. For example, if The `format` parameter counts as only 1 billable transformation, even if multiple copies of an image are served. In other words, if `width=100,format=auto/thumbnail.jpg` is served to some users as AVIF and to others as WebP, then this counts as 1 unique transformation instead of 2. -#### Example +#### Example: Image transformation pricing + +Suppose you have a retail website with 2,000 product images that get served in five different sizes each month. You store your images outside of Cloudflare Images on a non-Cloudflare platform. Your estimated cost for the month is as follows. + +2,000 images × 5 sizes = 10,000 transformations +
10,000 transformations - 5,000 transformations (included in plan) = 5,000 transformations +
(5,000 transformations ÷ 1,000 transformations) × $0.50 = $2.50 +
$2.50 + the cost of your storage = your total monthly cost + +#### Example: Image transformation pricing with R2 storage + +If you do not want to store your images with Cloudflare Images, you can still [store them in Cloudflare with R2](/r2/). In that case, your total cost would be the cost of the image transformations + [the cost of R2 storage](/r2/pricing/#storage-usage). + +For example, suppose you have a retail website with 50,000 product images. Each image has a size of 5 MB and is served in five different sizes each month. You store your images outside of Cloudflare Images in [Cloudflare R2](/r2/). Your estimated cost for the month is as follows. + +50,000 images × 5 sizes = 250,000 transformations +
250,000 transformations - 5,000 transformations (included in plan) = 245,000 transformations +
(245,000 transformations ÷ 1,000 transformations) × $0.50 = $122.50 + +50,000 images × 5 MB = 250,000 MB = 250 GB +
250 GB - 10 GB (included in plan) = 240 GB +
240 GB × $0.015 per gigabyte-month (GB-month) = $3.60 + +$122.50 + $3.60 = $126.10 -A retail website has 1,000 original product images that get served in 5 different sizes each month. This results in 5,000 unique transformations — or a cost of $2.50 per month. +Here are some additional examples of the cost of R2 storage: +|Total size of your images | Storage cost with R2 | +|---------------------------------------|---------------| +|10 GB | $0.00 | +|100 GB | $1.35 | +|1,000 GB | $14.85 | ### Images Stored From 1de4369617f3f70596c0d42d2b17fd13e40ccdba Mon Sep 17 00:00:00 2001 From: ToriLindsay Date: Tue, 29 Jul 2025 16:13:23 +0100 Subject: [PATCH 2/5] Rewrite using tables instead --- src/content/docs/images/pricing.mdx | 39 ++++++++++------------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/src/content/docs/images/pricing.mdx b/src/content/docs/images/pricing.mdx index 931a514ddd3547..58ab86df84369f 100644 --- a/src/content/docs/images/pricing.mdx +++ b/src/content/docs/images/pricing.mdx @@ -57,37 +57,24 @@ Unique transformations are counted over a 30-day sliding window. For example, if The `format` parameter counts as only 1 billable transformation, even if multiple copies of an image are served. In other words, if `width=100,format=auto/thumbnail.jpg` is served to some users as AVIF and to others as WebP, then this counts as 1 unique transformation instead of 2. -#### Example: Image transformation pricing - -Suppose you have a retail website with 2,000 product images that get served in five different sizes each month. You store your images outside of Cloudflare Images on a non-Cloudflare platform. Your estimated cost for the month is as follows. - -2,000 images × 5 sizes = 10,000 transformations -
10,000 transformations - 5,000 transformations (included in plan) = 5,000 transformations -
(5,000 transformations ÷ 1,000 transformations) × $0.50 = $2.50 -
$2.50 + the cost of your storage = your total monthly cost - -#### Example: Image transformation pricing with R2 storage - -If you do not want to store your images with Cloudflare Images, you can still [store them in Cloudflare with R2](/r2/). In that case, your total cost would be the cost of the image transformations + [the cost of R2 storage](/r2/pricing/#storage-usage). +#### Example -For example, suppose you have a retail website with 50,000 product images. Each image has a size of 5 MB and is served in five different sizes each month. You store your images outside of Cloudflare Images in [Cloudflare R2](/r2/). Your estimated cost for the month is as follows. +If you serve 2,000 remote images in five different sizes each month, then this results in 10,000 unique transformations. Your estimated cost for the month would be: -50,000 images × 5 sizes = 250,000 transformations -
250,000 transformations - 5,000 transformations (included in plan) = 245,000 transformations -
(245,000 transformations ÷ 1,000 transformations) × $0.50 = $122.50 +| |Usage |Included |Billable quantity |Price | +|-----------------------|-----------------------|-----------------------|-------------------------|-------------------------| +|Transformations |(2,000 original images) × (5 sizes) = 10,000 unique transformations |5,000 |15 GB |$2.50 | -50,000 images × 5 MB = 250,000 MB = 250 GB -
250 GB - 10 GB (included in plan) = 240 GB -
240 GB × $0.015 per gigabyte-month (GB-month) = $3.60 +If you use [R2](/r2/) for storage, then your estimated monthly costs will be the sum of your monthly images and monthly [R2 costs](/r2/pricing/#storage-usage). -$122.50 + $3.60 = $126.10 +For example, if you upload 5,000 images to R2 with an average size of 5 MB, and serve 2,000 of those images in five different sizes, then your estimated cost for the month would be: -Here are some additional examples of the cost of R2 storage: -|Total size of your images | Storage cost with R2 | -|---------------------------------------|---------------| -|10 GB | $0.00 | -|100 GB | $1.35 | -|1,000 GB | $14.85 | +| |Usage |Included |Billable quantity |Price | +|-----------------------|-----------------------|-----------------------|-------------------------|-------------------------| +|Storage |(5,000 objects) × (5 MB per object) = 25 GB |10 GB |15 GB |$0.22 | +|Class A operations |(5,000 objects) × (1 write per object) = 5,000 writes |1 million |0 |$0.00 | +|Class A operations |(2,000 objects) × (5 reads per object) = 10,000 reads |10 million |0 |$0.00 | +|Transformations |(2,000 original images) × (5 sizes) = 10,000 unique transformations |5,000 | |5,000| $2.50 | ### Images Stored From 671a4610e4214ccb1b3f8f0973dcd88c5215760b Mon Sep 17 00:00:00 2001 From: ToriLindsay Date: Wed, 30 Jul 2025 11:36:06 +0100 Subject: [PATCH 3/5] Apply suggestions from code review --- src/content/docs/images/pricing.mdx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/content/docs/images/pricing.mdx b/src/content/docs/images/pricing.mdx index 58ab86df84369f..364cb9ce3ea9b2 100644 --- a/src/content/docs/images/pricing.mdx +++ b/src/content/docs/images/pricing.mdx @@ -63,9 +63,9 @@ If you serve 2,000 remote images in five different sizes each month, then this r | |Usage |Included |Billable quantity |Price | |-----------------------|-----------------------|-----------------------|-------------------------|-------------------------| -|Transformations |(2,000 original images) × (5 sizes) = 10,000 unique transformations |5,000 |15 GB |$2.50 | +|Transformations |(2,000 original images) × (5 sizes) = 10,000 unique transformations |5,000 |5,000 |$2.50 | -If you use [R2](/r2/) for storage, then your estimated monthly costs will be the sum of your monthly images and monthly [R2 costs](/r2/pricing/#storage-usage). +If you use [R2](/r2/) for storage, then your estimated monthly costs will be the sum of your monthly Images costs and monthly [R2 costs](/r2/pricing/#storage-usage). For example, if you upload 5,000 images to R2 with an average size of 5 MB, and serve 2,000 of those images in five different sizes, then your estimated cost for the month would be: @@ -74,7 +74,8 @@ For example, if you upload 5,000 images to R2 with an average size of 5 MB, and |Storage |(5,000 objects) × (5 MB per object) = 25 GB |10 GB |15 GB |$0.22 | |Class A operations |(5,000 objects) × (1 write per object) = 5,000 writes |1 million |0 |$0.00 | |Class A operations |(2,000 objects) × (5 reads per object) = 10,000 reads |10 million |0 |$0.00 | -|Transformations |(2,000 original images) × (5 sizes) = 10,000 unique transformations |5,000 | |5,000| $2.50 | +|Transformations |(2,000 original images) × (5 sizes) = 10,000 unique transformations |5,000 | 5,000 | $2.50 | +|**Total** | |||**$2.72** | ### Images Stored From 00c926380d56c02c572278329542c067f0e45666 Mon Sep 17 00:00:00 2001 From: ToriLindsay Date: Wed, 30 Jul 2025 11:55:07 +0100 Subject: [PATCH 4/5] Apply suggestions from code review --- src/content/docs/images/pricing.mdx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/content/docs/images/pricing.mdx b/src/content/docs/images/pricing.mdx index 364cb9ce3ea9b2..ed4294d0ee0108 100644 --- a/src/content/docs/images/pricing.mdx +++ b/src/content/docs/images/pricing.mdx @@ -63,18 +63,18 @@ If you serve 2,000 remote images in five different sizes each month, then this r | |Usage |Included |Billable quantity |Price | |-----------------------|-----------------------|-----------------------|-------------------------|-------------------------| -|Transformations |(2,000 original images) × (5 sizes) = 10,000 unique transformations |5,000 |5,000 |$2.50 | +|Transformations |2,000 original images × 5 sizes = 10,000 unique transformations |5,000 |5,000 |$2.50 | -If you use [R2](/r2/) for storage, then your estimated monthly costs will be the sum of your monthly Images costs and monthly [R2 costs](/r2/pricing/#storage-usage). +If you use [R2](/r2/) for storage then your estimated monthly costs will be the sum of your monthly Images costs and monthly [R2 costs](/r2/pricing/#storage-usage). For example, if you upload 5,000 images to R2 with an average size of 5 MB, and serve 2,000 of those images in five different sizes, then your estimated cost for the month would be: | |Usage |Included |Billable quantity |Price | |-----------------------|-----------------------|-----------------------|-------------------------|-------------------------| -|Storage |(5,000 objects) × (5 MB per object) = 25 GB |10 GB |15 GB |$0.22 | -|Class A operations |(5,000 objects) × (1 write per object) = 5,000 writes |1 million |0 |$0.00 | -|Class A operations |(2,000 objects) × (5 reads per object) = 10,000 reads |10 million |0 |$0.00 | -|Transformations |(2,000 original images) × (5 sizes) = 10,000 unique transformations |5,000 | 5,000 | $2.50 | +|Storage |5,000 objects × 5 MB per object = 25 GB |10 GB |15 GB |$0.22 | +|Class A operations |5,000 objects × 1 write per object = 5,000 writes |1 million |0 |$0.00 | +|Class B operations |2,000 objects × 5 reads per object = 10,000 reads |10 million |0 |$0.00 | +|Transformations |2,000 original images × 5 sizes = 10,000 unique transformations |5,000 | 5,000 | $2.50 | |**Total** | |||**$2.72** | ### Images Stored From b0dbdbbdac447b9f804c715855af5f4f931a7020 Mon Sep 17 00:00:00 2001 From: ToriLindsay Date: Tue, 5 Aug 2025 13:10:54 +0100 Subject: [PATCH 5/5] Added footnotes for better mobile viewing --- src/content/docs/images/pricing.mdx | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/content/docs/images/pricing.mdx b/src/content/docs/images/pricing.mdx index ed4294d0ee0108..5b4bb067eb3f18 100644 --- a/src/content/docs/images/pricing.mdx +++ b/src/content/docs/images/pricing.mdx @@ -57,13 +57,15 @@ Unique transformations are counted over a 30-day sliding window. For example, if The `format` parameter counts as only 1 billable transformation, even if multiple copies of an image are served. In other words, if `width=100,format=auto/thumbnail.jpg` is served to some users as AVIF and to others as WebP, then this counts as 1 unique transformation instead of 2. -#### Example +#### Example #1 If you serve 2,000 remote images in five different sizes each month, then this results in 10,000 unique transformations. Your estimated cost for the month would be: | |Usage |Included |Billable quantity |Price | |-----------------------|-----------------------|-----------------------|-------------------------|-------------------------| -|Transformations |2,000 original images × 5 sizes = 10,000 unique transformations |5,000 |5,000 |$2.50 | +|Transformations |10,000 unique transformations [^5] |5,000 |5,000 |$2.50 [^6]| + +#### Example #2 If you use [R2](/r2/) for storage then your estimated monthly costs will be the sum of your monthly Images costs and monthly [R2 costs](/r2/pricing/#storage-usage). @@ -71,11 +73,11 @@ For example, if you upload 5,000 images to R2 with an average size of 5 MB, and | |Usage |Included |Billable quantity |Price | |-----------------------|-----------------------|-----------------------|-------------------------|-------------------------| -|Storage |5,000 objects × 5 MB per object = 25 GB |10 GB |15 GB |$0.22 | -|Class A operations |5,000 objects × 1 write per object = 5,000 writes |1 million |0 |$0.00 | -|Class B operations |2,000 objects × 5 reads per object = 10,000 reads |10 million |0 |$0.00 | -|Transformations |2,000 original images × 5 sizes = 10,000 unique transformations |5,000 | 5,000 | $2.50 | -|**Total** | |||**$2.72** | +|Storage |25 GB [^1] |10 GB |15 GB |$0.22 [^7] | +|Class A operations |5,000 writes [^2]|1 million |0 |$0.00 [^8] | +|Class B operations |10,000 reads [^3] |10 million |0 |$0.00 [^9] | +|Transformations |10,000 unique transformations [^4] |5,000 | 5,000 | $2.50 [^10] | +|**Total** | |||**$2.72**| ### Images Stored @@ -94,3 +96,14 @@ Every image requested by the browser counts as 1 billable request. #### Example A retail website has a product page that uses Images to serve 10 images. If the page was visited 10,000 times this month, then this results in 100,000 images delivered — or $1.00 in billable usage. + +[^1]: 5,000 objects × 5 MB per object +[^2]: 5,000 objects × 1 write per object +[^3]: 2,000 objects × 5 reads per object +[^4]: 2,000 original images × 5 sizes +[^5]: 2,000 original images × 5 sizes +[^6]: (5,000 transformations / 1,000) × $0.50 +[^7]: 15 GB × $0.015 / GB-month +[^8]: 0 × $4.50 / million requests +[^9]: 0 × $0.36 / million requests +[^10]: (5,000 transformations / 1,000) × $0.50