Page headers and page numbers end up as tiny pieces of their own in the index.
Search finds empty snippets instead of the passage with the answer.
Step: remove page headers and page numbers
For RAG systems and agents on your documents. Most of the time the fault is not in the language model but before it: in how the documents are read in and cut up. Windtunnel tests every stage on your data and shows what to change.
For systems in pilot or in production. Fixed prices.
What gets in
Tables, columns, scans
What gets removed
Where text is cut
Which model, what cost
Fused, reranked, graded
11 parsers on 22 table-heavy EMA documents. Each parser gets two grades:
Then what it costs and how long it takes.
| Parser | True copy | Usable by an AI | € / 1,000 pages | Seconds / doc |
|---|---|---|---|---|
| Mistral OCR | 82% | 73% | €3.43 | 1.7 s |
| GPT-5.4 vision + text layer | 77% | 78% | €9.62 | not measured |
| GPT-5.4 vision | 70% | 77% | €8.53 | not measured |
| Cohere Parse 5 | 63% | not graded yet | €1.29 | 5.5 s |
| GPT-5.4 mini vision | 58% | 65% | €2.56 | 7.9 s |
| Azure AI Document Intelligence | 46% | 39% | €8.57 | 5.3 s |
| pypdf | 43% | 40% | €0, runs locally | 0.2 s |
| anydoc | 40% | 48% | €0, runs locally | 0.1 s |
| Docling | 36% | 38% | €0, your own GPU | 25.8 s |
| PyMuPDF4LLM | 19% | 19% | €0, runs locally | 2.1 s |
| pdfplumber | 15% | 23% | €0, runs locally | 0.5 s |
Share of blind head-to-head comparisons won, judged by gpt-5.6-terra (5,359 judgments over all four page types). Cost at list prices in euros, measured on this set. Time per document, measured when the parser actually ran.
For search, every document is cut into small pieces of text. Before that, we clean it up. Three examples from a client project with regulated technical documents:
Page headers and page numbers end up as tiny pieces of their own in the index.
Search finds empty snippets instead of the passage with the answer.
Step: remove page headers and page numbers
The product name at the top of every page is taken for a heading.
Pieces of text sit under the wrong heading. The AI puts a fact in the wrong section.
Step: stop treating the product name as a heading
Section headings get lost when the document is read in.
The AI cannot tell which section a fact comes from, so it cannot cite it.
Step: rebuild headings from the official numbering
Each step is small. Together they decide whether the AI finds the right passage. Windtunnel measures each step on its own, so you see which one is worth it.
Small samples: one document for the first two examples, ten documents of the same type for the third. They show what each check catches, not an average. Client and documents not named.
A public benchmark tests somebody else's documents. Only a test on yours shows whether a model works on yours.
The result is not one score but, per stage: how often the right passage is found, what it costs, and how fast it is.
What your documents look like, and the error rate per document type, with examples.
Labelled questions with their source passages. It is yours.
Re-run it on every change, also as a CI gate.
Method, data and results. A basis for your evidence to QA, notified bodies and under the EU AI Act.
You run it, we measure and improve it. Runs in your infrastructure, in the EU. No lock-in.
Do your documents reach the system intact?
How good are your assistant's answers, and what helps most?
We make the changes.
✓ Fits: system in pilot or in production · pharma, medical devices, energy, finance, insurance
✗ Does not fit: a first demo · you want us to run the system
Windtunnel, Berlin. I build and evaluate AI assistants and agents on company knowledge, also under MDR requirements. With hard documents: tables, scans and regulatory filings.
About 8 years in data and ML, 5 of them in enterprise consulting, for clients such as Airbus, Lufthansa, Deutsche Bahn and Hapag-Lloyd.
The name comes from my aerospace degree at KTH Stockholm: there, you test in a wind tunnel before you fly.
No slides. No demo. Five questions on your system, and an honest answer on fit.
Or email tim@windtunnellabs.com