The Short Answer: Compare Normalized Cost, Not Advertised Unit Prices

Cross-cloud object-storage pricing should be compared on the total monthly cost of storing, requesting, retrieving, moving, and protecting the same data—not by ranking the lowest price per gigabyte. As of 28 September 2026, headline storage prices are only one component of the bill, and they can be less important than internet egress, data transfer, request volume, replication, retrieval fees, and operational labor. A platform team evaluating Amazon S3, Microsoft Azure Blob Storage, and Google Cloud Storage should first model its own access pattern in each provider’s published rate card.

Also worth reading: Cloudflare R2 vs Amazon S3 vs Backblaze B2: Which Is Cheapest for B2B Object Storage in 2026? · How Do You Benchmark Object Storage for Real Production Workloads in 2026? · What is the definitive guide to implementing object storage for startups in 2026?

The essential formula is: total monthly cost equals storage capacity charges, plus request charges, plus data transfer, plus retrieval or archive charges, plus durability features, plus taxes or contractual discounts. Divide that result by the number of terabytes retained only after calculating the whole bill. A service that stores data at $0.020 per GB-month may be expensive if bulk downloads cost $0.09 per GB, while a higher-priced region can be cheaper for a workload dominated by infrequent reads.

This approach is especially important for B2B cross-cloud data-plane platforms. Their economics are driven by customer behavior that the provider’s public benchmark does not reveal, including cache-hit ratios, write amplification, cross-region replication, and the number of tenants sharing a deployment. Teams should report both raw provider cost and fully loaded unit cost, which includes data-plane SaaS overhead, support, observability, security tooling, and engineering labor.

Build a Workload Model Before Opening Any Rate Card

Start with measured storage facts rather than a generic dataset size. Record the steady-state volume in gibibytes or terabytes, monthly growth, number of objects, average object size, retention periods, and required redundancy. Also measure PUT, GET, LIST, COPY, and DELETE operations per million transactions, because request pricing can exceed storage cost for collections of many small files. Cloud pricing is metered in decimal gigabytes or terabytes rather than binary gigabytes, which creates a 7.4% numerical difference that matters in large contracts.

Next, separate the workload into ingress, same-region traffic, inter-region traffic, internet egress, and cross-cloud transfer. These categories can have radically different rates or eligibility conditions. Free inbound transfers are common for data received from outside a cloud, but “free ingress” does not imply that the receiving system, processing service, or later outbound transfer is free. Public internet egress, private peering, and managed data-transfer services should be entered as separate rows.

Use a 13-month baseline if possible, then forecast the same workload for 12, 24, and 36 months. Include at least two growth cases, such as 20% monthly data growth and 50% monthly request growth, without assuming that capacity and request growth are identical. Teams should also test a churn or deletion scenario because early-deletion fees can dominate under short retention or repeated migration cycles.

Cost inputTypical modeling questionWhy it changes the result
Stored GB-monthWhat capacity exists at each month-end?Tier boundaries, minimum durations, and duplicate replicas affect the bill.
RequestsHow many operations occur per million?Small-file workloads can be request-dominated.
Internet egressHow many GB leave the provider?Public transfer commonly costs more than retained storage.
RetrievalWas data written in an archive or cold-access tier?Low archival storage can have higher read or minimum-duration charges.
ReplicationIs data copied within or across regions?Replication adds storage and transfer costs.
SaaS overheadWhat people and tooling operate the service?Labor, monitoring, security, and support are absent from provider unit prices alone.
## Compare the Major Hyperscalers Using Equivalent Scenarios

In common US regions, Amazon S3 Standard storage is commonly listed from about $0.023 per GB-month for the first 50 TB. Google Cloud Storage Standard uses volume tiers that begin around $0.020 per GB-month for the first 10 TB and decrease as retained volume grows. Microsoft Azure Blob Storage pricing varies by account, region, redundancy, and transaction type, so a single global number is misleading; US-dollar list prices must be retrieved for the exact configuration and date. These are examples for comparison, not guaranteed quotes for every geography or purchasing agreement.

The direct storage comparison should normalize redundancy. Standard object storage with provider-managed replication is not equivalent to a single local disk, a dual-region configuration, or a bucket backed by immutable object lock. Compare the exact durability and availability model rather than describing all of them as “highly available.” A service with a 99.99% availability target may use multiple copies, while a dual-region design adds a larger failure domain but also another region’s capacity and transfer charges.

