Skip to main content
Your progress
0 of 4 lessons complete0%
T2 / M2.12 / L2 OF 4 / Engineer TIER / 9 min

The credit-based cost model

Outcome

By the end of this lesson, you will be able to explain how Snowflake spend is computed from credits and edition rates, distinguish compute cost from storage cost, and reconcile ZopNight’s figure against the customer’s own account-usage views.


TierEngineer
JTBD”Explain why the Snowflake number in ZopNight is what it is, and defend it against the finance team’s own figure.”
PersonasPlatform Engineer · Data Engineer · FinOps Lead
PrerequisitesM2.12.L1 · T0.M0.4 (rack rate vs billing cost)
Time9 minutes
Bloom verbExplain (Understand), Distinguish (Analyze), Reconcile (Evaluate)

1. Concept

Every cost model you have met so far in this curriculum prices an instance-hour: a thing of a known shape existed for a known time, at a known rate. Snowflake does not work that way, and the difference is not cosmetic.

Terminal window
CLOUD COMPUTE SNOWFLAKE COMPUTE
─────────────────────────────────────────────────────────────
m5.large × 730 hours warehouse credits consumed
× $/hour × $/credit for your edition
The instance existed The warehouse only consumed while
whether or not you it was RUNNING A QUERY, and it
used it. auto-suspends when idle.

That single difference reshapes what optimization means. On EC2, an idle instance still bills, so stopping it is the win. On Snowflake an idle auto-suspended warehouse bills nothing, so the usual saving is not available. The win is in two other places: how large the warehouse is while it runs, and how long it sits doing nothing before auto-suspend stops it.

The two cost axes

Terminal window
COMPUTE (the majority of most bills)
warehouse credits consumed × per-edition credit rate
Credits scale with warehouse SIZE: each step up the
size ladder roughly doubles the credits per hour.
STORAGE
per-table ACTIVE BYTES
Charged on what the table actually occupies, including
the overhead of Time Travel and Fail-safe retention.

The edition matters more than people expect. The same credit costs materially different amounts on Standard versus Enterprise versus Business Critical, so an identical query workload produces a different bill on two accounts with identical warehouses. ZopNight reads the edition rather than assuming one.

Why the size ladder is the main lever

Terminal window
WAREHOUSE SIZE RELATIVE CREDIT BURN
X-Small 1×
Small 2×
Medium 4×
Large 8×
X-Large 16×
... and onward
A query that finishes in 60s on a Medium may finish in
35s on a Large. It did not cost less: it burned 8× the
per-hour rate for 58% of the time, which is MORE.
The optimization question is never "is it fast enough".
It is "does doubling the size more than halve the runtime".
Below that line, sizing up costs money.

This is why the recommendation catalog has both a resize up and a resize down signal. Sizing up is occasionally correct, when a query spills to disk on a smaller warehouse and the spill dominates the runtime.

Reconciliation, and why it is easy here

Snowflake has a property that no cloud provider offers: the customer’s own billing data is queryable from the same place ZopNight reads.

Terminal window
ZopNight's figure derived from ACCOUNT_USAGE warehouse
credit consumption × edition rate
The customer's own the SAME ACCOUNT_USAGE billing views
So a disagreement is almost always one of three things:
1. edition mismatch ZopNight has the wrong per-credit
rate for this account
2. window mismatch ACCOUNT_USAGE views have their own
latency; comparing today to today
will disagree
3. storage excluded one side is comparing compute-only
against compute-plus-storage

Compare that with AWS, where reconciling a calculated figure against the invoice means reasoning about amortization, credits, taxes and unattributed line items. On Snowflake, the customer can run the query themselves and you can diff two numbers from the same source.

What this means for the two-source model

Snowflake spend is usage-based, computed from consumption records rather than from a pricing API applied to a running shape. It behaves like billing cost rather than like rack rate: there is no meaningful “what this would cost at list price if it ran 24/7” figure for a warehouse that only bills while querying.

So do not expect the rack-rate versus billing-cost split from T0.M0.4 to map cleanly onto Snowflake rows. The useful question there is not which column, it is which window.


2. Demo

A reconciliation that looked like a bug and was not:

