Walleye docs
Billing
What an instance costs, how storage and egress are priced, and the free trial.
Walleye is sold as a managed instance. You pay for the instances you run, plus storage and egress above what those instances include. There are no plans, no organization fee and no per-seat charge: add as many members in as many roles as you like, and none of them costs anything. Support is email for everyone.
Instance rates
Every instance is billed per second while it runs, at one hourly rate
for its shape and cache tier. A launch rate covers all three of its
Machines. A billing month is 730 hours.
| Shape | Cache | Per hour | Always on, per month |
|---|---|---|---|
ramp | small | $0.054 | from $5, $39 always on |
ramp | medium | $0.108 | $79 |
ramp | large | $0.204 | $149 |
ramp | xlarge | $0.410 | $299 |
launch | small | $1.095 | $799 |
launch | medium | $2.053 | $1,499 |
launch | large | $4.108 | $2,999 |
launch | xlarge | $8.218 | $5,999 |
ramp / small is serverless. Fly suspends its Machine after a few idle
minutes (a memory snapshot; the engine resumes where it was) and starts it
on the next request, and no time it spends suspended is billed. A ramp
small instance is charged at least $5.00 in any month it exists: when
its running time for the month comes to less than $5, the difference is
added at renewal. Above about 93 hours a month it simply bills the hourly
rate. Every other shape and tier is always on and bills every second from
start to stop.
A stopped instance keeps no Machines and bills no instance time; it costs storage only.
Storage and egress
| Resource | Included each billing month | Additional usage |
|---|---|---|
| Object storage | 10 GB per ramp instance, 100 GB per launch instance | $0.05/GB-month |
| Egress | 100 GB per organization | $0.05/GB |
- Storage is the size of each instance’s S3 bucket, sampled hourly and summed across the organization. Only capacity above what its instances include is charged; a stopped instance still contributes its included capacity, a deleted one does not. One GB-month equals 730 GB-hours.
- Egress measures response bodies leaving the instance URL. Internal transfers between Machines and S3 are excluded.
Allowances reset on the subscription’s monthly billing date and do not roll over.
What is metered
Instance time comes from each Machine’s own record. An always-on Machine bills the interval between the start and the stop the control plane performed. A serverless Machine bills the running segments of its Fly event log: a segment opens on a start or resume and closes on a suspend, stop or exit, and the control plane reads the log every minute. Nothing is estimated in between.
A Machine’s record is also its meter, so whenever one is removed the seconds it covers are billed first, down to the second rather than to the last completed minute. That holds wherever the removal happens.
Deleting an instance settles everything it ran that no completed minute has billed yet before its records are erased. An instance that lived for less than a minute is still billed for the seconds it ran, and a deleted instance keeps its line on the billing page for the rest of the period.
Stopping and starting settles the same way. A stop keeps the Machine’s record for the minute still owed on it; the start replaces that record with the new Machine’s, and the seconds in between are billed at the moment of the swap. Restarting an instance in the same minute you stopped it costs you exactly the time it was awake, no more and no less.
So does resizing. The start after a resize retires the old shape’s Machines
and their records, so the seconds they ran since the last completed minute
are billed first, at the old shape’s rate. An instance resized from ramp
small to launch small is charged for its whole ramp phase at the
ramp rate and its whole launch phase at the launch rate, with no gap
between them and no second on both.
The billing page lists every instance of the period with the hours it ran and what those hours cost at its rate, plus the storage and egress gauges. A running instance’s hours are exact as of the last completed minute; the Stripe usage summaries behind storage and egress can take several minutes to update.
Free trial
The free trial is one ramp small instance until it has used $5.00 of
compute. No card is required, and there are no automatic charges. It ends
on that figure, not on a date: an instance that sits idle costs nothing and
the trial simply stays open.
While a workspace is on the trial:
- creating a second instance is refused with
402, asking for a payment method; - creating any shape or cache tier other than
rampsmallis refused the same way; - resizing the trial instance away from
rampsmallis refused the same way.
Once the trial instance reaches the $5.00 allowance, Walleye stops it and
starting it again returns 402 until a payment method is on file. The data
stays intact. A trial that never reaches $5.00 is never invoiced.
Paying
Adding a payment method on the Billing page opens the workspace’s metered subscription and lifts every restriction: any shape, any cache tier, as many instances as you want. Instance, storage and egress usage is collected in arrears at monthly renewal, on the subscription’s billing date, and the ramp small monthly minimum is applied to that invoice. Renewal invoices allow 24 hours for delayed usage receipts before automatic collection. There are no mid-month usage threshold charges.
Closing a workspace
Closing a workspace is three deliberate steps, in this order. Nothing here happens as a side effect of something else: no step moves money except the one you take to stop the charges, and each step is refused until the one before it is done.
- Delete every instance. Deleting an instance destroys its Machines, its S3 bucket and every table in it. Do this from the instances list, one instance at a time. Deleting an instance is never gated by billing.
- Cancel the subscription on the Billing page. This is the only thing
that ends a paid subscription, and it is refused with
409while the organization still has an instance that has not been deleted — the message names the instances to delete first. Cancelling stops future charges. It starts no charge and refunds nothing of its own: Stripe issues its normal final invoice for the usage already accrued in the period, including the ramp small monthly minimum where it applies. Cancelling again once it is cancelled does nothing and is not an error. A cardless trial is ended the same way, with End trial; a workspace that never had a subscription has nothing to cancel and can go straight to the next step. - Delete the organization from Settings. This removes its members,
tokens and every remaining record. It performs no billing operation at
all, and it is refused with
409while the organization has an active subscription, asking you to cancel it first.
Deleting the organization is also refused while storage the organization still holds has not gone with its instances, or while usage it accrued has not yet reached Stripe. Retrying once that finishes completes the deletion.
Identity
WorkOS owns memberships. Each organization is linked to its Stripe customer
using stripeCustomerId. Members are access control only: Walleye never
counts them and never charges for them.