
We counted 72,393 public LeRobot datasets and sampled 700 of them. What actually drives the value of robot demonstration data, and why episode count tells you almost nothing.
What you need to know
- •Episode count is the cheapest number to publish and the weakest predictor of value. A dataset that clears a 50 episode minimum can hold under seven minutes of robot motion.
- •We counted 72,393 LeRobot datasets on the Hugging Face Hub on 23 August 2026 and sampled 700. The median holds 10 episodes, which at the 18.7 second median episode is about three minutes of motion; 71.9 percent sit below 50 episodes.
- •Coverage beats volume. Generalisation follows a power law in the number of scenes and objects, while extra demonstrations inside an already covered scene do almost nothing.
- •Curation beats collection at the margin: re-weighting a corpus bought 38 percent and quality filtering bought 5 to 10 percent, neither needing a new recording.
- •There is no public price index. 97.4 percent of public LeRobot datasets ship Apache-2.0, a list price of zero, so value shows up as download concentration instead of money.
- •Compute is not the expensive part. A fine-tuning run here costs 1 to 12 USD. The data behind it costs hours of a person's attention.
Episode count is the number everyone quotes and the one that tells you least
Every listing leads with it. Two hundred episodes. Five hundred episodes. It is the first field in the metadata, it is free to compute, and it sounds like a quantity of something. Then you download the thing and discover that an episode is not a fixed unit. It is however long the operator held the record button, and across the public corpus that is a wildly variable number.
Take a real published dataset. lerobot/svla_so101_pickplace is a reference pick and place set from the LeRobot team. Its metadata says 50 episodes, which clears the 50 episode floor that GR00T N1.7, Pi0.5 and ACT all require here. It also says 11,939 frames at 30 fps. Do the division and the whole dataset is six minutes and 38 seconds of robot motion, under eight seconds per episode.
| Field in meta/info.json | Value | What it means in practice |
|---|---|---|
| total_episodes | 50 | Clears the floor for GR00T N1.7, Pi0.5 and ACT |
| total_frames | 11,939 | The real unit of training signal |
| fps | 30 | Frames divided by fps gives seconds |
| Derived: total duration | 6 min 38 s | The entire dataset, end to end |
| Derived: mean episode | 7.96 s | One short reach, grasp and place |
| robot_type | so100_follower | The repo name says so101. Read metadata, not titles |
| codebase_version | v3.0 | Needs conversion before a GR00T run |
The per-model minimums here (50 episodes for GR00T N1.7, GR00T N1.5, Pi0.5 and ACT, 30 for SmolVLA) are the point below which the trainer has nothing to chew on. They are not the point at which a policy starts working on your bench. See train your first policy for what a first run actually tells you.
What the public market for robot data actually looks like
Before arguing about what a dataset should cost, it helps to know what is on the shelf. So we counted. On 23 August 2026 we paged the Hugging Face datasets API for everything tagged LeRobot, drew a random sample of 700 repositories with a fixed seed, and pulled each one's meta/info.json. Anyone can rerun this. It is two API calls and a loop.
# 1. count every LeRobot-tagged dataset on the Hub (follow the Link: rel=next header)
curl -s "https://huggingface.co/api/datasets?filter=LeRobot&limit=1000" -D headers.txt \
| python3 -c "import json,sys; print(len(json.load(sys.stdin)))"
grep -i '^link:' headers.txt # -> cursor for the next page
# 2. read one dataset's metadata without downloading a byte of video
curl -sL "https://huggingface.co/datasets/lerobot/svla_so101_pickplace/resolve/main/meta/info.json" \
| python3 -c "
import json,sys
d = json.load(sys.stdin)
cams = [k for k,v in d['features'].items() if v['dtype'] in ('video','image')]
print(d['total_episodes'], 'episodes |', round(d['total_frames']/d['fps']/60,1), 'min |',
d['fps'], 'fps |', d['codebase_version'], '|', d['robot_type'])
print('cameras:', cams)
"| Measured on 700 random LeRobot datasets, 23 Aug 2026 | Result |
|---|---|
| Datasets tagged LeRobot on the Hub | 72,393 |
| Repos with a readable meta/info.json | 679 of 700. 14 gave 404, 7 were gated |
| Median episodes per dataset | 10 (mean 89.8, max 5,916) |
| Below 30 episodes (the SmolVLA floor) | 65.1 percent |
| Below 50 episodes (the GR00T, Pi0.5, ACT floor) | 71.9 percent |
| Zero episodes (metadata present, no data) | 10.5 percent |
| Median episode length | 18.7 s (p10 6.7 s, p90 57.4 s) |
| Total robot time across the 679 readable repos | 220.8 hours, mean 19.5 minutes each |
| Format version | v3.0 69.5 percent, v2.1 28.1 percent, v2.0 2.4 percent |
| Has a wrist or hand camera key | 48.0 percent (3.2 percent have no camera at all) |
| Licence across all 72,393 | Apache-2.0 97.4 percent, none declared 1.8 percent |
Two things fall out. First, the public corpus is a long tail of tiny recordings: the median contribution is ten episodes, about three minutes of motion at the median episode length, one person trying the record a dataset tutorial once and pushing the result. The 19.5 minutes in the table above is a mean, and a handful of large repositories set it. Second, value is concentrated: seven datasets out of 679 hold nearly half the episodes in the sample.

