If you’re a CFO, this is where the money actually goes, in plain terms. If you’re a CTO or head of data engineering, each section ends with what to check first.
1. Warehouses that never go to sleep
Snowflake bills a warehouse by the second while it’s running, with a one-minute minimum every time it starts. A warehouse that waits ten minutes before suspending — or gets woken up every few minutes by a dashboard refresh — can be awake most of the day while doing very little.
It happens because auto-suspend is set once, when the warehouse is created, and rarely looked at again. BI tools and schedulers then keep nudging it awake.
What to do
- Set auto-suspend to around 60 seconds for most warehouses. Keep a few minutes only where the warehouse cache genuinely speeds up repeated queries.
- Find out which tools wake warehouses most often, and move frequent small refreshes to a smaller warehouse.
2. Warehouses sized for the worst day
Each step up in warehouse size roughly doubles the credits it uses per hour. When a report is slow, the quickest fix is to size up — and it usually stays that way long after the one heavy query has gone.
Bigger feels safer, and nobody wants to be the person who made the dashboards slow again.
What to do
- Test one size smaller on real workloads. Many queries finish in about the same time.
- Fix the slow query itself before paying for more compute to run it.
3. One warehouse doing everyone’s work
Dashboards, pipelines and data science experiments all share one warehouse. It has to be sized for the heaviest job, so everything else runs on compute it doesn’t need — and nobody can tell who is spending what.
What to do
- Give each major workload its own warehouse, sized for that job.
- When lots of people use dashboards at the same time, add clusters with a multi-cluster warehouse (Enterprise edition) instead of moving to a bigger size.
4. Nobody owns the number
Finance sees one Snowflake invoice. Engineering sees warehouses and queries. Nobody connects the two, so it’s nobody’s job to bring the number down.
This is the problem that makes all the others last. Without an owner, every clean-up is a one-off.
What to do
- Split costs by team or project, using separate warehouses, object tags and query tags.
- Start with showback, where each team can see its own spend, then move to budgets or chargeback.
- Set up resource monitors or budgets so someone hears about an overspend before the invoice arrives.
5. Expensive queries nobody looks at
A handful of queries usually drive a large share of compute: a dashboard that scans a whole table on every refresh, a join that multiplies rows, a SELECT * on a wide table that feeds nothing important.
What to do
- Review the most expensive queries every month, using Snowflake’s
ACCOUNT_USAGEviews such asQUERY_HISTORY. - Fix the top few first. They’re usually the cheapest wins on the whole platform.
6. Pipelines that rebuild everything, every time
Models that rebuild entire tables on every run, and jobs scheduled every 15 minutes when people look at the data once a day, quietly multiply compute.
What to do
- Switch large dbt models to incremental builds where the data allows it.
- Match schedules to how often the business actually uses the data.
7. Storage that only ever grows
Storage is cheaper than compute, but it adds up: long Time Travel retention on busy tables, staging data kept in permanent tables (which also carry seven days of Fail-safe), and old clones nobody remembers creating.
What to do
- Keep long Time Travel retention only where you really need it.
- Use transient tables for staging and scratch data.
- Clean up unused tables, clones and stages on a regular schedule.
8. Costs that don’t show up on a warehouse
Snowpipe, automatic clustering, search optimization, materialized views and serverless tasks all use credits without a warehouse in sight. They’re easy to switch on and easy to forget about.
What to do
- Check
METERING_HISTORYinACCOUNT_USAGEto see credits by service type, not just by warehouse. - Switch these features off on tables that no longer need them.
Five questions to ask your team this month
You don’t need to read a query plan to get this moving. Ask these, and listen for how quickly the answers come back:
- Which three warehouses cost the most, and what runs on them?
- What did each team spend last month, and who owns that number?
- What are our ten most expensive queries, and does anyone still need them?
- How long do our warehouses stay awake after the last query?
- Who gets alerted if spend jumps next week?
If nobody can answer these easily, start there. Visibility and ownership come before any tuning — otherwise the savings creep straight back.
Want to know what this adds up to for you?
Our free savings estimate looks at your Snowflake usage data and shows where the money is going. No commitment.