Pricing
Metered by the second: the machine bills for the CPU, memory, and disk it
actually uses.
Three rates, no instance sizes, no subscription.
An idle machine, 0.01 vCPU with half a GiB in ram and a GiB of disk, comes
to about 14¢ a day.
An always-on Claude agent, up all month and working through 100 chats, runs about $4.53 a month.
What it costs
Five real shapes, priced for a month on each provider from the rates it publishes. An × means the provider cannot serve that shape at any price; hover it for the ceiling it hits.
| use case | ix | fly.io | railway | modal |
|---|---|---|---|---|
| one long-lived agent per user, 100 chats a month, idle the rest of it | $4.53 | $26.66 | $43.01 | $27.26 |
| must answer at any hour, real disk, cpu mostly waiting on a database | $47.77 | $77.32 | $118 | $52.82 |
| an hour of heavy work every night, nothing between, disk that survives the gap | $72.75 | $96.46 | × | $17.29 |
| a dev machine an agent drives: builds pin every core, then it waits on a model | $120.82 | $530.08 | × | $191.69 |
| an in-memory index: 64 gib that has to stay hot, cpu with nothing to do | $499.50 | $508.40 | × | $372.51 |
Every rate read on 2026-07-29. Pick a shape to open it in the tool below.
Price your own
Not one of those shapes? Describe yours. Every slider reprices all four providers, and the why toggle shows the arithmetic behind the selected preset.
Drag a slider, or click a value to type one. Open any row for the line items behind its total.
FAQ
what exactly does the meter count?
CPU is vCPU-seconds actually burned. A vm has no cpu cap: its cgroup carries a weight per allocated core and no cpu.max, so
under contention it gets a share proportional to what it pays for,
and on a quiet host it can use more than it bought. Idle cores cost
nothing.
Memory is faulted-in guest ram, at $7.78 per gib-month. A page the guest never touches is outside the meter, so an allocation is headroom rather than a standing cost.
Disk is bytes used, at $103.68 per tib-month. Nothing is provisioned in advance: grow a file and the meter moves, delete it and the meter moves back.
how big can one machine get?
One vm scales to 64 vCPU, 256 GiB of memory, and 1 PiB of disk.
is egress billed?
We have not published an egress rate yet, so bandwidth is in none of this page's numbers. fly and railway publish egress rates; modal does not either. If your bill is mostly bandwidth, this page cannot answer your question yet.
what happens to memory the guest stops needing?
A page the guest faults in and then stops needing has to be written somewhere to leave the memory meter, and it becomes disk bytes at about 1/77 of the price. That write is what automatic guest swap adds, and it is being implemented now, so a quote below 100% resident is what we intend to bill rather than what we bill today.
Memory the guest never touched is different: it is outside the meter today, with nothing unshipped in the way.
where does ix lose?
Memory held hot. At $7.78 per gib-month we are the most expensive of the four per gib that has to stay in ram: fly bundles ram into its presets at a lower effective rate, and modal prices function memory lower too. The big heap row in the table above is that shape, priced.
what is a fly.io shared vcpu?
a shared vcpu is granted a cfs quota of 5ms out of every 80ms period, which is 6.25% of a core, and the
quota is pooled across the machine. so a shared machine's sustained compute
is fixed by its size, whatever the vcpu count in the name says:
the largest shared machine holds half a core. above the baseline you spend a burst balance, which starts at 5s at launch and caps at 500s: about 533s of running flat out, once, and then you are back to 6.25%. a container doing heavy work at boot can burn the 5s of starting balance before it finishes booting. fly notes it "might change these specific numbers over time".
what else should I know about the fly.io rows?
- volumes bill provisioned capacity at $0.15 per gb-month, including while the machine is stopped and including volumes attached to nothing. a 200 gb volume holding 5 gb costs the full 200.
- automatic daily snapshots are on by default for new volumes, at $0.08 per gb-month past the first 10 gb. this charge started in january 2026.
- stopping is not free either: a stopped or suspended machine still bills its root filesystem at $0.15 per gb-month.
- resume from suspend is a few hundred milliseconds, cold start about two seconds, and fly does not guarantee a suspended machine resumes from its snapshot rather than cold starting. any deploy invalidates every suspended snapshot.
- no free tier since october 2024, and a response-time commitment starts at $29 a month. gpus are deprecated and unavailable after 1 august 2026.
- prices vary by region. the shared-cpu-1x 256mb line ranged $1.94 to $2.43 a month across the regions sampled on 2026-07-29; this page uses one region throughout.
what about the railway row?
- railway meters what the container actually consumes, the same model we use, and its cpu rate is the nearest of the three to ours: $20 per vcpu-month against our $20.74. of the three, railway's model is the one closest to ours.
- memory is $10 per gb-month, against our $7.78.
- the meter is the whole container, not your process, so base image and language runtime overhead is billed even when your own heap is small.
- hard per-replica ceilings: 8 vcpu and 8 gb on hobby, 24 vcpu and 24 gb on pro. pro was 32 and 32 until march 2026. higher limits sit behind $2,000 a month of committed spend, and dedicated hosts behind $10,000.
- the subscription fee is charged whether or not you use its included credit, and the credit does not roll over.
- scale to zero is opt-in, idles out after 10 minutes, and the first request back gets 10 seconds before railway returns a 502 instead.
what about the modal rows?
- cpu is priced per physical core, and a core is 2 vcpu, so the headline $/core is half of that per vcpu.
- you are billed the higher of your request and your actual usage. request the size you want and the bill stops tracking utilization; request the 0.125-core minimum and burst, and it tracks.
- sandbox compute is about three times the function rate for the same cpu and memory. a persistent dev machine is a sandbox, so that is the row to read, not the function one.
- a sandbox tops out at 24 hours of life and a function execution at 24 hours. there is no long-lived machine; a month of uptime means snapshot and relaunch.
- an idle-but-warm container keeps billing until it scales down: 60s by default, up to 20 minutes if you widen the window to dodge cold starts.
- pinning to a region multiplies the bill by 1.5 broad or 1.75 narrow. a non-preemptible function costs 3x on cpu and memory.
- modal publishes no egress price at all, which is not the same as egress being free.
how is the comparison computed?
- a month is 720 hours, the 30-day month we bill, applied to all four so per-second and per-month rates end up in the same unit.
- our rates come from one published card, the same one the billing meters charge, so this page, the landing page, and the bill cannot disagree.
- both fly rows are sized to the workload's peak, never to its average, and busy never shrinks a fly machine. an earlier version of this page picked the cheapest preset that fit the stated average, but that assumes you know your utilization before you provision and that fly resizes the machine when you guess wrong; neither is true.
- each fly row takes the cheapest published preset at that size, then adds ram past the preset at fly's stated "about $5" per gb per 30 days. fly's preset sizes are powers of two, so its gb is read as gib. railway states gb without saying which, and is priced against the same number.
- modal's rows assume you request the 0.125-core minimum and let the container burst, which is the cheaper of the two ways to buy it. the starter plan's $30 monthly credit is stated in the row's caveats but not subtracted: a credit caps your first dollars, not the rate, and a $0 row compares nothing. railway's included usage credit is subtracted, because its subscription fee already floors that row.
- disk is billed for the whole month on every provider, including when the machine is down, because that is what all four do.
- egress is not in any of these numbers. we do not publish a rate and modal does not either, so including it would compare two published figures against two guesses.
where do these numbers come from?
Every competitor figure is a number the provider prints on a page of its own, read on 2026-07-29: fly.io pricing,fly.io cpu performance,fly.io billing,fly.io machine sizing,fly.io suspend/resume,fly.io gpus,railway plans,railway billing,railway performance,railway volumes,railway serverless,railway committed spend,modal pricing,modal resources,modal sandbox resources,modal sandboxes,modal cold start,modal region selection,modal billing.