# PlanetScale pricing

Prices on this page based on GCP us-central1 (Council Bluffs, Iowa)
Actual prices vary by cloud provider and region.

Generated at: `2026-10-13T10:17:54.360Z`

## Pricing model overview

- **Neki**: shard compute + routers + network storage + backups + network usage; each shard includes a primary and two replicas
- **Postgres**: cluster size + storage (EBS) + backups + egress + optional dedicated PgBouncer + optional additional replicas
- **Vitess**: cluster size + storage (non-metal) + optional VTGates + replicas/sharding configuration

## Neki SKUs

Neki has no single-node configuration. Each shard uses a highly available
cluster SKU (one primary and two replicas). Shard compute is that monthly
rate times the number of shards on the configuration profile. Extra replicas
use the additional-replica rate.

Every Neki branch has at least one router group. The monthly production
router rate covers the three-router baseline: one router in each of three
availability zones (AZ).

```text
shard compute = highly available SKU rate × shards on the profile
additional replica compute = additional-replica rate × extra replicas × shards
production router compute = router-size monthly rate × observed running routers ÷ 3
development router compute = router-size monthly rate × running routers
```

Network-attached storage, backups, and network transfer are billed separately
from these SKU rates. Metal includes local NVMe in the cluster SKU rate.

### Neki standard (network-attached storage, 3-node per shard)

| SKU     | Architecture | vCPU | Memory  | Monthly price (USD) | Additional replica (USD) |
| ------- | ------------ | ---- | ------- | ------------------- | ------------------------ |
| PS-10   | x86-64       | 1/8  | 1 GiB   | $39                 | $13                      |
| PS-10   | arm64        | 1/8  | 1 GiB   | $70                 | $24                      |
| PS-20   | x86-64       | 1/4  | 2 GiB   | $59                 | $20                      |
| PS-20   | arm64        | 1/4  | 2 GiB   | $100                | $34                      |
| PS-40   | x86-64       | 1/2  | 4 GiB   | $99                 | $33                      |
| PS-40   | arm64        | 1/2  | 4 GiB   | $160                | $54                      |
| PS-80   | x86-64       | 1    | 8 GiB   | $179                | $60                      |
| PS-80   | arm64        | 1    | 8 GiB   | $280                | $94                      |
| PS-160  | x86-64       | 2    | 16 GiB  | $349                | $117                     |
| PS-160  | arm64        | 2    | 16 GiB  | $530                | $177                     |
| PS-320  | x86-64       | 4    | 32 GiB  | $699                | $233                     |
| PS-320  | arm64        | 4    | 32 GiB  | $1,030              | $344                     |
| PS-640  | x86-64       | 8    | 64 GiB  | $1,539              | $513                     |
| PS-640  | arm64        | 8    | 64 GiB  | $1,990              | $664                     |
| PS-1280 | x86-64       | 16   | 128 GiB | $3,079              | $1,027                   |
| PS-1280 | arm64        | 16   | 128 GiB | $3,520              | $1,174                   |
| PS-2560 | x86-64       | 32   | 256 GiB | $6,159              | $2,053                   |
| PS-2560 | arm64        | 32   | 256 GiB | $6,970              | $2,324                   |

### Neki metal (3-node per shard)

