At a glance
The single most Snowflake-defining number on the dashboard: total compute credits consumed across the account in the last 24 hours, compared against the prior 24 hours. In Snowflake, credits are dollars. Every second a warehouse runs, it accrues credits at a rate set by its size, and those credits convert directly to your invoice. So this card is not an abstract usage metric; it is the daily spend meter. A flat line is a controlled account. A sudden step up, with no matching rise in work done, is money leaving the building: a runaway query, a scheduled job stuck in a retry loop, an auto-suspend setting that quietly stopped working, or a warehouse someone resized up and forgot. The +50% vsP alert exists because a doubled daily burn caught the same day is a saved bill; caught at month end it is a finance conversation.
Calculation
The card sums credits over the window and compares to the prior window:- Per-second billing with a 60-second floor. A warehouse bills per second while running, but every resume carries a 60-second minimum charge. Many tiny queries that each spin a warehouse up and down can therefore burn far more credits than their runtime suggests, because each pays the floor.
- Size doubles the rate. Credit consumption per hour doubles with each warehouse size step: X-Small burns 1 credit/hour, Small 2, Medium 4, Large 8, X-Large 16, and so on. Resizing a warehouse up one step doubles its burn rate instantly, which is the single most common cause of a sudden
+50%jump. - Idle-but-running counts. A warehouse that is on but processing nothing still accrues credits until
AUTO_SUSPENDkicks in. This idle burn lands in the total even though no query ran; see Idle Warehouse Credits Wasted (24h). - Serverless credits are separate line items. Snowpipe, automatic clustering, and materialised-view maintenance run on Snowflake-managed compute and accrue credits independently of your warehouses. A clustering job kicked off by a large reorganisation can spike the total with no warehouse activity at all.
- Cloud-services credits have a free tier. Cloud-services compute (query compilation, metadata) is free up to 10% of daily warehouse credits; only the excess is billed and included here. A workload of many tiny metadata-heavy queries can push past that 10% line.
Worked example
A platform team runs Snowflake at an ecommerce retailer with three warehouses on Enterprise edition at 720/day). Two readings, taken on 14 Apr 26. Yesterday (baseline, 12 to 13 Apr 26):
Today (13 to 14 Apr 26):
Day-on-day delta: (536 - 240) / 240 = +123%. The
+50% vsP alert fires hard.
The breakdown localises it instantly: LOAD_WH and AD_HOC_WH are normal, but BI_WH jumped from 96 to 384 credits, exactly 4x. A 4x jump on a single warehouse with no change in query count is the fingerprint of a two-step resize: someone (or an auto-scaling policy, or a Terraform apply) moved BI_WH from Medium to X-Large. Medium burns 4 credits/hour; X-Large burns 16. The warehouse did the same Looker-refresh work it always does, but every running second now costs 4x.
The team’s response, in order:
- Confirm the resize. Open Credits by Warehouse (7d) and look at
BI_WHover the week; the step is obvious and dated. Cross-checkWAREHOUSE_EVENTS_HISTORYfor theALTER WAREHOUSE ... SET WAREHOUSE_SIZEevent and who ran it. - Decide if the size was justified. Was
BI_WHqueueing? Check Warehouse Saturation % and Avg Query Queue Depth per Warehouse. If saturation was comfortable and the queue was empty, the X-Large is pure waste: resize back to Medium and reclaim ~$865/day. - If the resize was deliberate but excessive, a multi-cluster Medium (scale-out for concurrency) is usually cheaper than a single X-Large (scale-up for one big query) when the problem is concurrency rather than single-query size.
- A doubling on one warehouse is almost always a resize. Credit burn scales linearly with size, so clean multiples (2x, 4x) point at
WAREHOUSE_SIZEchanges, not query behaviour. Ragged increases point at query inefficiency or volume. - The alert pays for itself on day one. A
+50%burn left until month-end is the classic Snowflake bill-shock story. The whole point of the 24-hour window is to catch it while a singleALTERstatement fixes it. - Storage is not in this number. A growing bill with flat credit burn means storage, not compute; read Storage Used (TB) for that axis.
Sibling cards to reference together
Reconciling against the source
Where to look in Snowflake’s own tooling:Total credits, last 24h:Why our number may legitimately differ from a native query:SELECT SUM(credits_used) AS credits FROM SNOWFLAKE.ACCOUNT_USAGE.METERING_HISTORY WHERE start_time >= DATEADD('hour', -24, CURRENT_TIMESTAMP());Per-warehouse split:SELECT name, SUM(credits_used) FROM SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY WHERE start_time >= DATEADD('hour', -24, CURRENT_TIMESTAMP()) GROUP BY name ORDER BY 2 DESC;Serverless credits:AUTOMATIC_CLUSTERING_HISTORY,PIPE_USAGE_HISTORY, andMATERIALIZED_VIEW_REFRESH_HISTORYeach carry their owncredits_used. Managed console: Snowsight under Admin -> Cost Management -> Consumption shows daily credit totals with a warehouse and service breakdown. This is the closest native equivalent and is what your account team reconciles the invoice against. Multiply by your contracted rate to match the dollar figure.
Cross-connector reconciliation:
Known limitations / FAQs
Credits doubled on one warehouse but query count is unchanged. What happened? Almost certainly a warehouse resize. Credit consumption per hour doubles with each size step (X-Small 1, Small 2, Medium 4, Large 8, X-Large 16), so a clean 2x or 4x on a single warehouse with no change in work points straight at anALTER WAREHOUSE ... SET WAREHOUSE_SIZE. Check WAREHOUSE_EVENTS_HISTORY for the change and who made it, then decide via Warehouse Saturation % whether the larger size was actually needed.
Does this card include storage cost?
No. This is compute credits only. Storage is billed separately per terabyte per month and tracked on Storage Used (TB). If your invoice is rising but credit burn is flat, the growth is in storage (or data egress), not compute, and you should look there instead.
Our burn spiked but no warehouse shows extra activity. Where did the credits go?
Look at serverless features. Snowpipe ingest, automatic clustering, materialised-view refresh, and search-optimisation maintenance all run on Snowflake-managed compute and accrue credits without touching your named warehouses. A large table reorganisation or a backfill can trigger an expensive automatic-clustering pass. Query AUTOMATIC_CLUSTERING_HISTORY and PIPE_USAGE_HISTORY to find it.
Why is a trailing 24-hour window better than a calendar-day total?
A trailing window catches a spike the moment it has been running for a day, regardless of when in the day it started, so a runaway job that kicks off at 22:00 is flagged by 22:00 the next day rather than waiting for two partial calendar days to roll up. The trade-off is that our number will not match a calendar-day chart in Snowsight exactly; align the windows when reconciling.
Lots of tiny queries are burning more credits than I expect. Why?
The 60-second minimum on warehouse resume. Every time a suspended warehouse wakes to run a query, it is billed for at least 60 seconds even if the query finishes in two. A flood of small queries that each resume a cold warehouse pays the floor repeatedly. The fix is usually to lower AUTO_SUSPEND more aggressively is the wrong instinct here; instead keep the warehouse warm for the burst, or batch the small queries so they share one resume.
Can the alert threshold be tuned for a spiky-but-normal workload?
Yes. Some accounts have legitimately bursty days (a weekly heavy reporting run, a monthly close). If a recurring +50% is expected, raise the alert threshold for this profile, or rely on Credit Burn +50% Week-over-Week which smooths daily spikes into a weekly trend and is less prone to firing on known burst days.