okraPDF benchmark lab
PDF benchmarks, with the rough edges left in
First-party measurements for the PDF workflows we ship. Every report names its corpus, harness, acceptance gate, and missing evidence so a fast number never outruns what it proves.
Latest snapshot: August 12, 2026.
ParseStream follows a PDF from session creation through the last readable block. It scores the HTTP surface, the shape of the stream, final-text proxies, routing decisions, and figure delivery—not only one finish time.
-
HTTP and streaming contract
— 22 / 22 checks pass. A plain HTTP client can create a session, read useful no-JS content, resume the event stream, validate a finished document, issue HEAD, and observe liveness heartbeats.
-
Streaming vitality · archived rubric
— 3.4 s across-doc median. The E1 baseline exposes the real bottlenecks: first content misses the 2.5-second multi-page gate, large blocks can arrive in bursts, and figures can keep the page unfinished long after text lands.
-
Document and figure routing
— 19 docs · 175 labeled regions. The document policy matched 19/19 all-negative ground-truth calls. Across 175 recorded figure regions, MuPDF labels and pdf-inspector routing decisions agreed on embedded-raster versus fallback.
-
Embedded-raster fast path
— 305 ms local / 36.8 s production. On the Blue Badge document, all 39 emitted raster figures matched embedded PDF image objects. The 305 ms warm local, in-memory pass and the 36.8-second production figure-resolve median are intentionally shown as non-equivalent environments.
-
Candidate engine A/B
— Withheld · engine identity unproven. A local session produced two caller-labeled scorecards, but the harness did not pass an engine selector into the request. The results cannot be attributed to E1 or E2, so no performance comparison is published.
Reproduce the runs
Open the pinned Hugging Face revision for the public corpus, manifests, graders, and run artifacts. Two caller-labeled candidate-engine scorecards missing from that dataset are published as provenance-gap evidence, not as an A/B result. Or run PDF to HTML yourself.