Capacity and lead times
How long a part actually takes: queue time, print time by part size, dispatch and transit, plus the public capacity endpoint that publishes live fleet numbers.
This page tells you what your part is actually waiting on, and how to look up the current number instead of trusting a printed one. Two clocks run in sequence: farm time, which is queue plus print plus handling, and transit, which belongs to the carrier. They are quoted separately everywhere on this page because they behave completely differently.
The three things you wait on#
| Stage | What it is | What changes it |
|---|---|---|
| Queue | Jobs already queued, ready or mid-print that owe printer time before yours starts | How busy the farm is when you order. Published live as general.backlogDays. |
| Your own plate on a machine | Weight, layer height, colour count and quantity. See the table further down. | |
| Dispatch | Cooldown, removal, a person looking at the part, packing, and the label run | One handling day is built into every quote. |
| Transit | The carrier moving the parcel | Distance and service. Not included in any farm lead time. |
Look up the current number#
The farm publishes its own capacity. It is a public endpoint with no key and no account, because it exposes counts only, never printer IDs or job names. It is the same data the panel on /farm renders.
/api/farm/capacityNo authLive fleet counts, measured throughput and queue depth. No parameters.
curl https://x3dstudios.com/api/farm/capacity{
"generatedAt": "2026-09-09T14:02:11.418Z",
"fleet": {
"total": 3,
"general": 3,
"generalProductive": 3,
"reservedOperator": 1,
"reservedCustomer": 0,
"available": 1,
"printing": 2,
"offline": 0,
"maintenance": 0
},
"rates": {
"gramsPerOrder": 100,
"gramsPerHour": 24.6,
"measured": true,
"hoursPerDay": 22,
"hoursPerOrder": 4.27,
"handlingDays": 1
},
"general": {
"printers": 3,
"ordersPerDay": 15.5,
"gramsPerDay": 1624,
"backlogOrders": 4.2,
"backlogDays": 0.26
},
"reserved": {
"printers": 1,
"ordersPerDay": 5.2,
"gramsPerDay": 541
}
}| Field | Meaning |
|---|---|
| fleet.total | Every printer on record, whatever its state. |
| fleet.generalProductive | Printers that can take work today: not offline, not in maintenance, not held by a customer reservation. |
| fleet.reservedOperator | Machines the farm has reserved as its own dedicated capacity. Still counted in the order lane. |
| fleet.reservedCustomer | Machines a customer holds. Carved out of order capacity entirely. |
| rates.gramsPerHour | Throughput per printer. The median of the last 200 completed jobs when there is history. |
| rates.measured | false means the 22 g/h fallback was used because there were fewer than five usable completed jobs. |
| rates.hoursPerOrder | Hours one 100 g order occupies, including 12 minutes of changeover. |
| general.backlogOrders | Queue ahead of you, expressed in 100 g orders. |
| general.backlogDays | The same queue expressed in days at the current fleet rate. |
How the lead time is worked out#
The arithmetic is deliberately simple and entirely visible. One order means 100 grams by default; the panel on /farm lets you change that and re-quote.
hoursPerOrder = gramsPerOrder / gramsPerHour + 12 minutes changeover
ordersPerDay = productivePrinters * 22 productive hours / hoursPerOrder
printDays = orders / ordersPerDay
totalDays = printDays + backlogDays + 1 handling day
quotedDays = max(1, ceil(totalDays))- 22 productive hours per printer per day, not 24. The rest is changeover and maintenance headroom.
- 12 minutes of changeover per job for clearing the bed and restarting.
- One handling day covers cooldown, removal, the look-over, packing and the label run.
- Throughput is measured where possible: completed jobs are turned into grams-per-hour rates, rows shorter than 300 seconds or outside 1 to 120 g/h are discarded as bad headers, and the median of at least five survivors becomes the rate.
- A job already printing only owes the remainder of its grams to the backlog, scaled by its progress.
- A lane with no productive printers or no throughput returns stalled rather than a number, which the panel shows as Ask the operator.
What makes a print long#
Print time tracks material laid down and layers climbed, not the size of the bounding box. These are the levers you actually control at /print.
| Lever | Effect on time | Effect on price |
|---|---|---|
| Weight | Roughly linear. At the farm's fallback rate of 22 g/h, a 100 g part is about 4.5 hours of machine time. | Linear. You are charged per gram, rounded up to the whole gram. |
| Layer height | Premium 0.1mm layers take roughly twice as long as standard 0.2mm, because there are twice as many of them. | 1.75x the per-gram rate. Standard 0.2mm is 1x. |
| Height in Z | A tall thin part is slow for its weight: every layer costs a pass whether it is 5mm wide or 200mm. | No direct effect. Price is weight, not height. |
| Infill | Higher infill is more extrusion and more time. Default is 20%. | Higher, through weight. |
| Colours | Each colour change is a purge and a tool change, and a four-colour plate can spend most of its run swapping - but only on a plate you sliced yourself, because a model we slice is cut as one colour. | Nothing on a model we slice for you: colour overhead is switched off, so the plate is cut and quoted as a single colour. An already-sliced file sent through the print API is charged for the hours its weight cannot explain, as machine time at $1.50/hour. |
| Quantity | Linear in printer hours, but parallel across free machines. | 5% off at 5 or more units, 10% off at 10 or more. |
One thing that is never estimated: a file you sliced yourself. If you send a .gcode or .gcode.3mf to the print API, its measured grams and hours are used exactly as they are, and no estimated colour overhead is added on top, because your slicer already counted every purge. The hours themselves still count: any beyond what a normal print of that weight would take are billed as machine time at $1.50/hour, which is what makes a self-sliced four-colour plate expensive.
Dispatch, and then transit#
Once the part is cool it comes off the plate, a person looks at it, and it is boxed. Every print goes out in the same parcel: a 6 x 6 x 6 inch box booked at 1 lb, because a house standard beats a per-order guess and the carrier re-rates on real weight anyway. Labels are bought in a batch, so an order finished just after a label run waits for the next one.
| Destination | Postage | Free over |
|---|---|---|
| United States | $7 flat | $50 |
| International, 22 countries | $30 flat | $500 |
- The carrier is recorded when the order is marked shipped, and the shipped email names it and links the tracking number.
- On /orders the tracking number appears as plain text without a carrier link. The email is the clickable copy.
- Delivered is set automatically. A daily sweep asks the carrier about every shipped order that has a tracking number and a known carrier, and marks it delivered when the carrier says so. An order whose carrier was recorded as Other is never queried, because there is no carrier to ask.
- Duties and import taxes on international parcels are yours.
If you have a hard deadline#
There is no rush product. Checkout has one shipping rate and the queue has no priority lane, so paying more does not move you up it. What you can do instead:
- 1Check the queue before you order
Call the capacity endpoint and read general.backlogDays. That is the wait in front of you today, and it is the number that moves most.
bashcurl -s https://x3dstudios.com/api/farm/capacity | grep -o '"backlogDays":[0-9.]*' - 2Say the date out loud
Email [email protected] with your order number, or the model and material if you have not ordered yet, and the date you need it by. The operator can tell you whether it is achievable and will say if it is not. There is no automated promise behind this; a person answers.
- 3Cut the print, not the queue
Standard 0.2mm layers instead of premium, one colour instead of four, and 20% infill instead of solid all shorten the machine time you are waiting on.
- 4Reserve a machine for repeat work
If you need capacity you control rather than a place in the shared queue, book a printer by the hour or the day. A customer-held machine is carved out of the order lane entirely, so nobody else's queue is in front of you. See /docs/farm/reservations.
Next#
Quantity pricing, how large batches are split across machines, and what to send.
Machine time by the hour or the day, and what it costs.
The five order stages, which ones email you, and where the tracking number appears.
The machines, the build volumes, and who decides which one runs your part.