Case study 02 / 03
Reducing Unusable Recordings in Embodied AI Data Collection
A failure costs seconds on site and a full re-collection at QA. This case moves the checks to where the data is recorded.
- Role
- Product management (problem framing, metrics, RCA, experiment design)
- Timeline
- September 2026
- Methods
- Metric trees, Root cause analysis, RICE, A/B pilot design, Unit economics
- of worn device-hours lost to failed recordings
- 40%
- usable yield target
- 60→80%
- more usable data, same budget
- +33%
- cost per usable hour
- −25%
- of losses catchable on site
- 70%
All figures are illustrative assumptions for a mid-sized wearable-kit program unless marked otherwise.
00 — Summary
Moving quality checks from the data center to the collection site can lift usable yield from 60% to 80% and save roughly $9,600 a month in wasted collection cost.
- Problem
- About 2 in 5 recorded hours are unusable, and failures surface ~18 days after recording.
- North star
- Usable yield = usable hours ÷ recorded hours.
- Key insight
- The cost of a failure depends on how late it is detected, not just on how often it happens.
- Solution (MVP)
- Automated pre-session check + on-site exit validation + offload integrity gate.
- Target
- Usable yield 60% → 80% in one quarter, with setup time up by no more than 3 minutes.
- Role shown
- Problem framing, metric design, root cause analysis, prioritization, experiment design.
01 — Context
Why real-world data matters
Physical AI runs on real-world data
BCG defines physical AI as AI that perceives, reasons and acts in the real world through robots, machines and vehicles — embodied AI is the narrower idea of an agent with a body.
The market is moving fast
Cisco cites growth from $1.5B in 2024 to over $15B by 2032, and lists data collection and training as the first stage of the sense-plan-act loop.
Simulation alone isn’t enough
The sim-to-real gap — real friction, lighting and sensor noise — is why companies still pay humans to record real tasks.
Quality is the bottleneck, not volume
EY tells leaders to treat data as the fuel for autonomy: structured, synchronized and high quality.
How this data is collected at scale
Egocentric video
- Well-known example
- Ego4D, Ego-Exo4D
- Typical failure
- Hands out of frame, motion blur
Wearable multimodal kit
- Well-known example
- This case study’s setting
- Typical failure
- Camera–IMU sync drift, dead sensors
Teleoperation
- Well-known example
- ALOHA, DROID
- Typical failure
- Failed or jerky demonstrations
Handheld gripper
- Well-known example
- UMI
- Typical failure
- Camera tracking loss, lens calibration
Pooled robot data
- Well-known example
- Open X-Embodiment
- Typical failure
- Inconsistent formats, missing metadata
| Collection method | Well-known example | Typical failure |
|---|---|---|
| Egocentric video | Ego4D, Ego-Exo4D | Hands out of frame, motion blur |
| Wearable multimodal kit | This case study’s setting | Camera–IMU sync drift, dead sensors |
| Teleoperation | ALOHA, DROID | Failed or jerky demonstrations |
| Handheld gripper | UMI | Camera tracking loss, lens calibration |
| Pooled robot data | Open X-Embodiment | Inconsistent formats, missing metadata |
02 — The problem
Five hand-offs before anyone checks the data
- 1Collector records (wearable kit)
- 2Drive staging at site
- 3Ship drives to data center
- 4Upload to S3
- 5QA review
- Usable or discarded
↳ verdict arrives ~15–20 days after recording
A program of 40 collectors records household and workplace tasks with a head camera, wrist cameras and IMUs — about 1,200 hours a month.
“40% of recorded hours are discarded at QA. By then the collector has left the site, the task setup is gone, and the only fix is a full re-record.”
Cost of one failed hour
- Collector pay and travel$18
- Kit wear and amortization$6
- Drives and shipping$5
- Upload and storage$3
- QA review time$8
- Fully loaded$40
Monthly waste
$19,200
1,200 h × 40% × $40 — before counting the delay to the ML team.
03 — Stakeholders
Catch failures early without making the collector’s day slower.
Field collectorPrimary user
- Wants
- Finish sessions quickly, get paid
- Pain today
- No idea a session failed until told weeks later
- Tension
- Any added check slows them down
Field ops lead
- Wants
- High throughput, low re-records
- Pain today
- Can’t see quality per collector in real time
- Tension
- Pushes volume over quality
Offload / data ops manager
- Wants
- Clean, complete drives moving on schedule
- Pain today
- Corrupt or incomplete copies found only after upload
- Tension
- Wants gates, which add steps
QA and annotation team
- Wants
- Footage worth labeling
- Pain today
- Hours spent reviewing footage that gets discarded
- Tension
- Wants stricter rules
ML researchers (customer)
- Wants
- Synchronized, consistent, diverse data
- Pain today
- Delivery delays and hidden sync errors in training data
- Tension
- Wants quality and speed
04 — North star
Usable yield = usable hours delivered ÷ hours recorded
Why not total hours collected?
It rewards volume, including broken footage.
Why not QA pass rate alone?
It ignores partial loss inside sessions that pass.
Metric tree
Usable yield
Whole-session failures
- Hardware — dead sensor, battery
- Sync — camera–IMU drift
- Data integrity — corrupt or incomplete copy
Partial loss in passing sessions
- Capture quality — framing, blur, occlusion
- Protocol — wrong task, missing metadata
Each leaf gets an input metric the team can move directly, such as sensor dropout rate or sync offset per session.
Supporting & guardrail metrics
Usable yield
- Type
- North star
- Baseline
- 60%
- Target
- 80%
Detection latency (record → verdict)
- Type
- Driver
- Baseline
- ~18 days
- Target
- Under 15 min for most failures
Re-records completed on site
- Type
- Driver
- Baseline
- ~0%
- Target
- 60% of detected failures
Session setup time
- Type
- Guardrail
- Baseline
- 8 min
- Target
- No more than +3 min
Sessions per collector per day
- Type
- Guardrail
- Baseline
- 5
- Target
- No drop
False block rate (good session flagged)
- Type
- Guardrail
- Baseline
- n/a (new)
- Target
- Under 5%
| Metric | Type | Baseline | Target |
|---|---|---|---|
| Usable yield | North star | 60% | 80% |
| Detection latency (record → verdict) | Driver | ~18 days | Under 15 min for most failures |
| Re-records completed on site | Driver | ~0% | 60% of detected failures |
| Session setup time | Guardrail | 8 min | No more than +3 min |
| Sessions per collector per day | Guardrail | 5 | No drop |
| False block rate (good session flagged) | Guardrail | n/a (new) | Under 5% |
05 — Root cause analysis
70% of lost hours come from three causes — all detectable within minutes
Audit 200 discarded sessions from the last quarter, tag each with one primary cause, and weight by hours lost. Then interview 8 collectors and 3 QA reviewers to learn why each cause happens.
- Camera–IMU sync drift28%
- Hardware faults24%
- Framing & capture quality18%
- Protocol errors12%
- Data integrity10%
- Other8%
What interviews add: Collectors skip manual checks when rushed, and nobody tells them which of their sessions failed. The problem is partly tooling and partly a missing feedback loop.
06 — Key insight
When a failure is found matters as much as what it is
- Before recording starts~1 minute of setupYes — fix and start
- During the sessionA few minutes of footageYes — pause and fix
- Right after, on siteOne re-take while setup is still in placeYes — re-record now
- At offloadDrive and shipping costOnly the copy, not the recording
- At QA, ~18 days laterThe full $40/hour plus a new site visitOnly by re-collecting from scratch
This is also why adding more QA reviewers wouldn’t help: it improves detection at the most expensive point in the pipeline.
07 — Prioritization
Six options, scored with RICE
- Offload integrity gate1,980
- Automated pre-session check1,760
- On-site exit validation1,540
- Collector quality scorecard733
- Live in-session alerts660
- Cloud ML quality scoring147
Reach is 4,400 sessions/month for every option (40 collectors × 5 sessions × 22 days).
Why not build live alerts first?
They’re the most impressive feature, but need real-time processing on limited wearable hardware. The exit scan catches most of the same failures in 60 seconds at a fraction of the effort.
Why not cloud ML scoring?
It still detects failures after the collector has left — the exact problem this case is solving.
08 — MVP
Two 60-second screens and one gate — no new hardware
Open session in app
Pre-session check (~60 s)
✕ Fail → Show fix: reseat cable, swap battery, resync — then re-check
Record task
Exit validation (~60 s)
✕ Fail → Re-record now, while the setup is still in place
Stage to drive
Offload gate: checksum + manifest
✕ Fail → Re-copy before shipping
Ship to data center
In scope
- ✓Pre-session check: all sensors streaming, clock offset under threshold, battery and free storage above the session’s needs, one framing preview photo
- ✓Exit validation: frame-drop count, camera–IMU timestamp alignment, IMU gap detection, 5 sampled frames checked for hands in view
- ✓Offload gate: checksum and file-count match against the session manifest before a drive leaves the site
- ✓Every check shows a plain-language fix, not an error code
- ✓A collector can override a failed check with a reason, which is logged
Out of scope for MVP
- Live in-session alerts
- Cloud ML quality scoring
- Collector scorecards and incentives
- Changes to the kit hardware
09 — Experiment
A 4-week pilot, 10 vs. 10 collectors
- Treatment group
- 10 collectors using the new checks
- Control group
- 10 collectors matched on tenure, site type and past yield
- Duration
- 4 weeks (about 1,000 sessions per group)
- Primary metric
- Usable yield, measured at QA as today
- Secondary metrics
- Detection latency, share of failures fixed on site
- Guardrails
- Setup time, sessions per day, false block rate, override rate
- Qualitative input
- Weekly 15-minute check-in with pilot collectors
Success criteria — decided before the pilot starts
- ✓Usable yield in the treatment group at least 10 points above control
- ✓Setup time up by no more than 3 minutes per session
- ✓False block rate under 5%, and override rate under 10%
If the pilot passes, roll out in two waves of 15 collectors, tuning check thresholds between waves using override logs. If it fails a guardrail, fix that check and re-run a 2-week pilot rather than shipping.
10 — Risks
Every check must be fast, specific and fixable
False positives block good sessions
Collectors lose trust and start overriding
→ Start with loose thresholds, tighten using pilot data; log every override
Added setup time
Lower throughput, collector frustration
→ Hard cap of 60 s per check; run checks in the background while the collector gears up
Limited compute on the wearable
Heavy checks drain battery or lag
→ Lightweight rule-based checks on device; no ML on the edge in MVP
Gaming the metric
Collectors avoid hard tasks to protect their yield
→ Track task mix per collector; never tie pay to yield alone
Thresholds differ by site
Lighting and layouts vary between homes and factories
→ Per-site-type thresholds tuned during rollout
Checks miss subtle failures
Some framing and protocol errors need human judgment
→ Keep QA review; checks reduce its load, they don’t replace it
A stricter check catches more failures but blocks more good sessions. The pilot’s override log is how the team finds the right balance, instead of guessing.
11 — Expected impact
33% more usable data from the same budget
Usable yield
- Before
- 60%
- After MVP
- 80%
- Change
- +20 points
Usable hours delivered
- Before
- 720
- After MVP
- 960
- Change
- +240 hours (+33%)
Hours wasted
- Before
- 480
- After MVP
- 240
- Change
- −240 hours
Wasted spend
- Before
- $19,200
- After MVP
- $9,600
- Change
- −$9,600
Cost per usable hour
- Before
- $66.67
- After MVP
- $50.00
- Change
- −25%
Typical detection latency
- Before
- ~18 days
- After MVP
- Minutes for most failures
- Change
- Fixable on site
| Measure (per month) | Before | After MVP | Change |
|---|---|---|---|
| Usable yield | 60% | 80% | +20 points |
| Usable hours delivered | 720 | 960 | +240 hours (+33%) |
| Hours wasted | 480 | 240 | −240 hours |
| Wasted spend | $19,200 | $9,600 | −$9,600 |
| Cost per usable hour | $66.67 | $50.00 | −25% |
| Typical detection latency | ~18 days | Minutes for most failures | Fixable on site |
The MVP needs about 12 person-weeks. At an assumed $2,000 per person-week that’s $24,000 — recovered in about 2.5 months of savings.
Try it with your own numbers
Monthly savings
$9,600
Extra usable hours / month
+240
Cost per usable hour
$66.67 → $50.00
Payback on a $24k MVP
2.5 months
Wasted spend goes from $19,200 to $9,600 a month. Waste = hours × (1 − yield) × cost per hour; build cost assumes 12 person-weeks at $2,000.
12 — Learnings
Frame quality as a pipeline problem, not a QA problem
- Frame quality as a pipeline problem, not a QA problem. The cheapest fix sits at the point of recording.
- Pick a north star the customer feels. Usable yield ties collector effort directly to what the ML team receives.
- Design for the collector’s day. A check that adds minutes will be skipped, however accurate it is.
- Closing the feedback loop is half the solution. Collectors improve fastest when they see their own failures.
What I’d do differently
Run the failure audit with QA before designing any solution. Early assumptions over-weighted framing and under-weighted sync drift.
Next steps after the MVP
- 1Collector quality scorecard to build the feedback loop
- 2Live in-session alerts once on-device performance is proven
- 3Cloud ML quality scoring to reduce manual QA load
- 4Feed failure data back into kit design — locking connectors, better clock-sync hardware
13 — References
Numbers about the collection program (hours, costs, failure shares) are illustrative assumptions, not sourced figures.
- BCG — What is Physical AI? ↗
- Cisco — What Is Physical AI? ↗
- EY — What is Physical AI and why it matters now ↗
- Ego4D — large-scale egocentric video ↗
- Ego-Exo4D — paired first- and third-person video ↗
- ALOHA — low-cost bimanual teleoperation ↗
- DROID — large-scale robot manipulation demonstrations ↗
- UMI — Universal Manipulation Interface ↗
- Open X-Embodiment — pooled data across robot types ↗
Next case study
Ola Parivaar