CertSafari
    Snowflake SnowPro Specialty: Native Apps· Lessons

    Domain 3 · Lesson 8/12

    Snowflake Marketplace Pricing Plans: Usage-Based, Subscription and Compute Pool Surcharges

    Implement monetization.

    10 min read
    3.67% of exam
    2 sources
    Published 5 Oct 2026
    Docs as of 4 Oct 2026

    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.

    The two paid listing pricing models
    Pricing modelCharge componentsBilling timing
    Usage-basedAny combination of billable events, per query, and monthly feeBilled in arrears in months where usage occurs
    Subscription-basedA specified term, with optional recurring billingBilled 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?

    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?

    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?

    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?

    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=' ? ';

    Checkpoint 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?

    Sources2

    Exam traps

    Each one states something that sounds right. Open it to see what is actually true.

    1. 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. 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. 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. 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. 2.
      “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

    Continue to page 2 of 2

    Custom Event Billing: Emitting and Configuring Billable Events

    Spotted a mistake, or was something unclear? Tell us.