Rates last reviewed: June 2025.
What Snowflake Actually Costs When You Forget to Suspend the Warehouse
An X-Small warehouse left running 24/7 burns through $1,800 a month doing nothing. A Large warehouse: over $14,000. Here is the math by size, the scenarios where this actually happens, and how to set up auto-suspend and resource monitors so it never happens to you.
Idle warehouse cost by size
Snowflake bills by the second with a 60-second minimum each time a warehouse resumes. If auto-suspend is disabled (AUTO_SUSPEND = NULL or 0) or set to a long interval, every hour the warehouse sits idle is pure waste. No queries are being served, no cache is warming, but credits drain at the full rate.
Here is what each warehouse size costs when running continuously without suspending, based on on-demand credit pricing of $2.50 per credit:
| Size | Credits / hr | Cost / hr | Cost / day (24h) | Cost / month (30d) |
|---|---|---|---|---|
| X-Small | 1 | $2.50 | $60 | $1,800 |
| Small | 2 | $5.00 | $120 | $3,600 |
| Medium | 4 | $10.00 | $240 | $7,200 |
| Large | 8 | $20.00 | $480 | $14,400 |
| X-Large | 16 | $40.00 | $960 | $28,800 |
These numbers are for a single warehouse running one cluster. Multi-cluster warehouses multiply the burn rate by the number of active clusters. A Medium warehouse with MAX_CLUSTER_COUNT = 5 can burn up to $36,000 a month during sustained concurrency.
If your negotiated credit price is above $2.50, which is common for smaller accounts, non-AWS regions, or shorter commitment terms, the waste scales proportionally. At $3.50 per credit, the same Large warehouse costs $20,160 a month idle.
Where idle warehouses come from
Three patterns account for most of the idle compute waste teams encounter:
Dev and staging warehouses
A developer spins up a Medium warehouse, runs a few exploratory queries, and moves on. With the default 10-minute auto-suspend, the warehouse sits idle for most of the day. Across a team of five developers with similar habits, the monthly idle cost from dev warehouses alone can reach $2,000 to $4,000.
Post-POC resources never cleaned up
The evaluation ended, the team made a decision, but the warehouse keeps running. It is not uncommon to find warehouses from trials two years ago still consuming credits. These are often larger sizes because POCs tend to over-provision.
Auto-suspend disabled for perceived performance
Teams working with BI tools sometimes disable auto-suspend to preserve the warehouse cache. The logic makes sense: a warm cache cuts query times. But running 24/7 "just in case" usually costs more than the performance delta justifies, unless queries arrive every few minutes around the clock. Snowflake recommends at least a 10-minute auto-suspend for BI warehouses to balance cache retention with cost discipline.
Auto-suspend settings for each workload type
Snowflake documentation provides clear guidance. The right interval depends on what the warehouse does:
- Tasks and automated jobs: 60 seconds. The warehouse should suspend as soon as the job completes. No benefit to keeping it warm.
- Dev, staging, and ad-hoc analytics: 300 seconds (5 minutes). Provides a brief cache window while preventing runaway idle costs overnight and over weekends.
- BI and production query warehouses: 600 seconds (10 minutes). This is the Snowflake default and the recommended balance. If you need a longer interval, evaluate whether the cache benefit justifies running 24/7.
One detail worth knowing: Snowflake checks for idle warehouses approximately every 30 seconds. Setting AUTO_SUSPEND to a value that is not a multiple of 30 may not behave exactly as expected. The warehouse suspends at the next check interval after the threshold is crossed.
Resource monitors as a safety net
Auto-suspend is the first line of defense. Resource monitors are the second. A resource monitor enforces a hard credit limit on a warehouse (or group of warehouses) and can be configured to send alerts, suspend the warehouse, or both.
For critical production warehouses where you cannot set an aggressive auto-suspend, a resource monitor with a suspend action at 150% of expected monthly usage prevents a bad deploy or a runaway query from blowing through the budget.
How to audit your account right now
Run this query in Snowsight to find every warehouse with auto-suspend disabled:
SHOW WAREHOUSES;
SELECT "name", "size" FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
WHERE IFNULL("auto_suspend", 0) = 0; Every warehouse returned is a potential billing leak. For each one, decide whether auto-suspend can be enabled, or whether a resource monitor should be assigned as a backstop.
Bottom line
An idle Snowflake warehouse costs exactly the same as an active one. The only difference is nobody benefits from the spend. Set auto-suspend according to workload type, use resource monitors for overage protection, and audit your warehouses quarterly.
See what your workload should actually cost: dwcost.com
Note: Credit prices on this page are illustrative. Actual costs vary by contract, cloud provider, and region. Always verify rates in your Snowflake account.
Related guides
Learn more about Snowflake pricing and compare it with other platforms: