all_lessons/Robot Model Training/17 · Priceslesson 17 / 24

What an hour costs: prices and the ledger

Lesson 16 put every source in one unit, the number of your own hours that one hour of it replaces, and a rate does not choose a source: the twin arm and a 3 % simulator with hand labels each replace about one own hour. This lesson prices the hour. A motion hour is not a wage: it is a wall-clock hour divided by the share of it in which the robot moves and the demonstration is kept, and for a borrowed hour it is curation, filming and tracking, or compute and authoring spread over their use. A price divided by its rate is a cost per useful hour, and the ranking by that number is not the ranking by price. It is still the cost of the first hour, which lesson 18 takes apart.

The thesis, here
Buying a source compares two costs of one thing, an own-equivalent hour: what the source charges for it, its price per hour divided by its exchange rate, and what your own robot charges, the price of a kept motion hour. Both prices are built the same way, from labour, the share of the session in which the robot moves, discards, depreciation, compute and authoring, with every discard paid once, and the ranking by cost is not the ranking by price.
Linear position
Forced by: Measured on the Bench, an hour of another arm's demonstrations replaces a fraction of an hour of your own, an hour of labelled video a smaller fraction, an hour of simulation a fraction that depends on the gap, and a source that lacks a column the task needs replaces none of it, however many hours there are. Exchange rates put every source in one unit, but not in dollars. What does an hour of each source cost?
New idea: a source's cost per useful hour is the price of one attempted hour of it divided by its exchange rate, with every discard paid exactly once, and ranking by that number reverses, breaks or empties the ranking by price. The price of a motion hour is built from assumptions the reader can move, and the ranking depends on them.
Forces next: Prices and exchange rates together give a cost per useful hour for every source, the price of an hour divided by its rate, and the ranking they produce is not the ranking by price: footage, dearer to make than the other borrowed hours, becomes the dearest useful hour of any source that can teach the same task, a simulator is the cheapest useful hour only while its gap is small and sells no useful hour at any price once the gap is wide, and some columns cannot be bought from the sources that are cheap. But a cost per hour is the cost of the first hour. The thousandth hour of a source teaches the policy less than the first. How fast does the value of one more hour fall?
The plan
Seven moves. (1) Price an own motion hour, from a wage to dollars per kept hour. (2) Price the borrowed lines and pay every discard once. (3) Divide by the rate: the cost per useful hour and the break-even rate. (4) Rank the sources by price and by cost per useful hour, and reject two more rankings. (5) Move the assumptions and find the one that moves the ranking most. (6) Find the columns no cheap hour carries. (7) Ask what a cost per useful hour is the cost of.

1 · An own hour costs three times the wage

Lesson 16 left two sources with the same rate: an hour of the twin arm's demonstrations replaces 1.01 own hours, an hour of a 3 % simulator with hand-position labels 1.02. Which do you buy? The rates cannot say, because they count own hours and an own hour has no price. So price the unit first. An own-robot hour is a motion hour, 387.1 demonstrations of 9.3 s, and nobody is paid by the motion hour: a teleoperation session is paid by the wall-clock hour and the robot moves for part of it. Hire an operator and a robot cell for 1,000 hours:

stephoursdollars per hour
an operator ($40 an hour, fully loaded: w) and a robot cell ($18,000: H, written off over 4,000 working hours: L, so $4.5 an hour)1,000 wall-clock$44.5 (spend $44,500)
the robot moves in 40 % of them: the duty cycle d400 motion$111.25
10 % of the attempted demonstrations are thrown away: the discard share x360 kept$123.6

pown = (w + H / L) / (d (1 − x)) = ($40 + $4.5) / (0.4 × 0.9) = $123.6 per kept motion hour

That is 3.1 times the wage. Lesson 16's own curve counts kept demonstrations, so this is a price per kept hour. The hour is mostly labour (the cell is 10 % of a wall-clock hour): a cell twice as dear moves the price by a tenth, while the price is inversely proportional to the duty cycle. Every number is an assumption, because no source prints a dollar cost per collected hour. Published throughputs bound the shares:

