Skip to main content

Understanding Snowflake Compute Cost, Storage Cost & Best Practices

A story-based guide to understanding how Snowflake charges your account

Snowflake is powerful and flexible β€” but if you’re new to it, its pricing model may feel like a mysterious vending machine.
You insert credits… and suddenly your data pipelines are running, dashboards refreshing, and your boss is impressed.

But how exactly is Snowflake charging you?

And more importantly:

How do you avoid surprise bills while keeping performance high?

Let’s break it down in a simple, modern, story-driven way.


🎭 The Story of Snowflake Costs

Imagine running a smart digital factory:

  • Compute = the workers doing the tasks
  • Storage = shelves holding your raw materials
  • Cloud Services = managers coordinating workers

Snowflake prices each part differently.

Let’s explore the two major cost buckets:
Compute Cost and Storage Cost.


⚑ 1. Compute Cost β€” Your Main Expense

This is where 70–90% of Snowflake spend usually goes.

Compute = Virtual Warehouses and Serverless Compute.

Examples:

  • Query execution
  • ETL/ELT jobs
  • BI dashboards
  • Snowpipe streaming
  • Tasks & stored procedures
  • Materialized view refreshes

πŸ’³ How Compute Is Charged​

Snowflake compute is charged in credits per hour, billed by the second (minimum 60 seconds).

Example Warehouse Credit Consumption​

Warehouse SizeCredits per Hour
X-Small1
Small2
Medium4
Large8
X-Large16

The bigger the warehouse β†’ the more credits burned per hour β†’ the faster your queries.

πŸ•’ Compute Billing Example​

You run a Medium warehouse for 5 minutes:

  • Medium = 4 credits/hour
  • 5 minutes = 0.083 hours
  • Cost β†’ 4 Γ— 0.083 = 0.33 credits

Snowflake bills very fairly β€” pay-per-second compute is one of its biggest advantages.


πŸ“¦ 2. Storage Cost β€” Cheap & Predictable

Snowflake storage is extremely affordable compared to compute.

Storage costs are based on:

  • Total compressed data stored
  • Time Travel retention
  • Fail-safe retention
  • Staged files

Rough monthly estimate (varies by cloud provider):​

~$23 per TB per month for active storage.

Time Travel + Fail-safe add a bit more, depending on edition.

Storage Example​

If you store:

  • 2 TB Raw data
  • 1 TB Processed data
  • 0.5 TB Staged files

Total β†’ 3.5 TB
Monthly cost β†’ roughly 3.5 Γ— $23 β‰ˆ $80.50

Storage is cheap β€” compute is where you must optimize.


☁️ 3. Cloud Services β€” Free… Until 10%

Snowflake includes Cloud Services usage for free up to 10% of compute.

Cloud Services includes:

  • Query optimization
  • Authentication
  • Metadata management
  • Transaction coordination
  • Security & governance

If a workload heavily stresses metadata/catalog operations, Cloud Services may exceed the 10% threshold and incur costs β€” but this is rare.


πŸ“Š 4. Where Companies Accidentally Spend Too Much

Based on industry usage patterns, overspending usually happens because of:

❌ 1. Warehouses left running overnight​

People forget to suspend them.

❌ 2. Warehouses sized too large​

Using a Large WH when Small is enough.

❌ 3. Too many BI users on a single WH​

Better to use multi-cluster or separate warehouses.

❌ 4. Poorly written SQL​

Inefficient joins or SELECT * from large tables.

❌ 5. Huge Time Travel retention​

Keeping old data for 90 days when not needed.

❌ 6. Loading massive files without partitioning​

Leading to slow performance and longer-running compute.


🧠 5. Best Practices to Reduce Snowflake Cost

These tips are used by top Snowflake architects to cut cost without reducing performance.


πŸ›‘ Best Practice #1 β€” Always Enable Auto-Suspend​

Set suspend time to 60 seconds or lower.

Example:

ALTER WAREHOUSE MY_WH
SET AUTO_SUSPEND = 60;

Warehouses sleeping = money saved.


πŸš€ Best Practice #2 β€” Use Auto-Resume​

Only pay when someone uses the warehouse.


βš– Best Practice #3 β€” Right-Size Your Warehouses​

Before scaling up, try scaling out or optimizing queries.

Rule of thumb:​

  • X-Small β†’ Light development
  • Small β†’ BI dashboards
  • Medium β†’ ETL jobs
  • Large β†’ Heavy pipelines
  • XL+ β†’ Massive workloads or ML processing

πŸ“š Best Practice #4 β€” Avoid SELECT *​

Selecting all columns forces Snowflake to scan more data β†’ more compute β†’ more cost.

Instead, always select only what you need.


🎯 Best Practice #5 β€” Use Caching Effectively​

Keeping warehouses running removes cache β€” try not to suspend/restart too frequently for high-repeat workloads.


🧹 Best Practice #6 β€” Prune Unused Tables & Stages​

Old transient tables and unneeded staged files waste money.


πŸ•’ Best Practice #7 β€” Control Time Travel Retention​

Set appropriate retention:

Example:​

ALTER TABLE MY_TABLE SET DATA_RETENTION_TIME_IN_DAYS = 3;

Not every table needs 90-day retention.


πŸ“Š Best Practice #8 β€” Use Resource Monitors​

Prevent runaway costs from:

  • Bad queries
  • Loops
  • Unplanned heavy jobs

Example:

CREATE RESOURCE MONITOR credit_guard
WITH CREDIT_QUOTA = 200
TRIGGERS ON 75 PERCENT DO NOTIFY
ON 100 PERCENT DO SUSPEND;

🏒 6. Real-World Company Cost Optimization Example

A company before optimization:

  • 6 warehouses running 24/7
  • ETL pipelines taking too long
  • BI dashboards slow
  • Storage growing out of control

After implementing best practices:

  • ETL warehouse moved from Large β†’ Medium
  • Auto-suspend enabled across all WH
  • BI given its own multi-cluster Small WH
  • Time Travel reduced from 90 to 7 days for non-critical data
  • Storage staging cleaned weekly

Total monthly savings: 40–60% without any performance degradation.


🎯 One-Sentence Summary

Compute is Snowflake’s main cost driver, storage is cheap, and smart warehouse management can cut your bill by up to 70%.


πŸš€ Next Topic

πŸ‘‰ User Roles, Permissions, RBAC in Snowflake

Career