Each of these six documents breaks something specific. The seventh just makes them work.
Every parser here runs on all six synthetic documents, each scored only on the axes it was built to test, with the Markdown behind every number one click away. The last document is a real 100-page report and carries no accuracy score at all, because no honest reference for it exists.
Captured 2026-09-16 · darwin/arm64 · Node v22.21.1 · median of three sequential local runs, one run for the 100-page report
Score by axis
| Parser | Table | Reading order | Heading |
|---|---|---|---|
| pdf-inspector | 100% | 100% | 100% |
| LiteParse | 100% | 100% | 80% |
| OpenDataLoader PDF | 0% | 76% | 100% |
| @opendocsg/pdf2md | 0% | 76% | 100% |
| unpdf | 0% | 76% | 0% |
| pdf-parse | 0% | 76% | 0% |
Speed at scale
| Parser | Median time |
|---|---|
| LiteParse | 54.0s |
| pdf-inspector | 2.9s |
| OpenDataLoader PDF | 2.7s |
| @opendocsg/pdf2md | 1.5s |
| pdf-parse | 0.6s |
| unpdf | 0.5s |
OCR routing precision
Not measured for OpenDataLoader PDF, @opendocsg/pdf2md, unpdf, pdf-parse — these parsers expose no page-level OCR signal, so no bar is drawn rather than showing zero.
| Parser | Precision |
|---|---|
| LiteParse | 2% |
| pdf-inspector | 100% |
| OpenDataLoader PDF | not measured |
| @opendocsg/pdf2md | not measured |
| unpdf | not measured |
| pdf-parse | not measured |
A title and one sentence
Two lines of Helvetica on a single page: a 24pt title and a 12pt sentence below it. Nothing else is on the page.
Nothing about the text is hard to read. The only question is whether a parser recognises that the larger line is a title and emits it as a Markdown heading, or flattens both lines into undifferentiated prose.
What the document contains
- Type
- text-basedconfidence 0.50
- Pages
- 1simple layout
- Tables
- 0none detected
- Columns
- 0single column
- Needs OCR
- 0no page flagged
Detected by @firecrawl/pdf-inspector 1.17.0, which also competes as pdf-inspector in the table below. The description of the document and one of the parsers being scored come from the same library.
pdf-inspectorHeading structure100%H1 as expectedOCR routing0% / 0%0 correct, 0 false positives, 0 missedMedian1.0msof three runs
3.0 ms · 0.0 ms · 1.0 ms
<!-- Page 1 --> # Quarterly Report ## Revenue grew 12% year over year.
LiteParseHeading structure0%kept as plain textOCR routing0% / 0%0 correct, 1 false positive, 0 missed — flags: sparse-text ×1Median117.0msof three runs
145.0 ms · 117.0 ms · 116.0 ms
<!-- Page 1 --> Quarterly Report Revenue grew 12% year over year.
OpenDataLoader PDFHeading structure100%H1 as expectedOCR routingn/anot applicableMedian213.0msof three runs
345.0 ms · 211.0 ms · 213.0 ms
<!-- Page 1 --> # Quarterly Report Revenue grew 12% year over year.
@opendocsg/pdf2mdHeading structure100%H1 as expectedOCR routingn/anot applicableMedian5.0msof three runs
71.0 ms · 5.0 ms · 4.0 ms
# Quarterly Report Revenue grew 12% year over year.
unpdfHeading structure0%kept as plain textOCR routingn/anot applicableMedian2.0msof three runs
4.0 ms · 1.0 ms · 2.0 ms
<!-- Page 1 --> Quarterly Report Revenue grew 12% year over year.
pdf-parseHeading structure0%kept as plain textOCR routingn/anot applicableMedian2.0msof three runs
69.0 ms · 2.0 ms · 2.0 ms
<!-- Page 1 --> Quarterly Report Revenue grew 12% year over year.
A plain grid of numbers
A title and a four-column table of quarterly figures by region, drawn as free-standing text at fixed coordinates. There are no ruling lines, no borders and no table structure in the file.
Nothing marks this as a table except the alignment of the coordinates. A parser has to infer columns and rows from position alone, then emit a Markdown pipe table with the values under the right headers.
What the document contains
- Type
- text-basedconfidence 1.00
- Pages
- 1complex layout
- Tables
- 1page 1
- Columns
- 0single column
- Needs OCR
- 0no page flagged
Detected by @firecrawl/pdf-inspector 1.17.0, which also competes as pdf-inspector in the table below. The description of the document and one of the parsers being scored come from the same library.
pdf-inspectorCell alignment100%9/9 cellsHeading structure100%H1 as expectedOCR routing0% / 0%0 correct, 0 false positives, 0 missedMedian1.0msof three runs
1.0 ms · 2.0 ms · 1.0 ms
<!-- Page 1 --> # Financial Summary |Region|Q1|Q2|Q3| |---|---|---|---| |North|120|145|160| |South|98|102|115| |East|210|198|225|
LiteParseCell alignment100%9/9 cellsHeading structure100%H1 as expectedOCR routing0% / 0%0 correct, 1 false positive, 0 missed — flags: sparse-text ×1Median151.0msof three runs
154.0 ms · 151.0 ms · 151.0 ms
<!-- Page 1 --> # Financial Summary | Region | Q1 | Q2 | Q3 | |---|---|---|---| | North | 120 | 145 | 160 | | South | 98 | 102 | 115 | | East | 210 | 198 | 225 |
OpenDataLoader PDFCell alignment0%0/9 cellsHeading structure100%H1 as expectedOCR routingn/anot applicableMedian201.0msof three runs
197.0 ms · 232.0 ms · 201.0 ms
<!-- Page 1 --> # Financial Summary Region Q1 Q2 Q3 North 120 145 160 South 98 102 115 East 210 198 225
@opendocsg/pdf2mdCell alignment0%0/9 cellsHeading structure100%H1 as expectedOCR routingn/anot applicableMedian5.0msof three runs
5.0 ms · 4.0 ms · 5.0 ms
# Financial Summary Region Q1 Q2 Q3 North 120 145 160 South 98 102 115 East 210 198 225
unpdfCell alignment0%0/9 cellsHeading structure0%kept as plain textOCR routingn/anot applicableMedian1.0msof three runs
1.0 ms · 1.0 ms · 1.0 ms
<!-- Page 1 --> Financial Summary Region Q1 Q2 Q3 North 120 145 160 South 98 102 115 East 210 198 225
pdf-parseCell alignment0%0/9 cellsHeading structure0%kept as plain textOCR routingn/anot applicableMedian2.0msof three runs
3.0 ms · 2.0 ms · 1.0 ms
<!-- Page 1 --> Financial Summary Region Q1 Q2 Q3 North 120 145 160 South 98 102 115 East 210 198 225
The same grid, with holes in it
A wider six-column table that adds a manager name and a free-text note. Three cells are genuinely empty: South has no manager and no note, West has no Q2 figure.
Empty cells are drawn as nothing at all, so a parser inferring columns from position has no anchor where a value is missing. The risk is a row that slides left, shifting every value after the gap under the wrong header.
What the document contains
- Type
- text-basedconfidence 1.00
- Pages
- 1complex layout
- Tables
- 1page 1
- Columns
- 1page 1
- Needs OCR
- 0no page flagged
Detected by @firecrawl/pdf-inspector 1.17.0, which also competes as pdf-inspector in the table below. The description of the document and one of the parsers being scored come from the same library.
pdf-inspectorCell alignment100%20/20 cellsHeading structure100%H1 as expectedOCR routing0% / 0%0 correct, 0 false positives, 0 missedMedian2.0msof three runs
2.0 ms · 3.0 ms · 2.0 ms
<!-- Page 1 --> # Q3 Results by Region |Region|Manager|Q1|Q2|Q3|Notes| |---|---|---|---|---|---| |North|Alice Chen|120|145|160|strong| |South||98|102|115|| |East|Bob Lee|210|198|225|recovering| |West|Dana|88||99|pending|
LiteParseCell alignment100%20/20 cellsHeading structure100%H1 as expectedOCR routing0% / 0%0 correct, 1 false positive, 0 missed — flags: sparse-text ×1Median229.0msof three runs
229.0 ms · 226.0 ms · 233.0 ms
<!-- Page 1 --> # Q3 Results by Region | Region | Manager | Q1 | Q2 | Q3 | Notes | |---|---|---|---|---|---| | North | Alice Chen | 120 | 145 | 160 | strong | | South | | 98 | 102 | 115 | | | East | Bob Lee | 210 | 198 | 225 | recovering | | West | Dana | 88 | | 99 | pending |
OpenDataLoader PDFCell alignment0%0/20 cellsHeading structure100%H1 as expectedOCR routingn/anot applicableMedian223.0msof three runs
213.0 ms · 223.0 ms · 266.0 ms
<!-- Page 1 --> # Q3 Results by Region Region Manager Q1 Q2 Q3 Notes North Alice Chen 120 145 160 strong South 98 102 115 East Bob Lee 210 198 225 recovering West Dana 88 99 pending
@opendocsg/pdf2mdCell alignment0%0/20 cellsHeading structure100%H1 as expectedOCR routingn/anot applicableMedian5.0msof three runs
4.0 ms · 5.0 ms · 5.0 ms
# Q3 Results by Region Region Manager Q1 Q2 Q3 Notes North Alice Chen 120 145 160 strong South 98 102 115 East Bob Lee 210 198 225 recovering West Dana 88 99 pending
unpdfCell alignment0%0/20 cellsHeading structure0%kept as plain textOCR routingn/anot applicableMedian1.0msof three runs
1.0 ms · 3.0 ms · 1.0 ms
<!-- Page 1 --> Q3 Results by Region Region Manager Q1 Q2 Q3 Notes North Alice Chen 120 145 160 strong South 98 102 115 East Bob Lee 210 198 225 recovering West Dana 88 99 pending
pdf-parseCell alignment0%0/20 cellsHeading structure0%kept as plain textOCR routingn/anot applicableMedian2.0msof three runs
2.0 ms · 2.0 ms · 4.0 ms
<!-- Page 1 --> Q3 Results by Region Region Manager Q1 Q2 Q3 Notes North Alice Chen 120 145 160 strong South 98 102 115 East Bob Lee 210 198 225 recovering West Dana 88 99 pending
Two columns, read in the wrong order
A title over two numbered columns, 20 lines each. Every line names its own side and position, so the correct sequence is recoverable from the output itself.
The two columns sit side by side at the same vertical positions. A parser that walks the page top to bottom reads one line from the left, then one from the right, and returns the two columns zipped together instead of one after the other.
What the document contains
- Type
- text-basedconfidence 1.00
- Pages
- 1complex layout
- Tables
- 0none detected
- Columns
- 1page 1
- Needs OCR
- 0no page flagged
Detected by @firecrawl/pdf-inspector 1.17.0, which also competes as pdf-inspector in the table below. The description of the document and one of the parsers being scored come from the same library.
pdf-inspectorReading order100%columns kept apartHeading structure100%H1 as expectedOCR routing0% / 0%0 correct, 0 false positives, 0 missedMedian3.0msof three runs
3.0 ms · 3.0 ms · 3.0 ms
<!-- Page 1 --> # On Reading Order Left column line 1. Left column line 2. Left column line 3. Left column line 4. Left column line 5. Left column line 6. Left column line 7. Left column line 8. Left column line 9. Left column line 10. Left column line 11. Left column line 12. Left column line 13. Left column line 14. Left column line 15. Left column line 16. Left column line 17. Left column line 18. Left column line 19. Left column line 20. Right column line 1. Right column line 2. Right column line 3. Right column line 4. Right column line 5. Right column line 6. Right column line 7. Right column line 8. Right column line 9. Right column line 10. Right column line 11. Right column line 12. Right column line 13. Right column line 14. Right column line 15. Right column line 16. Right column line 17. Right column line 18. Right column line 19. Right column line 20.
LiteParseReading order100%columns kept apartHeading structure100%H1 as expectedOCR routing0% / 0%0 correct, 1 false positive, 0 missed — flags: sparse-text ×1Median834.0msof three runs
823.0 ms · 843.0 ms · 834.0 ms
<!-- Page 1 --> # On Reading Order Left column line 1. Left column line 2. Left column line 3. Left column line 4. Left column line 5. Left column line 6. Left column line 7. Left column line 8. Left column line 9. Left column line 10. Left column line 11. Left column line 12. Left column line 13. Left column line 14. Left column line 15. Left column line 16. Left column line 17. Left column line 18. Left column line 19. Left column line 20. Right column line 1. Right column line 2. Right column line 3. Right column line 4. Right column line 5. Right column line 6. Right column line 7. Right column line 8. Right column line 9. Right column line 10. Right column line 11. Right column line 12. Right column line 13. Right column line 14. Right column line 15. Right column line 16. Right column line 17. Right column line 18. Right column line 19. Right column line 20.
OpenDataLoader PDFReading order75.6%columns interleavedHeading structure100%H1 as expectedOCR routingn/anot applicableMedian232.0msof three runs
233.0 ms · 232.0 ms · 229.0 ms
<!-- Page 1 --> # On Reading Order - Left column line 1. Right column line 1. - Left column line 2. Right column line 2. - Left column line 3. Right column line 3. - Left column line 4. Right column line 4. - Left column line 5. Right column line 5. - Left column line 6. Right column line 6. - Left column line 7. Right column line 7. - Left column line 8. Right column line 8. - Left column line 9. Right column line 9. - Left column line 10. Right column line 10. - Left column line 11. Right column line 11. - Left column line 12. Right column line 12. - Left column line 13. Right column line 13. - Left column line 14. Right column line 14. - Left column line 15. Right column line 15. - Left column line 16. Right column line 16. - Left column line 17. Right column line 17. - Left column line 18. Right column line 18. - Left column line 19. Right column line 19. - Left column line 20. Right column line 20.
@opendocsg/pdf2mdReading order75.6%columns interleavedHeading structure100%H1 as expectedOCR routingn/anot applicableMedian5.0msof three runs
6.0 ms · 5.0 ms · 4.0 ms
# On Reading Order Left column line 1. Right column line 1. Left column line 2. Right column line 2. Left column line 3. Right column line 3. Left column line 4. Right column line 4. Left column line 5. Right column line 5. Left column line 6. Right column line 6. Left column line 7. Right column line 7. Left column line 8. Right column line 8. Left column line 9. Right column line 9. Left column line 10. Right column line 10. Left column line 11. Right column line 11. Left column line 12. Right column line 12. Left column line 13. Right column line 13. Left column line 14. Right column line 14. Left column line 15. Right column line 15. Left column line 16. Right column line 16. Left column line 17. Right column line 17. Left column line 18. Right column line 18. Left column line 19. Right column line 19. Left column line 20. Right column line 20.
unpdfReading order75.6%columns interleavedHeading structure0%kept as plain textOCR routingn/anot applicableMedian2.0msof three runs
2.0 ms · 1.0 ms · 2.0 ms
<!-- Page 1 --> On Reading Order Left column line 1. Right column line 1. Left column line 2. Right column line 2. Left column line 3. Right column line 3. Left column line 4. Right column line 4. Left column line 5. Right column line 5. Left column line 6. Right column line 6. Left column line 7. Right column line 7. Left column line 8. Right column line 8. Left column line 9. Right column line 9. Left column line 10. Right column line 10. Left column line 11. Right column line 11. Left column line 12. Right column line 12. Left column line 13. Right column line 13. Left column line 14. Right column line 14. Left column line 15. Right column line 15. Left column line 16. Right column line 16. Left column line 17. Right column line 17. Left column line 18. Right column line 18. Left column line 19. Right column line 19. Left column line 20. Right column line 20.
pdf-parseReading order75.6%columns interleavedHeading structure0%kept as plain textOCR routingn/anot applicableMedian3.0msof three runs
3.0 ms · 3.0 ms · 3.0 ms
<!-- Page 1 --> On Reading Order Left column line 1. Right column line 1. Left column line 2. Right column line 2. Left column line 3. Right column line 3. Left column line 4. Right column line 4. Left column line 5. Right column line 5. Left column line 6. Right column line 6. Left column line 7. Right column line 7. Left column line 8. Right column line 8. Left column line 9. Right column line 9. Left column line 10. Right column line 10. Left column line 11. Right column line 11. Left column line 12. Right column line 12. Left column line 13. Right column line 13. Left column line 14. Right column line 14. Left column line 15. Right column line 15. Left column line 16. Right column line 16. Left column line 17. Right column line 17. Left column line 18. Right column line 18. Left column line 19. Right column line 19. Left column line 20. Right column line 20.
0 of 6 parsers read the scan
The table fixture again, but drawn with a bitmap font into a greyscale pixel buffer, encoded as a PNG and embedded as a full-page image. The page contains no font and no text-drawing operator.
There is no text to extract. Anything recovered here has to come from optical character recognition, which separates parsers that do OCR from parsers that only read a text layer.
Not one of them recovered a single one of the 9 cells. Five returned an empty page, which is at least an honest answer. One did something worse.
What the document contains
- Type
- scannedconfidence 0.95
- Pages
- 1simple layout
- Tables
- 0none detected
- Columns
- 0single column
- Needs OCR
- 1page 1
- page 1no text layer0 characters
Detected by @firecrawl/pdf-inspector 1.17.0, which also competes as pdf-inspector in the table below. The description of the document and one of the parsers being scored come from the same library.
# FIMAMCTIAL REGION 2 03 MORTH 128 1435 ied | SOUTH | 23 | 162 | 113 | |---|---|---|---| | EAST | 218 | 192 | 225 |
The title came back as FIMAMCTIAL. The first row of figures came back as MORTH 128 1435 ied — a region name that is not on the page, beside numbers that are not the ones printed on it. The rows that follow are a well-formed Markdown table, correctly piped and aligned, carrying values the page never contained. None of it is marked uncertain, so a pipeline downstream has no way to tell this from a clean read.
The rest returned nothing at all.
- pdf-inspectornothing returned0.0ms
- OpenDataLoader PDFnothing returned171.0ms
- @opendocsg/pdf2mdEMPTY_OUTPUT3.0ms
- unpdfnothing returned1.0ms
- pdf-parsenothing returned0.0ms
pdf-inspectornothing returned
1.0 ms · 0.0 ms · 0.0 ms
<!-- Page 1 -->
LiteParsecharacters invented
211.0 ms · 201.0 ms · 200.0 ms
<!-- Page 1 --> # FIMAMCTIAL REGION 2 03 MORTH 128 1435 ied | SOUTH | 23 | 162 | 113 | |---|---|---|---| | EAST | 218 | 192 | 225 |
OpenDataLoader PDFnothing returned
171.0 ms · 156.0 ms · 175.0 ms
<!-- Page 1 -->
@opendocsg/pdf2mdEMPTY_OUTPUT
3.0 ms · EMPTY_OUTPUT
No output returned.
unpdfnothing returned
1.0 ms · 0.0 ms · 1.0 ms
<!-- Page 1 -->
pdf-parsenothing returned
0.0 ms · 0.0 ms · 1.0 ms
<!-- Page 1 -->
Two tables that share their numbers
A title over two stacked blocks, Coastal Division and Inland Division, each a four-column table. Both blocks use the same three values in every cell, permuted differently.
Because the two tables are built from the same small set of numbers, a parser that merges or reorders them produces output that still looks plausible. Reading a figure off the page cannot tell you which division it came from unless the blocks stayed separate.
What the document contains
- Type
- text-basedconfidence 1.00
- Pages
- 1complex layout
- Tables
- 1page 1
- Columns
- 1page 1
- Needs OCR
- 0no page flagged
Detected by @firecrawl/pdf-inspector 1.17.0, which also competes as pdf-inspector in the table below. The description of the document and one of the parsers being scored come from the same library.
pdf-inspectorCell alignment100%9/9 cellsHeading structure100%H1 as expectedOCR routing0% / 0%0 correct, 0 false positives, 0 missedMedian2.0msof three runs
2.0 ms · 3.0 ms · 2.0 ms
<!-- Page 1 --> # Divisional Results ## Coastal Division |Region|Q1|Q2|Q3| |---|---|---|---| |North|44|17|63| |South|17|63|44| |East|63|44|17| ## Inland Division |Region|Q1|Q2|Q3| |---|---|---|---| |North|17|44|44| |South|63|17|17| |East|44|63|63|
LiteParseCell alignment100%9/9 cellsHeading structure100%H1 as expectedOCR routing0% / 0%0 correct, 1 false positive, 0 missed — flags: sparse-text ×1Median250.0msof three runs
250.0 ms · 315.0 ms · 244.0 ms
<!-- Page 1 --> # Divisional Results ## Coastal Division | Region | Q1 | Q2 | Q3 | |---|---|---|---| | North | 44 | 17 | 63 | | South | 17 | 63 | 44 | | East | 63 | 44 | 17 | ## Inland Division | Region | Q1 | Q2 | Q3 | |---|---|---|---| | North | 17 | 44 | 44 | | South | 63 | 17 | 17 | | East | 44 | 63 | 63 |
OpenDataLoader PDFCell alignment0%0/9 cellsHeading structure100%H1 as expectedOCR routingn/anot applicableMedian294.0msof three runs
294.0 ms · 305.0 ms · 238.0 ms
<!-- Page 1 --> # Divisional Results ## Coastal Division Region Q1 Q2 Q3 North 44 17 63 South 17 63 44 East 63 44 17 ## Inland Division Region Q1 Q2 Q3 North 17 44 44 South 63 17 17 East 44 63 63
@opendocsg/pdf2mdCell alignment0%0/9 cellsHeading structure100%H1 as expectedOCR routingn/anot applicableMedian4.0msof three runs
8.0 ms · 4.0 ms · 4.0 ms
# Divisional Results ## Coastal Division Region Q1 Q2 Q3 North 44 17 63 South 17 63 44 East 63 44 17 ## Inland Division Region Q1 Q2 Q3 North 17 44 44 South 63 17 17 East 44 63 63
unpdfCell alignment0%0/9 cellsHeading structure0%kept as plain textOCR routingn/anot applicableMedian2.0msof three runs
3.0 ms · 1.0 ms · 2.0 ms
<!-- Page 1 --> Divisional Results Coastal Division Region Q1 Q2 Q3 North 44 17 63 South 17 63 44 East 63 44 17 Inland Division Region Q1 Q2 Q3 North 17 44 44 South 63 17 17 East 44 63 63
pdf-parseCell alignment0%0/9 cellsHeading structure0%kept as plain textOCR routingn/anot applicableMedian2.0msof three runs
3.0 ms · 2.0 ms · 2.0 ms
<!-- Page 1 --> Divisional Results Coastal Division Region Q1 Q2 Q3 North 44 17 63 South 17 63 44 East 63 44 17 Inland Division Region Q1 Q2 Q3 North 17 44 44 South 63 17 17 East 44 63 63
54.0 seconds, for 5% more table structure
The other 6 documents on this page are synthetic, single-page and finish in milliseconds. This one is 100 pages of a real financial report — dense tables, dot-leader contents pages, multi-column text and charts, with a genuine text layer of 272,405 characters.
At this size the axis that mattered on the synthetic fixtures — whether a parser can reconstruct a table at all — stops being the only question. LiteParse recovers the most table structure — 6,720 pipes against pdf-inspector’s 6,372, 5% more — and spends 54.0 seconds doing it, 18.3× the 2.9 seconds pdf-inspector takes. On a single synthetic page that difference was invisible. Across a real report it is the decision.
What the document contains
- Type
- text-basedconfidence 0.88
- Pages
- 100complex layout
- Tables
- 44pages 4–6, 27 +16 more
- Columns
- 49pages 2, 4–5 +18 more
- Needs OCR
- 2pages 1, 77
- page 1no text layer0 characters
- page 77text came back garbled0 characters
Two readings disagree here. The document-level summary reports no pages needing OCR. The per-page check flags pages 1, 77, which returned zero characters. The first is a fast whole-file heuristic, the second extracts each page and counts what came back; both numbers are shown rather than one being chosen.
Detected by @firecrawl/pdf-inspector 1.17.0, which also competes as pdf-inspector in the table below. The description of the document and one of the parsers being scored come from the same library.
Read across, not down. A long time bar beside a long structure bar is a parser paying for what it recovers; the 3 parsers whose structure bar barely registers — @opendocsg/pdf2md, unpdf, pdf-parse — returned the text of all 100 pages as prose, with no table markup to count. Pipe count says table-shaped output survived, not that the cells landed under the right headers. Nothing here is scored against a reference.
OpenDataLoader PDF scores 0% on the synthetic tables and recovers 2,627 pipes here
On tables.pdf and ragged-table.pdf it recovers no cells at all, which reads like a parser that cannot do tables. This document shows that is the wrong conclusion. It failed the particular way those fixtures are constructed — free-standing text at fixed coordinates, with no ruling lines — and not tables in general. Both results are real; only the second one generalises.
Which pages truly need OCR: 2 of 100
A page truly needs OCR here if it yields zero extractable characters — on this report that is pages 1, 77. Scored against that, pdf-inspector and LiteParse read very differently.
- 1 no text layer
- 1 text came back garbled
- 99 embedded-images
- 48 sparse-text
- 1 no text layer
LiteParse’s recall matches pdf-inspector’s — it never misses a genuinely empty page — but its precision is far lower because it flags nearly every page on this report. That is not a broken verdict: 99 of its flags are embedded-images, and this report genuinely is chart-heavy. LiteParse’s needsOcr is documented as a cheap pre-OCR check tuned to also catch pages worth OCRing for their images, not only pages whose text is unreadable. pdf-inspector’s narrower verdict answers a different, stricter question: is the text on this page usable at all. Both are answering the question they say they answer — they are just different questions.
LiteParse272,405 characters over 100 pages
54.0 s · one run · 6,720 pipes · 170 headings
The first 4,000 characters of the output. The full result is not republished here: the source document is NSE’s.
<!-- Page 1 --> MARKET PULSE ##### A monthly review of the #### Indian economy and markets Se \\ ###### Corporate strength India’s growth momentum \\ September 2026 | Volume 8 | Issue 9 <!-- Page 2 -->  ## QO NSE Market Pulse September 2026 | Vol. 8, Issue 9 ###### Market Pulse ###### Volume 8, Issue 9 This publication is issued monthly by the Economic Policy and Research (EPR) department of the National Stock Exchange of India Limited. It is a review of major developments in the economy and financial markets and market statistics for the month gone by, insights from cited academic research papers and topical research articles. ###### Authors *Tirthankar Patnaik, PhD Prerna Singhvi, CFA Prosenjit Pal Ashiana Salian Sushant Hede Stuti Bakshi Puja Parmar, PhD Aratrik Chakraborty Sahil Bagdi Anuska Mukherjee Anoushka Singh* Past editions of Market Pulse can be accessed at [**https://www.nseindia.com/research/publications-reports-nse-**](https://www.nseindia.com/research/publications-reports-nse-market-pulse) **market-pulse**  ###### NATIONAL STOCK EXCHANGE OF INDIA LIMITED 1/327 <!-- Page 3 -->  ## QO NSE Market Pulse September 2026 | Vol. 8, Issue 9 ## Market Pulse --- *Published by Economic Policy and Research, National Stock Exchange of India Ltd. Copyright © 2026 by National Stock Exchange of India Ltd. (NSE) Exchange Plaza, Bandra Kurla Complex Bandra (East), Mumbai 400 051 INDIA Any/all Intellectual Property rights in this report including without limitation any/all contents/information/data forming a part of this report shall at all times vest with NSE. No part of this report may be sold/distributed/licensed/produced/transmitted in any form or manner by any means (including without limitation - electronic, mechanical, photocopying, recording or otherwise) to any person/entity whatsoever without the prior written permission of NSE. Extracts from this report may be used or cited provided that NSE is duly notified and acknowledged as the source of such extract. This report is intended solely for information purposes. This report is under no circumstances intended to be used or considered as financial or investment advice, a recommendation or an offer to sell, or a solicitation of any offer to buy any securities or other form of financial asset. The Report has been prepared on best effort basis, relying upon information obtained from various sources. NSE does not guarantee the completeness, accuracy and/or timeliness of this report neither does NSE guarantee the accuracy or projections of future conditions from the use of this report or any information therein. In no event, NSE, or any of its officers, directors, employees, affiliates, or other agents are responsible for any loss or damage arising out of this report. All investments are subject to risks, which should be considered prior to making any investments.* 2/327 <!-- Page 4 -->  **Market Pulse** September 2026 | Vol. 8, Issue 9 **NSE at a glance** **NSE's positioning and reach** | NSE's global positioning | Domestic market share | Reach | |---|---|---| | Largest multi-asset class | 1,330 | Trading members | **1 Three-month rolling share (%)** exchange 99+% Pin codes covered EQ Cash 92.2 Third largest equity exchange 13.5 Crore Unique registered PANs **3** by no. of trades (10.6% share Total passive AUM (domestic EQ Futures 99.8 in FY27TD\* as per WFE) US$99.2bn\* + global) tracking Nifty EQ Options\* 68.6 indices Largest derivatives exchange by **1** contracts traded (FY27TD\* US$5.14trn Market cap of listed entitles FX Futures 100.0 share: 50.2% in eq. F&O (WFE) As of August 31st, 2026, unless specified otherwise; \*As of July 31st, 2026. **9 Market capitalization\*** FX Options\* 100.0 ^Represents the aggregate market value of all equity shares traded on NSE and units of Listed REITs and \* Based on premium turnover InvITs traded on NSE as on the las
pdf-inspector248,846 characters over 100 pages
2.9 s · one run · 6,372 pipes · 265 headings
The first 4,000 characters of the output. The full result is not republished here: the source document is NSE’s.
<!-- Page 1 --> <!-- Page 2 --> # Market Pulse September 2026 | Vol. 8, Issue 9 ## Market Pulse ### Volume 8, Issue 9 This publication is issued monthly by the Economic Policy and Research (EPR) department of the National Stock Exchange of India Limited. It is a review of major developments in the economy and financial markets and market statistics for the month gone by, insights from cited academic research papers and topical research articles. **Authors** *Tirthankar Patnaik, PhD* *Prerna Singhvi, CFA* *Prosenjit Pal* *Ashiana Salian* *Sushant Hede* *Stuti Bakshi* *Puja Parmar, PhD* *Aratrik Chakraborty* *Sahil Bagdi* *Anuska Mukherjee* *Anoushka Singh* Past editions of Market Pulse can be accessed at <u>[https://www.nseindia.com/research/publications-reports-nse-](https://www.nseindia.com/research/publications-reports-nse-) market-pulse</u> #### NATIONAL STOCK EXCHANGE OF INDIA LIMITED 1/327 <!-- Page 3 --> # Market Pulse ## September 2026 | Vol. 8, Issue 9 # Market Pulse *Published by Economic Policy and Research, National Stock Exchange of* *India Ltd.* *Copyright © 2026 by National Stock Exchange of India Ltd. (NSE)* *Exchange Plaza, Bandra Kurla Complex* *Bandra (East), Mumbai 400 051 INDIA* *Any/all Intellectual Property rights in this report including without* *limitation any/all contents/information/data forming a part of this report* *shall at all times vest with NSE. No part of this report may be* *sold/distributed/licensed/produced/transmitted in any form or manner by* *any means (including without limitation-electronic, mechanical,* *photocopying, recording or otherwise) to any person/entity whatsoever* *without the prior written permission of NSE. Extracts from this report may* *be used or cited provided that NSE is duly notified and acknowledged as* *the source of such extract.* *This report is intended solely for information purposes. This report is under* *no circumstances intended to be used or considered as financial or* *investment advice, a recommendation or an offer to sell, or a solicitation* *of any offer to buy any securities or other form of financial asset. The* *Report has been prepared on best effort basis, relying upon information* *obtained from various sources. NSE does not guarantee the completeness,* *accuracy and/or timeliness of this report neither does NSE guarantee the* *accuracy or projections of future conditions from the use of this report or* *any information therein. In no event, NSE, or any of its officers, directors,* *employees, affiliates, or other agents are responsible for any loss or* *damage arising out of this report. All investments are subject to risks,* *which should be considered prior to making any investments.* 2/327 <!-- Page 4 --> # Market Pulse #### September 2026 | Vol. 8, Issue 9 ### NSE at a glance ##### NSE’s positioning and reach ##### NSE’s global positioning Domestic market share Reach Largest multi-asset class 1,330 Trading members **Three-month rolling share (%)** **1** |99+%|Pin codes covered| |---|---| |13.5 Crore|Unique registered PANs Total passive AUM (domestic| |US$99.2bn*|+ global) tracking Nifty indices| |US$5.14trn|Market cap of listed entitles| exchange |EQ Cash EQ Futures|||92.2 99.8| |---|---|---|---| |EQ Options* FX Futures||68.6|100.0| |FX Options*|||100.0| |* Based on premium turnover st ** As of August 31, 2026 Rs 23,993 crore Total capital raised|NSE’s contribution to the economy SME Listing snapshot||| |through SME IPOs|748||| |since|SME IPOs||| |inception (till July 2026) (in lakh)|Investor growth Individual investors’ participation* CM|FO|164 Migration to Main Board| |400 350|||353 358 359| |||282|| |300 250||250|| ||198||| |200|||| |150|111||108| |76 100|76|75|92 85| |58||59|| |47|35||| |50 10 8 7 0|18 12||| ##### Third largest equity exchange ## 3by no. of trades (10.6% share in FY27TD* as per WFE) Largest derivatives exchange by ## 1contracts traded (FY27TD* share: 50.2% in eq. F&O (WFE) As of Aug
OpenDataLoader PDF265,237 characters over 100 pages
2.7 s · one run · 2,627 pipes · 350 headings
The first 4,000 characters of the output. The full result is not republished here: the source document is NSE’s.
<!-- Page 1 --> <!-- Page 2 --> ## Market Pulse September 2026 | Vol. 8, Issue 9 ### Market Pulse #### Volume 8, Issue 9 This publication is issued monthly by the Economic Policy and Research (EPR) department of the National Stock Exchange of India Limited. It is a review of major developments in the economy and financial markets and market statistics for the month gone by, insights from cited academic research papers and topical research articles. Authors Tirthankar Patnaik, PhD Prerna Singhvi, CFA Prosenjit Pal Ashiana Salian Sushant Hede Stuti Bakshi Puja Parmar, PhD Aratrik Chakraborty Sahil Bagdi Anuska Mukherjee Anoushka Singh Past editions of Market Pulse can be accessed at https://www.nseindia.com/research/publications-reports-nsemarket-pulse ##### NATIONAL STOCK EXCHANGE OF INDIA LIMITED ###### 1/327 <!-- Page 3 --> ## Market Pulse September 2026 | Vol. 8, Issue 9 ## Market Pulse Published by Economic Policy and Research, National Stock Exchange of India Ltd. Copyright © 2026 by National Stock Exchange of India Ltd. (NSE) Exchange Plaza, Bandra Kurla Complex Bandra (East), Mumbai 400 051 INDIA Any/all Intellectual Property rights in this report including without limitation any/all contents/information/data forming a part of this report shall at all times vest with NSE. No part of this report may be sold/distributed/licensed/produced/transmitted in any form or manner by any means (including without limitation - electronic, mechanical, photocopying, recording or otherwise) to any person/entity whatsoever without the prior written permission of NSE. Extracts from this report may be used or cited provided that NSE is duly notified and acknowledged as the source of such extract. This report is intended solely for information purposes. This report is under no circumstances intended to be used or considered as financial or investment advice, a recommendation or an offer to sell, or a solicitation of any offer to buy any securities or other form of financial asset. The Report has been prepared on best effort basis, relying upon information obtained from various sources. NSE does not guarantee the completeness, accuracy and/or timeliness of this report neither does NSE guarantee the accuracy or projections of future conditions from the use of this report or any information therein. In no event, NSE, or any of its officers, directors, employees, affiliates, or other agents are responsible for any loss or damage arising out of this report. All investments are subject to risks, which should be considered prior to making any investments. ###### 2/327 <!-- Page 4 --> ## Market Pulse September 2026 | Vol. 8, Issue 9 ###### NSE at a glance ###### NSE’s positioning and reach ##### NSE’s global positioning Domestic market share Reach 1 Largestexchangemulti-assetclass 3 1,330 Trading members 99+% Pin codes covered 13.5 Crore Unique registered PANs ###### Three-month rolling share (%) EQ Cash 92.2 Third largest equity exchange by no. of trades (10.6% share in FY27TD* as per WFE) Total passive AUM (domestic EQ Futures 99.8 US$99.2bn* + global) tracking Nifty indices EQ Options* 68.6 Largest derivatives exchange by contracts traded (FY27TD* share: 50.2% in eq. F&O (WFE) ##### 1 US$5.14trn Market cap of listed entitles FX Futures 100.0 As of August 31st, 2026, unless specified otherwise; *As of July 31st, 2026. 9 Marketcapitalization* FX Options* 100.0 ^Represents the aggregate market value of all equity shares traded on NSE and units of Listed REITs and InvITs traded on NSE as on the last trading day of the relevant period/year - Based on premium turnover - * As of August 31st, 2026 *Source: WFE (Data is as of July 2026) ###### NSE’s contribution to the economy ###### Catalyst for capital formation SME Listing snapshot Market capitalisation |136<br><br>0<br><br>100<br><br>200<br><br>0<br><br>100<br><br>200<br><br>300<br><br>400<br><br>500<br><br>FY17 FY19 FY21 FY23 FY25 FY
@opendocsg/pdf2md249,326 characters over 100 pages
1.5 s · one run · 98 pipes · 22 headings
The first 4,000 characters of the output. The full result is not republished here: the source document is NSE’s.
<!-- PAGE_BREAK --> September 2026 | Vol. 8, Issue 9 ### Market Pulse #### Volume 8, Issue 9 This publication is issued monthly by the Economic Policy and Research (EPR) department of the National Stock Exchange of India Limited. It is a review of major developments in the economy and financial markets and market statistics for the month gone by, insights from cited academic research papers and topical research articles. **Authors** _Tirthankar Patnaik, PhD_ _Prerna Singhvi, CFA_ _Prosenjit Pal_ _Ashiana Salian_ _Sushant Hede_ _Stuti Bakshi_ _Puja Parmar, PhD_ _Aratrik Chakraborty_ _Sahil Bagdi_ _Anuska Mukherjee_ _Anoushka Singh_ Past editions of Market Pulse can be accessed at **https://www.nseindia.com/research/publications-reports-nse-** **market-pulse** ##### NATIONAL STOCK EXCHANGE OF INDIA ##### LIMITED <!-- PAGE_BREAK --> September 2026 | Vol. 8, Issue 9 ## Market Pulse Published by Economic Policy and Research, National Stock Exchange of India Ltd. Copyright © 2026 by National Stock Exchange of India Ltd. (NSE) Exchange Plaza, Bandra Kurla Complex Bandra (East), Mumbai 400 051 INDIA Any/all Intellectual Property rights in this report including without limitation any/all contents/information/data forming a part of this report shall at all times vest with NSE. No part of this report may be sold/distributed/licensed/produced/transmitted in any form or manner by any means (including without limitation - electronic, mechanical, photocopying, recording or otherwise) to any person/entity whatsoever without the prior written permission of NSE. Extracts from this report may be used or cited provided that NSE is duly notified and acknowledged as the source of such extract. This report is intended solely for information purposes. This report is under no circumstances intended to be used or considered as financial or investment advice, a recommendation or an offer to sell, or a solicitation of any offer to buy any securities or other form of financial asset. The Report has been prepared on best effort basis, relying upon information obtained from various sources. NSE does not guarantee the completeness, accuracy and/or timeliness of this report neither does NSE guarantee the accuracy or projections of future conditions from the use of this report or any information therein. In no event, NSE, or any of its officers, directors, employees, affiliates, or other agents are responsible for any loss or damage arising out of this report. All investments are subject to risks, which should be considered prior to making any investments. <!-- PAGE_BREAK --> September 2026 | Vol. 8, Issue 9 ###### NSE at a glance **NSE’s positioning and reach** **NSE’s global positioning Domestic market share Reach** ##### 1 Largest multi-asset class exchange ##### 3 Third largest equity exchange by no. of trades (10.6% share in FY27TD* as per WFE) ##### 1 Largest derivatives exchange by contracts traded (FY27TD* share: 50.2% in eq. F&O (WFE) ##### 9 Market capitalization* *Source: WFE (Data is as of July 2026) * Based on premium turnover ** As of August 31st, 2026 1,330 Trading members 99+% Pin codes covered 13.5 Crore Unique registered PANs US$99.2bn* Total passive AUM (domestic + global) tracking Nifty indices US$5.14trn Market cap of listed entitles As of August 31st, 2026, unless specified otherwise; *As of July 31st, 2026. ^Represents the aggregate market value of all equity shares traded on NSE and units of Listed REITs and InvITs traded on NSE as on the last trading day of the relevant period/year **NSE’s contribution to the economy** **Catalyst for capital formation SME Listing snapshot**^ **Market capitalisation** #Companies including AMCs and ITP listing as of August 2026 ^Represents the aggregate market value of all equity shares traded on NSE and units of Listed REITs and InvITs traded on NSE as on the last trading day of the rele
unpdf242,328 characters over 100 pages
0.5 s · one run · 98 pipes · 2 headings
The first 4,000 characters of the output. The full result is not republished here: the source document is NSE’s.
<!-- Page 1 --> <!-- Page 2 --> Market Pulse September 2026 | Vol. 8, Issue 9 1/327 Market Pulse Volume 8, Issue 9 This publication is issued monthly by the Economic Policy and Research (EPR) department of the National Stock Exchange of India Limited. It is a review of major developments in the economy and financial markets and market statistics for the month gone by, insights from cited academic research papers and topical research articles. Authors Tirthankar Patnaik, PhD Prerna Singhvi, CFA Prosenjit Pal Ashiana Salian Sushant Hede Stuti Bakshi Puja Parmar, PhD Aratrik Chakraborty Sahil Bagdi Anuska Mukherjee Anoushka Singh Past editions of Market Pulse can be accessed at https://www.nseindia.com/research/publications-reports-nse- market-pulse NATIONAL STOCK EXCHANGE OF INDIA LIMITED <!-- Page 3 --> Market Pulse September 2026 | Vol. 8, Issue 9 2/327 Market Pulse Published by Economic Policy and Research, National Stock Exchange of India Ltd. Copyright © 2026 by National Stock Exchange of India Ltd. (NSE) Exchange Plaza, Bandra Kurla Complex Bandra (East), Mumbai 400 051 INDIA Any/all Intellectual Property rights in this report including without limitation any/all contents/information/data forming a part of this report shall at all times vest with NSE. No part of this report may be sold/distributed/licensed/produced/transmitted in any form or manner by any means (including without limitation - electronic, mechanical, photocopying, recording or otherwise) to any person/entity whatsoever without the prior written permission of NSE. Extracts from this report may be used or cited provided that NSE is duly notified and acknowledged as the source of such extract. This report is intended solely for information purposes. This report is under no circumstances intended to be used or considered as financial or investment advice, a recommendation or an offer to sell, or a solicitation of any offer to buy any securities or other form of financial asset. The Report has been prepared on best effort basis, relying upon information obtained from various sources. NSE does not guarantee the completeness, accuracy and/or timeliness of this report neither does NSE guarantee the accuracy or projections of future conditions from the use of this report or any information therein. In no event, NSE, or any of its officers, directors, employees, affiliates, or other agents are responsible for any loss or damage arising out of this report. All investments are subject to risks, which should be considered prior to making any investments. <!-- Page 4 --> Market Pulse September 2026 | Vol. 8, Issue 9 3/327 NSE at a glance NSE’s positioning and reach NSE’s global positioning Domestic market share Reach 1 Largest multi-asset class exchange 3 Third largest equity exchange by no. of trades (10.6% share in FY27TD* as per WFE) 1 Largest derivatives exchange by contracts traded (FY27TD* share: 50.2% in eq. F&O (WFE) 9 Market capitalization* *Source: WFE (Data is as of July 2026) * Based on premium turnover ** As of August 31st, 2026 1,330 Trading members 99+% Pin codes covered 13.5 Crore Unique registered PANs US$99.2bn* Total passive AUM (domestic + global) tracking Nifty indices US$5.14trn Market cap of listed entitles As of August 31st, 2026, unless specified otherwise; *As of July 31st, 2026. ^Represents the aggregate market value of all equity shares traded on NSE and units of Listed REITs and InvITs traded on NSE as on the last trading day of the relevant period/year NSE’s contribution to the economy Catalyst for capital formation SME Listing snapshot Market capitalisation #Companies including AMCs and ITP listing as of August 2026 ^Represents the aggregate market value of all equity shares traded on NSE and units of Listed REITs and InvITs traded on NSE as on the last trading day of the relevant period/year. * Market cap to GDP is based on 3M avg. market cap and nominal GDP for the last four quarters. #Data for FY27TD is as o August 31st, 2026 Inv
pdf-parse242,450 characters over 100 pages
0.6 s · one run · 98 pipes · 2 headings
The first 4,000 characters of the output. The full result is not republished here: the source document is NSE’s.
<!-- Page 1 --> <!-- Page 2 --> Market Pulse September 2026 | Vol. 8, Issue 9 1/327 Market Pulse Volume 8, Issue 9 This publication is issued monthly by the Economic Policy and Research (EPR) department of the National Stock Exchange of India Limited. It is a review of major developments in the economy and financial markets and market statistics for the month gone by, insights from cited academic research papers and topical research articles. Authors Tirthankar Patnaik, PhD Prerna Singhvi, CFA Prosenjit Pal Ashiana Salian Sushant Hede Stuti Bakshi Puja Parmar, PhD Aratrik Chakraborty Sahil Bagdi Anuska Mukherjee Anoushka Singh Past editions of Market Pulse can be accessed at https://www.nseindia.com/research/publications-reports-nse- market-pulse NATIONAL STOCK EXCHANGE OF INDIA LIMITED <!-- Page 3 --> Market Pulse September 2026 | Vol. 8, Issue 9 2/327 Market Pulse Published by Economic Policy and Research, National Stock Exchange of India Ltd. Copyright © 2026 by National Stock Exchange of India Ltd. (NSE) Exchange Plaza, Bandra Kurla Complex Bandra (East), Mumbai 400 051 INDIA Any/all Intellectual Property rights in this report including without limitation any/all contents/information/data forming a part of this report shall at all times vest with NSE. No part of this report may be sold/distributed/licensed/produced/transmitted in any form or manner by any means (including without limitation - electronic, mechanical, photocopying, recording or otherwise) to any person/entity whatsoever without the prior written permission of NSE. Extracts from this report may be used or cited provided that NSE is duly notified and acknowledged as the source of such extract. This report is intended solely for information purposes. This report is under no circumstances intended to be used or considered as financial or investment advice, a recommendation or an offer to sell, or a solicitation of any offer to buy any securities or other form of financial asset. The Report has been prepared on best effort basis, relying upon information obtained from various sources. NSE does not guarantee the completeness, accuracy and/or timeliness of this report neither does NSE guarantee the accuracy or projections of future conditions from the use of this report or any information therein. In no event, NSE, or any of its officers, directors, employees, affiliates, or other agents are responsible for any loss or damage arising out of this report. All investments are subject to risks, which should be considered prior to making any investments. <!-- Page 4 --> Market Pulse September 2026 | Vol. 8, Issue 9 3/327 NSE at a glance NSE’s positioning and reach NSE’s global positioning Domestic market share Reach 1 Largest multi-asset class exchange 3 Third largest equity exchange by no. of trades (10.6% share in FY27TD* as per WFE) 1 Largest derivatives exchange by contracts traded (FY27TD* share: 50.2% in eq. F&O (WFE) 9 Market capitalization* *Source: WFE (Data is as of July 2026) * Based on premium turnover ** As of August 31st, 2026 1,330 Trading members 99+% Pin codes covered 13.5 Crore Unique registered PANs US$99.2bn* Total passive AUM (domestic + global) tracking Nifty indices US$5.14trn Market cap of listed entitles As of August 31st, 2026, unless specified otherwise; *As of July 31st, 2026. ^Represents the aggregate market value of all equity shares traded on NSE and units of Listed REITs and InvITs traded on NSE as on the last trading day of the relevant period/year NSE’s contribution to the economy Catalyst for capital formation SME Listing snapshot Market capitalisation #Companies including AMCs and ITP listing as of August 2026 ^Represents the aggregate market value of all equity shares traded on NSE and units of Listed REITs and InvITs traded on NSE as on the last trading day of the relevant period/year. * Market cap to GDP is based on 3M avg. market cap and nominal GDP for the last four quarters. #Data for FY27TD is as o August 31st, 2026 Inv
Market Pulse, September 2026 (Volume 8, Issue 9) is published monthly by NSE India’s Economic Policy and Research department, which holds copyright in it. The file here is the first 100 pages of the 330-page report, trimmed to this site’s page cap and used unmodified as a parser test input. The complete report is available from NSE, and every issue from their Market Pulse index.
Package versions
- @firecrawl/pdf-inspector
- 1.17.0
- @llamaindex/liteparse
- 2.14.3
- @opendataloader/pdf
- 2.5.7
- @opendocsg/pdf2md
- 0.3.0
- unpdf
- 1.8.1
- pdf-parse
- 2.4.5