# Pricing (/protocol/pricing)

Every account starts on the Free plan, with no card. Add a card to move to the Paid plan,
which charges only for what you use. Prices are in US dollars.

|               | Free plan                        | Paid plan                                            |
| ------------- | -------------------------------- | ---------------------------------------------------- |
| Storage       | 10 GiB                           | $20 per TiB-month                                    |
| Egress        | 10 GiB a month                   | 3× your average storage each month, then $10 per TiB |
| Usage caps    | Yes, and nothing is ever charged | None                                                 |
| Minimum fee   | —                                | None                                                 |
| Card required | No                               | Yes                                                  |
| Billing       | —                                | Monthly, for the previous month's usage              |

Storing more than 10 TiB, or need custom terms? See [Enterprise](#enterprise).

## Free plan

The Free plan has no time limit, and your data stays as long as you like.

* **10 GiB of storage.** An upload that would take you past it is refused with
  `400 EntityTooLarge` before any data is sent. Delete objects or upgrade to upload more.
* **10 GiB of egress a month.** The allowance renews each month on the date you signed up.
  Once it's used up, downloads are blocked until it renews or you upgrade.

These are hard caps, so the Free plan never charges you.

## Paid plan

Add a card in the [console](https://console.shelby.xyz) when you sign up, or at any time
after. Billing starts from the first byte: the Free plan's 10 GiB doesn't carry over.

There's no minimum fee. $20 is the rate per TiB-month, not a monthly minimum: 100 GiB stored
for a month costs about $2.

There are no caps on how much you store or download. A Paid account is blocked only when an
invoice is still unpaid at the end of its grace period, or when you cancel. See
[Billing](/protocol/billing). The
[concurrent download limit](/tools/s3-gateway/limits#concurrent-downloads) still applies,
because it limits how many downloads run at once, not how much you download.

## How usage is measured

### Storage

Storage is billed in TiB-months. One TiB-month is 1 TiB stored for 730 hours, the average
length of a month, and costs $20.

Every hour, Shelby measures how much you have stored: the objects you've uploaded, plus the
parts of multipart uploads still in progress. Your invoice adds those measurements up into
TiB-months, so you pay for what you stored, for as long as you stored it. For example:

* 512 GiB for a whole month costs about $10, and so does 1 TiB for 15 days.
* 2 TiB for 365 hours and 0.5 TiB for 1,460 hours are each 1 TiB-month, or $20.

Objects you delete stop counting from the next hourly measurement.

Billing months vary in length, because each one runs from the day of the month you added
your card. 1 TiB stored for a whole billing month costs $18.41 in a 28-day month and $20.38
in a 31-day one, which averages $20 over a year.

<Callout type="warn" title="Abort multipart uploads you don't finish">
  The parts of an unfinished multipart upload are billed as storage until you complete or
  abort the upload, and Shelby has no lifecycle rules to clean them up for you. In the AWS SDK
  for JavaScript, `ListMultipartUploads` can't find them, so abort each upload you start if it
  fails. See [Known compatibility issues](/tools/s3-gateway/known-issues).
</Callout>

### Egress

Egress is data downloaded from Shelby. Every GET counts, including range requests and
downloads through [presigned URLs](/tools/s3-gateway/presigned-urls), and downloading the
same object again counts again.

Each billing month, your egress allowance is 3× your average storage for that month. Egress
beyond it costs $10 per TiB. Unused allowance doesn't roll over.

The allowance depends on your average storage over the whole month, so data stored all
month earns a full allowance and data uploaded late in the month earns less. Partway through
the month, the allowance and any overage the console shows are provisional. The final
numbers are calculated on your bill date.

For example, in a 30-day billing month, you store nothing for 15 days, then on day 16 you
upload 1 TiB and download 2 TiB. On day 16 your average storage is close to zero, so the
console shows almost all 2 TiB as projected overage. By the bill date your average storage
is 0.5 TiB, so your allowance is 1.5 TiB, and you pay for 0.5 TiB of overage: $5.

### The 10 MiB minimum

Every object, and every part of a multipart upload, counts as at least 10 MiB of storage.
Objects of 10 MiB or more count at their actual size. For example, 1,000 objects of 8 MiB
hold about 7.81 GiB but count as about 9.77 GiB.

So that large files count at close to their actual size, upload them in parts of at least
10 MiB. The last part can still be smaller, and counts as 10 MiB. Several S3 clients default
to smaller parts. See
[Choosing a part size](/tools/s3-gateway/limits#choosing-a-part-size).

On the Free plan, counted storage is what fills your 10 GiB. On the Paid plan, you're billed
for the actual bytes you store and download, so the minimum doesn't change your invoice. The
console shows counted storage, so it can show more than you're billed for.

### Units

Pricing, the console and invoices use binary units: 1 GiB is 1,024 MiB, and 1 TiB is
1,024 GiB.

## Examples

Each example assumes storage stays the same for a whole billing month of average length
(730 hours).

| Stored  | Egress  | Storage charge | Egress allowance | Egress charge      | Total           |
| ------- | ------- | -------------- | ---------------- | ------------------ | --------------- |
| 1 TiB   | 2 TiB   | $20            | 3 TiB            | $0                 | **$20**         |
| 1 TiB   | 4 TiB   | $20            | 3 TiB            | 1 TiB × $10 = $10  | **$30**         |
| 1.5 TiB | 5 TiB   | $30            | 4.5 TiB          | 0.5 TiB × $10 = $5 | **$35**         |
| 100 GiB | 200 GiB | About $1.95    | 300 GiB          | $0                 | **About $1.95** |

## Enterprise

There's no separate team plan, because the Paid plan has no usage caps. If you're storing
more than 10 TiB, or need custom features or terms, talk to us about enterprise pricing.

<ContactForm topic="pricing" />