| SKU     | Architecture | vCPU | Memory   | Included storage | Monthly price (USD) | Additional replica (USD) |
| ------- | ------------ | ---- | -------- | ---------------- | ------------------- | ------------------------ |
| M-165   | x86-64       | 4    | 16 GiB   | 375 GiB          | $800                | $267                     |
| M-155   | x86-64       | 4    | 16 GiB   | 375 GiB          | $1,080              | $360                     |
| M-310   | x86-64       | 4    | 32 GiB   | 375 GiB          | $1,310              | $437                     |
| M-400   | x86-64       | 8    | 32 GiB   | 750 GiB          | $1,540              | $514                     |
| M-620   | x86-64       | 8    | 64 GiB   | 375 GiB          | $2,260              | $754                     |
| M-640   | x86-64       | 8    | 64 GiB   | 3072 GiB         | $5,179              | $1,727                   |
| M-605   | x86-64       | 16   | 64 GiB   | 750 GiB          | $3,550              | $1,184                   |
| M-1240  | x86-64       | 16   | 128 GiB  | 750 GiB          | $4,460              | $1,487                   |
| M-1280  | x86-64       | 16   | 128 GiB  | 6144 GiB         | $10,339             | $3,447                   |
| M-885   | x86-64       | 22   | 88 GiB   | 1536 GiB         | $4,130              | $1,377                   |
| M-1760  | x86-64       | 22   | 176 GiB  | 9216 GiB         | $14,789             | $4,930                   |
| M-905   | x86-64       | 24   | 96 GiB   | 1536 GiB         | $5,600              | $1,867                   |
| M-1860  | x86-64       | 24   | 192 GiB  | 1536 GiB         | $6,970              | $2,324                   |
| M-1205  | x86-64       | 32   | 128 GiB  | 1920 GiB         | $7,340              | $2,447                   |
| M-2480  | x86-64       | 32   | 256 GiB  | 1920 GiB         | $9,170              | $3,057                   |
| M-2560  | x86-64       | 32   | 256 GiB  | 12288 GiB        | $20,649             | $6,883                   |
| M-1765  | x86-64       | 44   | 176 GiB  | 3072 GiB         | $8,200              | $2,734                   |
| M-3520  | x86-64       | 44   | 352 GiB  | 18432 GiB        | $29,559             | $9,853                   |
| M-1805  | x86-64       | 48   | 192 GiB  | 3072 GiB         | $11,140             | $3,714                   |
| M-3720  | x86-64       | 48   | 384 GiB  | 3072 GiB         | $13,890             | $4,630                   |
| M-3525  | x86-64       | 88   | 352 GiB  | 6144 GiB         | $16,340             | $5,447                   |
| M-7040  | x86-64       | 88   | 704 GiB  | 18432 GiB        | $45,129             | $15,043                  |
| M-7040  | x86-64       | 88   | 704 GiB  | 36864 GiB        | $59,089             | $19,697                  |
| M-3605  | x86-64       | 96   | 384 GiB  | 6144 GiB         | $22,230             | $7,410                   |
| M-7440  | x86-64       | 96   | 768 GiB  | 6144 GiB         | $27,720             | $9,240                   |
| M-5405  | x86-64       | 144  | 576 GiB  | 9216 GiB         | $33,320             | $11,107                  |
| M-11160 | x86-64       | 144  | 1152 GiB | 9216 GiB         | $41,540             | $13,847                  |

### Neki routers

| SKU     | vCPU | Memory    | Monthly price (USD) |
| ------- | ---- | --------- | ------------------- |
| NKR-0   | 1/32 | 115 MiB   | $5                  |
| NKR-1   | 1/16 | 128 MiB   | $10                 |
| NKR-2   | 1/8  | 256 MiB   | $20                 |
| NKR-5   | 1/4  | 512 MiB   | $40                 |
| NKR-10  | 1/2  | 1 GiB     | $80                 |
| NKR-20  | 1    | 2 GiB     | $160                |
| NKR-80  | 3    | 4.8 GiB   | $630                |
| NKR-160 | 7    | 9.69 GiB  | $1,220              |
| NKR-320 | 14   | 19.38 GiB | $2,410              |
| NKR-640 | 27   | 38.75 GiB | $4,780              |


## Postgres SKUs

### Postgres EBS HA (3-node: 1 primary + 2 replicas)

| SKU     | Architecture | vCPU | Memory  | Monthly price (USD) |
| ------- | ------------ | ---- | ------- | ------------------- |
| PS-5    | x86-64       | 1/16 | 512 MiB | $15                 |
| PS-10   | x86-64       | 1/8  | 1 GiB   | $39                 |
| PS-20   | x86-64       | 1/4  | 2 GiB   | $59                 |
| PS-40   | x86-64       | 1/2  | 4 GiB   | $99                 |
| PS-80   | x86-64       | 1    | 8 GiB   | $179                |
| PS-160  | x86-64       | 2    | 16 GiB  | $349                |
| PS-320  | x86-64       | 4    | 32 GiB  | $699                |
| PS-640  | x86-64       | 8    | 64 GiB  | $1,539              |
| PS-1280 | x86-64       | 16   | 128 GiB | $3,079              |
| PS-2560 | x86-64       | 32   | 256 GiB | $6,159              |