The table below intentionally describes pricing structures rather than pretending that one provider wins universally. Rates can change, discounts depend on commitment and negotiation, and taxes or cross-border charges may apply. The practical winner is the provider producing the lowest risk-adjusted cost for the same object count, request mix, and data-flow pattern.

Comparison pointAmazon S3Google Cloud StorageMicrosoft Azure Blob Storage
Public list-price starting pointAbout $0.023/GB-month in common US regionsAbout $0.020/GB-month for initial Standard storage in typical US pricingCommonly about $0.018–$0.020/GB-month, depending on exact tier and configuration
Main storage optimizationS3 Standard-IA, Glacier Instant, Flexible Retrieval, and Deep ArchiveStandard, Nearline, Coldline, and Archive classesHot, Cool, Cold, and Archive access tiers
Request treatmentCharged by operation class and quantityCharged by operation class and tierCharged by blob type and transaction class
Egress treatmentInternet and transfer rates depend on destination and serviceInternet and transfer rates depend on destination and serviceInternet and transfer rates depend on destination and service
Contract routeSavings Plans, committed use, or negotiated enterprise termsCommitted-use discounts and negotiated termsEnterprise agreement, reservation, or negotiated terms
## Put Transfer, Requests, and Archives Into the Calculation

Transfer is usually where a simple pricing comparison fails. If a platform sends 1 PB—one million GB—out of a provider each month, a difference of $0.02 per GB becomes $20,000 monthly and $240,000 annually. That amount can outweigh years of storage-price differences, especially when the same data is replicated or served through several clouds. Conversely, an active workload that stores and reads data internally may rank providers differently from a migration workload that moves large objects across the public internet.

Request costs require a second normalized test. Assume a workload has 20 million small objects averaging 1 MB: approximately 20,000,000,000 bytes, or 20,000,000 GB-month at steady state. At 100 million GET requests per month, even a rate of $0.10 per million would add only $10, but $0.40 per million adds $40 before accounting for LIST calls, writes, or provider-specific classes. The numbers become more consequential at billions of operations, cache misses, or cross-region requests, so actual request logs are preferable to estimates.

Archive retrieval and minimum-duration rules can reverse the apparent value of cheap cold storage. A 30-day retention policy may be a poor fit for a storage class designed around longer retention. Archive retrieval may be priced by object size, may have separate minimum retrieval durations, and can incur early-deletion charges if objects are removed early. Teams should model not only the write and read but also a compliant deletion request at day 10, day 30, or day 180, because a deletion may be billable.

A robust model should report 30-day and 90-day retrieval windows separately from a high-latency restore. This prevents a low archive write rate from appearing attractive when business recovery requires immediate bulk access. For regulated or audit-heavy systems, legal hold, object lock, retention controls, and WORM requirements also affect usable cost.

Account for Platform Operations and Cross-Cloud Complexity

For x-oss.com’s audience, provider storage is an input cost rather than the complete product economics. A cross-cloud object-storage or OSS data-plane SaaS also needs control-plane software, multi-cloud credentials, routing, monitoring, billing allocation, retries, integrity verification, and security policy. Engineering labor is not listed by the hyperscaler, yet it can be the largest cost at modest scale. A fair platform-level comparison adds allocated engineering salaries or contractor rates to the provider bill instead of pretending software operations are free.

Security and compliance tools should be modeled as either existing investments or incremental services. Key management, private connectivity, audit logging, malware scanning, data-loss prevention, privileged access management, and backup tooling may already be covered by a broader cloud agreement. Double-counting them can make a provider look worse, while omitting them can make an inexpensive bucket look artificially strong. Use a consistent allocation rule across all three clouds and state which costs are fixed, shared, or incremental.

Data-plane products should also track margin drivers. Metrics such as billable GB-month, free-tier usage, egress per customer, provider request cost per 1,000 objects, and support tickets per terabyte show whether price changes improve unit economics. If 60% of total cost is egress, storage-tier optimization has limited value; if 45% comes from object operations, compaction and multipart-upload behavior deserve attention. If a cloud discount requires commitment but customers can leave after 90 days, the discount may create financial risk rather than genuine savings.

Currency, inflation, support plans, and discount uncertainty should be carried as separate assumptions. Public list rates are not expected enterprise prices, but negotiated discounts should not be entered as guaranteed either. A sensitivity model can show the result at full list price, at the current negotiated rate, and at a 10% renewal increase. This is more informative than marking one line as “best price.”

