Snowpipe costs¶

With Snowpipe’s serverless compute model, users can initiate any size load without managing a virtual warehouse. Instead, Snowflake provides and manages the compute resources, automatically growing or shrinking capacity based on the current Snowpipe load.

Important

Previously, Snowpipe costs had two components: the actual compute resources used to load your data — that were measured per-second/per-core — and a per-1,000-files charge.

Moving forward, Snowpipe ingestion will be billed under a new, simplified model: a fixed credit amount per GB. This significant change aims to provide you with better predictability around your data loading expenses, simplifying cost estimation compared to the previous pricing model.

For text files — such as CSV, JSON, XML — you are charged based on their uncompressed size. For binary files — such as Parquet, Avro, ORC — you are charged based on their observed size regardless of compression.

The new pricing model will be applied automatically for all Business Critical and VPS edition accounts starting August 1, 2025. It will also be enabled for all Enterprise and Standard editions in the near future. Until then, Enterprise and Standard editions will continue to be billed according to the existing pricing model.

For more information, see Snowflake Service Consumption Table.

Resource consumption and management overhead¶

With the previous pricing model, Snowflake tracks the resource consumption of loads for all pipes in an account, with per-second/per-core granularity, as Snowpipe actively queues and processes data files. Per-core refers to the physical CPU cores in a compute server. The utilization recorded is then translated into familiar Snowflake credits, which are listed on the bill for your account.

Note

Using a multi-threaded client application enables submitting data files in parallel, which initiates additional servers and loads the data in less time. However, the actual overall compute time required would be identical to using a single-threaded client application, just spread out over more internal Snowpipe servers.

Decisions with regard to data file size and staging frequency impact the cost and performance of Snowpipe. For recommended best practices, see Continuous data loads (i.e. Snowpipe) and file sizing.

In addition to resource consumption, an overhead is included in the utilization costs charged for Snowpipe. This overhead is charged, regardless of whether the event notifications or REST API calls resulted in data being loaded. This overhead charge appears as a Snowpipe charge in your billing statement.

Estimating Snowpipe charges¶

With the new fixed-credit amount per GB for Snowpipe, estimating Snowpipe charges is straightforward. You can simply calculate your expected costs by using your anticipated data volume. Because text files — such as CSV, JSON, XML — are charged based on their uncompressed size, you need to know the compression ratio of your text files. You can then verify these calculations against the actual usage by examining the BILLED_BYTES column in the relevant Account Usage views. The BILLED_BYTES column will be introduced in the upcoming 2025_05 BCR bundle.

To understand the actual credit consumption under the new model for your specific workloads, we suggest that you experiment by performing a typical set of loads.

Viewing data-load history and cost¶

Account administrators (users with the ACCOUNTADMIN role) or users with a role granted the MONITOR USAGE global privilege can use Snowsight, the Classic Console, or SQL to view the credits billed to your Snowflake account within a specified date range.

Occasionally, the data compaction and maintenance process can consume Snowflake credits. For example, the returned results might show that you consumed credits with 0 BYTES_INSERTED and 0 FILES_INSERTED. This means that your data is not being loaded, but the data compaction and maintenance process has consumed some credits.

To view the credits billed for Snowpipe data loading for your account:

Snowsight:

Select Admin » Cost Management.

Classic Console:

Select Account Account tab » Billing & Usage.

Snowpipe utilization is shown as a special Snowflake-provided warehouse named Snowflake logo in blue (no text) SNOWPIPE.

SQL:

Query either of the following:

  • PIPE_USAGE_HISTORY table function (in the Snowflake Information Schema).

  • PIPE_USAGE_HISTORY view (in Account Usage).

    You can run the following queries against the PIPE_USAGE_HISTORY view. You can now also use the queries to verify costs based on volume by using the BYTES_BILLED column.

    Note

    You must enable the upcoming 2025_05 BCR bundle to access the BYTES_BILLED column.

    Query: Snowpipe cost history (by day, by object)

    The following query provides a full list of pipes and the volume of credits consumed through the service over the last 30 days, broken out by day. Any irregularities in the credit consumption or the presence of consistently high consumption are indications of potential problems that you should investigate.

    SELECT TO_DATE(start_time) AS date,
      pipe_name,
      SUM(credits_used) AS credits_used,
      SUM(bytes_billed) AS bytes_billed_total -- Added for new pricing verification
    FROM snowflake.account_usage.pipe_usage_history
    WHERE start_time >= DATEADD(month,-1,CURRENT_TIMESTAMP())
    GROUP BY 1,2
    ORDER BY 3 DESC;
    
    Copy

    Query: Snowpipe History & m-day average

    The following query shows the average daily credits consumed by Snowpipe that are grouped by week over the last year. This query can help you identify anomalies in daily consumption averages over the year so that you can investigate sudden increases or unexpected changes in consumption.

    WITH credits_by_day AS (
      SELECT TO_DATE(start_time) AS date,
        SUM(credits_used) AS credits_used,
        SUM(bytes_billed) AS bytes_billed_total -- Added for new pricing verification
      FROM snowflake.account_usage.pipe_usage_history
      WHERE start_time >= DATEADD(year,-1,CURRENT_TIMESTAMP())
      GROUP BY 1
      ORDER BY 2 DESC)
    SELECT DATE_TRUNC('week',date),
      AVG(credits_used) AS avg_daily_credits,
      AVG(bytes_billed_total) AS avg_daily_bytes_billed -- Added for new pricing verification
    FROM credits_by_day
    GROUP BY 1
    ORDER BY 1;
    
    Copy

Note

Resource monitors provide control over virtual warehouse credit usage; however, you cannot use them to control credit usage for the Snowflake-provided warehouses, including the Snowflake logo in blue (no text) SNOWPIPE warehouse.