Pricing
Two meters — robot-hours and environment-hours — visible in every quote and every result. Metered per minute.
Everything you buy from Roborama reduces to two meters: robot-hours
(occupancy of an embodiment) and environment-hours (occupancy of a scene).
A queue priority — burst | standard | soak — multiplies both. There are no
credits, no seats, no platform fee. Every quote and every result shows both
meters, so the bill is an arithmetic exercise, never a surprise.
+ environment meter from $12/env-hour
Two meters, per minute. No credits, no seats, no platform fee.
Everything on the rate card:
- All ten catalogue embodiments, firmware-pinned
- Four environment classes, bare cell to instrumented replica
- Queue priority ×0.6–×1.5 on both meters
- episodes="auto(ci, moe)" run sizing
- max_budget_usd hard stop, metered live
- MCAP + video + ground truth on every episode
monthly_cap_usd — a hard stop you set
Buy the verified outcome — iterate cheap, escalate automatically.
Metered under the cap, plus:
- Soak-tier iteration on commodity pods (nori-a3, $7/robot-hour)
- Automatic escalation to verification-tier hardware on crossing
- on_verified webhook gates your release
- Partial results kept — n and CI survive any stop
flat — a small discount to the metered equivalent
The rbr-manip-core@v3 benchmark, scheduled as one block.
One block, one report:
- 5 tasks × 300 episodes
- g1-edu-pro@fw2.3, firmware-pinned
- Suite attestation (rbr:att: id)
- Verification report included
| Compare | Metered | Threshold contract | Suite run |
|---|---|---|---|
| Rates & billing | |||
| Robot meter | $7–$176 /robot-hour | soak rates, then verify-tier | included |
| Environment meter | $12–$85 /env-hour | metered under your cap | included |
| Queue priority | burst ×1.5 · standard ×1.0 · soak ×0.6 | soak ×0.6 until escalation | scheduled as one block |
| Billing granularity | per minute | per minute, capped | flat |
| Hardware | |||
| Embodiments | all ten, firmware-pinned | nori-a3 pods → g1-edu-pro | g1-edu-pro@fw2.3 |
| Environments | four classes, versioned scenes | catalogue scenes | suite scenes, pinned |
| Teleop fallback adder | +$18 /robot-hour | +$18 /robot-hour | — |
| Statistics | |||
| n + Wilson 95% CI on every result | ✓ | ✓ | ✓ |
| Auto-sized episodes | ✓ | drives escalation | 300 per task |
| Failure clusters | ✓ | ✓ | ✓ |
| Controls | |||
| Hard budget stop | max_budget_usd per run | monthly_cap_usd | flat price |
| Quotes | POST /v1/quote, 7-day expiry | cap set in the contract | fixed |
| Webhooks | all five events | on_verified | run.completed |
| Partial results kept on stop | ✓ | ✓ | ✓ |
| Deliverables | |||
| MCAP + video + ground truth | ✓ | ✓ | ✓ |
| Verification report | on verification-tier runs | on threshold crossing | included |
| Suite attestation | — | — | ✓ |
The rate card
The comparison above is arithmetic over one public rate card — a JSON file,
/fixtures/pricing.json, the same one the quote
endpoint prices from.
| Robot | Class | Tier | Rate | Notes |
|---|---|---|---|---|
| nori-a3 | arm-pod | soak | $7 / robot-hour | Commodity soak pods, 24 cells. Iterate here; escalate when the numbers hold. |
| so-101 | arm-pod | soak | $9 / robot-hour | Hobby-class 5-DoF pods, 16 cells. The cheapest smoke test for a policy. |
| stretch3 | mobile-manipulator | verify | $34 / robot-hour | Mobile manipulation, firmware-pinned. |
| fr3-bench | fixed-arm | verify | $38 / robot-hour | Torque-controlled 7-DoF industrial arm on a fixed bench. |
| aloha-bimanual | bimanual | verify | $52 / robot-hour | Bimanual teleop-grade rig. |
| tiago-pro | mobile-manipulator | verify | $61 / robot-hour | Premium mobile manipulator; torso lift and force-torque wrists. |
| aloha2-pro | bimanual | verify | $74 / robot-hour | Second-generation bimanual rig, gravity-compensated, higher payload. |
| spot-arm | quadruped-manip | verify | $89 / robot-hour | Quadruped with a 6-DoF arm; uneven-floor manipulation cells. |
| g1-edu-pro | humanoid | verify | $148 / robot-hour | 37-DoF humanoid with dex3-1 hands; the verification-tier default. |
| g1-edu-plus | humanoid | verify | $176 / robot-hour | 43-DoF humanoid; limited cells. |
| Environment class | Example | Rate | Notes |
|---|---|---|---|
| bare | cell-a@v1.0 | $12 / env-hour | Bare bench cell, overhead camera. |
| standard | warehouse-std@v2.0 | $24 / env-hour | Standard catalogue scene with mocap. |
| replica | kitchen-std@v1.2 | $39 / env-hour | Full replica scene, mocap + force-torque. |
| instrumented-replica | surgical-replica@v3 | $85 / env-hour | High-instrumentation replica, high-speed capture. |
| Priority | Multiplier | Notes |
|---|---|---|
| burst | ×1.5 | Expedited queue: next available cell, both meters at 1.5×. |
| standard | ×1.0 | Default queue. |
| soak | ×0.6 | Off-peak, interruptible scheduling at 0.6×. |
| Adder | Rate | Notes |
|---|---|---|
| teleop-fallback | $18 / robot-hour | Human takeover on policy halt (Policy.endpoint fallback). |
| extra-instrumentation | $12 / env-hour | Additional mocap or high-speed capture beyond the environment's base kit. |
| Package | Price | Includes |
|---|---|---|
| rbr-manip-core@v3 suite run | $9,500 | 5 tasks × 300 episodes on g1-edu-pro@fw2.3; suite attestation (rbr:att: id) and the verification report. |
| Outcome contract — threshold() | monthly_cap_usd you set | Soak-tier iteration (e.g. nori-a3 pods) with automatic escalation to verification-tier hardware on threshold crossing; on_verified webhook; hard monthly cap. |
Metered per minute, displayed per hour. Hours in results are rounded to 0.1 h; billing uses exact minutes. A max_budget_usd on any run is a hard stop, metered live.
A worked quote: 600 humanoid episodes
What does it cost to run 600 episodes on g1-edu-pro in the
kitchen-std@v1.2 replica at standard priority?
episodes 600
est. minutes/ep 2.0 (task time + scripted reset)
robot-hours 600 × 2.0 min = 20.0 h
environment-hours 600 × 2.0 min = 20.0 h
robot meter 20.0 h × $148/robot-hour = $2,960
environment meter 20.0 h × $39/env-hour = $780
total = $3,740 queue ETA ~6h
That is exactly what the quote endpoint returns — the same shape ships in
/fixtures/quote.json and in the
POST /v1/quote examples:
import roborama # reads ROBORAMA_API_KEY from the environment
quote = roborama.quote(
robot="g1-edu-pro",
environment="kitchen-std",
episodes=600,
)
print(quote)
# {robot_hours: 20.0, env_hours: 20.0, usd: 3740, queue_eta: "6h"}For comparison, the canonical run on the product page was
auto-sized (episodes="auto(ci=0.95, moe=0.03)") and stopped at n=612 with
realized robot_hours=20.4, environment_hours=20.4, cost_usd=3,812 —
billing uses exact minutes; displayed hours are rounded to 0.1.
Outcome pricing: the threshold contract
If what you actually want to buy is "iterate until verified at a 0.99 success
rate (95% CI) on bin_pick@v1", buy that. A threshold() contract iterates
your checkpoint stream on soak-tier commodity pods (e.g. nori-a3,
single-digit dollars per robot-hour) and escalates to verification-tier
hardware like g1-edu-pro@fw2.3 only when the target is crossed. You set the
monthly_cap_usd; the on_verified webhook gates your release.
import roborama # reads ROBORAMA_API_KEY from the environment
contract = roborama.threshold(
policy_stream=roborama.PolicyStream(webhook="https://acme.ai/ckpt"),
target={"success_rate": 0.99, "ci": 0.95, "task": "bin_pick@v1"},
iterate_on="soak", # commodity tier, e.g. nori-a3 pods
escalate_to="g1-edu-pro@fw2.3", # verification tier on crossing
monthly_cap_usd=12_000,
)
contract.on_verified(webhook="https://acme.ai/release-gate")
print(contract.id, contract.status)Budgets are hard stops
Every run accepts max_budget_usd, metered live: the run stops at the cap and
keeps its partial result (with n and CI — partial data is still data). Account
budgets work the same way via roborama.budgets.set(monthly_usd=25_000, hard=True). See billing & budgets.
FAQ
What exactly am I billed for?
Two meters, per minute: robot-minutes while your policy occupies an embodiment (from first motor enable to final reset) and environment-minutes while it occupies a scene. Priority multiplies both (burst ×1.5, standard ×1.0, soak ×0.6). Adders apply only where listed on the rate card.
What do 600 humanoid episodes cost?
At standard priority, 600 episodes of g1-edu-pro in kitchen-std@v1.2 quote at 20.0 robot-hours × $148 plus 20.0 environment-hours × $39 = $3,740, with a queue ETA around 6 hours. Get a live number from POST /v1/quote — the quote shows both meters and expires after seven days.
What happens when a run hits max_budget_usd?
The hard stop fires mid-run: the run stops, you get a budget_exceeded error with the run id, and the partial result is kept — n, success rate, and the confidence interval for the episodes that did run.
Do I pay for failed episodes?
Yes — the meters measure occupancy, and failures occupy hardware too. Failed episodes ship the same artifacts (video, MCAP, replay spec) plus a failure cluster label, which is usually the most valuable data in the run. Whether we may train on your failures is your call: data.train_on_failures defaults to false.
What happens when your hardware fails mid-run?
You pay for physics, not for our hardware. Episodes invalidated by a facility fault — a cell_fault: hardware failure, calibration drift, a jammed reset fixture, power or network loss — are never billed, are excluded from your statistics, and are automatically requeued at no charge (or credited if the run's window closes first). Ambiguous cases are adjudicated from the episode's own MCAP within two business days, and defaults go in your favor. The full taxonomy is on Facility incidents & credits.
Is there a way to iterate cheaply before paying verification-tier rates?
Use the embodiment ladder. Iterate on soak-tier pods (nori-a3 at $7/robot-hour, or soak priority at ×0.6 on any robot) and reserve g1-edu-pro at $148/robot-hour for the runs that produce your verification report — or let a threshold contract manage the ladder automatically.
Do suite runs cost the same as ad-hoc runs?
The rbr-manip-core@v3 package (5 tasks × 300 episodes on g1-edu-pro@fw2.3, attestation and verification report included) is a flat $9,500 — priced at a small discount to the metered equivalent, in exchange for being scheduled as one block.