New1 billion tokens free on sign-up — crawl, parse, chunk and embed on the houseSee pricing
SarvCrawlSarvCrawl

Benchmarks

Conversion and retrieval numbers, with the working shown

Scores from real files run through the production pipeline, the misses we found by hand, and the settings our chunking and search run on. Every figure links to the post or example it comes from, and the audit that produced the scores is an endpoint you can call on your own documents.

  • 99.8

    content fidelity on a text PDF page: ROUGE, Jaccard, coverage and length

  • 84.3

    ML readiness on a scanned 1955 memo, scored in OCR mode

  • 3

    public-domain files, each published beside its unedited output

01What the audit measuresof 08

What the audit measures

Every completed PDF upload can be scored against its own text layer by GET /api/jobs/:id/audit. The report has three parts — content, structure and ML readiness — plus a token count in and out, an overall score and a verdict. The full reasoning is in scoring PDF conversion quality.

MetricMeasuresCatches
ROUGE-1Unigram overlap with the source textDropped content: a missing column, a skipped page
ROUGE-2 / ROUGE-3Bigram and trigram overlapScrambled word order, such as interleaved columns
JaccardVocabulary set overlap, order-freeSubstitution, such as OCR reading "rn" as "m"
Vocabulary coverageShare of the source's distinct words that survivedSelective loss, such as dropped table cells
Length fidelityOutput length against input lengthTruncation and duplication
Structure counts headings, bullets, code blocks, links and tables. ML readiness covers lexical diversity, named-entity coverage, noise, duplicate lines and sentence length.

Text PDF: a government report page

Page 2 of Congressional Research Service report R43419, a page of prose with two footnotes. Output fetched from the production API on 2026-10-06 and checked by hand against the source. Original, output and audit.

ScoreValue
Tokens in → out570 → 570 (ratio 1)
ROUGE-1 F1100
ROUGE-2 F199.5
ROUGE-3 F199.1
Jaccard100
Vocabulary coverage100
Length fidelity100
Content score99.8
Structure score0 (no headings, lists or tables in the output)
ML readiness83 (lexical diversity 39.8, named-entity coverage 90.4, noise 0)
Overall / verdict74 / ready
Scores on a 0–100 scale, exactly as the audit returned them.

Every word of the text layer is present and the reading order holds, with footnotes at the end. The overall score is held down by structure: the page has no headings or tables, so there was nothing for the structure metric to count.

  • Miss: the drop cap splits off its letter — "C ongressional".
  • Miss: superscripts flatten, so footnote markers read "years.1".

Scanned PDF: a typewritten memo from 1955

A memorandum from President Eisenhower to the Secretary of Defense, scanned with no text layer and read by OCR. Original, output and audit.

ScoreValue
ModeOCR (no text layer to compare against)
Tokens in → out0 → 270
Content metrics0 across the board, by design in OCR mode
Lexical diversity55.2
Noise level / duplicate lines0 / 0
Average sentence length33.5 words
ML readiness84.3
Overall / verdict75.9 / ready

Checked by hand: the body text matches the scan word for word, the lettered list (a)–(c) stays a list, line-end hyphens are rejoined and the library stamp is ignored.

  • Miss: the date line (April 12, 1955) and the D.D.E. sign-off were dropped.

Intrinsic scoring can tell a page came out as noise. It cannot tell a line is missing: this scan lost its date line and still read "ready".

Image upload: a photographed book page

Page 15 of Alice in Wonderland, uploaded as a JPG. The audit runs on PDFs only, so this one was checked by hand. Original and output.

  • Body text matches the page word for word; curly and nested quotes are kept.
  • The running header and the asterisk divider are left out.
  • Miss: one stray comma — "feeling!", said — that the page does not have.
  • Miss: italics come through as plain text.

The numbers chunking and search run on

These are operating settings and the measurements behind them, not a leaderboard. Each is explained in chunking markdown without an LLM or hybrid search in production.

SettingValueWhy
Chunk size800 tokens (cl100k_base)A complete idea, roughly 600 words
Chunk overlap100 tokensAnswers that straddle a boundary; about 12% duplication
Minimum chunk50 charactersBelow it, a fragment rather than a passage
Retrieval floor100 tokensCrawled error pages measured 66 to 70 tokens and passed the old 50-token floor
Embeddings1024-dim FP32, cosineConcurrency 8, 30-second timeout per call
RRF constantk = 60Rank 0 vs rank 9 differs by about 15%
Low-confidence flagbest cosine < 0.25Set only when nothing matched on the keyword leg either
Audit limitsPDF up to 200 MB, 120 sRuns in a worker thread so one document cannot stall the API

Published figures we cite

Third-party results our posts rely on. We did not measure these; they are here so the claims on this site can be traced.

ResultFigureDiscussed in
WANDS e-commerce, NDCGRRF 0.7068 · BM25 0.6983 · KNN 0.6953 · tuned hybrid 0.7497Hybrid search in production
Contextual retrieval (Anthropic)49% fewer failed retrievals; 67% with rerankingHybrid search in production
llms.txt requests408 of ~500,000,000 AI bot visits in 90 daysllms.txt, measured

Run the audit on your own files

Upload a PDF to any knowledge base and, once the job completes, ask for its audit.

curl -s -H "x-api-key: $KB_API_KEY" \
  https://crawl.sarv.com/api/jobs/$JOB_ID/audit

Before ingesting a corpus, audit a sample: twenty documents out of two thousand will tell you whether the rest are worth the tokens. Watch the distribution rather than the mean.

Questions

Which files can the conversion audit score?

Completed PDF upload jobs, up to 200 MB. Crawled HTML pages and images have no original text layer to compare against, so they are not audited.

Why do scanned PDFs score zero on ROUGE and Jaccard?

A scan has no text layer, so content metrics have nothing to compare with. The audit switches to OCR mode and judges the output on readiness signals such as lexical diversity, noise and duplicate lines.

Are these results cherry-picked?

They are three public-domain files, published with the unedited output and every miss we found by hand, including a dropped date line that the audit did not catch.

Related

SarvCrawl

Score your own documents

1 billion tokens free on sign-up, no card. Every PDF upload can be audited against its source.