Demand concentrates the same way. Across all 72,393 repositories the median 30 day download count is 18, the 99th percentile is 521, and the top ten repositories alone absorb 49.3 percent of every download. Those ten are almost entirely re-hosted conversions of the canonical corpora: Language-Table, DROID, BridgeData V2 and the RT-1 fractal data. Meanwhile 97.8 percent of public LeRobot datasets have never received a single like. The market is not thin, it is bimodal.
Six properties that actually move the price
1. Coverage, not volume
The clearest published result is Data Scaling Laws in Imitation Learning for Robotic Manipulation (Lin et al., arXiv 2410.18647, October 2024, revised through June 2026). They collected over 40,000 demonstrations and ran more than 15,000 real world rollouts to answer one question: what do you get for the next demonstration? Generalisation follows a roughly power law relationship with the number of environments and objects, and once demonstrations per environment cross a threshold, more of them have minimal effect. Their recipe is 32 environments, each with a unique object, 50 demonstrations each.
- That is 1,600 demonstrations, roughly 8.3 hours of motion at the 18.7 second median episode we measured.
- It is also 32 distinct scene setups, the part that costs a day of somebody's life to arrange.
- A 1,600 episode dataset shot in one corner of one room is worth far less than 400 episodes across 32 setups, and no metadata field distinguishes them.
- This is the mechanism behind a policy that only works in one setup: the dataset priced the wrong axis.
2. Yield, and whether the failures were kept
The DROID paper is unusually honest here. The released dataset is 76,000 successful trajectories, 350 hours, 564 scenes, 50 collectors, 18 replicated stations across 13 institutions, twelve months. It also reports roughly 16,000 further trajectories labelled not successful. That is a yield near 82 percent, so the real collection cost is about 1.2 times what the episode count suggests.
Discarded failures are a cost. Labelled failures are an asset. RoboMIND ships 107,000 trajectories across 479 tasks and deliberately includes 5,000 failure demonstrations, each with a recorded cause. A seller who kept and annotated their failures earns a genuine premium. Most of the public corpus deleted them.
3. Task language and metadata hygiene
This is where public data quietly loses its value. When Hugging Face built SmolVLA they went shopping in the same public Hub corpus we measured, and the SmolVLA paper records what they came back with: 481 community datasets, 22.9K episodes, 10.6M frames, filtered by embodiment type, episode count, overall data quality and frame coverage. The paper does not say how many repositories they started from, only that 481 survived the filter.
Then they repaired what they took. The paper reports placeholders such as task desc, vague commands such as Hold or Up, or no instruction at all, so they regenerated task descriptions with Qwen2.5-VL-3B-Instruct and normalised camera viewpoints. The LeRobot community datasets post (11 May 2025) documents the same failure modes and asks for 25 to 50 character task strings such as "Pick the yellow lego block and put it in the box".
We measured 69.5 percent of sampled datasets on LeRobotDataset v3.0. GR00T N1.7 and GR00T N1.5 on this platform require v2.0 or v2.1, and a v3.0 dataset crashes the GR00T loader outright. So most of what you find on the Hub today needs converting down before a GR00T run, and it fails after you have already rented the GPU. Check codebase_version in meta/info.json first, and see dataset rejected: v3 format for the fix. Pi0.5, SmolVLA and ACT want v3.0, so one dataset can be correct for one model and unusable for another.
4. Sensor layout
48.0 percent of sampled datasets have a wrist or hand mounted camera key. That single bit is worth more than a hundred extra episodes on any task where the gripper closes on something a fixed third person view cannot see. 3.2 percent had no camera stream at all, which makes them useless for every vision-language-action model on this platform.
- Two cameras is the modal layout, usually one overhead or front view plus a wrist view. 640x480 dominates; lighting and focus constrain quality long before resolution does.
- Camera keys are named by whoever recorded them. We saw
front,top,wrist,side,laptop,camera1andcam_highin one corpus. A key namedlaptopsays nothing about where the lens pointed. - Camera order has to survive fine-tuning and deployment. Swap two keys between recording and inference and the policy degrades without ever raising an error.
5. Provenance and licence
97.4 percent of all 72,393 public LeRobot datasets are Apache-2.0. That is not 72,000 deliberate licensing decisions, it is the default the tooling writes into the dataset card. 1.8 percent declare no licence at all, which leaves you no grant of rights to point at if anyone asks. The standard buyers apply here is old and boring: Datasheets for Datasets (Gebru et al.) argues every dataset should document motivation, composition, collection process and recommended uses, and the Hugging Face dataset card is the practical implementation of that idea.
6. Format, version, and whether it loads at all
A LeRobot dataset is not a folder of videos. Per the v3.0 format documentation it is Parquet shards for the tabular signals, MP4 shards per camera, and a metadata layer (meta/info.json, meta/stats.json, meta/tasks.jsonl, meta/episodes/) that reconstructs episode boundaries from byte offsets rather than filenames. The community post warns that deleting episode files without updating metadata breaks sequential consistency. When that happens the dataset does not load, and its episode count is worth exactly nothing.
| Property | How to check it in under a minute | Weight in a buying decision |
|---|---|---|
| Scene and object coverage | Watch 10 random episodes end to end | Highest. The axis the scaling law rewards |
| Wrist camera present | features keys in meta/info.json | High for any grasping task |
| Task language quality | meta/tasks.jsonl | High. Placeholders mean nobody checked |
| Yield and kept failures | Dataset card and failure labels | High if documented, unmeasurable if not |
| Format version | codebase_version | Blocking. v3.0 will not load in GR00T |
| Licence | Dataset card | Blocking for commercial use |
| Episode count | total_episodes | Lowest. A floor check, nothing more |
A due diligence pass you can run in twenty minutes
- 1Read the metadata before the media
meta/info.json answers episodes, frames, fps, robot type, format version and camera layout. If it 404s, as for 2 percent of our sample, stop here.
bashREPO=youliangtan/so101-table-cleanup curl -sL "https://huggingface.co/datasets/$REPO/resolve/main/meta/info.json" | python3 -m json.tool | head -20 - 2Convert episodes into seconds
total_frames divided by fps is the only honest measure of how much robot motion you are buying. Compare it against the 18.7 second median before accepting a per-episode price.
bashcurl -sL "https://huggingface.co/datasets/$REPO/resolve/main/meta/info.json" \ | python3 -c "import json,sys;d=json.load(sys.stdin);print(round(d['total_frames']/d['fps']/60,1),'minutes over',d['total_episodes'],'episodes')" - 3Read the task strings
Placeholders like 'task desc', 'Hold' or 'Up' are the strongest single signal that nobody reviewed this data.
bashcurl -sL "https://huggingface.co/datasets/$REPO/resolve/main/meta/tasks.jsonl" | head -20 - 4Watch ten random episodes, not the first ten
The opening episodes are always the operator's best work. Sample the middle and the end, looking for scene changes, lighting changes and object variety. That is what the power law pays for.
- 5Check the format against your target model
v2.0 or v2.1 for GR00T. v3.0 for Pi0.5, SmolVLA and ACT. Conversion is a documented script, but price in the hour.
bash# migrate a v2.1 dataset up to v3.0, per the LeRobot v3 docs python -m lerobot.scripts.convert_dataset_v21_to_v30 --repo-id=<HF_USER/DATASET_ID> - 6Buy the cheapest answer first
Train ACT before anything expensive. ACT is roughly 80 M parameters, runs on a 24 GB card and costs about 1 to 3 USD per run here. If ACT cannot fit the dataset, no 3 B parameter VLA will rescue it. The same job runs from a terminal through the CLI.
bash# stream the candidate from the Hub instead of downloading it first # (flags per the LeRobot v3.0 dataset docs) lerobot-train --dataset.repo_id=<HF_USER/DATASET_ID> --dataset.streaming=true
Putting a number on it
There is no public price index for robot demonstration data, and anyone quoting one is quoting a survey rather than a market. What exists is a cost stack you can compute yourself. The honest way to price a dataset is to work out what an equivalent recording would cost you, then discount for the coverage you would not have arranged.
| Cost line | What sets it | Anchor you can verify |
|---|---|---|
| Operator time | Hours of robot motion divided by yield | At an 18.7 s median episode, one hour of motion is about 192 episodes. DROID's yield was near 82 percent, so budget 1.2x |
| Setup and scene changes | Distinct environments, not episodes | The scaling law recipe is 32 environments with a unique object each |
| Hardware | One arm per recording station | An SO-100 is roughly 110 to 150 EUR in parts. DROID replicated its station 18 times |
| Curation and repair | Task strings, camera naming, bad episodes | SmolVLA kept 481 datasets and still regenerated every task description |
| Format conversion | One script run plus verification | Blocking for GR00T when the source is v3.0 |
| Training run | The GPU tier the model needs | 1 to 3 USD on the 24 GB tier for SmolVLA or ACT, 4 to 12 USD on the A100 or H100 tier for GR00T and Pi0.5 |
| Evaluation | Real rollouts on a real arm | DROID ran the arm to label 16,000 trajectories as failures. Routinely underestimated |
Compare the bottom rows with the top ones. Compute is 1 to 12 USD. Human attention is hours. That ratio is the whole argument: the cost of a training run has fallen far enough that it is no longer worth optimising, and the dataset is. A bad dataset does not cost you 4 USD, it costs you the day you spend proving it was bad.
- The task is genuinely generic, like tabletop pick and place, and a canonical corpus already covers it.
- You want pre-training breadth rather than task specificity, which is what Open X-Embodiment and DROID are for.
- You do not own an arm yet and want to watch a training run finish before committing to hardware.
- The seller kept and labelled their failures, which is expensive to reproduce.
- Your gripper, camera placement and calibration will not match the seller's, and the mismatch shows up as hesitation.
- Coverage is the thing you are buying and the one property no metadata field exposes. You have to watch the video.
- Format and fps must match your target model, and 20.8 percent of sampled datasets record at something other than 30 fps.
- For a specific task on a specific bench, 50 episodes you recorded beat 5,000 episodes of somebody else's kitchen.