Terminal window
THE COMPLAINT
"ZopNight says $41,200 last month. Our Snowflake bill
says $48,900. You're under-reporting by 16%."
STEP 1: SPLIT COMPUTE FROM STORAGE
ZopNight, compute: $38,900
ZopNight, storage: $2,300
ZopNight, total: $41,200
The finance figure came off the invoice, which also
included:
data transfer $1,100
Snowpipe / serverless features $4,800
materialized-view maintenance $1,800
─────────────────────────────────────────────
$7,700
$41,200 + $7,700 = $48,900. Exact.
STEP 2: WHAT THIS ACTUALLY REVEALED
Nobody was wrong about the money. But the $4,800 of
serverless spend was invisible to the team until this
comparison, and it was 10% of the bill.
The Snowpipe file-batching signal (L4) exists for
precisely this: many small files ingested individually
burn far more than the same volume batched.
STEP 3: THE CHECK THAT SETTLES IT
Run the credit query yourself in Snowflake and compare
to ZopNight's compute figure for the same window. Same
source, so they should agree to rounding. If they do
not, check the account's EDITION first: a Standard rate
applied to an Enterprise account is the usual cause.

3. Hands-on (6 min)

Terminal window
1. Find your account's edition: _________
Does the per-credit rate ZopNight shows match that
edition's published rate? Y / N
2. Split last month in ZopNight:
compute $ ________ storage $ ________
3. Ask finance for the invoice total: $ ________
The gap: $ ________
Name what lives in the gap (serverless features, data
transfer, MV maintenance):
______________________________________________
4. Take your largest warehouse. What size is it? ______
Ask the owning team the only question that matters:
"if we dropped it one size, would the jobs still
finish inside their window?" answer: ________
5. Find one table whose active bytes are large relative
to its usefulness. Check its Time Travel retention:
______ days. Retention above 1 day on a rebuildable
staging table is pure storage cost.

4. Knowledge check

Q1

A team sizes a warehouse up from Medium to Large. The query that took 60 seconds now takes 35. The cost effect:

A. Lower, because the query finishes sooner
B. Higher
C. Unchanged, because credits are consumed per query
D. Lower, because larger warehouses have better cache hit rates

Show answer

Correct: B. Each size step roughly doubles the credit burn per hour, so Large costs 2× Medium per unit time; finishing in 58% of the time means paying about 1.17× as much. Sizing up only saves money when doubling the size more than halves the runtime. This is the calculation people skip. There is a real case for sizing up, when a query spills to disk on the smaller warehouse and the spill dominates runtime, which is why the catalog carries a resize-up signal as well as resize-down.

Q2

Why is reconciling ZopNight’s Snowflake figure against the customer’s own numbers easier than reconciling an AWS figure against an AWS invoice?

A. Snowflake bills monthly rather than daily
B. Snowflake has no discounts
C. ZopNight ingests the Snowflake invoice directly
D. Both sides read the same source

Show answer

Correct: D. ZopNight derives spend from SNOWFLAKE.ACCOUNT_USAGE, and that is exactly where the customer’s own billing views come from, so a disagreement narrows quickly to edition rate, window, or a compute-versus-storage scope difference. On AWS the calculated figure and the invoice come from genuinely different places, which is why amortization, credits and unattributed line items all have to be reasoned about. Here the customer can run the query themselves.

Q3

An idle Snowflake warehouse with auto-suspend enabled costs:

A. Nothing while suspended
B. Its full per-hour credit rate, like an idle EC2 instance
C. Half rate
D. Storage cost only, proportional to warehouse size

Show answer

Correct: A. Credits are consumed only while the warehouse is running, which is why Snowflake optimization concentrates on warehouse size and the auto-suspend threshold rather than on stopping idle capacity. This is the mental-model shift from the rest of the curriculum: on EC2 the idle instance is the waste, on Snowflake the idle warehouse has usually already stopped itself. An auto-suspend set to a long threshold, or disabled entirely, is where the equivalent waste hides.


5. Apply

Split your Snowflake spend into compute and storage on the Cost Reports page, then reconcile the compute half against a credit query you run yourself. Anything left over is serverless features, data transfer and materialized-view maintenance, and that residual is frequently the first genuinely new finding.


Glossary terms touched

Snowflake credit · Edition rate · Active bytes · Time Travel


Start with the bill.

Foundations takes about five hours. The first lesson is nine minutes.

Open curriculum. No login. No paywall. 290 lessons across 7 courses, three publicly verifiable credentials. Read it on the train, take the exam on a Saturday, list the credential on your résumé Monday.

5h median time to finish Foundations
0 logins, paywalls, or marketing forms
open curriculum, public credential verifier
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·