What you will be able to do
- Choose between a usage-based and a subscription-based pricing plan for a paid listing that shares a Snowflake Native App
- Combine monthly fees, per-query charges and billable events, and set the required charging limit
- Configure compute pool surcharges for an app with containers and explain the rules that limit them
Key concept
One pricing plan per listing — Money in a Snowflake Native App comes from the listing it is published through, not from the app itself. Each listing carries exactly one pricing plan, either usage-based or subscription-based, and every other monetization choice happens inside that plan.
1.Two pricing models, one plan per listing
You monetize a Snowflake Native App by attaching a pricing plan to the paid listing you publish it through. Snowflake provides the options and you pick one. There are two families. A usage-based plan bills the consumer after the fact, for months in which they actually used the product. A subscription-based plan bills them up front for a fixed term. Billing timing is the clearest way to tell them apart, and the exam tests it.
| Pricing model | Charge components | Billing timing |
|---|---|---|
| Usage-based | Any combination of billable events, per query, and monthly fee | Billed in arrears in months where usage occurs |
| Subscription-based | A specified term, with optional recurring billing | Billed upfront |
What you share also limits your options. A listing that shares an application can use all three usage-based components: billable events, per-query charges and a monthly fee. A listing that shares only data can use per-query and monthly-fee charges, but not billable events. Billable events (Custom Event Billing) are only available to apps because the app's own code has to emit them.
Choose the plan carefully. Once a pricing plan is attached, you cannot remove it, and any change to a plan on a public Marketplace listing must be approved. Payments reach you through Stripe after consumers pay. If a consumer buys with their Capacity commitment, Snowflake pays you instead.
Checkpoint 1 of 6· Check yourself
A provider publishes a data-only listing (no application) and wants to charge per row of data modified. What happens?
Data listings can use per-query and monthly-fee charges. Charging by billable event requires a listing that shares an application.
“Only listings that share an application can use Custom Event Billing, which charges based on billable events.”Source: docs.snowflake.com
Checkpoint 2 of 6· Exam question
A provider wants to attach a pricing plan to a paid Marketplace listing for a Snowflake Native App. Which statement about pricing plan attachment is correct?
Correct answer: A — A provider can attach a single pricing plan to a listing, choosing either usage-based or subscription-based
- A. This is correct: Snowflake documentation states a provider attaches a single pricing plan to a listing, and that plan is either usage-based or subscription-based, not both simultaneously.
- B. Incorrect. Providers choose one pricing model per listing rather than being required to combine subscription and usage-based charges.
- C. Incorrect. Consumers do not select from multiple competing pricing plans on a single listing; the provider defines one plan for that listing.
- D. Incorrect. Pricing plans are configured in Provider Studio before publishing, not gated behind having an existing installed consumer.
Sources1
2.Building a usage-based plan
A usage-based plan is built from three components that you can combine however you like.
- Monthly fee. A fixed price for each calendar month in which at least one query references the Snowflake Native App or paid data share. For an app with Snowpark Container Services, the trigger is the compute pool running: the fee is charged once when it runs. If nothing runs in a month, there is no fee for that month. - Per-query charge. A fixed price for each query that accesses paid content, added on top of any monthly fee. - Billable events. Custom Event Billing, where the app's code decides what counts as a chargeable event.
Per-query charges and billable events are *dynamic*, meaning the total depends on how much the consumer does. Plans with dynamic charges must also set a Maximum Monthly Charge. Once a consumer reaches it, any further usage that month is free. Per-query plans can also offer included free queries, with one detail the exam likes to test: the first query of every calendar month is always charged, and the free allowance starts after it.
All of these components are set in Provider Studio. Open the draft listing, go to Pricing & Trial, choose Add, and select Usage-based. You also decide whether to offer a free trial. A trial is required if the listing is offered publicly on the Snowflake Marketplace.
Checkpoint 3 of 6· Check yourself
A per-query plan sets Included Queries to 200. Which query in a calendar month is the first one charged at the per-query price after the free allowance runs out?
The first query is always charged. The next 200 are free, so per-query charging resumes at query 202.
“enter 200 to start charging consumers when they run the 202nd query against the application database, because the first query is always charged.”Source: docs.snowflake.com
Sources1
3.Subscription-based plans
A usage-based monthly fee is only charged in months when the consumer uses the product. If you want to be paid whether or not they use it, choose a subscription-based plan. The consumer pays up front for access over a specified term.
To set one up, open the draft listing in Provider Studio, go to Pricing & Trial, choose Add, and select Subscription-based. Under Billing and access there are two options. Recurring charges the consumer up front at the start of each term, and the subscription auto-renews. Non-recurring gives access for a single fixed term. Next, set the Billing period (a term from 1 to 36 months) and the total upfront price in US dollars.
Checkpoint 4 of 6· Check yourself
A provider wants consumers to pay a fixed monthly amount even in months when they never open the app. Which plan fits?
A usage-based monthly fee is only charged in months with usage. Charging regardless of use calls for a subscription-based plan.
“If you want to charge a monthly fee whether or not consumers use your data product, add a subscription-based plan instead.”Source: docs.snowflake.com
Sources1
4.Container billing: compute pool surcharges
Consumers already pay their own infrastructure costs for an app with containers, including compute pools, warehouses and storage. A compute pool surcharge lets the provider add their own charge on top, based on how much the app's Snowpark Container Services (SPCS) compute pools are used. The feature is in preview, and it is available only when all of these are true:
- The app uses at least one SPCS container with compute pools. - The app creates its compute pools automatically during installation, and requests privileges automatically. - You are in the preview for Snowflake Native Apps with Snowpark Container Services. - The app is already on the Snowflake Marketplace as a paid listing.
On the code side, put CREATE COMPUTE POOL in the setup script and request the CREATE COMPUTE POOL privilege in the manifest file. Give each pool a unique name that describes what it is for, because the listing refers to pools by name. If a compute pool is added after setup, for example by the consumer, the listing stops the app from running.
On the listing side, open Pricing & Trial and choose Usage-based. Then select + Compute Pool Surcharge once for each pool and enter:
- the pool's name, exactly as it appears in the app - an amount to bill per credit, in USD
To show a pool to consumers without charging for it, set its amount to $0. You can also set a Maximum Monthly Charge.
The combination rules are strict:
- A surcharge can be combined with a base charge only. It cannot be combined with any other usage-based model or with subscription pricing. - Surcharges are calculated per day, in US dollars only, from usage metered every 5 minutes. - Only time-based trials are supported.
Checkpoint 5 of 6· Fill the gap
Complete this query that reports compute pool surcharge amounts.
SELECT listing_global_name,
listing_display_name,
charge_type,
charge
FROM SNOWFLAKE.DATA_SHARING_USAGE.MARKETPLACE_PAID_USAGE_DAILY
WHERE charge_type=' ? ';SPCS_COMPUTE_POOL_SURCHARGE is the surcharge amount. MAX_SPCS_COMPUTE_POOL_SURCHARGE_REACHED marks usage after the maximum was reached, which adds no further charge.
Source: docs.snowflake.comCheckpoint 6 of 6· Exam question
A provider is deciding between subscription-based and usage-based pricing for a new Native App listing. Which characteristic correctly distinguishes non-recurring subscription pricing from usage-based pricing?
Correct answer: A — Non-recurring subscription pricing charges a one-time fee with no automatic repurchase, while usage-based pricing charges based on consumption such as queries or billable events
- A. This is correct: non-recurring subscription pricing is a one-time upfront payment with no automatic repurchase, whereas usage-based pricing meters actual consumption like per-query charges, monthly fees, or custom billing events.
- B. Incorrect; auto-renewal describes recurring subscription pricing, not the non-recurring variant, and usage-based pricing is metered continuously rather than framed around renewal.
- C. Incorrect. Subscription pricing is not restricted to container-based apps; it applies broadly to paid listings regardless of the underlying compute model.
- D. Incorrect, this reverses the definitions — per-query charging is a usage-based charge type, while subscriptions charge a fixed term price rather than metering queries.
Sources2
Exam traps
Each one states something that sounds right. Open it to see what is actually true.
1.A usage-based monthly fee is prorated by the day the consumer first queried in that month.Why is that wrong?
The fee is a fixed price for any month with at least one qualifying query. It is charged in full and never prorated.
Covered in Building a usage-based plan
2.A compute pool surcharge can be stacked with per-query charges or billable events in the same plan.Why is that wrong?
Surcharges combine only with a base charge. They cannot be combined with any other usage-based model, or with subscription pricing.
Covered in Container billing: compute pool surcharges
3.Consumers can add their own compute pools to an app with containers, and the surcharge will cover them.Why is that wrong?
Surcharges apply to the named pools the app creates during setup. A consumer-created pool cannot run the app from the listing.
Covered in Container billing: compute pool surcharges
Sources
Every claim above is drawn from one of these pages, quoted as it was written on the date shown.
- 1.
“Consumers are billed in arrears in months where usage occurs.”
↩︎ Two pricing models, one plan per listing“As a provider, you cannot remove a pricing plan from a listing.”
↩︎ Two pricing models, one plan per listing“Any update to a pricing plan for a listing offered publicly on the Snowflake Marketplace is subject to approval.”
↩︎ Two pricing models, one plan per listing“For Snowflake Native App with Snowpark Container Services, a one-time monthly fee is charged when the compute pool runs.”
↩︎ Building a usage-based plan“When this maximum monthly charge is reached, subsequent usage, such as queries, is free.”
↩︎ Building a usage-based plan“Trials are required for listings offered publicly on the Snowflake Marketplace.”
↩︎ Building a usage-based plan“Choose a subscription-based pricing model to charge an upfront fee for a specified term, with optional recurring billing for your listing.”
↩︎ Subscription-based plans“For Billing and access, select Recurring to charge consumers upfront at the beginning of the recurring term.”
↩︎ Subscription-based plans“A provider can attach a single pricing plan to a listing.”
↩︎ Key concept“The per-month charge is a fixed price and is not prorated.”
↩︎ Exam trap 1“Only listings that share an application can use Custom Event Billing, which charges based on billable events.”
↩︎ Checkpoint“The per-month charge is a fixed price and is not prorated.”
↩︎ Prediction“enter 200 to start charging consumers when they run the 202nd query against the application database, because the first query is always charged.”
↩︎ Checkpoint“If you want to charge a monthly fee whether or not consumers use your data product, add a subscription-based plan instead.”
↩︎ Checkpoint - 2.https://docs.snowflake.com/en/developer-guide/snowpark-container-services/provider-pricing-surchargesOfficial docs
“The app must automatically create its compute pools during installation.”
↩︎ Container billing: compute pool surcharges“For compute pools that should be displayed but have no surcharge, set this amount to $0.”
↩︎ Container billing: compute pool surcharges“Compute pool surcharges are calculated per day, not per hour.”
↩︎ Container billing: compute pool surcharges“Usage is metered every 5 minutes.”
↩︎ Container billing: compute pool surcharges“You can combine compute pool surcharges with a base charge, but not with any other usage-based pricing model.”
↩︎ Exam trap 2“Consumer-created compute pools cannot run an app with containers from a listing.”
↩︎ Exam trap 3