Documentation menu

Facility incidents & credits

Three fault domains, one principle — you pay for physics, not for our hardware.

A physical facility fails in physical ways: an actuator throws a fault code, a calibration drifts mid-run, a reset fixture jams. The billing question is settled by one principle, stated here and everywhere this policy appears: You pay for physics, not for our hardware.

The taxonomy

Fault domainExamplesWho paysWhat happens
Policy faultsgrasp slip, policy_deadline_missed, contract haltyou — billablethis is the data you bought: the episode counts, its cluster ships in the result, its MCAP shows why
Facility faults (cell_fault)hardware failure, calibration drift detected mid-run, reset fixture jam, facility power/networknever billedthe episode is excluded from statistics and auto-requeued on the same or an equivalent qualified cell — or credited if capacity isn't available within the run's window
Ambiguousa collision that may be eitherdefaults in your favoradjudicated from the episode's own MCAP within 2 business days; pending adjudication the episode is treated as a facility fault

Detection is instrumented, not claimed

A cell_fault is not an operator's opinion. Calibration age, watchdog events, actuator fault codes, and reset telemetry ship in every episode's /meta channel; an episode marked cell_fault carries the trigger that marked it. The same evidence trail we sell is the one we're judged by — pull the MCAP and check.

Statistics integrity

Excluded episodes never enter n. Requeued replacements are ordinary episodes and enter n when they run. If exclusions push a run below its requested precision — an auto(ci, moe) target the remaining episodes can't meet — the run auto-extends at our cost, or reports the achieved interval with the shortfall flagged. Never silently.

Mid-run halts

An emergency stop or facility halt ends the run the same way a budget stop does: partial results with a Wilson interval on the completed episodes, status halted_facility — the same shape as halted_budget, a different payer. The remainder is requeued or credited; completed episodes keep their statistics and their artifacts. The error codes involved — cell_fault, run_requeued_facility, run_credited_facility — are on the error codes page like every other code.

Try it — the policy is testable

In test mode, X-Roborama-Force: cell_fault on POST /v1/runs demonstrates the whole flow: the episode appears in the listing as cell_fault with its trigger, the recomputed statistics exclude it (n stays at the requested count — the replacement ran), the result carries a facility_incidents block with billed_usd: 0, and a run.requeued webhook fires. The policy you're reading is the behavior you can curl.