Comparing Pricing Models

Comparing Pricing Models Across the Five Platforms

How the five platforms bill compute and storage
Platform Compute unit Billed Idle compute Storage (list)
Snowflake Credit per warehouse-hour Per second, 60 s minimum Auto-suspend: $0 $23/TB-month
BigQuery 1 TiB scanned or slot-hour Per query, or per second On-demand: $0 ~$0.023/GiB-month
Redshift 24 RPU-hour or node-hour Per second, 60 s minimum Serverless: $0 $0.024/GB-month
Databricks 2,717 SQL DBU per warehouse-hour While running Auto-stop: $0 Your object storage
Fabric / Synapse CU-hour or DWU-hour Per second, 1 min minimum Paused: $0 $0.026/GB or $23/TB

The units differ, so compare a workload, not a price. The model below prices one BookNest-sized month from the list rates above: a warehouse busy two hours a day, 150 GB scanned a day, 30 GB stored:

cost_model.py: one workload, priced on each platform's modelPython
"""Monthly list-price estimate of one small workload on five warehouses (2 Oct 2026 rates)."""
HOURS = 60            # warehouse busy 2 hours a day, suspended otherwise
SCAN_TIB = 4.4        # BigQuery on-demand: 150 GB scanned a day for 30 days
STORE_GB = 30         # compressed sales mart plus history
def snowflake():      # Standard edition, AWS us-east-1: $2.00/credit, X-Small = 1 credit/hour
    return HOURS * 1 * 2.00 + STORE_GB / 1000 * 23.00
def bigquery():       # on-demand $6.25/TiB after 1 free TiB; logical storage beyond 10 GiB
    return max(SCAN_TIB - 1, 0) * 6.25 + max(STORE_GB - 10, 0) * 0.000031507 * 730
def bigquery_slots(): # Standard edition, 100 slots at $0.04 per slot-hour, same busy hours
    return HOURS * 100 * 0.04 + max(STORE_GB - 10, 0) * 0.000031507 * 730
def redshift():       # Serverless, 4 RPU minimum base at $0.375/RPU-hour; storage $0.024/GB
    return HOURS * 4 * 0.375 + STORE_GB * 0.024
def fabric(paused=True):  # F2 = 2 CU at $0.18/CU-hour (East US); OneLake hot $0.026/GB
    return (HOURS if paused else 730) * 2 * 0.18 + STORE_GB * 0.026
def synapse():        # dedicated SQL pool DW100c $1.51/hour, paused when idle; $23/TB storage
    return HOURS * 1.51 + STORE_GB / 1000 * 23.00
rows = [("Snowflake X-Small", snowflake()), ("BigQuery on-demand", bigquery()),
        ("BigQuery 100 slots", bigquery_slots()), ("Redshift Serverless 4 RPU", redshift()),
        ("Fabric F2, paused when idle", fabric()), ("Fabric F2, always on", fabric(False)),
        ("Synapse DW100c", synapse())]
for name, usd in sorted(rows, key=lambda r: r[1]):
    print(f"{name:<28} ${usd:8.2f}")
print("Databricks SQL Serverless: $0.70 per DBU (Azure East US); cost = DBUs x $0.70")
Output
BigQuery on-demand           $   21.71
Fabric F2, paused when idle  $   22.38
Redshift Serverless 4 RPU    $   90.72
Synapse DW100c               $   91.29
Snowflake X-Small            $  120.69
BigQuery 100 slots           $  240.46
Fabric F2, always on         $  263.58
Databricks SQL Serverless: $0.70 per DBU (Azure East US); cost = DBUs x $0.70

The ranking follows the model's assumptions: the same 60 hours buy different amounts of work on each platform, and a capacity left running costs twelve times one that pauses. At this size every option costs less than a developer-day a month; at 100 times the size, scan-priced and time-priced models diverge sharply. Measure your own queries on a trial before committing; Choosing an Analytical Stack adds the open-source alternatives.