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