### Postgres EBS non-HA (single node)

| SKU     | Architecture | vCPU | Memory  | Monthly price (USD) |
| ------- | ------------ | ---- | ------- | ------------------- |
| PS-5    | x86-64       | 1/16 | 512 MiB | $5                  |
| PS-10   | x86-64       | 1/8  | 1 GiB   | $13                 |
| PS-20   | x86-64       | 1/4  | 2 GiB   | $20                 |
| PS-40   | x86-64       | 1/2  | 4 GiB   | $33                 |
| PS-80   | x86-64       | 1    | 8 GiB   | $60                 |
| PS-160  | x86-64       | 2    | 16 GiB  | $117                |
| PS-320  | x86-64       | 4    | 32 GiB  | $233                |
| PS-640  | x86-64       | 8    | 64 GiB  | $513                |
| PS-1280 | x86-64       | 16   | 128 GiB | $1,027              |
| PS-2560 | x86-64       | 32   | 256 GiB | $2,053              |

### Postgres metal (3-node: 1 primary + 2 replicas)

| SKU    | Architecture | vCPU | Memory  | Included storage | Monthly price (USD) |
| ------ | ------------ | ---- | ------- | ---------------- | ------------------- |
| M-160  | x86-64       | 2    | 16 GiB  | 375 GiB          | $559                |
| M-160  | x86-64       | 2    | 16 GiB  | 750 GiB          | $709                |
| M-160  | x86-64       | 2    | 16 GiB  | 1536 GiB         | $1,009              |
| M-160  | x86-64       | 2    | 16 GiB  | 3072 GiB         | $1,609              |
| M-160  | x86-64       | 2    | 16 GiB  | 6144 GiB         | $2,799              |
| M-160  | x86-64       | 2    | 16 GiB  | 9216 GiB         | $3,999              |
| M-320  | x86-64       | 4    | 32 GiB  | 375 GiB          | $949                |
| M-320  | x86-64       | 4    | 32 GiB  | 750 GiB          | $1,099              |
| M-320  | x86-64       | 4    | 32 GiB  | 1536 GiB         | $1,399              |
| M-320  | x86-64       | 4    | 32 GiB  | 3072 GiB         | $1,999              |
| M-320  | x86-64       | 4    | 32 GiB  | 6144 GiB         | $3,189              |
| M-320  | x86-64       | 4    | 32 GiB  | 9216 GiB         | $4,389              |
| M-640  | x86-64       | 8    | 64 GiB  | 375 GiB          | $1,739              |
| M-640  | x86-64       | 8    | 64 GiB  | 750 GiB          | $1,879              |
| M-640  | x86-64       | 8    | 64 GiB  | 1536 GiB         | $2,179              |
| M-640  | x86-64       | 8    | 64 GiB  | 3072 GiB         | $2,779              |
| M-640  | x86-64       | 8    | 64 GiB  | 6144 GiB         | $3,979              |
| M-640  | x86-64       | 8    | 64 GiB  | 9216 GiB         | $5,169              |
| M-640  | x86-64       | 8    | 64 GiB  | 3072 GiB         | $5,179              |
| M-1280 | x86-64       | 16   | 128 GiB | 375 GiB          | $3,299              |
| M-1280 | x86-64       | 16   | 128 GiB | 750 GiB          | $3,449              |
| M-1280 | x86-64       | 16   | 128 GiB | 1536 GiB         | $3,749              |
| M-1280 | x86-64       | 16   | 128 GiB | 3072 GiB         | $4,349              |
| M-1280 | x86-64       | 16   | 128 GiB | 6144 GiB         | $5,549              |
| M-1280 | x86-64       | 16   | 128 GiB | 9216 GiB         | $6,739              |
| M-1280 | x86-64       | 16   | 128 GiB | 6144 GiB         | $10,339             |
| M-1760 | x86-64       | 22   | 176 GiB | 9216 GiB         | $14,789             |
| M-2560 | x86-64       | 32   | 256 GiB | 750 GiB          | $6,589              |
| M-2560 | x86-64       | 32   | 256 GiB | 1536 GiB         | $6,889              |
| M-2560 | x86-64       | 32   | 256 GiB | 3072 GiB         | $7,489              |
| M-2560 | x86-64       | 32   | 256 GiB | 6144 GiB         | $8,679              |
| M-2560 | x86-64       | 32   | 256 GiB | 9216 GiB         | $9,879              |
| M-2560 | x86-64       | 32   | 256 GiB | 12288 GiB        | $20,649             |
| M-3520 | x86-64       | 44   | 352 GiB | 18432 GiB        | $29,559             |
| M-3840 | x86-64       | 48   | 384 GiB | 750 GiB          | $9,729              |
| M-3840 | x86-64       | 48   | 384 GiB | 1536 GiB         | $10,029             |
| M-3840 | x86-64       | 48   | 384 GiB | 3072 GiB         | $10,619             |
| M-3840 | x86-64       | 48   | 384 GiB | 6144 GiB         | $11,819             |
| M-3840 | x86-64       | 48   | 384 GiB | 9216 GiB         | $13,019             |
| M-5120 | x86-64       | 64   | 512 GiB | 1536 GiB         | $13,159             |
| M-5120 | x86-64       | 64   | 512 GiB | 3072 GiB         | $13,759             |
| M-5120 | x86-64       | 64   | 512 GiB | 6144 GiB         | $14,959             |
| M-5120 | x86-64       | 64   | 512 GiB | 9216 GiB         | $16,149             |
| M-6400 | x86-64       | 80   | 640 GiB | 1536 GiB         | $16,299             |
| M-6400 | x86-64       | 80   | 640 GiB | 3072 GiB         | $16,899             |
| M-6400 | x86-64       | 80   | 640 GiB | 6144 GiB         | $18,089             |
| M-6400 | x86-64       | 80   | 640 GiB | 9216 GiB         | $19,289             |
| M-7040 | x86-64       | 88   | 704 GiB | 18432 GiB        | $45,129             |
| M-7040 | x86-64       | 88   | 704 GiB | 36864 GiB        | $59,089             |
| M-7680 | x86-64       | 96   | 768 GiB | 3072 GiB         | $20,029             |
| M-7680 | x86-64       | 96   | 768 GiB | 6144 GiB         | $21,229             |
| M-7680 | x86-64       | 96   | 768 GiB | 9216 GiB         | $22,429             |

