# EAS Update pricing explained (2026)

EAS Update is Expo's hosted service for over-the-air (OTA) updates to React
Native and Expo apps. Its bill has three moving parts: a monthly plan, a
charge for each update user above the plan's allowance, and bandwidth above a
quota. This page explains each part and works through the cost at 10,000,
100,000 and 1,000,000 users.

All EAS figures come from [expo.dev/pricing](https://expo.dev/pricing) and its
[Markdown version](https://expo.dev/pricing.md), checked October 2026. Rollbird
publishes this page; Rollbird's own pricing is at the end, kept separate from
the explanation.

## The plans

| Plan | Monthly price | Update MAUs included | Bandwidth included |
| --- | --- | --- | --- |
| Free | $0 | 1,000 | 100 GiB |
| Starter | $19 plus usage | 3,000 | 100 GiB |
| Production | $199 plus usage | 50,000 | 1 TiB |
| Enterprise | Custom | 1,000,000 | 40 TiB |

The Free plan has no overage: usage is limited to what it includes, so an app
past 1,000 update users needs a paid plan.

## What counts as an update MAU

Expo defines it this way: a user who downloads one or more updates in a
billing cycle counts as one monthly active user (MAU). A user who opens the
app but downloads no update that month doesn't count.

Two practical consequences:

- **Shipping more often doesn't multiply the count.** A user who downloads five updates in a month is still one MAU.
- **Shipping at all is what makes a user count.** In a month with no update, the per-user charge is close to zero; in a month where you ship to everyone, nearly every active user counts.

## How overage is charged

Above the plan's allowance, each extra update user is billed on graduated
tiers. Each rate applies only to the users inside its band, like tax brackets.

| Update MAUs (Starter and Production) | Price per extra MAU |
| --- | --- |
| Up to 200,000 | $0.005 |
| 200,001 to 500,000 | $0.00375 |
| 500,001 to 1,000,000 | $0.0034 |
| 1,000,001 to 2,000,000 | $0.003 |
| 2,000,001 to 3,000,000 | $0.0024 |
| 3,000,001 to 6,000,000 | $0.0022 |

The tiers continue down to $0.00085 per MAU above 100 million. Enterprise
starts its overage after 1,000,000 included users, at its own rates.

## Bandwidth

Bandwidth over the quota costs $0.10 per GiB. The quota grows with your
audience: on Starter, Production and Enterprise, every update user above the
plan's allowance adds 40 MiB to the included bandwidth.

That means overage starts when the average update user downloads more than
about 30 to 40 MiB a month:

| Plan and size | Included bandwidth | Average per user before overage |
| --- | --- | --- |
| Starter at 10,000 MAU | 100 GiB + 7,000 × 40 MiB ≈ 373 GiB | about 38 MiB |
| Production at 100,000 MAU | 1 TiB + 50,000 × 40 MiB ≈ 2,977 GiB | about 30 MiB |
| Production at 1,000,000 MAU | 1 TiB + 950,000 × 40 MiB ≈ 38,133 GiB | about 39 MiB |

A large bundle shipped twice a month can cross that line. The worked examples
below leave bandwidth out, then show one case where it matters.

## Worked examples

The cheapest plan at each size, before bandwidth:

| Update MAUs | Cheapest plan | Calculation | Monthly cost |
| --- | --- | --- | --- |
| 1,000 | Free | Included | $0 |
| 10,000 | Starter | $19 + 7,000 × $0.005 | $54 |
| 100,000 | Production | $199 + 50,000 × $0.005 | $449 |
| 1,000,000 | Production | $199 + 150,000 × $0.005 + 300,000 × $0.00375 + 500,000 × $0.0034 | $3,774 |

Why those plans: at 100,000 users, Starter would cost $19 + 97,000 × $0.005 =
$504, more than Production's $449. At 1,000,000 users Starter would cost
$3,829 against Production's $3,774.

The 1,000,000 line, step by step: $199 for the plan, $750 for users 50,001 to
200,000, $1,125 for users 200,001 to 500,000, and $1,700 for users 500,001 to
1,000,000.

**With bandwidth.** Take the 100,000-user app and say each user downloads two
updates of 20 MiB in a month. That is about 3,906 GiB against a quota of about
2,977 GiB, so about 929 GiB of overage at $0.10, or roughly $93. The month
costs about $542 instead of $449. The exact figure depends on how Expo
measures the transferred bytes, so treat it as an illustration.

## When EAS Update is the right choice

- **Your app is on Expo and EAS Build.** EAS Update is built into that workflow: channels in `eas.json` build profiles, runtime versions, and the Expo dashboard.
- **Your audience is small.** Up to 1,000 update users it costs nothing, and up to 3,000 it costs $19.
- **You use its rollout tools.** EAS supports per-update percentage rollouts, branch-based rollouts, and rollback to an earlier or embedded update ([Expo docs](https://docs.expo.dev/eas-update/rollouts/)).
- **You want one vendor.** Build, submit and update from the same account and bill.

## When the per-user model costs more

The bill tracks how many people download your updates, so it rises with every
user you gain, whether or not your release process changed. A team that
grows from 10,000 to 100,000 users goes from $54 to $449 a month for the same
work. Teams in that position usually compare a flat-priced hosted service
against [running their own server](https://rollbird.dev/docs/hosted-vs-self-hosted-ota-updates/);
the [CodePush alternatives](https://rollbird.dev/docs/codepush-alternatives/)
page lists both kinds.

## How Rollbird prices instead

Rollbird is a hosted OTA update service for bare React Native and Expo apps,
with staged releases, free rollback, and no per-user pricing. Its plans are
priced on apps, storage, seats and release history:

| Plan | Monthly price | Apps | Storage | Members | Production releases |
| --- | --- | --- | --- | --- | --- |
| Free | $0 | 1 | 250 MB | 1 | 3 a month |
| Indie | $7 | 3 | 2 GB | 1 | Unlimited |
| Team | $15 | 10 | 10 GB | 3 | Unlimited |
| Studio | $29 | Unlimited | 50 GB | 10 | Unlimited |

Annual billing costs ten times the monthly price. At 10,000, 100,000 or
1,000,000 users, an app on Indie still pays $7 a month. Rollback is always
free and never counts against a limit. See [pricing](https://rollbird.dev/#pricing)
for the current plans.

Where EAS still wins against Rollbird: it is free below 1,000 update users,
it is part of the Expo toolchain, and its rollout tooling goes further, with
branch-based rollouts and percentage changes from the CLI. The
[Rollbird vs EAS Update](https://rollbird.dev/docs/rollbird-vs-eas-update/)
comparison covers setup, concepts and migration.
