> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pricemedic.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Snowflake Setup

> Connect to your private PriceMedic Core data share in Snowflake and run your first query

## Overview

PriceMedic Core is delivered as a private [Snowflake Secure Data Share](https://docs.snowflake.com/en/user-guide/data-share-consumers) that PriceMedic provisions directly to your Snowflake account when you purchase. The share is exclusive to your account — no data is copied and there is nothing to install. Once the share is accepted, you query 2.26 billion negotiated rates in place, paying only for your own compute.

Setup takes about 10 minutes of work on your side, plus PriceMedic's provisioning turnaround.

<Note>
  Looking to sync your PriceMedic platform data (reports, fee schedules, benchmarks) into your own warehouse instead? See [Data Integrations](/data/sinks/overview). This page covers access to the PriceMedic Core national rates dataset.
</Note>

## Prerequisites

* **A Snowflake account** (any edition). To create a database from the share, you need the `ACCOUNTADMIN` role or a role with the `IMPORT SHARE` privilege.
* **A virtual warehouse**. The share includes storage but not compute — queries run on your own warehouse. Step 6 shows how to create one if you don't have one yet.
* **Same cloud and region as PriceMedic's provider account**. Direct shares require the provider and consumer accounts to be in the same cloud region. If your account is in a different region or cloud, flag this when you contact PriceMedic — we'll arrange delivery via replication or the Marketplace listing instead.

<Tip>
  Unsure of any of these values? Step 1 below shows how to look them all up with a single query.
</Tip>

## Setup Steps

<Steps>
  <Step title="Locate and send your Snowflake account details">
    PriceMedic needs your organization name, account name, and cloud region to target the share. Run this in any Snowflake worksheet:

    ```sql theme={null}
    SELECT
      CURRENT_ORGANIZATION_NAME() AS organization_name,
      CURRENT_ACCOUNT_NAME()      AS account_name,
      CURRENT_ACCOUNT()           AS account_locator,
      CURRENT_REGION()            AS region;
    ```

    **Example output:**

    | ORGANIZATION\_NAME | ACCOUNT\_NAME | ACCOUNT\_LOCATOR | REGION           |
    | ------------------ | ------------- | ---------------- | ---------------- |
    | MYORG              | MY\_ACCOUNT1  | AB12345          | AWS\_US\_EAST\_1 |

    Email all four values to [team@pricemedic.com](mailto:team@pricemedic.com) or your PriceMedic account contact. The organization name and account name pair (`MYORG.MY_ACCOUNT1`) is the identifier PriceMedic uses to provision the share.

    <Warning>
      If your region differs from PriceMedic's provider region, say so in your email. Cross-region delivery requires extra provisioning on PriceMedic's side, and flagging it up front avoids a round trip.
    </Warning>
  </Step>

  <Step title="Wait for share provisioning">
    PriceMedic provisions the share to your account and confirms by email, including the exact provider account identifier and share name you'll use in the next steps. Provisioning typically completes within one business day.
  </Step>

  <Step title="Confirm the inbound share">
    Once you receive the confirmation email, verify the share is visible in your account. Run as `ACCOUNTADMIN` (or a role with `IMPORT SHARE`):

    ```sql theme={null}
    USE ROLE ACCOUNTADMIN;

    -- List shares available to your account; look for kind = INBOUND
    SHOW SHARES;

    -- Inspect the contents of the PriceMedic share
    DESC SHARE PRICEMEDIC.PM_PROD."PRICEMEDIC_CORE_HOSPITAL_HS";
    ```

    <Note>
      `PRICEMEDIC.PM_PROD` is a placeholder for the provider account identifier — use the exact `<provider_org>.<provider_account>.<share_name>` string from your provisioning email. It also appears verbatim in the `SHOW SHARES` output.
    </Note>

    `DESC SHARE` should list the `SNAPSHOT_FEB_2026` schema containing the `PROVIDERS` and `RATES` tables and the `V_PROVIDER_RATES` view.
  </Step>

  <Step title="Create a database from the share">
    ```sql theme={null}
    CREATE DATABASE PRICEMEDIC_CORE_HOSPITAL_HS
      FROM SHARE PRICEMEDIC.PM_PROD."PRICEMEDIC_CORE_HOSPITAL_HS";
    ```

    <Tip>
      You can name this database anything, but we recommend `PRICEMEDIC_CORE_HOSPITAL_HS` — all example queries in this documentation assume that name.
    </Tip>
  </Step>

  <Step title="Grant access to your roles">
    Shared databases work differently from regular databases: access is granted with a single `IMPORTED PRIVILEGES` grant per role. Object-level grants (per-schema or per-table) are not supported on shared databases.

    ```sql theme={null}
    -- Repeat for each role that should be able to query PriceMedic Core
    GRANT IMPORTED PRIVILEGES ON DATABASE PRICEMEDIC_CORE_HOSPITAL_HS
      TO ROLE ANALYST_ROLE;
    ```

    Replace `ANALYST_ROLE` with your own role name.
  </Step>

  <Step title="Create a compute warehouse">
    If you already have a warehouse you plan to use, grant your roles `USAGE` on it and skip to the next step. Otherwise, create a dedicated warehouse for querying PriceMedic Core:

    ```sql theme={null}
    CREATE WAREHOUSE IF NOT EXISTS PRICEMEDIC_WH
      WAREHOUSE_SIZE = 'MEDIUM'
      AUTO_SUSPEND = 60          -- suspend after 60 seconds idle
      AUTO_RESUME = TRUE
      INITIALLY_SUSPENDED = TRUE;

    -- Repeat for each role that will query PriceMedic Core
    GRANT USAGE ON WAREHOUSE PRICEMEDIC_WH TO ROLE ANALYST_ROLE;
    ```

    **Sizing guidance** — the `rates` table holds 2.26 billion rows, so warehouse size matters more than for typical datasets:

    | Warehouse Size | Best For                                                                                    |
    | -------------- | ------------------------------------------------------------------------------------------- |
    | X-Small        | Exploring `providers` (\~408K rows), metadata queries, small filtered lookups               |
    | Small – Medium | Filtered `rates` and `V_PROVIDER_RATES` queries (specific billing codes, payers, or states) |
    | Large+         | Full-table aggregations across `rates`, nationwide benchmarking, large extracts             |

    <Tip>
      Start with Medium and adjust. `AUTO_SUSPEND = 60` with `AUTO_RESUME` keeps costs low — the warehouse only bills while queries are running, and you can resize at any time with `ALTER WAREHOUSE PRICEMEDIC_WH SET WAREHOUSE_SIZE = 'LARGE';`.
    </Tip>
  </Step>

  <Step title="Verify the data and run your first query">
    Queries against shared data run on your own warehouse, so make sure one is active:

    ```sql theme={null}
    USE WAREHOUSE PRICEMEDIC_WH;   -- or your existing warehouse
    USE DATABASE PRICEMEDIC_CORE_HOSPITAL_HS;
    USE SCHEMA SNAPSHOT_FEB_2026;

    -- Confirm the objects are visible
    SHOW TABLES;
    SHOW VIEWS;

    -- Verify row counts
    SELECT
      (SELECT COUNT(*) FROM providers) AS provider_records,
      (SELECT COUNT(*) FROM rates)     AS negotiated_rates;
    ```

    For the February 2026 release you should see approximately **407,975** provider records and **2.26 billion** negotiated rates.

    Now run your first analytical query — the largest health systems by hospital count and payer coverage:

    ```sql theme={null}
    SELECT
      imputed_ein_name,
      COUNT(DISTINCT npi_number)   AS hospitals,
      COUNT(DISTINCT payer_slug)   AS payers,
      COUNT(DISTINCT network_slug) AS networks,
      COUNT(DISTINCT schedule_id)  AS schedules
    FROM providers
    GROUP BY imputed_ein_name
    ORDER BY hospitals DESC;
    ```

    If this returns results, your setup is complete.
  </Step>
</Steps>

## Working with Shared Data

A few properties of Snowflake data shares worth knowing as you build on PriceMedic Core:

* **Read-only**: You can query shared objects but not modify them. To derive your own datasets, create tables in your own databases — `CREATE TABLE my_db.my_schema.t AS SELECT ...` works as expected.
* **Bring your own compute**: The share includes storage, not compute. Every query runs on one of your warehouses and bills to your account.
* **No cloning or Time Travel**: Shared databases and their objects cannot be cloned, and Time Travel is not available on shared data.
* **Updates arrive automatically**: When PriceMedic publishes a new release to the share (for example, a new snapshot schema), it appears in your database with no action on your side. Watch the [release notes](/data/core/releases/feb-2026-hospitals) for what's new.

## Troubleshooting

<AccordionGroup>
  <Accordion title="I don't see the share in SHOW SHARES">
    **Symptom**: `SHOW SHARES` returns no inbound share from PriceMedic.

    **Common causes and solutions**:

    * **Provisioning not complete**: The share only appears after PriceMedic confirms provisioning by email.
    * **Wrong account**: If your organization has multiple Snowflake accounts, make sure you're logged into the account whose details you sent. Re-run the query from Step 1 and compare.
    * **Role visibility**: Run `SHOW SHARES` as `ACCOUNTADMIN` — other roles may not see inbound shares.

    If it's been more than a business day since confirmation, contact [team@pricemedic.com](mailto:team@pricemedic.com) with the output of the Step 1 query.
  </Accordion>

  <Accordion title="My account is in a different region or cloud">
    **Symptom**: PriceMedic reports the share can't be provisioned directly, or you know your account runs in a different cloud region.

    **Cause**: Direct shares only work between accounts in the same cloud and region.

    **Solution**: PriceMedic handles cross-region delivery via replication or the Snowflake Marketplace listing. Email [team@pricemedic.com](mailto:team@pricemedic.com) with your `CURRENT_REGION()` output and we'll set up the right delivery path.
  </Accordion>

  <Accordion title="Insufficient privileges when creating the database">
    **Symptom**: `CREATE DATABASE ... FROM SHARE` fails with a privilege error.

    **Cause**: Creating a database from a share requires the `ACCOUNTADMIN` role or the `IMPORT SHARE` privilege.

    **Solution**: Switch to `ACCOUNTADMIN`, or have an admin grant the privilege to your role:

    ```sql theme={null}
    GRANT IMPORT SHARE ON ACCOUNT TO ROLE YOUR_ROLE;
    ```
  </Accordion>

  <Accordion title="Grant fails or users can't see the data">
    **Symptom**: Granting schema- or table-level privileges on the shared database errors out, or users with grants still can't query.

    **Cause**: Shared databases only support the database-level `IMPORTED PRIVILEGES` grant — object-level grants are rejected. Users also need `USAGE` on a warehouse to run queries.

    **Solution**:

    ```sql theme={null}
    GRANT IMPORTED PRIVILEGES ON DATABASE PRICEMEDIC_CORE_HOSPITAL_HS
      TO ROLE ANALYST_ROLE;

    GRANT USAGE ON WAREHOUSE PRICEMEDIC_WH TO ROLE ANALYST_ROLE;
    ```
  </Accordion>

  <Accordion title="Queries fail with 'No active warehouse selected'">
    **Symptom**: Queries against the shared database fail with a no-active-warehouse error.

    **Cause**: Shared data doesn't come with compute — a warehouse from your account must be active in the session.

    **Solution**: Run `USE WAREHOUSE <name>;` in your session, or set a default warehouse for the user:

    ```sql theme={null}
    ALTER USER my_user SET DEFAULT_WAREHOUSE = PRICEMEDIC_WH;
    ```
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Example Queries" icon="code" href="/data/core/examples">
    Common analytical patterns — footprint analysis, rate benchmarking, and fee schedule extraction.
  </Card>

  <Card title="Providers Table" icon="table" href="/data/core/tables/providers">
    Schema reference for provider demographics, relationships, and network associations.
  </Card>

  <Card title="Rates Table" icon="table" href="/data/core/tables/rates">
    Schema reference for procedure-level negotiated rates.
  </Card>

  <Card title="February 2026 Release" icon="calendar" href="/data/core/releases/feb-2026-hospitals">
    Coverage details for the current hospitals and health systems release.
  </Card>
</CardGroup>

## Getting Support

For provisioning status, region questions, or access issues:

* Email: [team@pricemedic.com](mailto:team@pricemedic.com)
* Include the output of the Step 1 query when reporting access problems

For general reference on consuming Snowflake data shares, see the [Snowflake consumer documentation](https://docs.snowflake.com/en/user-guide/data-share-consumers).