## Vitess SKUs

### Vitess non-metal (3-node: 1 primary + 2 replicas)

| SKU     | Architecture | vCPU | Memory  | Monthly price (USD) |
| ------- | ------------ | ---- | ------- | ------------------- |
| PS-10   | x86-64       | 1/8  | 1 GiB   | $39                 |
| PS-20   | x86-64       | 1/4  | 2 GiB   | $59                 |
| PS-40   | x86-64       | 1/2  | 4 GiB   | $99                 |
| PS-80   | x86-64       | 1    | 8 GiB   | $179                |
| PS-160  | x86-64       | 2    | 16 GiB  | $349                |
| PS-320  | x86-64       | 4    | 32 GiB  | $699                |
| PS-400  | x86-64       | 8    | 32 GiB  | $999                |
| PS-640  | x86-64       | 8    | 64 GiB  | $1,539              |
| PS-900  | x86-64       | 16   | 64 GiB  | $2,199              |
| PS-1280 | x86-64       | 16   | 128 GiB | $3,079              |
| PS-1800 | x86-64       | 32   | 128 GiB | $4,399              |
| PS-2560 | x86-64       | 32   | 256 GiB | $6,159              |
| PS-2700 | x86-64       | 48   | 192 GiB | $6,599              |

### Vitess metal (3-node: 1 primary + 2 replicas)

