Top Gradient
Back

Snowflake Data Transfer Pricing and Egress Cost Optimizer

Author

Jeff SkoldbergWednesday, October 22, 2025

Snowflake's pricing model is consumption based, and generally broken into 3 categories: Storage, Compute, and Cloud Services. So what about data transfer fees? Data transfer costs fall under "Serverless", which is a subset of Cloud Services. Let's dive in to the details.

Ingress vs Egress: What is Charged?

Data Ingress, i.e. loading data into Snowflake is always free. Of course you pay for whatever compute and storage is used, but you do not pay data transfer costs to load data into Snowflake, even if it is cross region. The only caveat is your cloud provider may charge you for moving data across regions, but Snowflake will never charge you for ingress.

Data Egress is where charges kick in. Snowflake charges a per-byte fee when you transfer data from a Snowflake account to a different region on the same cloud platform or to a completely different cloud platform. However, data transfers within the same region are free. The Snowflake Pricing Guide provides the exact pricing details. Here’s a truncated screenshot so you can get the idea:

Snowlake Data Transfer Costs

What Activities Trigger Data Transfer Costs?

Snowflake data transfer fee explainer: what is charged and by who?

Data transfer costs are triggered when you move data from your Snowflake account to a different region or cloud platform. Here are the specific operations that incur these charges:

Unloading Data: Using the COPY INTO <location> command to unload data from Snowflake to external cloud storage (Amazon S3, Google Cloud Storage, or Microsoft Azure) in a different region or cloud platform incurs transfer fees.

Database Replication: Replicating databases across regions or cloud platforms for disaster recovery or data sharing purposes generates transfer costs. The initial replication and subsequent synchronization operations transfer data between regions.

Cross-Cloud Auto-Fulfillment: When using auto-fulfillment to share data listings with consumers in other cloud regions through the Snowflake Marketplace, data transfer costs apply.

External Functions: Calling external functions that transfer data from your Snowflake account to AWS, Microsoft Azure, or Google Cloud services incurs egress charges.

Cross-Region Iceberg Writes: When using Snowflake as the catalog for Iceberg tables, writing new data incurs transfer costs if the storage location is in a different region or cloud provider.

Important Exception: Query result retrieval via Snowflake clients or drivers does NOT incur data egress charges, even when retrieving results across regions or different cloud platforms. This is a significant cost-saver for standard query operations.

How Much Does Data Transfer Cost?

Data transfer pricing varies significantly based on your Snowflake account's cloud provider and region. The full details can be found in the Credit Consumption Table, but here's a general breakdown:

Same Region Transfers: Free (no charge)

Cross-Region (Same Cloud): Typically ranges from $20 per TB in US regions to $140 per TB in some Asia Pacific regions.

Cross-Cloud or Internet: Generally ranges from $90 to $155 per TB, depending on source and destination.

For example, transferring from AWS US East (Northern Virginia) to the internet costs approximately $90 per TB, while the same operation from Google Cloud (US East 4) can range from $120 to $190 per TB.

Egress Cost Optimizer: A Game-Changer for Data Sharing

In April 2025, Snowflake released the Egress Cost Optimizer (ECO), which can dramatically reduce data transfer costs for providers sharing data across multiple regions.

ECO uses an intelligent algorithm to cache data in Snowflake-managed storage after the first egress, allowing you to replicate to additional regions with zero additional egress costs. This can result in savings of up to 96% compared to traditional cross-region replication.

How to use ECO:

ECO must first be authorized at the organization level by an ORGADMIN user through Provider Studio. Once authorized, it's automatically enabled for all accounts in your organization (though individual accounts can opt out in settings). After enablement, ECO uses intelligent routing to automatically determine when using the cache will save you money. For example, it won't use the cache if you're only replicating to one or two regions within the same cloud provider, since your costs are already optimized.

Cost structure:

  • Only available for Cross-Cloud Auto-Fulfillment (not manual replication)
  • $16.896 per TB-month for cached data
  • Only charged for the days the cache is actually used
  • No charge if ECO determines the cache won't save you money

Cloud Provider Considerations