Practical Steps for a Defensible Pricing Exercise

First, export 30 to 90 days of usage from each candidate provider and map every meter to a common taxonomy. Preserve operation classes, source and destination regions, and provider-specific labels until the final model is understood. Then select a single reference workload containing 1 TB, 1 million 1-MB objects, or a representative mix; a purely volume-based fixture will miss the request behavior of real B2B platforms.

Second, run at least six scenarios. These should include steady-state storage, public egress, internal replication, cross-region disaster recovery, monthly archive growth, and peak-day traffic. Set pessimistic assumptions such as 50% higher egress, 20% more objects, or a 30-day archive deletion, but label them clearly as stress tests rather than forecasts. Record latency and restore requirements beside cost, because a cheaper path that misses a 15-minute recovery objective is not operationally usable.

Third, request current enterprise quotations and compare them with public rates on identical terms. Ask whether support, software credits, migration credits, egress exemptions, committed-use discounts, and network charges are bundled. The comparison date should be printed on the worksheet because rates can change at any time. A defensible commercial model should be rerun before a major launch, annual renewal, region change, or expected cloud migration.

Finally, have an engineer and a finance owner review the assumptions separately. Engineering validates requests, object sizes, replication, and retrieval behavior; finance validates taxes, annual commitments, currency, discount terms, and allocation. Reconciliation with a real monthly invoice is the acceptance test. If modeled cost differs from invoiced cost by more than 5%, investigate meter definitions and tier ordering before using the model for purchasing decisions.

Common Pricing Mistakes That Distort the Decision

The most frequent error is comparing different units, providers, regions, and currencies while calling the result “apples to apples.” A $/GB-month rate for hot storage should not be compared directly with an archive rate, and GB-month should not be compared with a provisioned monthly capacity commitment. Another common mistake is treating provider-reported discounts as permanent when the underlying agreement may depend on a one-, three-, or five-year term.

Teams also forget that the usable capacity is lower than the purchased capacity when replication, checksums, metadata, versioning, or temporary migration objects are present. A 100 TB logical dataset with versioning and one replica may consume substantially more physical storage, while an active multipart upload can temporarily add data. Conversely, a provider’s free tier or monthly minimum may be meaningful to a small developer and irrelevant to a business storing tens of petabytes.

Egress tax and routing charges are often missed. The customer may use a content delivery network, private link, managed transfer appliance, or a cross-cloud network provider to reduce public transfer fees, but those alternatives introduce their own costs and operational constraints. A service marked “free” between regions may still incur API processing, data processing, or egress charges after the data crosses a managed service.

The final mistake is treating workload migration as a one-time event. A cross-cloud platform may repeatedly copy data during regional failover, customer offboarding, storage-class conversion, security re-keying, or provider testing. These events should be included in annual transfer budget and tested against API throttles. Comparing only the current retained volume is particularly risky for SaaS businesses where tenants arrive and leave frequently.

When to Act and When to Stay Put

Teams should revisit the analysis when any major input changes by more than 20%, when egress accounts for more than one-third of spend, or when storage changes by at least 25%. A 25% capacity increase can move a volume-tier boundary, while a threefold request increase can change which cost component dominates. Region expansion, a new disaster-recovery requirement, or an archive retention change also warrants recalculation even if the bucket vendor has not changed.

Act quickly when the model identifies a clear saving with little migration risk, such as changing archive retention, deleting orphaned versions, batching small files, or moving rarely accessed data to an appropriate tier. Be slower when the proposal requires a cross-cloud data transfer, application rewrite, new encryption scheme, or contractual commitment. Establish a rollback plan, run a sampled restore, and compare performance before transferring petabytes.

Use contractual savings cautiously. A commitment can lower unit cost but create exposure if demand falls, customers churn, or the workload migrates. Negotiate duration and volume after validating the workload, and include renewal, overage, and early-exit terms. For cross-cloud SaaS, preserving portability may be worth more than a small discount that locks substantial data into one provider.

The most defensible recommendation is therefore not a permanent declaration that one cloud is cheapest. It is a dated cost model showing which workload characteristics produce a winner, how much uncertainty exists, and which operational outcomes are constrained. As of 28 September 2026, public US list prices provide a useful baseline, but actual provider invoices, negotiated agreements, and normalized workload behavior determine the real answer. Platform teams should repeat the exercise quarterly and before any procurement commitment.