Source-level inspection, accessed 2026-11-02. These are observations, not additional benchmarks. charlesw/tesseract tag 5.2.0, src/Tesseract/Pix.cs, Pix.LoadFromFile: https://raw.githubusercontent.com/charlesw/tesseract/5.2.0/src/Tesseract/Pix.cs The method calls Leptonica's pixRead. A null handle throws IOException. This method contains no PDF renderer or page iteration. src/Tesseract/Page.cs, Page.GetText: https://raw.githubusercontent.com/charlesw/tesseract/5.2.0/src/Tesseract/Page.cs It invokes recognition and obtains UTF-8 text. Separate methods expose HOCR/ALTO and an iterator. A string return alone provides no table-cell relationship contract. The wrapper tag is not a verified native-core binary version. No .NET or Tesseract runtime is installed here; the C# snippet was not compiled or executed. MarkItDown 0.1.8 installed _pdf_converter.py, PdfConverter.convert: Local relative source: tools/lab-venv/lib/python3.11/site-packages/markitdown/converters/_pdf_converter.py SHA-256: 8a48783a111f8c240ab87320921455e879a5f6753421a6cc472e6d2b89bf2c92 Pinned upstream reference: https://raw.githubusercontent.com/microsoft/markitdown/v0.1.8/packages/markitdown/src/markitdown/converters/_pdf_converter.py The form extraction branch uses its extracted chunks when available. A no-form branch uses pdfminer text extraction; exceptions or an empty result fall back to pdfminer. No OCR operation occurs inside this converter method. Other plugin configurations are outside this run. PyMuPDF4LLM 1.28.2 installed helpers/document_layout.py: select_ocr_function checks RapidOCR backends and Tesseract data. In this environment it returned None (direct call on 2026-11-02). parse_document uses OCRMode.NEVER when selection supplies no callable. The public default use_ocr=True is not proof of an available OCR engine. We did not pass use_ocr=False. Local function check command: PYTHONDONTWRITEBYTECODE=1 tools/lab-venv/bin/python -c 'from pymupdf4llm.helpers.document_layout import select_ocr_function; print(select_ocr_function())' Output: None Installed pymupdf-layout 1.28.2 selected the layout implementation; this is not a test of every PyMuPDF4LLM configuration. Markovo supplied snapshots: Original job.created_at dates are 2026-10-06, not the 2026-11-02 analysis date. Reuse has elapsed_s=0.0 and from_cache=true; service latency is unknown. mixed.json reports pages_total=3, pages_ocr=3, job.billing_metrics.pagesOcr=1, and convert_response.jobs[0].billing_metrics.ocrPageIndexes=[2]. scan-image.json reports pages_total=1, pages_ocr=1, job.billing_metrics.pagesOcr=1, and convert ocrPageIndexes=[0]. Text-only samples have pages_ocr=1 but billing pagesOcr=0 and empty convert indexes. Treat those as different reported fields, not proof of OCR on all pages. No server-side reconciliation was performed. Original names and byte sizes match local PDFs. Historical API content hashes are absent; matching historical bytes is not independently proved. rate_card_version is a billing configuration identifier, not an OCR engine version. Scorer limitation: Same-line table-cell matching cannot validate colspan semantics. Markovo compact HTML puts all rows on one physical line, so same-line header/row hits do not establish semantic grouping. Pipe-table false describes syntax, not missing table content. Equation fixtures are linear text expressions. Matching normalized strings does not measure complex mathematical layout or numeric equivalence.