One often-overlooked aspect: While Snowflake doesn't charge for data ingress, your source cloud storage provider might charge egress fees for transferring data to Snowflake. Be sure to check with your cloud provider (Amazon S3, Google Cloud Storage, or Microsoft Azure) about their data egress charges when moving data into your Snowflake account.

Monitoring and Optimizing Data Transfer Costs

To keep tabs on your data transfer expenses, Snowflake provides several tools:

Snowsight Dashboard

In Snowsight you can quickly view data transfer amounts and costs over specified date ranges. Navigate to Admin → Cost Management → Consumption, then filter to Usage Type = Data Transfer.

Monitor Snowflake Egress data transfer fees using Snowsight Cost Monitoring dashboard

Query Account-Level Data Transfer History

Use the DATA_TRANSFER_HISTORY view in the ACCOUNT_USAGE schema to query detailed transfer data for your account over the past 365 days:

1-- View data transfer history for the last 30 days
2SELECT
3 DATE_TRUNC('day', START_TIME) AS transfer_date,
4 SOURCE_CLOUD,
5 SOURCE_REGION,
6 TARGET_CLOUD,
7 TARGET_REGION,
8 TRANSFER_TYPE,
9 SUM(BYTES_TRANSFERRED) / POWER(1024, 4) AS tb_transferred
10FROM SNOWFLAKE.ACCOUNT_USAGE.DATA_TRANSFER_HISTORY
11WHERE START_TIME >= DATEADD(day, -30, CURRENT_TIMESTAMP())
12GROUP BY 1, 2, 3, 4, 5, 6
13ORDER BY transfer_date DESC, tb_transferred DESC;

Query Organization-Level Data Transfer Costs

Use the DATA_TRANSFER_DAILY_HISTORY view in the ORGANIZATION_USAGE schema for organization-wide visibility:

1SELECT
2 USAGE_DATE,
3 ACCOUNT_NAME,
4 SERVICE_TYPE,
5 REGION,
6 TB_TRANSFERED,
7 ACCOUNT_LOCATOR
8FROM SNOWFLAKE.ORGANIZATION_USAGE.DATA_TRANSFER_DAILY_HISTORY
9WHERE USAGE_DATE >= DATEADD(day, -30, CURRENT_DATE())
10ORDER BY USAGE_DATE DESC, TB_TRANSFERED DESC;

Best Practices

  1. Keep transfers within the same region whenever possible to avoid all transfer charges.
  2. Use data sharing instead of replication to avoid transfer costs - Snowflake's native data sharing feature allows you to share data with other Snowflake accounts without physically copying the data. With data sharing, the consumer queries data directly from the provider's storage (no data movement), so there are no data transfer charges even when sharing across regions. Replication, by contrast, creates a full copy of the database and incurs transfer costs when crossing regions.
  3. Enable Egress Cost Optimizer if you're replicating data to multiple regions, which could save 90%.
  4. Schedule large data unloads carefully and consider if all data needs to be moved.
  5. Monitor your transfer patterns regularly using Snowflake's cost monitoring tools.
  6. Compress data before unloading to reduce the volume being transferred

Myths about data transfer

I’ve spoken with a few people who believed that presenting data in a BI tool or Python application triggers data transfer fees. This is simply not true. Regular SELECT queries will never trigger a data transfer fee, even if you are using a tool outside of the Snowflake echo-system.

Wrap Up

Understanding data transfer costs is crucial for managing your overall Snowflake spend. While storage and compute often get the most attention, data transfer fees can add up quickly, especially for organizations operating across multiple regions or cloud platforms, or moving data from Snowflake to other data-centric applications.

Author
Jeff Skoldberg Sales Engineer at SELECT

Jeff Skoldberg is a Sales Engineer at SELECT, helping customers get maximum value out of the SELECT app to reduce their Snowflake spend. Prior to joining SELECT, Jeff was a Data and Analytics Consultant with 15+ years experience in automating insights and using data to control business processes. From a technology standpoint, he specializes in Snowflake + dbt + Tableau. From a business topic standpoint, he has experience in Public Utility, Clinical Trials, Publishing, CPG, and Manufacturing.

Want to hear about our latest Snowflake learnings?Subscribe to get notified.

Get up and running in less than 15 minutes

Connect your Snowflake account and instantly understand your savings potential.

CTA Screen