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

👉 Difference Between Snowflake & Traditional Databases