Free · No call

Found something strange in your Snowflake bill?

Send me the cost export. I'll tell you what I'd investigate first — no call required. If it's interesting, I'll ask before publishing an anonymised teardown.

What “what I'd investigate first” means

A written reply naming the two or three things I would look at in your account, and why each one. Not a report, not a proposal — three sentences, after I have read your numbers.

It arrives within 3 business days. There is no call attached to it and I will not book one off the back of it. If you want to talk afterwards, you can say so.

What to send

Least sensitive first. Any one of these is enough — the first is the one I would rather have, because its output is aggregates rather than anybody's query text.

  1. Best — the tool's output

    warehouse-teardown is a read-only, open-source, one-file CLI. It reads Snowflake's own metadata and prints credits per warehouse, the median gap between queries, the most expensive queries and the tables nothing reads.

    # fake data, no credentials
    pipx run --spec git+https://github.com/hikmahtech/warehouse-teardown warehouse-teardown --demo
    
    # your account, read-only
    pipx run --spec git+https://github.com/hikmahtech/warehouse-teardown warehouse-teardown --days 30 --json > teardown.json

    Run the first one and you see exactly what the output looks like before it touches your account. It only reads; it changes nothing. The --spec is there because the tool installs straight from its repository.

  2. Or — a cost export out of Snowflake

    In Snowsight the cost screens are under Admin » Cost management » Consumption, with a usage-type filter for Compute, Storage and Data Transfer. If that screen gives you a download, send it. If not, the SQL below gives the same numbers and is what I would rather have anyway. Cost data can take up to 72 hours to appear in Snowsight.

    Two queries against SNOWFLAKE.ACCOUNT_USAGE — what each warehouse cost, and whether each one ever actually went to sleep. Both are read-only. You need a role that can read the SNOWFLAKE database. On most accounts that is ACCOUNTADMIN; to hand it to someone else, grant imported privileges on database snowflake to role <theirs>.

    -- what each warehouse cost, and how much of that was idling.
    -- This is Snowflake's own idle-cost query, off its metering-history docs.
    select warehouse_name,
           sum(credits_used_compute)                   as compute_credits,
           sum(credits_attributed_compute_queries)     as query_credits,
           sum(credits_used_compute)
             - sum(credits_attributed_compute_queries) as idle_credits
    from snowflake.account_usage.warehouse_metering_history
    where start_time >= dateadd(day, -30, current_date())
      and end_time   <  current_date()
    group by 1
    order by idle_credits desc;
    
    -- and whether each warehouse ever actually went to sleep, last 14 days
    select warehouse_name, count(*) as autosuspends
    from snowflake.account_usage.warehouse_events_history
    where timestamp >= dateadd(day, -14, current_timestamp())
      and event_name = 'SUSPEND_WAREHOUSE'
      and event_reason = 'WAREHOUSE_AUTOSUSPEND'
    group by 1
    order by autosuspends;

    A warehouse whose idle_credits are most of its compute_credits over 30 days, and which appears nowhere in the second result, has not slept in a fortnight. That finding has its own page, with the arithmetic and a longer query.

  3. Or — a screenshot

    If the above is more than you want to do right now, a screenshot of the usage or billing screen is enough to start. I would rather answer a screenshot than have you send nothing.

  4. Not on Snowflake?

    BigQuery, Databricks, Redshift: send whatever your billing console exports. The questions are the same — what share is compute, what is running when nobody is asking it anything, and what is being rebuilt that nothing reads.

How it is handled

  • It is kept private: my mailbox and, while I read it, my laptop. Not uploaded anywhere, not put through any third-party tool, not shared with anyone.
  • It is deleted within 90 days of my reply, or sooner if you ask. Ask by replying to my reply.
  • If something in it is worth writing up, I will ask you first and publish only what you approve, anonymised. No permission, no post.
  • No sales call is attached to sending it. You will not be added to anything.

The same terms are in the privacy policy, where they are harder for me to quietly change.

Send it

Attach whatever you have to an email. No form, no upload, no account — it goes straight to my inbox and I answer it myself.

Email [email protected]

The subject is pre-filled — Cost export — [company] — so I can find it again; put your name in the brackets. One sentence about what looks strange, if you already have a suspicion, makes the reply better.

What happens after

You get the written reply. For most people that is the end of it, and that is a fine outcome — the 18 questions I would ask next are published in full so you can run them yourself.

If the numbers warrant it, the next step is the Data Platform Audit: $3,000 fixed, 12–20 hours over one week; what you get is listed on that page. If day one shows no credible opportunity, you pay nothing, and the fee comes off any follow-on build.

I only suggest it after seeing an export. That is the whole reason this page exists: an audit I recommend before I have looked at anything is worth nothing to either of us.