Understanding replication cost

Charges based on replication are divided into two categories: data transfer and compute resources. Both categories are billed on the target account (that is, the account that stores the secondary database or secondary replication/failover group that is refreshed).

Data transfer charges apply the same way for every refresh mode: Replication Classic, Optimized Refresh, and RPO Assurance. Compute billing depends on the refresh mode of the failover group:

Data transfer:

The initial replication and subsequent synchronization operations transfer data between regions. Cloud providers charge for data transferred from one region to another within their own network.

The data transfer rate is determined by the location of the source account (that is, the account that stores the primary replication or failover group). For data transfer pricing, see the Snowflake Service Consumption Table.

For more information, see Understanding data transfer cost.

Compute resources (Replication Classic):

For failover groups that use Replication Classic (the default), replication operations use Snowflake-provided compute resources for the following:

  • To determine the delta of both metadata and data to be copied during the refresh operation.
  • To copy the data between accounts across regions.

The service type for compute costs for replication in the account usage and organization usage views is REPLICATION.

For more information, see Understanding compute cost.

Note

  • The target account also incurs standard storage costs for the data in each secondary database in the account.
  • The target account also incurs costs for the automatic background processes that service materialized views and search optimization. For details, see the “Serverless Feature Credit Table” in the Snowflake Service Consumption Table for the costs per compute hour.
  • Replication charges are applied even if the initial replication or a refresh operation doesn’t succeed. Any data that is copied before the initial replication or refresh operation fails can be reused by a subsequent refresh operation (if performed within 14 days) and doesn’t need to be copied again.

Estimating and controlling costs

In general, monthly billing for replication is proportional to:

  • Amount of table data in the primary database, or databases in a replication/failover group, that changes as a result of data loading or DML operations.
  • Frequency of secondary database, or replication/failover group, refreshes from the primary database or replication/failover group.

You can control the cost of replication by carefully choosing which databases or objects to replicate and their refresh frequency. You can stop incurring replication costs by ceasing refresh operations.

Viewing actual costs

Users with the ACCOUNTADMIN role can use SQL to view the amount of data transferred (in bytes) and the credit usage for replication using replication or failover groups for your Snowflake account within a specified date range.

Users with the ACCOUNTADMIN role can use Snowsight or SQL to view the amount of replication data transferred (in bytes) for your Snowflake account within a specified date range.

Snowsight:

In the navigation menu, select Admin » Cost management.

To view the data transfer amounts and credit usage for replication for your account:

SQL:

Query either of the following:

For examples, see Monitor replication costs.

To view the cost of replication for individual databases replicated with Database Replication, see Monitoring database replication cost.

Pricing for Optimized Refresh and RPO Assurance

When a failover group uses Optimized Refresh (OPTIMIZED_REFRESH = TRUE) or RPO Assurance (RPO_ASSURANCE = TRUE), account replication for that failover group is billed on replicated data volume and changed objects, not on the Replication Classic compute model described in Compute resources (Replication Classic).

Failover groups that remain on Replication Classic continue to be billed under that compute model.

DimensionOptimized RefreshRPO AssuranceNotes
Replicated data volume5 credits per TB10 credits per TBCharged on the data replicated to the target account on each refresh.
Changed objects0.2 credits per 10,000 changed objects0.2 credits per 10,000 changed objectsApplies only after the first 25,000,000 changed objects per account per month. The free allowance is summed across all failover groups in the account on a calendar-month basis.

A changed object count reflects the metadata changes that Snowflake replicates since the previous refresh, including changes to internal, nested, and hidden metadata elements that aren’t directly visible in SQL. The count is weighted, not absolute: a single user-visible action (such as altering a table or granting a privilege) can register as multiple changed objects, depending on how many internal metadata records the action affects.

Object data (the rows in a table) is billed under the replicated data volume dimension, not the changed object dimension.

Note

  • Refresh mode is per failover group. You can mix Replication Classic, Optimized Refresh, and RPO Assurance in the same account. Each failover group is billed under the pricing model that matches its current refresh mode.
  • Because RPO Assurance refreshes run continuously to maintain the RPO target, replication costs reflect the ongoing activity.
  • Optimized Refresh and RPO Assurance don’t change replica storage costs in the target account or cross-region or cross-cloud data transfer charges. Data transfer costs are the same regardless of refresh mode.