assumptionvaluewhat published work bounds it with
duty cycle d0.4ALOHA (Zhao et al., 2023): 10 to 20 minutes of data per task in 30 to 60 minutes of wall-clock, because of resets and operator mistakes: 10/60 to 20/30, 17 to 67 %. UMI (Chi et al., 2024): 1,400 demonstrations in 12 person-hours, 116.7 an hour, which at 9.3 s each is 30 % of the hour in motion.
discard share x0.10RH20T (Fang et al., 2023): about ten successes to one failure, 9 %. DROID (Khazatsky et al., 2024): about 16,000 unsuccessful episodes beside 76,000 successful ones, 17 %.
operator w; cell H, life L$40 an hour; $18,000, 4,000 hoursALOHA prints $18k for its rig ($20k with add-ons), BridgeData V2 (Walke et al., 2023) about $4,000 for its robot setup, Mobile ALOHA (Fu et al., 2024) $32k. The wage and the life are ours.

Why a price per motion hour and not per something else? The price has to be in the unit of the rate, or dividing by the rate is not honest, and each alternative fails by a computation:

a price per…what goes wrong
calendar dayRT-1 (Brohan et al., 2022) made about 130,000 demonstrations with 13 robots in 17 months, 19.3 per robot per calendar day: an average that mixes the duty cycle, the discards and the days nobody collects.
demonstrationdemonstrations differ in length between sources: 16.6 s in DROID (350 hours in 76,000 episodes), 8 to 14 s in ALOHA, 22 to 75 s in Mobile ALOHA.
wall-clock hourit is what is paid, not what the policy receives: 2.5 wall-clock hours per motion hour here.
gigabyteDROID's release is 1.7 TB as RLDS and 8.7 TB as stereo MP4 video, two downloads of the same data, 5.1 times apart.
attempted motion hourthe unit of the rate: attempted layouts × 9.3 s / 3600 (lesson 16).

As in lesson 16, the Bench task is small: its whole own curve, 256 layouts, costs $81.7 at this price. Prices, ratios and the places where a ranking changes carry to larger tasks, totals do not, and every real value depends on the task, the policy and the year. Mobile ALOHA's seven tasks hold 2.9 hours of demonstration motion, DROID 350 hours, AgiBot World (2025) 2,976.

2 · The borrowed lines, and every discard paid once

Every other line is priced by the rule of the own hour: everything the line spends (labour, depreciation, review, tracking and GPU compute, authoring), divided by the hours that come out.

sourcewhat is paidwhat comes out$ per hour
twin arm, older armcuration (download, convert the action space, check): $15 per hour of data, 22.5 minutes of a $40 hourevery attempted hour15.00
footagea person at an ordinary pace ($25) and tracking compute ($2) per filmed hour: $27,000 per 1,000 hours800 attempted motion hours (duty 0.8)33.75
simulatorper scene: authoring 4 weeks × $4,000 = $16,000; 1,000 GPU-hours × $2.5 at 100 simulated seconds per second = $2,500; 2 own hours of calibration = $247100,000 simulated hours0.1875
force-bearing demonstrationsoperator, cell and a rig ($15,000, $3.75 an hour): $48,250 per 1,000 hours225 kept hours (duty 0.25, discards 10 %)214.4

The simulator is 85 % authoring and 13 % compute, so what matters is how many hours a scene serves, not the GPU. An insertion hour costs $197.8 without the rig and $214.4 with it, 1.73 times an own hour: the sensor is $16.7 of the $90.8 extra, and the rest is that insertion records 25 % of the session, not 40.

Count a discard once. Where the Bench can measure the discards, it has, and they are inside the rate: lesson 16's rate is per attempted hour, and footage keeps only 41 of 64 attempted layouts, the older arm 50. Price footage per kept hour instead, $33.75 / 0.64 = $52.73, and divide by that rate, and the failed demonstrations are paid for twice: $322.5 per useful hour against $206.4, 56 % too high. For your own robot the Bench cannot measure them, since its scripted expert never fails (256 of 256 kept), so the operator's slips are an assumption and sit in the price. The own hour is a kept hour; every other source is an attempted hour.

3 · Divide by the rate