Evaluating a candidate by hand costs nothing but time. You script against the Hugging Face Hub API and the LeRobot format directly.
- 1Enumerate candidates
Page the datasets API with the LeRobot filter and follow the Link header until it stops handing you a next cursor.
bashcurl -s "https://huggingface.co/api/datasets?filter=LeRobot&limit=1000&full=true" -D h.txt -o page.json - 2Pull metadata in parallel
Fetch meta/info.json for each candidate. Expect about 2 percent to 404 and about 1 percent to sit behind a 401.
bashxargs -P 16 -I{} curl -sL -o "info/{}.json" \ "https://huggingface.co/datasets/{}/resolve/main/meta/info.json" < ids.txt - 3Install LeRobot and load it
Metadata can lie. Loading is the only proof that the Parquet and MP4 shards line up with the episode offsets.
bashpip install lerobot python -c "from lerobot.datasets import LeRobotDataset; d=LeRobotDataset('lerobot/svla_so101_pickplace'); print(len(d), d[0].keys())" - 4Rent a GPU and train a baseline
You provision the instance, install CUDA and the trainer, upload the dataset and babysit the run. Budget the setup time, not just GPU hours.
This is the right path if you are building a curation pipeline or want the audit trail. It produced the numbers in this article.
The same evaluation with the provisioning removed. The dataset directory lists public datasets, and a training job can also take a Hugging Face repo id directly or a dataset on your own machine, so you can point a run at a candidate without downloading it first.
- Pick model and dataset in the training form. The backend rents a GPU on a spot market sized by the VRAM the model needs, runs the trainer and writes checkpoints to object storage.
- A run on the 24 GB tier (SmolVLA, ACT) takes 2 to 5 hours at 1 to 3 USD. The A100 or H100 tier (GR00T N1.7, GR00T N1.5, Pi0.5) takes 3 to 6 hours at 4 to 12 USD.
- Inference pods auto-provision and carry an idle watchdog, so a forgotten evaluation pod destroys itself rather than billing quietly.
- The same operations reach a terminal through the CLI and AI agents through the MCP server, which is how you batch candidate datasets against one model.
- To compare models rather than datasets, the arena holds 85 VLA models and 332 benchmark results, each linked to its source.
What this does not do is tell you whether a dataset is good. There is no automated quality score here. Scoring is still your twenty minutes of watching video. What the platform removes is the four hours between deciding to test a dataset and seeing a training step counter move.
Where this gets you nothing
Three honest limits, because a pricing article that only lists upsides is a brochure.
- There is no marketplace here. The directory lists public datasets. No auction, no escrow, no ratings, no price discovery, no payment rail. This platform hosts and trains on demonstration data, it does not clear transactions for it.
- No automated quality score exists, here or anywhere. The curation research (DemInf, SCIZOR) scores demonstrations, or individual state-action pairs, inside a dataset you already hold. Nobody has a credible cross-dataset metric to put in a listing.
- Evaluating over the public internet will misprice a dataset. The control loop is 20 ms per action step for ACT and 485 ms for Pi0.5. Add internet round trips and a good policy looks hesitant. Remote inference suits slow pick and place and misleads on anything reactive. Read inference latency before blaming the data.
- Our measurement is a snapshot. 72,393 datasets on 23 August 2026, sample size 700. The Hub grows daily and the distribution will drift. The method is printed above so you can rerun it rather than cite us.
If you are on the selling side
The shape of that corpus is an opportunity. The median public dataset is ten episodes shot once in one room, while demand concentrates on a handful of well documented corpora. Almost nothing separates the two ends except work that costs discipline rather than money.
- Vary the scene. Thirty two setups beats three thousand episodes, and the scaling law paper put a number on it.
- Write real task strings: 25 to 50 characters, an actual verb, an actual object. The cheapest value you will ever add.
- Mount a wrist camera. Half the corpus does not, and it is the view that decides whether the end effector closes on the right thing.
- Keep your failures and label why they failed, the way RoboMIND did with 5,000 of them.
- Record at 30 fps unless you have a reason not to. Mixed frame rates make a merged corpus unusable.
- Ship a real dataset card and a licence you actually chose. See SO-100 data collection and the desktop client that writes the format for you.
If you would rather be paid for the recording than for the artefact, that is a different market with different economics. RoboTurk showed the shape of it in 2018: 137.5 hours of manipulation data and over 2,200 successful demonstrations gathered in 22 hours of wall clock system time, because remote operators work in parallel. Operator work runs the same way here, in the browser, against real hardware.

