---
title: "Pricing"
description: "Four meters, priced in USD, readable from the API."
url: "https://saved.sh/docs/billing/pricing"
---

Four meters, and nothing else. No seats, no tiers, no feature gates.

| Meter           | Unit       | Price      | Covers                                                         |
| --------------- | ---------- | ---------- | -------------------------------------------------------------- |
| **Computation** | run-minute | **$0.20**  | Time spent processing a run                                    |
| **Storage**     | GB-hour    | **$0.008** | Working space while a run is in progress                       |
| **Archive**     | GB-day     | **$0.10**  | Holding a finished artifact                                    |
| **Transit**     | GB         | **$0.40**  | Bytes that leave us: downloads, and copies to your own storage |

Prices are USD. The live rate card is public and needs no credential:

```bash
curl -fsS https://api.saved.sh/v1/rates
```

```json
{
  "currency": "usd",
  "rates": [
    { "meter": "computation", "label": "Computation", "unit": "run-minute", "units": "run-minutes", "usd": 0.2 },
    { "meter": "storage",     "label": "Storage",     "unit": "GB-hour",    "units": "GB-hours",    "usd": 0.008 },
    { "meter": "archive",     "label": "Archive",     "unit": "GB-day",     "units": "GB-days",     "usd": 0.1 },
    { "meter": "transit",     "label": "Transit",     "unit": "GB",         "units": "GB",          "usd": 0.4 }
  ]
}
```

<Callout>
  Read the endpoint rather than this table if you are building a calculator. It is the same
  source the dashboard uses, and it is cached for five minutes.
</Callout>

## When each meter is recorded [#when-each-meter-is-recorded]

This is the part worth understanding, because it explains why two workspaces storing the same
bytes can pay differently.

| Meter           | Recorded                                | By                                                               |
| --------------- | --------------------------------------- | ---------------------------------------------------------------- |
| **Computation** | Once per run, at the end of post-backup | The elapsed processing time                                      |
| **Storage**     | Once per run                            | Artifact size, multiplied by how long the run took               |
| **Transit**     | Once per run                            | Each copy written to your own bucket, plus a second-space upload |
| **Transit**     | On each **download URL issued**         | The artifact's full stored size                                  |
| **Archive**     | **Daily**, once per workspace           | Total bytes held in our storage that day                         |

<Callout type="warn">
  **Downloads are transit.** The charge is recorded when the link is issued, not per fetch, so
  requesting a URL and not using it still costs, and requesting it twice costs twice. A 2 GB
  artifact downloaded once is $0.80.
</Callout>

The first three are per-run and stop when the run does. **Archive is the standing one**: it
accrues every day, for every artifact, for as long as you keep it.

### Archive is the line that grows [#archive-is-the-line-that-grows]

An artifact of 1 GB kept for 90 days costs 90 GB-days, or **$9.00*&#x2A;, regardless of how often
you touch it. Ninety daily artifacts of 1 GB each under a 90-day retention converge on about
90 GB held, so roughly **$9.00 per day** once the policy reaches steady state.

Retention is therefore the price control. A backup with no `expire_after` keeps everything
forever and pays for it forever.

## What is not billed [#what-is-not-billed]

| Not billed                                     |                                                   |
| ---------------------------------------------- | ------------------------------------------------- |
| Members and seats                              | A workspace of twenty pays the same as one of one |
| Workspaces                                     | Up to the per-user limit                          |
| Backup definitions, API calls, runs themselves | Only their computation and storage                |
| Reading metadata                               | Listing backups, runs and artifacts is free       |

## Bring your own bucket changes the bill [#bring-your-own-bucket-changes-the-bill]

Delivering to your own storage moves cost off our meters and onto yours.

| Setup                             | Charged                                                               |
| --------------------------------- | --------------------------------------------------------------------- |
| Our copy only (the default)       | `computation`, `storage`, and `archive` while held                    |
| Also to your bucket               | The above plus `transit`, once per copy written                       |
| **`skip_permanent`**              | `computation` and `transit` only. &#x2A;*No `storage`, no `archive`** |
| `second_copy` (not available yet) | `transit` once for the upload, then `archive` at **double** the bytes |

`skip_permanent` is the cheapest way to run us and the setup where we can do least for you: we
hold no copy, so we cannot serve a download. See [Delivery](/docs/backups/delivery).

<Callout type="warn">
  **The second space is not available yet**, so nothing is charged for it today. When it
  ships, `second_copy` is charged at double archive for as long as it is held, because two
  copies are held. That is the point of it, and it is worth deciding deliberately rather than
  ticking.
</Callout>

## Estimating [#estimating]

The rough shape for one daily backup:

```
archive  = (artifact GB) × (days retained) × $0.10
compute  = (minutes per run) × (runs per month) × $0.20
transit  = (artifact GB) × (copies to your buckets) × (runs per month) × $0.40
```

A 2 GB daily Postgres artifact under a 30-day retention, taking four minutes a run, with no
BYOB, lands around:

| Line        | Sum                            | Monthly   |
| ----------- | ------------------------------ | --------- |
| Archive     | \~60 GB held × 30 days × $0.10 | \~$180.00 |
| Computation | 4 min × 30 runs × $0.20        | \~$24.00  |
| Storage     | small, run-duration only       | cents     |
| Transit     | none                           | $0.00     |

<Callout type="warn">
  Treat that as arithmetic, not a quote. Artifact size depends entirely on your data, and
  compression can move it by an order of magnitude. Run one backup and measure before planning
  around a number.
</Callout>

## Discounts [#discounts]

A workspace carries a billing profile that applies a percentage discount to everything:

| Profile   | Discount |
| --------- | -------- |
| Full rate | 0%       |
| Half off  | 50%      |
| Free      | 100%     |

Non-profit, startup and similar arrangements are applied this way. Ask, rather than looking
for a checkout code.

Coupons are redeemed separately. See [Credit](/docs/billing/credit).

## Currency and billing period [#currency-and-billing-period]

|          |                                     |
| -------- | ----------------------------------- |
| Currency | USD                                 |
| Period   | Monthly                             |
| Charged  | In arrears, for usage in the period |

## Next [#next]

<Cards>
  <Card href="/docs/billing/usage" title="Usage" description="What you have actually consumed." />

  <Card href="/docs/billing/credit" title="Credit" description="The signup credit and coupons." />

  <Card href="/docs/backups/delivery" title="Delivery" description="Moving cost onto your own storage." />
</Cards>