Lesson 16's rate ρ is the number of own hours that one attempted hour of a source replaces, read at an operating point: here 8 own layouts and 64 attempted layouts of the source, on one draw of layouts, the table's. A source that charges p for an attempted hour and replaces ρ own hours with it sells useful hours, own-equivalent hours, at

c = p / ρ dollars per useful hour, none when ρ ≤ 0

and the alternative is to record them yourself at pown. Buying beats recording when p/ρ < pown, that is, when ρ is above the break-even rate p/pown. A simulator's gap is how far its arm model's link lengths are off; the labels are what the source records (joint angles, or hand positions as footage does).

sourceprice p, $ per hourrate ρcost per useful hourbuy it instead of recording your own? (the break-even rate it needs)
own robot (kept hour)123.61123.6the unit
twin arm15.001.0114.8yes: needs 0.12
older arm15.000.3839.6yes: needs 0.12
footage33.750.16206.4no: needs 0.27
simulator, gap 0.1 %0.18750.930.20yes: needs 0.0015
simulator, gap 0.3 %0.18750.830.23yes: needs 0.0015
simulator, gap 1 %0.18750.420.44yes: needs 0.0015
simulator, gap 3 %, joint-angle labels0.1875−0.12noneno: needs 0.0015, and each hour removes 0.12 of an own hour
simulator, gap 3 %, hand-position labels0.18751.020.18yes: needs 0.0015