Record the dataset you wish you could buy
The median public LeRobot dataset is ten episodes shot once in one room. The desktop client records LeRobot-format datasets straight from a teleop session: episodes, camera streams, joint states, in the format the trainers accept.
Get the desktop clientQuestions buyers actually ask
How many episodes do I actually need?▾
For the trainer to accept the job here: 30 for SmolVLA, 50 for GR00T N1.7, GR00T N1.5, Pi0.5 and ACT. For a policy that works, the evidence points at coverage rather than count. Data Scaling Laws in Imitation Learning (arXiv 2410.18647) recommends 32 environments with a unique object each and 50 demonstrations per environment, and finds extra demonstrations inside an already covered environment have minimal effect.
Is a 5,000 episode dataset worth 100 times a 50 episode dataset?▾
Almost never. Episode length varies by an order of magnitude in the public corpus, where we measured a p10 of 6.7 seconds against a p90 of 57.4 seconds, and the scaling curve flattens once a scene is covered. Convert episodes into seconds of motion first, then ask how many distinct scenes those seconds cover. A 5,000 episode dataset shot at one bench can be worth less than 400 episodes across 32 setups.
What is public robot demonstration data actually priced at?▾
At zero, for the public corpus. Of the 72,393 LeRobot-tagged datasets we counted on the Hugging Face Hub on 23 August 2026, 97.4 percent carry Apache-2.0 and 1.8 percent declare no licence at all. There is no public price index. Value shows up as download concentration: the top ten repositories absorb 49.3 percent of all downloads while the median dataset sees 18.
Can I buy DROID or Open X-Embodiment and skip recording?▾
For pre-training breadth, yes, which is what those corpora are for. For a specific task on your own arm, no. DROID is 76,000 trajectories from Franka Panda stations with Robotiq grippers and ZED cameras. An SO-100 has different kinematics, gripper and camera placement. Large corpora buy a better starting point, not a finished policy.
Does curation really beat collecting more data?▾
At the margin it often does. Re-Mix (arXiv 2408.14037) showed learned domain weights over Open X-Embodiment beating uniform weighting by 38 percent and human-selected weights by 32 percent. DemInf (arXiv 2502.08623) filtered by estimated demonstration quality for 5 to 10 percent on RoboMimic. SCIZOR (arXiv 2505.22626) removed suboptimal and redundant state-action pairs for an average 15.4 percent improvement. None of those needed a single new recording.
What is the fastest red flag when checking a listing?▾
The task strings. Open meta/tasks.jsonl. If you find 'task desc', 'Hold', 'Up' or an empty instruction, nobody reviewed this dataset before publishing it, and everything else in it is likely equally unchecked. The SmolVLA team hit exactly this and had to regenerate task descriptions with a vision-language model.
Related reading
For the recording side, see how to collect high quality VLA training data. For what a large public corpus is made of, see the DROID breakdown and Open X-Embodiment. To pick a model for your data, ACT against SmolVLA is the cheapest comparison, and the dataset documentation covers the formats this platform accepts.
Sources
- Data Scaling Laws in Imitation Learning for Robotic Manipulation
- DROID: A Large-Scale In-The-Wild Robot Manipulation Dataset
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
- Re-Mix: Optimizing Data Mixtures for Large Scale Imitation Learning
- Robot Data Curation with Mutual Information Estimators (DemInf)
- SCIZOR: A Self-Supervised Approach to Data Curation for Large-Scale Imitation Learning
- RoboMIND: Benchmark on Multi-embodiment Intelligence Normative Data for Robot Manipulation
- BridgeData V2: A Dataset for Robot Learning at Scale
- Open X-Embodiment: Robotic Learning Datasets and RT-X Models
- RoboTurk: A Crowdsourcing Platform for Robotic Skill Learning through Imitation
- Datasheets for Datasets
- LeRobot Community Datasets: The ImageNet of Robotics
- LeRobotDataset v3.0 format documentation
- Hugging Face dataset cards
- huggingface/lerobot
Sources
- Data Scaling Laws in Imitation Learning for Robotic Manipulation
- DROID: A Large-Scale In-The-Wild Robot Manipulation Dataset
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
- Re-Mix: Optimizing Data Mixtures for Large Scale Imitation Learning
- Robot Data Curation with Mutual Information Estimators (DemInf)
- SCIZOR: A Self-Supervised Approach to Data Curation for Large-Scale Imitation Learning
- RoboMIND: Benchmark on Multi-embodiment Intelligence Normative Data for Robot Manipulation
- BridgeData V2: A Dataset for Robot Learning at Scale
- Open X-Embodiment: Robotic Learning Datasets and RT-X Models
- RoboTurk: A Crowdsourcing Platform for Robotic Skill Learning through Imitation
- Datasheets for Datasets
- LeRobot Community Datasets: The ImageNet of Robotics
- LeRobotDataset v3.0 format documentation
- Hugging Face dataset cards
- huggingface/lerobot
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started