Snowflake prices its services according to actual consumption. Instead of a flat-rate subscription, charges are based on the extent of resources utilized, including computing power, storage, and data transfer, with fees calculated according to fixed rates for each category.
The platform operates on a system of 'credits' which are expended during operation, such as when running virtual warehouses. The cost of these credits is influenced by several factors, including the selected Snowflake plan, the geographic location of data hosting, and the choice of cloud provider.
Snowflake offers the following subscription plans:
Each plan comes with specific features designed to cater to varying business requirements, with detailed comparisons available in Snowflake's documentation.
Snowflake credits are the core unit of measure for Snowflake’s usage-based pricing. A credit represents the amount of compute consumed when running workloads on the platform, such as querying data, performing transformations, or running machine learning models.
Each time you activate a virtual warehouse, credits are consumed based on its size (e.g., X-Small to 6X-Large) and the duration it runs. For example, an X-Small warehouse might consume 1 credit per hour, while a Large warehouse could use 8 credits per hour. Snowflake bills compute time per second, with a minimum of 60 seconds.
Credits are also used for other operations, including:
The actual price per credit depends on the selected subscription plan and cloud provider (AWS, Azure, or GCP). Discounts are available for committed usage, which allows organizations to pre-purchase a block of credits at a lower rate.
Snowflake pricing is subject to change. For up-to-date pricing and additional pricing options, refer to the official pricing page.
Snowflake offers two main types of storage accounts: On-Demand and pre-purchase Capacity. On-Demand accounts provide maximum flexibility, allowing users to consume storage resources as needed without any upfront commitments. However, this flexibility comes at a premium. For example, On-Demand storage in AWS's US East (Northern Virginia) Region costs $23 per terabyte (TB) per month.
Capacity-based accounts require a commitment to a specific amount of storage over a contract period, similar to AWS Reserved Instances. In return for this commitment, users benefit from lower pricing—such as $18.40 per TB per month in the same AWS region for a Tier 5 commitment (over $5 million spend).
The region in which the Snowflake workload is deployed significantly impacts pricing. For example, On-Demand storage in AWS's US East (Northern Virginia) Region is priced at $23 per TB, whereas the same storage in AWS's Canada Central Region costs $25 per TB.
Data transfer costs also vary by region. Transfers within the same region and cloud provider incur no charges. However, moving data between regions within the same cloud can range from $20 per TB in the US to $140 per TB in the Asia Pacific (Sydney) Region. Transferring data to another cloud or the public internet is more expensive, ranging from $90 to $155 per TB.
Snowflake is available on three major cloud platforms: AWS, Microsoft Azure, and Google Cloud. While the core functionality remains consistent across platforms, there are slight differences in storage costs across platforms, though the main differences are in data transfer rates. AWS also has the most regions.
For example, block storage pricing for Snowpark Container Services (SPCS) costs $81.92 per TB per month in the US East (Northern Virginia) Region for AWS, compared to $82.23 in the equivalent region, East US 2 (Virginia) for Azure.
Transferring data from AWS's US East (Northern Virginia) Region to the internet costs $90 per TB. The same operation on Azure (East US 2 – Virginia) is slightly cheaper at $87.50 per TB. Google Cloud tends to be the most expensive for internet-bound transfers from its US East 4 (N. Virginia) Region, ranging from $120 per TB within North America to $190 for countries like Australia and $230 for China.
The backbone of Snowflake's compute cost, virtual warehouses, vary in price based on their size. Each size represents a doubling in resources, with Snowpark-optimized options offering 16 times the memory at 1.5 times the cost.
- X-Small to 6X-Large: Credits per hour increase from 1 for an X-Small to 512 for a 6X-Large warehouse.
- Snowpark-Optimized: Starting from Medium size, the credits per hour are 1.5 times the regular warehouse, beginning at 6 credits per hour for Medium up to 768 for 6X-Large.
Virtual warehouse expenses typically account for 80% of a customer's Snowflake bill, making them a key area for cost optimization.
Snowflake's serverless options like Snowpipe and Automatic Clustering consume credits based on specific multipliers. Notably:
Serverless features offer varied credit rates, highlighting the need to understand each service's cost impact.
Snowflake charges directly for storage in its proprietary format across cloud services (Amazon S3, Azure Blob Storage, Google Cloud Storage), with costs differing by region and provider. For instance, AWS USA regions may have a rate of $23 per TB per month.
While ingress to Snowflake is free, and transferring data within the same region and provider incurs no cost, certain features that involve data egress may have associated charges. It's vital to consult Snowflake's detailed pricing to understand potential egress fees.
Snowflake's cloud services, covering non-storage and non-processing activities, employ a fair-use policy where usage of up to 10% of compute credits is included at no extra cost. This policy ensures that most customers won't incur additional charges, though extensive simple query executions might exceed this threshold.
Introducing Snowpark Container Services (SPCS), a managed container service allowing for containerized workloads within Snowflake. SPCS operates on Compute Pools, distinct from virtual warehouses, with credits varying by compute node type (CPU, High-Memory CPU, GPU). These services cater to different requirements, from cost-effective setups to high-memory and GPU-intensive applications.
To illustrate how Snowflake’s pricing model works in practice, let’s consider an organization with continuous data loading needs and multiple user groups with different usage patterns. This example is adapted from the Snowflake documentation.
Scenario Overview
The company uses the Standard Edition of Snowflake and stores approximately 65 TB of compressed data. Data is ingested continuously, and users from Finance and Sales departments access the system at different times. Additionally, a weekly batch report is generated.
Compute Usage Breakdown:
Total Compute Usage:
1,488 (Loading) + 1,440 (Finance) + 1,280 (Sales) + 256 (Reporting) = 4,464 credits
Storage Costs
The company stores 65 TB of compressed data. At $23 per TB per month (based on Pre-Purchase Capacity pricing):
Total Monthly Cost
Snowflake’s consumption-based pricing model offers scalability and flexibility, but without proper oversight, costs can quickly escalate. To keep spending under control, organizations need a clear understanding of where costs come from and how to optimize usage effectively.
Key Cost Drivers in Snowflake
Strategies to Control Snowflake Costs
Organizations can reduce waste, improve efficiency, and keep costs aligned with business goals by actively monitoring and optimizing Snowflake usage.