Overview
Polar is powered by a Snowflake data warehouse, and as a paid add-on, you can get direct access to the underlying data through a dedicated Snowflake Reader Account β a fully isolated managed account provisioned by the Polar team.
π‘ This is a paid add-on. Snowflake Reader Account access is not included in your base Polar subscription. To get access or learn more about pricing, reach out to your CSM or contact support.
Once provisioned, your account comes with 70 Snowflake credits per month, which is sufficient for most analytics workloads. If you need more, reach out and we'll take a look.
Logging In
Polar will provide you with:
A Snowflake URL (e.g.
https://xxxxxx.snowflakecomputing.com)A username and temporary password β change it on first login
Navigate to your URL and sign in. Once logged in, open a Worksheet to start writing queries.
Understanding Your Database Structure
Your main database is called SHARED_DB. It is a read-only copy of the data powering your Polar account β you can query it freely, but you cannot create, modify, or delete records within it.
It contains two primary schemas:
TRANSFORM schema
The "gold" layer β data that has been cleaned, joined, and optimized for analytics. Start here when exploring your data. Key tables include:
shopify_sales_main_newβ curated Shopify orders and line items; gross/net/total sales, returns, discounts, and customer infoads_campaign_and_deviceβ blended ad performance across all platforms (Google, Meta, TikTok, etc.)ga4_sessions_analyticsβ GA4 sessions by channel, device, and countryklaviyo_unique_campaign_and_dateβ daily campaign performance (sends, opens, clicks, revenue)amazonsp_order_itemsβ Amazon order-level data including fees, refunds, and adjustments
To find tables for a specific connector, start typing its name in the Snowflake worksheet β autocomplete will surface what's available.
BASE schema
The "bronze" layer β raw, unprocessed data pulled directly from your integrations (Shopify, Facebook Ads, Google Ads, etc.). Useful for auditing what data Polar is ingesting, but generally not structured for reporting.
CUSTOM_DATASETS schema (if applicable)
Some accounts have a third schema called CUSTOM_DATASETS, which contains Custom Datasets you've built in Polar. If you expect to see tables here but the schema appears empty, contact support β this is usually a permissions issue.
Running Your First Query
Always reference tables using the full three-part path: database.schema."table_name":
sql
SELECT * FROM SHARED_DB.TRANSFORM."shopify_sales_main_new" LIMIT 100;
Note: Because SHARED_DB is a shared database, you can query data from it but you cannot view object definitions (DDL) for tables and views. This is expected behavior for Snowflake shared databases.
Extracting Queries from Polar Reports
You can copy the exact SQL behind any metric or report in Polar and run it directly in Snowflake:
Open Developer Tools β right-click anywhere in Polar and select Inspect, then go to the Console tab.
Enable debug mode β paste the following and press Enter:
βlocalStorage.setItem('synth-debug-mode', 1)
The result should beundefined. If you see an error, double-check the single quotes.Trigger a request β go to the Network tab and type
composein the filter bar. Then change the date range in your Polar report to trigger a new data request.Copy the query β click one of the compose requests, go to Preview, right-click on the
queryfield, and select Copy string contents.Paste into Snowflake β open a worksheet, paste the query, and make the following two adjustments before running:
Adjustment 1 β Replace the database name
The query will reference an internal database like TENANTASSF_XXXXX. Use Find & Replace (Cmd+F / Ctrl+F) to replace all instances with SHARED_DB.
βAdjustment 2 β Fix the exchange rate table (if present)
If your query references exchange_rate_tenant_new, you'll see an error like "Object does not exist or not authorized". This is because this view references objects outside your shared database. Change its database prefix from TENANTASSF_XXXXX or SHARED_DB to CUSTOM_DB.
βIf your store is in USD, you may not need the exchange rate table at all β all financial data in Snowflake is already normalized to USD. You can safely remove the exchange_rate_tenant_new reference from the query.
Run the query β results should match exactly what you see in Polar.
Creating Your Own Views and Tables
Since SHARED_DB is read-only, you'll need a separate database for any custom work:
sql
CREATE DATABASE CUSTOM_DB; CREATE SCHEMA CUSTOM_DB.TRANSFORM;
You can then create views that pull from SHARED_DB:
sql
CREATE OR REPLACE VIEW CUSTOM_DB.TRANSFORM."my_custom_view" AS ( SELECT * FROM SHARED_DB.TRANSFORM."shopify_sales_main_new" LIMIT 100 );
Connecting to BI Tools
Your Snowflake Reader Account can be connected to external tools like Power BI, Python, and DataGrip. The general setup is the same: configure a Snowflake connection using your account URL, username, password, role, warehouse, and database (SHARED_DB).
Note for Power BI: If you're able to connect via the desktop app but not the browser version, and see an error like "Your user account has been temporarily locked", this is typically caused by too many failed login attempts from the browser. Wait a few minutes and try again, or reach out to support to have your account unlocked.
Can I use the Reader Account as a write destination (e.g. for Airbyte)? No β Reader Accounts are read-only by design. If you need to push data into Snowflake from an external tool, contact your CSM to discuss options.
Snowflake Notebooks
If you want to use Snowflake Notebooks, you'll need a separate writable database to store them (SHARED_DB is read-only).
Adding Additional Users
Your Reader Account comes with the user credentials Polar provisions for you. To give additional team members access, your Snowflake Account Admin can create new users directly within your managed account.
FAQ
I can see table names in INFORMATION_SCHEMA but get "does not exist or not authorized" when querying.
I can see table names in INFORMATION_SCHEMA but get "does not exist or not authorized" when querying.
This is a permissions issue. Your role may have USAGE on the schema but is missing SELECT grants on the actual tables. Contact support and we'll grant the necessary permissions.
Tables are missing from the CUSTOM_DATASETS schema.
Tables are missing from the CUSTOM_DATASETS schema.
New tables added to Custom Datasets may not automatically get permissions granted to your reader role. This is a known issue β contact support to have the missing permissions applied.
I can't view the DDL / object definition for a table or view.
I can't view the DDL / object definition for a table or view.
This is expected behaviour for Snowflake shared databases. You can query data but cannot inspect the underlying view definitions.
Can I write data into SHARED_DB?
Can I write data into SHARED_DB?
No. SHARED_DB is read-only. If you want to store custom tables or views, create a separate database (see Section 5 above).
β