| SKU    | Architecture | vCPU | Memory  | Included storage | Monthly price (USD) |
| ------ | ------------ | ---- | ------- | ---------------- | ------------------- |
| M-160  | x86-64       | 2    | 16 GiB  | 367 GiB          | $609                |
| M-160  | x86-64       | 2    | 16 GiB  | 742 GiB          | $759                |
| M-160  | x86-64       | 2    | 16 GiB  | 1492 GiB         | $1,059              |
| M-160  | x86-64       | 2    | 16 GiB  | 2992 GiB         | $1,659              |
| M-160  | x86-64       | 2    | 16 GiB  | 5992 GiB         | $2,859              |
| M-160  | x86-64       | 2    | 16 GiB  | 8992 GiB         | $4,049              |
| M-320  | x86-64       | 4    | 32 GiB  | 367 GiB          | $1,069              |
| M-320  | x86-64       | 4    | 32 GiB  | 742 GiB          | $1,219              |
| M-320  | x86-64       | 4    | 32 GiB  | 1492 GiB         | $1,519              |
| M-320  | x86-64       | 4    | 32 GiB  | 2992 GiB         | $2,119              |
| M-320  | x86-64       | 4    | 32 GiB  | 5992 GiB         | $3,319              |
| M-320  | x86-64       | 4    | 32 GiB  | 8992 GiB         | $4,509              |
| M-640  | x86-64       | 8    | 64 GiB  | 367 GiB          | $1,989              |
| M-640  | x86-64       | 8    | 64 GiB  | 742 GiB          | $2,139              |
| M-640  | x86-64       | 8    | 64 GiB  | 1492 GiB         | $2,439              |
| M-640  | x86-64       | 8    | 64 GiB  | 2992 GiB         | $3,039              |
| M-640  | x86-64       | 8    | 64 GiB  | 5992 GiB         | $4,229              |
| M-640  | x86-64       | 8    | 64 GiB  | 8992 GiB         | $5,429              |
| M-1280 | x86-64       | 16   | 128 GiB | 742 GiB          | $3,979              |
| M-1280 | x86-64       | 16   | 128 GiB | 1492 GiB         | $4,279              |
| M-1280 | x86-64       | 16   | 128 GiB | 2992 GiB         | $4,869              |
| M-1280 | x86-64       | 16   | 128 GiB | 5992 GiB         | $6,069              |
| M-1280 | x86-64       | 16   | 128 GiB | 8992 GiB         | $7,269              |
| M-2560 | x86-64       | 32   | 256 GiB | 1492 GiB         | $7,949              |
| M-2560 | x86-64       | 32   | 256 GiB | 2992 GiB         | $8,549              |
| M-2560 | x86-64       | 32   | 256 GiB | 5992 GiB         | $9,739              |
| M-2560 | x86-64       | 32   | 256 GiB | 8992 GiB         | $10,939             |

## Region-specific requests

By default, this endpoint returns pricing for `us-east` (AWS us-east-1).

To fetch pricing for another region, add the `region` query parameter:

`https://planetscale.com/pricing.md?region={region_identifier}`

Example:

`https://planetscale.com/pricing.md?region=eu-west`

The `region` value must match one of the supported identifiers below.

| Region identifier           | Region                      |
| --------------------------- | --------------------------- |
| ap-northeast                | AWS ap-northeast-1          |
| ap-south                    | AWS ap-south-1              |
| ap-southeast                | AWS ap-southeast-1          |
| aws-ap-southeast-2          | AWS ap-southeast-2          |
| aws-ca-central-1            | AWS ca-central-1            |
| eu-central                  | AWS eu-central-1            |
| eu-west                     | AWS eu-west-1               |
| aws-eu-west-2               | AWS eu-west-2               |
| aws-sa-east-1               | AWS sa-east-1               |
| us-east                     | AWS us-east-1               |
| aws-us-east-2               | AWS us-east-2               |
| us-west                     | AWS us-west-2               |
| gcp-asia-northeast3         | GCP asia-northeast3         |
| gcp-europe-west1            | GCP europe-west1            |
| gcp-europe-west4            | GCP europe-west4            |
| gcp-northamerica-northeast1 | GCP northamerica-northeast1 |
| gcp-us-central1             | GCP us-central1             |
| gcp-us-east1                | GCP us-east1                |
| gcp-us-east4                | GCP us-east4                |

