{"observation":{"id":"97dfdbc2-3390-4bf7-9d20-af8a5dd33d01","tool":"nutrient-io","tool_name":"Nutrient.io","criterion":"table-preservation","criterion_name":"Table Preservation","criterion_definition":"Preserves complex table structures, including rows, columns, multi-row headers, and merged-cell relationships in markdown.","criterion_evidence_type":"transformation","criterion_rank_role":"decisive","criterion_rank_role_reason":"Accurate Markdown conversion of complex PDFs depends on keeping table structure intact, not flattening it into plain text. (3 of 3 judges)","scenario":"scanned-research-paper","scenario_name":"Scanned Research Paper","group_tag":"scanned-research-paper","scenario_description":"An image-only scanned research paper used to stress OCR and layout recovery in a multi-column academic document with figures, charts, tables, captions, and references.","modality":"pdf","input_text":null,"input_artifact_refs":[{"alt":null,"url":"https://d3epheqghktydj.cloudfront.net/convert-a-complex-pdf-into-clean-markdow-scanned-research-pdf-7b86de49784d.pdf","role":"input","filename":"Scanned Research PDF.pdf"}],"stresses":["OCR on scanned pages","Multi-column reading order","Figure and chart handling","Table reconstruction from scans","Caption association","Reference extraction","Overall document structure retention"],"verdict":"worked","score":null,"score_total":null,"note":"Largely preserves grouped-column tables, keeping their internal organization intact in the extracted output.","evidence_state":"verified","source":null,"artifacts":[{"url":"https://cdn.futuresmart.ai/public/aidemos/57a862fbcd21461ab376ee98f35f965b.png?v=1","role":"input","alt":null},{"url":"https://cdn.futuresmart.ai/public/aidemos/1a615a7030994a369a137cc272e7a54a.png?v=1","role":"output","alt":null}],"run_id":"6e3160de-fe46-4b45-b071-72560b5c5d0e","study_title":"Convert a Complex PDF into Clean Markdown with an API","study_kind":"generation","research_task":"86b9h7t37","tested_at":null,"completeness":"input-and-output","input":{"state":"files","text":null,"files":[{"url":"https://d3epheqghktydj.cloudfront.net/convert-a-complex-pdf-into-clean-markdow-scanned-research-pdf-7b86de49784d.pdf","filename":"Scanned Research PDF.pdf","alt":"Scanned Research Paper","role":"input"}],"modality":"pdf","stresses":["OCR on scanned pages","Multi-column reading order","Figure and chart handling","Table reconstruction from scans","Caption association","Reference extraction","Overall document structure retention"]},"tool_page_slug":"nutrient-io","tool_url":"https://aidemos.com/tools/nutrient-io","permalink":"https://aidemos.com/evidence/97dfdbc2-3390-4bf7-9d20-af8a5dd33d01","api_url":"https://ai.aidemos.com/v1/observations/97dfdbc2-3390-4bf7-9d20-af8a5dd33d01"},"peers":[{"id":"82c91005-2538-47cc-812c-da8ff0c240c3","tool":"adobe-api","tool_name":"Adobe API","verdict":"failed","score":null,"score_total":null,"note":"Breaks a grouped-column table when intervening text appears, fragmenting the 1979–1981 layout and corrupting the extracted alignment.","artifact_count":2,"thumbnail":"https://cdn.futuresmart.ai/public/aidemos/6daa9c66b2694851bbf882f39eed1f1e.png?v=1","evidence_url":"https://aidemos.com/evidence/82c91005-2538-47cc-812c-da8ff0c240c3"},{"id":"1e354a89-f9a5-4765-af9a-4cbec79fda3e","tool":"extend-ai","tool_name":"Extend AI","verdict":"struggled","score":null,"score_total":null,"note":"Breaks multirow header relationships in a scanned table, so grouped headers and header-level structure are not reliably preserved.","artifact_count":2,"thumbnail":"https://cdn.futuresmart.ai/public/aidemos/7e0da44bcebe4ebcb0cc24e9c7092489.png?v=1","evidence_url":"https://aidemos.com/evidence/1e354a89-f9a5-4765-af9a-4cbec79fda3e"},{"id":"6c6cd8b2-a68f-4199-8ad7-e9765bf012f1","tool":"landing-ai","tool_name":"Landing AI","verdict":"worked","score":null,"score_total":null,"note":"Preserves a complex diameter-class table with before-cut, trees-cut-per-acre, and after-cut relationships across the treatment rows and check area.","artifact_count":3,"thumbnail":"https://cdn.futuresmart.ai/public/aidemos/56ad045174884d278b8ec196b932b07f.png?v=1","evidence_url":"https://aidemos.com/evidence/6c6cd8b2-a68f-4199-8ad7-e9765bf012f1"},{"id":"6893a7fc-87db-41b5-a8fc-06a4f67d61d5","tool":"llamaparse","tool_name":"LlamaParse","verdict":"worked","score":null,"score_total":null,"note":"Preserves a nested treatment table with the 7-inch, 10-inch, 12-inch, 100-leave-tree, and clearcut columns and the acres/live-lodgepole rows.","artifact_count":2,"thumbnail":"https://cdn.futuresmart.ai/public/aidemos/d1659c50c6c449afa114d98746024dbb.png?v=1","evidence_url":"https://aidemos.com/evidence/6893a7fc-87db-41b5-a8fc-06a4f67d61d5"},{"id":"527f7e79-f463-4b6e-b839-c5153a59a9f3","tool":"mistral-ai","tool_name":"Mistral AI","verdict":"worked","score":null,"score_total":null,"note":"The multicolumn table is reconstructed without losing its overall layout logic, so the table structure remains readable in the parsed output.","artifact_count":2,"thumbnail":"https://cdn.futuresmart.ai/public/aidemos/57a862fbcd21461ab376ee98f35f965b.png?v=1","evidence_url":"https://aidemos.com/evidence/527f7e79-f463-4b6e-b839-c5153a59a9f3"},{"id":"fcad1a88-bccf-4eea-8bf5-0d8e5dbc22ee","tool":"reducto","tool_name":"Reducto","verdict":"mixed","score":null,"score_total":null,"note":"Partially reconstructs Table 1: most of the roughly 90 numeric values are exact, but literal 0 values in the 12-inch column become blanks, one mean cell picks up stray digits (33.0 830000), and a row-label-only section header is broadcast across all six columns in one instance.","artifact_count":3,"thumbnail":"https://cdn.futuresmart.ai/public/aidemos/463058512d444a0796cf3e61494de04e.png?v=1","evidence_url":"https://aidemos.com/evidence/fcad1a88-bccf-4eea-8bf5-0d8e5dbc22ee"},{"id":"c19621dc-83eb-467f-9210-161a2adcac66","tool":"tensorlake","tool_name":"Tensorlake","verdict":"failed","score":null,"score_total":null,"note":"Struggles with hierarchical scanned tables, misplacing column headers and producing unreliable reconstructions on both the multicolumn table and the denser complex table.","artifact_count":6,"thumbnail":"https://cdn.futuresmart.ai/public/aidemos/57a862fbcd21461ab376ee98f35f965b.png?v=1","evidence_url":"https://aidemos.com/evidence/c19621dc-83eb-467f-9210-161a2adcac66"},{"id":"6db07c2d-fbc7-464c-ba3c-822a7495c3d5","tool":"upstage-ai","tool_name":"Upstage AI","verdict":"mixed","score":null,"score_total":null,"note":"Keeps the table values intact but reconstructs the headers incorrectly, leaving a grouped-column table with inconsistent structure.","artifact_count":2,"thumbnail":"https://cdn.futuresmart.ai/public/aidemos/57a862fbcd21461ab376ee98f35f965b.png?v=1","evidence_url":"https://aidemos.com/evidence/6db07c2d-fbc7-464c-ba3c-822a7495c3d5"}],"other_criteria":[{"id":"b50f09d7-7cee-4268-8441-50b46ddeb000","criterion":"complex-document-handling","criterion_name":"Complex Document Handling","rank_role":"decisive","verdict":"worked","score":null,"score_total":null,"note":"Processes an image-only scanned research paper end to end and returns a parsed markdown output plus preview, showing it can handle a multi-page scanned document.","artifact_count":4,"evidence_url":"https://aidemos.com/evidence/b50f09d7-7cee-4268-8441-50b46ddeb000"},{"id":"269c8673-40ed-4da2-a18e-2a17a92616e3","criterion":"reading-order-structure","criterion_name":"Reading Order & Structure","rank_role":"decisive","verdict":"failed","score":null,"score_total":null,"note":"Misorders the first page so the abstract is placed before the title, showing a layout-reading-order inversion on the scanned article.","artifact_count":3,"evidence_url":"https://aidemos.com/evidence/269c8673-40ed-4da2-a18e-2a17a92616e3"},{"id":"0310cd16-a31c-473f-bf94-1da61a08607c","criterion":"reading-order-structure","criterion_name":"Reading Order & Structure","rank_role":"decisive","verdict":"worked","score":null,"score_total":null,"note":"The tool preserves section hierarchy and column order in a dense multi-column scanned section, keeping headings aligned with the correct body text.","artifact_count":2,"evidence_url":"https://aidemos.com/evidence/0310cd16-a31c-473f-bf94-1da61a08607c"},{"id":"1ff9ad63-6629-4bd0-a643-ff827f73c602","criterion":"text-ocr-completeness","criterion_name":"Text & OCR Completeness","rank_role":"decisive","verdict":"worked","score":null,"score_total":null,"note":"Recovers readable text from scanned pages, including the abstract, keywords, author affiliations, title, and opening paragraphs on the first page.","artifact_count":3,"evidence_url":"https://aidemos.com/evidence/1ff9ad63-6629-4bd0-a643-ff827f73c602"},{"id":"474d7192-6964-4d73-9726-1ca2efcb6edc","criterion":"visual-content-retention","criterion_name":"Visual Content Retention","rank_role":"decisive","verdict":"struggled","score":null,"score_total":null,"note":"Extracts the Figure 3 chart's values, but the chart structure and layout are not preserved, so the visualization is flattened into text-like output.","artifact_count":2,"evidence_url":"https://aidemos.com/evidence/474d7192-6964-4d73-9726-1ca2efcb6edc"}],"appears_in":[{"page_type":"ranking","slug":"pdf-to-markdown-apis","title":"Best AI Tools to Convert Complex PDFs into Clean Markdown with an API","url":"https://aidemos.com/best/pdf-to-markdown-apis","binding":"run"}],"same_scenario":[{"id":"82c91005-2538-47cc-812c-da8ff0c240c3","tool":"adobe-api","tool_name":"Adobe API","verdict":"failed","score":null,"score_total":null,"note":"Breaks a grouped-column table when intervening text appears, fragmenting the 1979–1981 layout and corrupting the extracted alignment."},{"id":"1e354a89-f9a5-4765-af9a-4cbec79fda3e","tool":"extend-ai","tool_name":"Extend AI","verdict":"struggled","score":null,"score_total":null,"note":"Breaks multirow header relationships in a scanned table, so grouped headers and header-level structure are not reliably preserved."},{"id":"6c6cd8b2-a68f-4199-8ad7-e9765bf012f1","tool":"landing-ai","tool_name":"Landing AI","verdict":"worked","score":null,"score_total":null,"note":"Preserves a complex diameter-class table with before-cut, trees-cut-per-acre, and after-cut relationships across the treatment rows and check area."},{"id":"6893a7fc-87db-41b5-a8fc-06a4f67d61d5","tool":"llamaparse","tool_name":"LlamaParse","verdict":"worked","score":null,"score_total":null,"note":"Preserves a nested treatment table with the 7-inch, 10-inch, 12-inch, 100-leave-tree, and clearcut columns and the acres/live-lodgepole rows."},{"id":"527f7e79-f463-4b6e-b839-c5153a59a9f3","tool":"mistral-ai","tool_name":"Mistral AI","verdict":"worked","score":null,"score_total":null,"note":"The multicolumn table is reconstructed without losing its overall layout logic, so the table structure remains readable in the parsed output."},{"id":"fcad1a88-bccf-4eea-8bf5-0d8e5dbc22ee","tool":"reducto","tool_name":"Reducto","verdict":"mixed","score":null,"score_total":null,"note":"Partially reconstructs Table 1: most of the roughly 90 numeric values are exact, but literal 0 values in the 12-inch column become blanks, one mean cell picks up stray digits (33.0 830000), and a row-label-only section header is broadcast across all six columns in one instance."},{"id":"c19621dc-83eb-467f-9210-161a2adcac66","tool":"tensorlake","tool_name":"Tensorlake","verdict":"failed","score":null,"score_total":null,"note":"Struggles with hierarchical scanned tables, misplacing column headers and producing unreliable reconstructions on both the multicolumn table and the denser complex table."},{"id":"6db07c2d-fbc7-464c-ba3c-822a7495c3d5","tool":"upstage-ai","tool_name":"Upstage AI","verdict":"mixed","score":null,"score_total":null,"note":"Keeps the table values intact but reconstructs the headers incorrectly, leaving a grouped-column table with inconsistent structure."}]}