{
  "metrics_doc": {
    "prose_recall": "truth 段落按 '. ' 切句，归一化后 ≥4 词的句子在输出中出现的比例",
    "reading_order": "每段前 6 词作锚点在输出中的位置，相邻段对位置严格递增的比例；锚点缺失计 0",
    "table_rows_intact": "truth 每行，存在某条输出行包含该行所有单元格字符串的比例",
    "table_header_intact": "leaf_header（无则 header）全部单元格出现在同一输出行：1 或 0；只测叶子单元格同行，不测跨列分组语义；doc 类样本有多张表/工作表时为满足该条件的表所占比例",
    "table_pipe_detected": "输出是否含 markdown 表格（| 开头结尾行且下一行为分隔行）：true/false",
    "pages_covered": "mixed 的 page_anchors 各自出现在输出中的比例；第三个锚点在扫描页，无 OCR 时上限 2/3",
    "scan_text_recall": "scan 文本按 prose_recall 口径的召回；无 OCR 预期为 0",
    "equation_recall": "expressions 经数学标记归一化（去 $ / \\[ \\] 定界、\\mathsf{} 等字体包裹、\\{ → {、^{\\wedge} → ^、\\_ → _、去全部空白）后子串命中的比例；对所有工具同一口径，衡量数学内容是否可恢复而非输出格式",
    "equation_recall_exact": "expressions 仅做大小写/空白归一化的纯文本精确子串命中比例（旧口径，保留作对照：输出 LaTeX 标记的路径在此列必然偏低）",
    "heading_recall": "doc 类：truth 标题文字出现在某条以 # 开头的输出行里的比例（不论级别）",
    "heading_level_exact": "doc 类：truth 标题以恰好 level 个 # 输出的比例；truth level 为空的标题（幻灯片标题、EPUB 章名）不计入",
    "list_items_intact": "doc 类：truth 列表项（含幻灯片要点）出现在以 - * + 或 数字. 数字) 开头的输出行里的比例",
    "code_block_intact": "doc 类：truth 代码块的每一行都出现在 ``` / ~~~ 围栏内的比例（按块计）",
    "boilerplate_excluded": "doc 类：导航、标语、Cookie 横幅、页脚等样板字符串没有出现在输出中的比例；越高说明正文抽取越干净",
    "slide_order": "doc 类：幻灯片标题按 reading_order 口径（前 6 词锚点）相邻对位置严格递增的比例",
    "notes_recall": "doc 类：幻灯片演讲者备注全文出现在输出中的比例",
    "sheet_coverage": "doc 类：至少有一行数据按 table_rows_intact 口径完整出现的工作表所占比例",
    "elapsed_s": "lab_run 实测耗时（秒），透传",
    "error": "lab_run 记录的异常文本，透传；无异常为 null"
  },
  "tools": {
    "pandoc-html": {
      "version": "pandoc 3.11",
      "options": [
        "--from=html",
        "--to=gfm",
        "--wrap=none"
      ]
    },
    "markitdown-html": {
      "version": "0.1.8",
      "enable_builtins": false,
      "enable_plugins": false,
      "registered_converter": "HtmlConverter",
      "beautifulsoup4": "4.15.0",
      "markdownify": "1.2.3"
    },
    "pandoc-pptx": {
      "version": "pandoc 3.11",
      "options": [
        "--from=html",
        "--to=pptx",
        "--slide-level=2"
      ]
    },
    "pandoc-pptx-no-title": {
      "version": "pandoc 3.11",
      "options": [
        "--from=html",
        "--to=pptx",
        "--slide-level=2",
        "--metadata=title:"
      ],
      "sample_scope": [
        "article"
      ]
    },
    "markitdown-pandoc-pptx": {
      "version": "pandoc 3.11",
      "options": [
        "--from=gfm",
        "--to=pptx",
        "--slide-level=2"
      ]
    },
    "markovo": {
      "version": "2026-09-19.v3-media-unified",
      "created_at": "2026-10-14T01:04:00.511Z",
      "sample_scope": [
        "article"
      ],
      "note": "Reused upstream API output. No new API call. Original zero timing discarded, not a measured duration."
    },
    "markovo-pandoc-pptx": {
      "version": "pandoc 3.11",
      "note": "Local PPTX generation from supplied upstream Markdown; no API call"
    },
    "pptx_inspector": {
      "python-pptx": "1.0.2",
      "lxml": "6.1.3"
    }
  },
  "python": "3.11.14",
  "date": "2026-11-04",
  "cells": [
    {
      "tool": "pandoc-html",
      "sample": "article",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 1.0,
      "table_header_intact": 1.0,
      "table_pipe_detected": true,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 1.0,
      "list_items_intact": null,
      "code_block_intact": 1.0,
      "boilerplate_excluded": 1.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.03031,
      "error": null
    },
    {
      "tool": "markitdown-html",
      "sample": "article",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 1.0,
      "table_header_intact": 1.0,
      "table_pipe_detected": true,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 1.0,
      "list_items_intact": null,
      "code_block_intact": 1.0,
      "boilerplate_excluded": 0.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.004974,
      "error": null
    },
    {
      "tool": "pandoc-pptx",
      "sample": "article",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 1.0,
      "table_header_intact": 1.0,
      "table_pipe_detected": true,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 0.3333,
      "list_items_intact": null,
      "code_block_intact": 0.0,
      "boilerplate_excluded": 1.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.117628,
      "error": null
    },
    {
      "tool": "markitdown-pandoc-pptx",
      "sample": "article",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 1.0,
      "table_header_intact": 1.0,
      "table_pipe_detected": true,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 0.3333,
      "list_items_intact": null,
      "code_block_intact": 0.0,
      "boilerplate_excluded": 0.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.052666,
      "error": null
    },
    {
      "tool": "pandoc-html",
      "sample": "article-no-main",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 1.0,
      "table_header_intact": 1.0,
      "table_pipe_detected": true,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 1.0,
      "list_items_intact": null,
      "code_block_intact": 1.0,
      "boilerplate_excluded": 0.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.0295,
      "error": null
    },
    {
      "tool": "markitdown-html",
      "sample": "article-no-main",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 1.0,
      "table_header_intact": 1.0,
      "table_pipe_detected": true,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 1.0,
      "list_items_intact": null,
      "code_block_intact": 1.0,
      "boilerplate_excluded": 0.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.004321,
      "error": null
    },
    {
      "tool": "pandoc-pptx",
      "sample": "article-no-main",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 1.0,
      "table_header_intact": 1.0,
      "table_pipe_detected": true,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 0.3333,
      "list_items_intact": null,
      "code_block_intact": 0.0,
      "boilerplate_excluded": 0.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.108318,
      "error": null
    },
    {
      "tool": "markitdown-pandoc-pptx",
      "sample": "article-no-main",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 1.0,
      "table_header_intact": 1.0,
      "table_pipe_detected": true,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 0.3333,
      "list_items_intact": null,
      "code_block_intact": 0.0,
      "boilerplate_excluded": 0.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.104009,
      "error": null
    },
    {
      "tool": "pandoc-html",
      "sample": "article-css-grid",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 0.0,
      "table_header_intact": 0.0,
      "table_pipe_detected": false,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 1.0,
      "list_items_intact": null,
      "code_block_intact": 1.0,
      "boilerplate_excluded": 1.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.084905,
      "error": null
    },
    {
      "tool": "markitdown-html",
      "sample": "article-css-grid",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 0.0,
      "table_header_intact": 0.0,
      "table_pipe_detected": false,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 1.0,
      "list_items_intact": null,
      "code_block_intact": 1.0,
      "boilerplate_excluded": 0.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.004702,
      "error": null
    },
    {
      "tool": "pandoc-pptx",
      "sample": "article-css-grid",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 0.0,
      "table_header_intact": 0.0,
      "table_pipe_detected": false,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 0.3333,
      "list_items_intact": null,
      "code_block_intact": 0.0,
      "boilerplate_excluded": 1.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.05282,
      "error": null
    },
    {
      "tool": "markitdown-pandoc-pptx",
      "sample": "article-css-grid",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 0.0,
      "table_header_intact": 0.0,
      "table_pipe_detected": false,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 0.3333,
      "list_items_intact": null,
      "code_block_intact": 0.0,
      "boilerplate_excluded": 0.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.119265,
      "error": null
    },
    {
      "tool": "pandoc-html",
      "sample": "article-script-table",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 0.0,
      "table_header_intact": 0.0,
      "table_pipe_detected": false,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 1.0,
      "list_items_intact": null,
      "code_block_intact": 1.0,
      "boilerplate_excluded": 1.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.083453,
      "error": null
    },
    {
      "tool": "markitdown-html",
      "sample": "article-script-table",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 0.0,
      "table_header_intact": 0.0,
      "table_pipe_detected": false,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 1.0,
      "list_items_intact": null,
      "code_block_intact": 1.0,
      "boilerplate_excluded": 0.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.007004,
      "error": null
    },
    {
      "tool": "pandoc-pptx",
      "sample": "article-script-table",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 0.0,
      "table_header_intact": 0.0,
      "table_pipe_detected": false,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 0.3333,
      "list_items_intact": null,
      "code_block_intact": 0.0,
      "boilerplate_excluded": 1.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.115801,
      "error": null
    },
    {
      "tool": "markitdown-pandoc-pptx",
      "sample": "article-script-table",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 0.0,
      "table_header_intact": 0.0,
      "table_pipe_detected": false,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 0.3333,
      "list_items_intact": null,
      "code_block_intact": 0.0,
      "boilerplate_excluded": 0.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.133955,
      "error": null
    },
    {
      "tool": "pandoc-pptx-no-title",
      "sample": "article",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 1.0,
      "table_header_intact": 1.0,
      "table_pipe_detected": true,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 0.3333,
      "list_items_intact": null,
      "code_block_intact": 0.0,
      "boilerplate_excluded": 1.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.055075,
      "error": null
    },
    {
      "tool": "markovo",
      "sample": "article",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 1.0,
      "table_header_intact": 1.0,
      "table_pipe_detected": true,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 1.0,
      "list_items_intact": null,
      "code_block_intact": 1.0,
      "boilerplate_excluded": 1.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": null,
      "error": null
    },
    {
      "tool": "markovo-pandoc-pptx",
      "sample": "article",
      "kind": "doc",
      "prose_recall": 1.0,
      "reading_order": 1.0,
      "table_rows_intact": 1.0,
      "table_header_intact": 1.0,
      "table_pipe_detected": true,
      "pages_covered": null,
      "scan_text_recall": null,
      "equation_recall": null,
      "equation_recall_exact": null,
      "heading_recall": 1.0,
      "heading_level_exact": 0.3333,
      "list_items_intact": null,
      "code_block_intact": 0.0,
      "boilerplate_excluded": 1.0,
      "slide_order": null,
      "notes_recall": null,
      "sheet_coverage": null,
      "elapsed_s": 0.067849,
      "error": null
    }
  ],
  "pptx_structures": [
    {
      "tool": "pandoc-pptx",
      "sample": "article",
      "elapsed_s": 0.117628,
      "deck_local_only": "pandoc-pptx/article.pptx",
      "transcript": "pandoc-pptx/article.md",
      "slide_xml": "pandoc-pptx/article.slide-xml.txt",
      "slides": 5,
      "slide_titles": [
        "Debugging Slow Database Migrations",
        "Debugging Slow Database Migrations",
        "Untitled slide",
        "Find the Locking Statement",
        "Batch the Backfill"
      ],
      "native_tables": 1,
      "native_text_shapes": 7,
      "image_shapes": 0,
      "tables": [
        {
          "slide": 5,
          "rows": [
            [
              "Batch size",
              "Rows per second",
              "Lock wait (ms)"
            ],
            [
              "1000",
              "8200",
              "3"
            ],
            [
              "10000",
              "9100",
              "41"
            ],
            [
              "100000",
              "9300",
              "620"
            ]
          ],
          "row_count": 4,
          "column_count": 3
        }
      ],
      "sha256": "2a8da6ba2acf460951fc8487ce85c23e4a50fc7ac446658b0cf4211bc6e3c38a"
    },
    {
      "tool": "markitdown-pandoc-pptx",
      "sample": "article",
      "elapsed_s": 0.052666,
      "deck_local_only": "markitdown-pandoc-pptx/article.pptx",
      "transcript": "markitdown-pandoc-pptx/article.md",
      "slide_xml": "markitdown-pandoc-pptx/article.slide-xml.txt",
      "slides": 5,
      "slide_titles": [
        "Untitled slide",
        "Debugging Slow Database Migrations",
        "Untitled slide",
        "Find the Locking Statement",
        "Batch the Backfill"
      ],
      "native_tables": 1,
      "native_text_shapes": 8,
      "image_shapes": 0,
      "tables": [
        {
          "slide": 5,
          "rows": [
            [
              "Batch size",
              "Rows per second",
              "Lock wait (ms)"
            ],
            [
              "1000",
              "8200",
              "3"
            ],
            [
              "10000",
              "9100",
              "41"
            ],
            [
              "100000",
              "9300",
              "620"
            ]
          ],
          "row_count": 4,
          "column_count": 3
        }
      ],
      "sha256": "828aa5a6417f258e1109f6a7d71548bcf0cb0b20b7f6ece8ea76acafa8bf147d"
    },
    {
      "tool": "pandoc-pptx",
      "sample": "article-no-main",
      "elapsed_s": 0.108318,
      "deck_local_only": "pandoc-pptx/article-no-main.pptx",
      "transcript": "pandoc-pptx/article-no-main.md",
      "slide_xml": "pandoc-pptx/article-no-main.slide-xml.txt",
      "slides": 6,
      "slide_titles": [
        "Debugging Slow Database Migrations",
        "Untitled slide",
        "Debugging Slow Database Migrations",
        "Untitled slide",
        "Find the Locking Statement",
        "Batch the Backfill"
      ],
      "native_tables": 1,
      "native_text_shapes": 9,
      "image_shapes": 0,
      "tables": [
        {
          "slide": 6,
          "rows": [
            [
              "Batch size",
              "Rows per second",
              "Lock wait (ms)"
            ],
            [
              "1000",
              "8200",
              "3"
            ],
            [
              "10000",
              "9100",
              "41"
            ],
            [
              "100000",
              "9300",
              "620"
            ]
          ],
          "row_count": 4,
          "column_count": 3
        }
      ],
      "sha256": "b71aa3ad719125e5867f3f72fcb1909281d3d9c594d42b437d0a302f95e181ce"
    },
    {
      "tool": "markitdown-pandoc-pptx",
      "sample": "article-no-main",
      "elapsed_s": 0.104009,
      "deck_local_only": "markitdown-pandoc-pptx/article-no-main.pptx",
      "transcript": "markitdown-pandoc-pptx/article-no-main.md",
      "slide_xml": "markitdown-pandoc-pptx/article-no-main.slide-xml.txt",
      "slides": 5,
      "slide_titles": [
        "Untitled slide",
        "Debugging Slow Database Migrations",
        "Untitled slide",
        "Find the Locking Statement",
        "Batch the Backfill"
      ],
      "native_tables": 1,
      "native_text_shapes": 8,
      "image_shapes": 0,
      "tables": [
        {
          "slide": 5,
          "rows": [
            [
              "Batch size",
              "Rows per second",
              "Lock wait (ms)"
            ],
            [
              "1000",
              "8200",
              "3"
            ],
            [
              "10000",
              "9100",
              "41"
            ],
            [
              "100000",
              "9300",
              "620"
            ]
          ],
          "row_count": 4,
          "column_count": 3
        }
      ],
      "sha256": "5f254e2821689a455f0c6056d7bd7860b1e85fc9e4f2a63d2d540c973dc70fe4"
    },
    {
      "tool": "pandoc-pptx",
      "sample": "article-css-grid",
      "elapsed_s": 0.05282,
      "deck_local_only": "pandoc-pptx/article-css-grid.pptx",
      "transcript": "pandoc-pptx/article-css-grid.md",
      "slide_xml": "pandoc-pptx/article-css-grid.slide-xml.txt",
      "slides": 5,
      "slide_titles": [
        "Debugging Slow Database Migrations",
        "Debugging Slow Database Migrations",
        "Untitled slide",
        "Find the Locking Statement",
        "Batch the Backfill"
      ],
      "native_tables": 0,
      "native_text_shapes": 7,
      "image_shapes": 0,
      "tables": [],
      "sha256": "0f5e04b5bd3c3151a00606c08914f1d71ae0c7bbc811a5e9fd279727fc27e722"
    },
    {
      "tool": "markitdown-pandoc-pptx",
      "sample": "article-css-grid",
      "elapsed_s": 0.119265,
      "deck_local_only": "markitdown-pandoc-pptx/article-css-grid.pptx",
      "transcript": "markitdown-pandoc-pptx/article-css-grid.md",
      "slide_xml": "markitdown-pandoc-pptx/article-css-grid.slide-xml.txt",
      "slides": 5,
      "slide_titles": [
        "Untitled slide",
        "Debugging Slow Database Migrations",
        "Untitled slide",
        "Find the Locking Statement",
        "Batch the Backfill"
      ],
      "native_tables": 0,
      "native_text_shapes": 7,
      "image_shapes": 0,
      "tables": [],
      "sha256": "12a5c59a055ac0ac0d339d66fe117d899651b41b0b958c4219e5739e3cbe8dba"
    },
    {
      "tool": "pandoc-pptx",
      "sample": "article-script-table",
      "elapsed_s": 0.115801,
      "deck_local_only": "pandoc-pptx/article-script-table.pptx",
      "transcript": "pandoc-pptx/article-script-table.md",
      "slide_xml": "pandoc-pptx/article-script-table.slide-xml.txt",
      "slides": 5,
      "slide_titles": [
        "Debugging Slow Database Migrations",
        "Debugging Slow Database Migrations",
        "Untitled slide",
        "Find the Locking Statement",
        "Batch the Backfill"
      ],
      "native_tables": 0,
      "native_text_shapes": 7,
      "image_shapes": 0,
      "tables": [],
      "sha256": "5c6f8cfe6385f672f99a455918eac6d38c322788c4511138675aed08f1d60e58"
    },
    {
      "tool": "markitdown-pandoc-pptx",
      "sample": "article-script-table",
      "elapsed_s": 0.133955,
      "deck_local_only": "markitdown-pandoc-pptx/article-script-table.pptx",
      "transcript": "markitdown-pandoc-pptx/article-script-table.md",
      "slide_xml": "markitdown-pandoc-pptx/article-script-table.slide-xml.txt",
      "slides": 5,
      "slide_titles": [
        "Untitled slide",
        "Debugging Slow Database Migrations",
        "Untitled slide",
        "Find the Locking Statement",
        "Batch the Backfill"
      ],
      "native_tables": 0,
      "native_text_shapes": 7,
      "image_shapes": 0,
      "tables": [],
      "sha256": "7d17b7995c066b330f1e9e597e16cddc185ccc7492ed9d68bcad9040c0e0bd10"
    },
    {
      "tool": "pandoc-pptx-no-title",
      "sample": "article",
      "elapsed_s": 0.055075,
      "deck_local_only": "pandoc-pptx-no-title/article.pptx",
      "transcript": "pandoc-pptx-no-title/article.md",
      "slide_xml": "pandoc-pptx-no-title/article.slide-xml.txt",
      "slides": 4,
      "slide_titles": [
        "Debugging Slow Database Migrations",
        "Untitled slide",
        "Find the Locking Statement",
        "Batch the Backfill"
      ],
      "native_tables": 1,
      "native_text_shapes": 6,
      "image_shapes": 0,
      "tables": [
        {
          "slide": 4,
          "rows": [
            [
              "Batch size",
              "Rows per second",
              "Lock wait (ms)"
            ],
            [
              "1000",
              "8200",
              "3"
            ],
            [
              "10000",
              "9100",
              "41"
            ],
            [
              "100000",
              "9300",
              "620"
            ]
          ],
          "row_count": 4,
          "column_count": 3
        }
      ],
      "sha256": "08518551fffe32f7755226c1fc3fe31588f0e0b8d55960b25c5e9e4a8a4ddc17"
    },
    {
      "tool": "markovo-pandoc-pptx",
      "sample": "article",
      "elapsed_s": 0.067849,
      "deck_local_only": "markovo-pandoc-pptx/article.pptx",
      "transcript": "markovo-pandoc-pptx/article.md",
      "slide_xml": "markovo-pandoc-pptx/article.slide-xml.txt",
      "slides": 4,
      "slide_titles": [
        "Debugging Slow Database Migrations",
        "Untitled slide",
        "Find the Locking Statement",
        "Batch the Backfill"
      ],
      "native_tables": 1,
      "native_text_shapes": 6,
      "image_shapes": 0,
      "tables": [
        {
          "slide": 4,
          "rows": [
            [
              "Batch size",
              "Rows per second",
              "Lock wait (ms)"
            ],
            [
              "1000",
              "8200",
              "3"
            ],
            [
              "10000",
              "9100",
              "41"
            ],
            [
              "100000",
              "9300",
              "620"
            ]
          ],
          "row_count": 4,
          "column_count": 3
        }
      ],
      "sha256": "134fcd776c534276de884d7c09780a9be9aac4455a0c7053e9e043f0945ee646"
    }
  ],
  "html_ast": [
    {
      "sample": "article",
      "output": "pandoc-html/article.ast.json",
      "nodes": {
        "AlignDefault": 15,
        "CodeBlock": 1,
        "ColWidthDefault": 3,
        "Header": 3,
        "MetaInlines": 2,
        "Para": 4,
        "Plain": 12,
        "Space": 108,
        "Str": 129,
        "Table": 1
      }
    },
    {
      "sample": "article-no-main",
      "output": "pandoc-html/article-no-main.ast.json",
      "nodes": {
        "AlignDefault": 15,
        "BulletList": 1,
        "CodeBlock": 1,
        "ColWidthDefault": 3,
        "Div": 2,
        "Header": 3,
        "Link": 4,
        "MetaInlines": 2,
        "Para": 6,
        "Plain": 17,
        "Space": 126,
        "Str": 154,
        "Table": 1
      }
    },
    {
      "sample": "article-css-grid",
      "output": "pandoc-html/article-css-grid.ast.json",
      "nodes": {
        "CodeBlock": 1,
        "Div": 13,
        "Header": 3,
        "MetaInlines": 2,
        "Para": 4,
        "Plain": 12,
        "Space": 108,
        "Str": 129
      }
    },
    {
      "sample": "article-script-table",
      "output": "pandoc-html/article-script-table.ast.json",
      "nodes": {
        "CodeBlock": 1,
        "Div": 1,
        "Header": 3,
        "MetaInlines": 2,
        "Para": 4,
        "Space": 103,
        "Str": 112
      }
    }
  ],
  "supplement_method": "Generated by run_html_to_ppt.py --attach-structures after the unchanged tools/lab_score.py. Original scorer cells and metrics_doc are not altered. Native table counts describe OOXML objects, not visual fidelity or Office editing.",
  "supplement_metrics_doc": {
    "native_tables": "Count of python-pptx table shapes, cross-checked against a:tbl in slide XML",
    "native_text_shapes": "Count of shapes with text frames including slide titles",
    "image_shapes": "Count of picture shapes; does not establish rendering quality",
    "slides": "Number of slide objects",
    "html_ast": "Counts of Pandoc AST node tags before PPTX generation"
  }
}