## Query live prices from Postgres

You and your agent can query our pricing data using SQL. Connection details
are also on the [pricing page](/pricing#pricing-database).

The tables above are a snapshot for one region. The same catalog is a public,
read-only Postgres database. Use it when you need another region, a comparison
across clouds, or a calculated total for a topology.

The SQL catalog currently contains Postgres and Vitess cluster prices. Neki
SKU rates are in the tables above, not in this database.

### Connection

Role: `SELECT` only on `public.planetscale_prices`. SSL is required.

URI:

```
postgresql://pscale_api_hhdcchpiodja.dzken160d27q:pscale_pw_wa09rWwuQZQEWGS2eL0v7BlSGriZ6xgv@aws-us-east-1-3.pg.psdb.cloud:6432/postgres?sslmode=verify-full&sslrootcert=system
```

libpq:

```
host=aws-us-east-1-3.pg.psdb.cloud
port=6432
user=pscale_api_hhdcchpiodja.dzken160d27q
password=pscale_pw_bicEnt36PGCbgi8ZKnteKpRMCkARcoDy
dbname=postgres
sslmode=verify-full
sslrootcert=system
```

If your client rejects `sslrootcert=system`, point `sslrootcert` at the OS CA
bundle (on macOS, `/etc/ssl/cert.pem`).

This role cannot insert, update, delete, create objects, or read any other
table. Traffic Control is enforced on this user. Oversized or abusive queries
fail with SQLSTATE `53000` and a `[PGINSIGHTS] Traffic Control:` message.
Keep statements simple. Filter in `WHERE`. Do not run cartesian joins or
unbounded exploratory scans.

### How to read a row

Each row is one **priced cluster**, not one VM.

| Column                                   | Meaning                                                                                                                                                                 |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `product`                                | `Postgres` or `Vitess`                                                                                                                                                  |
| `machine_sku`                            | Cluster size. `PS-*` is network-attached disk. `M-*` is metal (local NVMe). AWS ARM sizes end in `-ARM` (example: `PS-160-ARM`). GCP `PS-*` rows have no `-ARM` suffix. |
| `disk_sku`                               | Empty string for `PS-*`. `D-METAL-*` for metal included NVMe.                                                                                                           |
| `replication_factor`                     | `1` = single node. `3` = HA (primary + 2 replicas).                                                                                                                     |
| `provider`                               | `AWS` or `GCP`                                                                                                                                                          |
| `region`                                 | Cloud region id, e.g. `us-east-1`, `eu-west-1`, `us-east4`                                                                                                              |
| `price`                                  | Monthly cluster price in whole USD                                                                                                                                      |
| `db_slice_vcpus`, `db_slice_ram_mib`     | Customer-facing CPU and RAM for the SKU                                                                                                                                 |
| `db_instance_*`                          | Host instance the slice runs on                                                                                                                                         |
| `nas_volume_size_gib`, `nas_volume_type` | Included network volume for `PS-*` (starting size, usually `gp3`)                                                                                                       |
| `local_partition_size_bytes`             | Included metal disk when present                                                                                                                                        |
| `network_transfer_gb`                    | Included egress in the SKU, in GB                                                                                                                                       |
| `availability_zones`                     | JSON array of provider AZ ids                                                                                                                                           |
| `natural_sku_order`                      | Stable sort key from small to large                                                                                                                                     |

`price` is the cluster SKU only. It does not include extra EBS beyond the
included volume, extra backups, extra egress, dedicated PgBouncer, or extra
replicas beyond `replication_factor`.

Not every SKU exists in every region. São Paulo (`sa-east-1`) has metal
Postgres rows and no `PS-*` Postgres rows. If a lookup returns zero rows, the
configuration is not sold there. Do not invent a price.

Vitess in this catalog is mostly x86 `PS-*` / `M-*`. There is no
`PS-160-ARM` Vitess row.

### Pricing with SQL

Look up one cluster:

```sql
SELECT machine_sku, replication_factor, price
FROM planetscale_prices
WHERE product = 'Postgres'
  AND machine_sku = 'PS-160-ARM'
  AND provider = 'AWS'
  AND region = 'us-east-1'
  AND disk_sku = ''
  AND replication_factor = 3;
```

That is a 3-node HA Postgres PS-160 on ARM in Virginia. Expect `286`.

HA vs single node:

```sql
SELECT replication_factor, price
FROM planetscale_prices
WHERE product = 'Postgres'
  AND machine_sku = 'PS-160-ARM'
  AND provider = 'AWS'
  AND region = 'us-east-1'
  AND disk_sku = ''
ORDER BY replication_factor;
```

ARM vs x86 in the same region:

```sql
SELECT machine_sku, db_instance_architecture, price
FROM planetscale_prices
WHERE product = 'Postgres'
  AND machine_sku IN ('PS-160', 'PS-160-ARM')
  AND provider = 'AWS'
  AND region = 'us-east-1'
  AND disk_sku = ''
  AND replication_factor = 3;
```

Multi-region total: sum independent clusters. A “US + EU” topology is two
rows, not one:

```sql
SELECT region, price
FROM planetscale_prices
WHERE product = 'Postgres'
  AND machine_sku = 'PS-160-ARM'
  AND provider = 'AWS'
  AND region IN ('us-east-1', 'eu-west-1')
  AND disk_sku = ''
  AND replication_factor = 3;

SELECT SUM(price) AS monthly_usd
FROM planetscale_prices
WHERE product = 'Postgres'
  AND machine_sku = 'PS-160-ARM'
  AND provider = 'AWS'
  AND region IN ('us-east-1', 'eu-west-1')
  AND disk_sku = ''
  AND replication_factor = 3;
```

Metal: pick both machine and disk:

```sql
SELECT machine_sku, disk_sku, price
FROM planetscale_prices
WHERE product = 'Postgres'
  AND machine_sku = 'M-160-ARM'
  AND disk_sku = 'D-METAL-200'
  AND provider = 'AWS'
  AND region = 'us-east-1'
  AND replication_factor = 3;
```

Cheapest HA Postgres that meets a CPU/RAM floor:

```sql
SELECT machine_sku, db_slice_vcpus, db_slice_ram_mib, price
FROM planetscale_prices
WHERE product = 'Postgres'
  AND provider = 'AWS'
  AND region = 'us-east-1'
  AND replication_factor = 3
  AND disk_sku = ''
  AND db_slice_vcpus >= 2
  AND db_slice_ram_mib >= 16384
ORDER BY price, natural_sku_order
LIMIT 5;
```

List regions that sell a SKU:

```sql
SELECT provider, region, price
FROM planetscale_prices
WHERE product = 'Postgres'
  AND machine_sku = 'PS-160-ARM'
  AND disk_sku = ''
  AND replication_factor = 3
ORDER BY price, provider, region;
```

### Agent rules

1. Connect with the URI above. Run `SELECT` only.
2. Price from `planetscale_prices.price`. Do not hardcode SKU prices from
   memory if they disagree with a query.
3. Specify `product`, `provider`, `region`, `machine_sku`,
   `replication_factor`, and `disk_sku` (`''` for `PS-*`).
4. One row = one cluster. Multi-region or primary + DR = `SUM(price)` over
   those rows.
5. If the query returns no rows, say the SKU is unavailable in that region.
   Suggest the closest row that does exist.
6. Say what is **not** in `price` (extra storage, backups, egress above the
   included GB, dedicated PgBouncer).
7. Prefer ARM (`%-ARM`) on AWS when the user did not ask for x86.
8. Add `LIMIT` while exploring. The table is small (~2,450 rows); still
   filter. If you get SQLSTATE `53000`, simplify the query and retry.
