Pricing

Metered by the second: the machine bills for the CPU, memory, and disk it actually uses.
Three rates, no instance sizes, no subscription.

$0.000008 / vCPU-second 69¢ a day per core, run flat out
$0.000003 / GiB-second, memory 26¢ a day per GiB held in ram
$0.000040 / TiB-second, disk 346¢ a day per TiB stored

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 caseixfly.iorailwaymodal
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.

$4.53/mo ix, the cheapest option that can serve this workload

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:

shared-cpu-1x 0.06 vcpu sustainedshared-cpu-2x 0.13 vcpu sustainedshared-cpu-4x 0.25 vcpu sustainedshared-cpu-6x 0.38 vcpu sustainedshared-cpu-8x 0.50 vcpu sustained

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?