Footage needs a rate of 0.27 and has 0.16: an attempted hour of it is worth $20.2 to you (ρ × pown) and costs $33.75, so every hour bought loses $13.5, while an hour of the older arm is worth $46.8 and costs $15. The rate carries the sampling interval of the success it was read from (1,000 test layouts; the own curve's noise is not in it), and so does the cost: footage costs $175 to $250 per useful hour, above $123.6 throughout. A table is one draw of layouts, so repeat it: on twelve other draws footage's rate runs 0.09 to 0.21 and a useful hour of it costs $161 to $373, the older arm's $37 to $69, against $123.6 for an own hour on all of them. Who costs more than whom does not depend on the draw.

4 · Two rankings that disagree

Rank the five sources of the layouts task by what the invoice says and by what a useful hour costs (simulator at a gap of 1 %):

rankingcheapest … dearest
by price per hour (most hours per dollar first)simulator $0.19 · twin $15 = older arm $15 · footage $33.75 · own robot $123.6
by cost per useful hoursimulator $0.44 · twin $14.8 · older arm $39.6 · own robot $123.6 · footage $206.4

Footage and your own hour swap. Footage is the dearest of the borrowed hours to make and still 3.7 times cheaper than an own hour; its useful hour is the dearest of the five, 1.7 times an own hour's, because its rate, 0.16, is below the 0.27 that its price needs. A tie breaks. The twin and the older arm both charge $15, and a useful hour of the older arm costs 2.7 times as much.

The cheapest hour can sell nothing. The simulator is the cheapest hour by price at every gap, and by cost per useful hour at $0.20, $0.23 and $0.44 for gaps of 0.1, 0.3 and 1 %. At 3 % with joint-angle labels its rate is −0.12: an hour of it takes away 0.12 of an own hour, and no price makes p/ρ a price when ρ ≤ 0. The rate crosses zero between gaps of 1.5 % and 2 % (0.17 and −0.11, measured like the table's cells, the same signs on twelve other draws), a window half a point wide. The simulator's price is so low that the twin's useful hour is the cheaper only once the simulator's rate falls below 0.013, so the simulator does not slide down the ranking, it drops out of it. The same 3 % gap with hand-position labels costs $0.18 per useful hour (lessons 8 and 11: the label space decides).

Two more rankings fail by a computed counterexample:

a ranking by…what it ignoresa computed counterexample
rate alonethe pricethe pair that opened §1, the twin (1.01) and the 3 % simulator with hand labels (1.02), rank together, and their useful hours cost $14.8 and $0.18, a factor 80
gigabytesthe hourone set of hours has two sizes, 5.1 times apart (§1)
Road not taken · rank by what the hour costs to make
The price per hour is the number on the invoice, every source has one, and a first estimate uses it. It ranks footage cheaper than your own hour, cannot tell the twin from the older arm, and makes the cheapest hour of the table, the simulator at a wide gap, a purchase of nothing. It returns in lesson 18 as the denominator of the marginal value per dollar, where it is divided by something that falls.

The widget

Price the hours, then divide by the rate
Top: the five sources of the layouts task ranked twice on log axes in dollars, cheapest at the top, a longer bar being a dearer hour: left by price per motion hour (own: a kept hour; others: attempted hours), right by cost per useful hour, price ÷ rate. A line joins each source's two places (▲ ▼ on a narrow screen); a hatched bar sells no useful hour. Bottom: the two columns cheap hours do not carry, with each source's price per hour and best success. The first slider is the own robot's duty cycle; the selectors pick the simulator's gap and the operating point (own + attempted layouts) at which the rates are read.
own hour, $ per kept hour
-
footage, price per hour
-
footage, cost per useful hour
-
footage, 95 % interval
-
older arm, cost per useful hour
-
twin arm, cost per useful hour
-
simulator, cost per useful hour
-
cheapest useful hour
-
dearest useful hour
-
duty cycle where footage = own
-
assumption nearest a reversal
-
footage, discard counted twice
-
Show the core JS
PL.price = function (key, a) {
  var arm = a.arm_cost / a.arm_life_h, own = (a.wage_per_h + arm) / (a.duty * (1 - a.discard));
  switch (key) {
    case 'own': return own;
    case 'video': return (a.video_wage_per_h + a.track_per_h) / a.video_duty;
    case 'sim': return a.gpu_per_h / a.sim_speed + a.scene_weeks * a.week_cost / a.scene_uses_h + a.calib_h * own / a.scene_uses_h;
...
PL.cost = function (p, rho) { return rho > 0 ? p / rho : Infinity; };
...
var moved = function (key, d, g) { t = Object.assign({}, a); t[key] = d > 0 ? a[key] * g : a[key] / g; return t[key] <= (PL.LIMIT[key] || Infinity) && PL.rank(t, rho) !== ref; };
for (it = 1; it <= 150 && !hi; it++) { f = Math.pow(10, 3 * it / 150); if (moved(k, dir, f)) hi = f; else lo = f; }

What to try. Leave the defaults: duty 0.40, wage $40, 10 % discarded, GPU $2.5, 4 weeks of authoring, a simulator off by 1 %, 8 own and 64 attempted layouts. The own hour is $123.6; footage is $33.75 an hour and $206.4 per useful hour (interval $175 to $250), the dearest of the five; the older arm is $39.6, the twin $14.8, the simulator $0.44; counting footage's discard twice shows $322.5. Pick the 3 % simulator with joint labels: its bar is hatched and the cost reads none; with hand labels it reads $0.18. Slide the duty cycle down. The readout says the bars cross at 0.24; at 0.17, the bottom of ALOHA's range, the own hour costs $290.8 and is the dearest; at 0.67 it costs $73.8; at 0.06, one step from the left end and close to the 6.2 % of lesson 7's layouts task (§5), $824.1. Return to 0.4 and raise the GPU price tenfold, to $25, and authoring to 16 weeks: the simulator's useful hour goes from $0.44 to $2.11, still 7.0 times below the twin, and no bar changes place. Set the operating point to 8 own + 16 attempted and then 8 + 256: the older arm's useful hour goes from $19.7 to $88.7. At 32 own + 64 attempted footage's rate is 0.01 and a useful hour of it costs $3,342. The last readout names the assumption nearest to reversing a pair, and the factor.

5 · What the ranking depends on

Footage is the dearest useful hour only while your own hour is cheap enough. Your own hour costs what footage's useful hour costs at a duty cycle

d* = (w + H / L) / ((1 − x) · cfootage) = $44.5 / (0.9 × $206.4) = 0.24

Below it your own hour is the dearer and the two rankings agree on the pair. ALOHA's recorded fraction runs from 17 to 67 %, a factor 4, and the threshold, 24 %, is inside it. Which assumption moves the ranking most? For each one, scan its value up and down until a pair of the cost ranking reverses, the rates held where the table has them:

assumption, moved alonedefaultpair reverses atfactorwhich pair
duty cycle of the own robot0.40.24÷ 1.67own robot, footage
operator wage$40$69.8× 1.75own robot, footage
footage wage$25$14.2÷ 1.76footage, own robot
curation of the older arm$15$46.8× 3.12older arm, own robot
own discards0.100.46× 4.61own robot, footage
robot cell$18,000$137,248× 7.62own robot, footage
authoring weeks per scene4156× 39simulator (1 %), twin
hours a scene serves100,0002,607÷ 38simulator (1 %), twin
GPU price$2.5$610× 244simulator (1 %), twin

The duty cycle needs the smallest move, 1.67, and it is the only one of the three nearest assumptions with a published range, which spans the threshold; the two wages have none. The hardware is far from any change, and so is the simulator: each of its assumptions can move by a factor of 38 or more before it changes place, so its danger is its rate and not its price.

A session that rebuilds the scene for every demonstration records less than ALOHA's. Lesson 7 assumed 20 s to put the cup back and 120 s to rebuild the row: 9.3 s of motion in 149.3 s, a duty cycle of 6.2 %. At that duty cycle the own hour costs $793.8, footage is the cheaper useful hour, and the older arm's is 20 times cheaper.

6 · The columns the cheap hours do not carry

Force. In lesson 10's peg with a millimetre of clearance, demonstrations without force channels reach between 0.515 and 0.665 whatever their number (0.630 at 40); with force channels, 0.825 from one and 0.985 from ten. All the force-less hours together are worth less than one force-bearing demonstration, so however many are bought they supply almost no useful hour, and the cost per useful hour, p/ρ, grows without limit: none. Forty force-less insertions, at $197.8 an hour, cost $14.5 and reach 0.630; ten force-bearing ones cost $3.94 and reach 0.985. The column is cheaper from the dearer hour. A borrowed hour does not help: the sources of this lesson record images and positions, and DROID's listed features have no force or torque stream.

Recovery. A calm demonstration contains no displaced states (lesson 2), so calm hours do not supply recovery. A correction hour is a supervisor and the cell with the robot moving 50 % of the time: $89. Own calm demonstrations stay between 0.55 and 0.635 from 10 to 80 of them, and 80 cost $25.5; 20 calm demonstrations and three rounds of corrections (lesson 3), 15 supervised runs, reach 0.96 for $9.47 (the calm ones at $123.6 an hour, 0.035 hours of corrections at $89). AgiBot World (2025) reports that failure-recovery trajectories are about one percent of its data. The price of such a column is the price of an hour at the one place that has it, and before you can buy it you need an instrument, a force rig or a policy to run, which no price per hour includes; lesson 21 prices that.

7 · The cost of the first hour

The rate in the ledger is an average over the hours bought, (Neq − n) / m (Neq: the own layouts that give the same success, n the own layouts you hold, lesson 16), and it changes with the number m of attempted layouts. Set the operating point to 16, 64 and 256 attempted layouts: the older arm's rate is 0.76, 0.38 and 0.17, and its useful hour costs $19.7, $39.6 and $88.7. The twin's rate stays near one (1.28, 1.01, 0.93), but an own-equivalent hour is not a constant amount of success, because the own curve flattens. Twin arm, 8 own layouts, in blocks of attempted layouts:

blockcost of the blocksuccess gaineddollars per point of success
0 to 16$0.6229.9 points$0.021
16 to 64$1.8630.5 points$0.061
64 to 256$7.4416.8 points$0.443

The last 192 layouts cost 21 times as much per point as the first 16 (14 to 26 on twelve other draws), from a source that charges $15 an hour throughout and whose rate never fell below 0.93. A cost per useful hour is the cost of the first hours of a source at one operating point.

What this lesson did not do
The prices are assumptions, labelled as such: no source prints a dollar cost per collected hour, and the ledger prices a session, not a programme (no rent, no engineers, no evaluation, which lesson 15 found takes more robot time than training). Every attempted demonstration is counted as 9.3 s, as in lesson 16, while the older arm's attempts average 10.2 s and footage's 9.0, which moves a cost by a tenth and no ranking. The rates are averages at an operating point and not marginal values (lesson 18); how long an hour keeps its value (lesson 19), the instrument a column needs (lesson 21), how many recorded hours are distinct (lesson 22) and the cost of moving the bits (lesson 23) are not in the price.

Common mistakes / failure modes

"price an own hour at the operator's wage"
$40 of labour is $123.6 per kept motion hour, 3.1 times as much, once waiting and discards are charged (§1).
"footage is cheaper than recording my own, so buy footage"
$33.75 against $123.6 an hour, but $206.4 against $123.6 per useful hour (§3, §4).
"charge the discards in the price and read the rate per attempted hour"
The failures are paid twice: $322.5 against $206.4 per useful hour of footage (§2).
"enough cheap hours will buy any column"
Forty force-less insertions, $14.5, reach 0.630; ten with force, $3.94, reach 0.985 (§6).
"the ranking is a fact about the sources"
Footage and your own hour swap at a duty cycle of 0.24, inside ALOHA's 17 to 67 % (§5).
"a cost per useful hour is what the next hour costs"
The twin's last 192 layouts cost 21 times as much per point as its first 16 (§7).

Checkpoint exercise

Try it
An operator costs $50 an hour and a robot cell $5 an hour of use; the robot moves for half of every session and 20 % of the attempted demonstrations are thrown away. A borrowed source charges $20 for an attempted hour, loses 20 % of its attempts as well, and has a rate of 0.25 per attempted hour. (a) What does an own kept motion hour cost? (b) What does a useful hour of the source cost? (c) What is the source's break-even rate, and do you buy? (d) At what duty cycle would your own hour cost the same as the source's useful hour? Answer: (a) (50 + 5) / (0.5 × 0.8) = $137.5. (b) 20 / 0.25 = $80, the source's discards being in its rate already. (c) 20 / 137.5 = 0.145, and the rate of 0.25 is above it, so you buy: $80 against $137.5 per useful hour. Pricing the source per kept hour as well would charge its discards twice, $100, still below. (d) 55 / (0.8 × 80) = 0.859: only a robot that moves in more than 86 % of its session beats the source.

Where this points next

A price per motion hour, divided by the exchange rate, gives a cost per useful hour: $14.8 for the twin, $39.6 for the older arm, $0.20 to $0.44 for the simulator while its gap is 1 % or less, $123.6 for your own hour and $206.4 for footage, which costs less to make than an own hour and more to use. The 3 % simulator with joint labels sells nothing at any price, and calm and force-less hours cannot buy recovery or force. But each of these is the cost of the first hours at one operating point: the older arm's useful hour costs $19.7 after 16 attempted layouts and $88.7 after 256, and the twin's last 192 layouts cost 21 times as much per point of success as its first 16. The thousandth hour of a source teaches the policy less than the first. How fast does the value of one more hour fall?

Takeaway
A price per motion hour is what a stretch of work spends divided by the hours that come out: your own robot's $44.5 a wall-clock hour becomes $123.6 per kept motion hour once the robot's idle time and the discards are charged, and each discard is charged once, in the price when the Bench cannot measure it and in the rate when it can. A price divided by the exchange rate is the cost of a useful hour, and buying beats recording your own when the rate is above the source's price over the own price. The ranking by that number is not the ranking by price: footage is cheaper to make ($33.75 against $123.6) and dearer to use ($206.4), the 3 % joint-label simulator is the cheapest hour and sells nothing, and the twin and the older arm tie by price and differ 2.7 times in cost. The duty cycle moves the ranking most: below 0.24 footage wins. Force and recovery cannot be bought from force-less and calm hours at any price. And all of it prices first hours: the twin's last 192 layouts cost 21 times as much per point as its first 16.

Interview prompts

Companion reads: Lesson 11 · The simulation gap (a wrong arm model turns a cheap hour into none), Lesson 10 · What cameras cannot see (the force column), Valuation · 09 Sensitivity and margin of safety (one assumption at a time; in Chinese) and Financials · 22 Cyclicals and heavy assets (utilisation and depreciation; in Chinese).