Provenance

Every number we publish, and where it comes from

There are 20 of them. Each carries a label saying what kind of number it is, and most carry the artifact they come from and the date that artifact last changed. No figure on this page is typed by hand — the prose around them is.

We do this because the numbers on a data company's website are the part a buyer can least easily check, and because ours are small. A figure with a source you can name is worth more than a larger one without.

The four labels

Every figure we publish is one of these four, and the label is part of the figure rather than a comment on it.

measuredcomputed from a committed artifact named in `source`
derivedcomputed from measured values
targetintended, not achieved — never publishable as inventory or capability
nonea real, deliberate zero

target is the one to watch. A target is what a capture brief is scoped to produce. It is not footage we hold, and it may never be read as availability.

Delivery formats: what we do and do not offer

Four containers and our own JSON schema ship. MCAP and WebDataset do not. What arrives, and in what container.

13 figures

Measured

Computed from a committed artifact, named in the source column. Re-run the command below and you get these numbers back.

FigureHow it is arrived atSource artifactSource last changed
1 end-to-end annotation runs
validated_runs
count of *_Annotation.json files tracked by git in the engine's sampledata/ fourthuman_engine_api/sampledata/Egocentric_Sample_2_Annotation.json 2026-08-21
1,843 frames
reference_run_frames
tracks.hand_control.total_frames_annotated fourthuman_engine_api/sampledata/Egocentric_Sample_2_Annotation.json 2026-08-21
30 fps
reference_run_fps
fps field fourthuman_engine_api/sampledata/Egocentric_Sample_2_Annotation.json 2026-08-21
16 segments
reference_run_action_segments
len(actions) fourthuman_engine_api/sampledata/Egocentric_Sample_2_Annotation.json 2026-08-21
294 entries
reference_run_kinematic_entries
len(tracks.kinematics_3d) — one entry per detected hand per sampled frame, not a frame count fourthuman_engine_api/sampledata/Egocentric_Sample_2_Annotation.json 2026-08-21
185 frames
reference_run_kinematic_sampled_frames
count of distinct tracks.kinematics_3d[].frame_idx fourthuman_engine_api/sampledata/Egocentric_Sample_2_Annotation.json 2026-08-21
5 timeline tracks
reference_run_schema_tracks
len(tracks) fourthuman_engine_api/sampledata/Egocentric_Sample_2_Annotation.json 2026-08-21
173 HTTP routes
backend_routes
regex count of router decorators in routers/*.py fourthuman_engine_api/routers 2026-09-10
32 public pages
web_pages
public routes in routes.json — the registry vite, the sitemap, the chrome and the SEO baseline all derive from fourthuman_web_suite/routes.json 2026-09-10
6 domains
catalogue_capture_domains
count of non-simulation capture briefs in the registry fourthuman_engine_api/config/capture_briefs.json 2026-09-09
5 export formats
delivery_formats_implemented
detected in fourthuman_engine_api/services/ by the writer or library each format requires — not asserted
Implemented: FH-Ego v1 JSON, LeRobot v2.1, HDF5, Zarr v2, TFRecord (RLDS-style). P.6 executed 13-08-2026 (D15); MCAP/WebDataset retired from the offer, verified via the admin format bench.
fourthuman_engine_api/services 2026-09-10
24 durable stores
persistent_stores
count of distinct .db filenames referenced in backend source
Distinct stores, not connect() call sites. Store(s): accounts.db, api_keys.db, audit_log.db, capture_partner_profiles.db, clip_origin.db, cohorts.db, consent_ledger.db, consent_publication.db, crm.db, cycle_settlements.db, deliveries.db, earnings.db, engagements.db, equipment.db, leads.db, payouts.db, pipeline_jobs.db, qa_verdicts.db, quotes.db, releases.db, request_throttle.db, retention.db, signoffs.db, tasks.db.
fourthuman_engine_api/services 2026-09-10
0 dev-only stores
in_memory_placeholder_stores
count of PROVENANCE: placeholder markers
Lost on process restart. No published figure may derive from these.
fourthuman_engine_api 2026-09-10

2 figures

Derived

Aggregates over values held in a committed artifact. No new observation enters at this step — though the arrays they aggregate live in the file, not in the table above.

FigureHow it is arrived atSource artifactSource last changed
0.8712 confidence (0-1)
reference_run_mean_hand_confidence
arithmetic mean of tracks.kinematics_3d[].confidence — MediaPipe handedness classifier score, one per detected hand fourthuman_engine_api/sampledata/Egocentric_Sample_2_Annotation.json 2026-08-21
0.508 confidence (0-1)
reference_run_min_hand_confidence
min of tracks.kinematics_3d[].confidence — MediaPipe handedness classifier score, one per detected hand
Published deliberately. The floor matters more than the mean for a buyer assessing worst-case quality.
fourthuman_engine_api/sampledata/Egocentric_Sample_2_Annotation.json 2026-08-21

3 figures

A real zero

Not missing, not pending — nothing is there, and we publish it. Our main competitor's equivalent zero is measured and sits in the notes below.

FigureHow it is arrived atSource artifactSource last changed
0 customers
named_customers
we are pre-revenue; no company may be presented as a customer
Our main competitor also names zero across 2,213 URLs, but does not say so. We do.
no artifact — see the method
0 attestations
third_party_attestations
we hold no SOC 2, ISO 27001, or equivalent
We publish the consent-ledger mechanism instead — verifiable today, where a badge attests to a process.
no artifact — see the method
0 hours
captured_dataset_hours
the Capture Partner network is in pilot; no delivered inventory
Catalogue entries carry targetVolume + availability and are commissioning targets, never inventory.
no artifact — see the method

2 figures

Target

What a brief is scoped to produce, never what exists. A target may not be read as inventory or as capability.

FigureHow it is arrived atSource artifactSource last changed
182,700 clips (target)
catalogue_target_clips
sum of target_volume across non-simulation capture briefs — every input is itself a target agreed per brief, never delivered inventory fourthuman_engine_api/config/capture_briefs.json 2026-09-09
1,505 hrs (target)
catalogue_target_hours
same sum, hours. Excludes simulation-traversals: 10,000 of those hours are simulated scenes, a different product that is not addable to human capture fourthuman_engine_api/config/capture_briefs.json 2026-09-09

Recompute them yourself

The table above is generated from a single file, and that file is generated from the artifacts named in it. One command rebuilds the lot:

python3 .agents/generate_facts.py

If a figure on this page disagreed with the artifact it names, that command would change the file and our build would fail. That is the whole mechanism, and it is deliberately unexciting.

What it does not cover, said plainly: a number typed straight into a sentence is not on this page, and nothing we run looks for one. That gap is real and unguarded, which is exactly why the figures on this page are the only ones we bind into a sentence anywhere.

FH-Ego v1, field by field · The clip most of these are computed from