# Execution record

Python 3.11.14; scored 2026-10-18

## markitdown/prose-single.md

Elapsed: 0.0206 s (upstream zero timings are unavailable, not speed).

```text
Converting a PDF into Markdown sounds like a formatting chore, but the hard part is really

reading order. A two-column report interleaves its text streams, so a naive extractor will

splice the left column's third paragraph into the middle of the right column's heading, and the

output reads like a corrupted transcript rather than a document.

Tables fail differently. The visual grid you see on the page is only a hint; the PDF stores text

runs and line strokes, and the converter must reconstruct which cells belong to which row

before it can even think about pipes and dashes. When header cells span two columns,

most tools emit a flattened row that loses the grouping entirely.

Scanned pages are the third failure mode. There is no text to extract, only an image, so the

pipeline has to hand the page to an OCR or vision model and hope the handwriting, stamps,

```

## markitdown/table-simple.md

Elapsed: 0.0115 s (upstream zero timings are unavailable, not speed).

```text
Quarterly invoice summary
| Item             | Qty | Unit Price | Total   |
| ---------------- | --- | ---------- | ------- |
| Consulting hours | 12  | 85.00      | 1020.00 |
| Data export fee  | 3   | 40.00      | 120.00  |
| Template license | 1   | 190.00     | 190.00  |
| Support retainer | 6   | 55.00      | 330.00  |
```

## markitdown/table-merged-header.md

Elapsed: 0.0132 s (upstream zero timings are unavailable, not speed).

```text
Invoice with grouped price columns
| Item             | Qty | Price  |         |
| ---------------- | --- | ------ | ------- |
|                  |     | Unit   | Total   |
| Consulting hours | 12  | 85.00  | 1020.00 |
| Data export fee  | 3   | 40.00  | 120.00  |
| Template license | 1   | 190.00 | 190.00  |
| Support retainer | 6   | 55.00  | 330.00  |
```

## markitdown/two-column.md

Elapsed: 0.0355 s (upstream zero timings are unavailable, not speed).

```text
Invoice reconciliation starts with the export file, not

Demand forecasts fail upward more often than they

the ledger. Teams that reconcile weekly pull the

fail downward. Optimistic sales inputs push safety

payment provider's settlement report first, match it

stock up for slow movers, and the excess sits in the

against issued invoices by number, and only then

warehouse for two quarters before anyone reopens

open the accounting system. Skipping the export

the spreadsheet. A weekly report on stock cover by

```

## markitdown/scan-image.md

Elapsed: 0.0088 s (upstream zero timings are unavailable, not speed).

```text

```

## markitdown/mixed.md

Elapsed: 0.0267 s (upstream zero timings are unavailable, not speed).

```text
Converting a PDF into Markdown sounds like a formatting chore, but the hard part is really
reading order. A two-column report interleaves its text streams, so a naive extractor will
splice the left column's third paragraph into the middle of the right column's heading, and the
output reads like a corrupted transcript rather than a document.
Tables fail differently. The visual grid you see on the page is only a hint; the PDF stores text
runs and line strokes, and the converter must reconstruct which cells belong to which row
before it can even think about pipes and dashes. When header cells span two columns,
most tools emit a flattened row that loses the grouping entirely.
Scanned pages are the third failure mode. There is no text to extract, only an image, so the
pipeline has to hand the page to an OCR or vision model and hope the handwriting, stamps,
and skewed margins come back as coherent sentences instead of confident nonsense
scattered across the middle of an otherwise clean document.

Quarterly invoice summary
| Item             | Qty | Unit Price | Total   |
| ---------------- | --- | ---------- | ------- |
| Consulting hours | 12  | 85.00      | 1020.00 |
| Data export fee  | 3   | 40.00      | 120.00  |
| Template license | 1   | 190.00     | 190.00  |
| Support retainer | 6   | 55.00      | 330.00  |
```

## markitdown/equation.md

Elapsed: 0.0605 s (upstream zero timings are unavailable, not speed).

```text
Most extraction tools treat a displayed equation as an ordinary text line. That works when

the expression is short and linear, like the examples below, but it breaks as soon as a

fraction, exponent stack, or integral needs two-dimensional layout.

E = mc^2

a^2 + b^2 = c^2

f(x) = 3x + 7

sum_{i=1}^{n} x_i

```

## markitdown/rotated-header.md

Elapsed: 0.0107 s (upstream zero timings are unavailable, not speed).

```text
Rotated header invoice
ecirP tinU
latoT
metI
ytQ
| Consulting hours | 12  | 85.00  | 1020.00 |
| ---------------- | --- | ------ | ------- |
| Data export fee  | 3   | 40.00  | 120.00  |
| Template license | 1   | 190.00 | 190.00  |
| Support retainer | 6   | 55.00  | 330.00  |
```

## pymupdf4llm/prose-single.md

Elapsed: 0.1297 s (upstream zero timings are unavailable, not speed).

```text
Converting a PDF into Markdown sounds like a formatting chore, but the hard part is really reading order. A two-column report interleaves its text streams, so a naive extractor will splice the left column's third paragraph into the middle of the right column's heading, and the output reads like a corrupted transcript rather than a document. 

Tables fail differently. The visual grid you see on the page is only a hint; the PDF stores text runs and line strokes, and the converter must reconstruct which cells belong to which row before it can even think about pipes and dashes. When header cells span two columns, most tools emit a flattened row that loses the grouping entirely. 

Scanned pages are the third failure mode. There is no text to extract, only an image, so the pipeline has to hand the page to an OCR or vision model and hope the handwriting, stamps, and skewed margins come back as coherent sentences instead of confident nonsense scattered across the middle of an otherwise clean document. 

```

## pymupdf4llm/table-simple.md

Elapsed: 0.1497 s (upstream zero timings are unavailable, not speed).

```text
# **Quarterly invoice summary** 

|**Item**|**Qty**|**Unit Price**|**Total**|
|---|---|---|---|
|Consulting hours|12|85.00|1020.00|
|Data export fee|3|40.00|120.00|
|Template license|1|190.00|190.00|
|Support retainer|6|55.00|330.00|



```

## pymupdf4llm/table-merged-header.md

Elapsed: 0.1466 s (upstream zero timings are unavailable, not speed).

```text
# **Invoice with grouped price columns** 

|**Item**|**Qty**|**Price**||
|---|---|---|---|
|||**Unit**|**Total**|
|Consulting hours|12|85.00|1020.00|
|Data export fee|3|40.00|120.00|
|Template license|1|190.00|190.00|
|Support retainer|6|55.00|330.00|



```

## pymupdf4llm/two-column.md

Elapsed: 0.1429 s (upstream zero timings are unavailable, not speed).

```text
Invoice reconciliation starts with the export file, not the ledger. Teams that reconcile weekly pull the payment provider's settlement report first, match it against issued invoices by number, and only then open the accounting system. Skipping the export step leaves ghost receivables that nobody can trace back to a real transaction. 

Returns processing needs a cutoff rule before it needs software. A warehouse that accepts returns within thirty days must decide whether the clock starts at shipment, delivery, or carrier scan, because each choice shifts which orders qualify by several days. The rule has to be written down before the tooling question matters. 

Freight quotes age badly in volatile weeks. A forwarder quoting on Monday may honour the number for seventy-two hours or until fuel surcharges update, whichever comes first, and the difference shows up on the invoice. Buyers who screenshot the quote save themselves an argument about which number was actually agreed. 

Demand forecasts fail upward more often than they fail downward. Optimistic sales inputs push safety stock up for slow movers, and the excess sits in the warehouse for two quarters before anyone reopens the spreadsheet. A weekly report on stock cover by SKU surfaces the overcorrection before the capital is committed. 

Vendor onboarding stalls on the bank details form. Procurement collects the legal name and tax number early, but the remittance address and bank letter arrive weeks later because nobody owned that request. Routing the form through finance on day one removes the most common bottleneck in the whole checklist. 

Cycle counts beat annual stocktakes for finding errors early. Counting twenty high-value SKUs every Friday catches a misplaced pallet while the movement is still in memory, where a December full count finds it months after the staff involved have rotated. Accuracy improves because the feedback loop is short. 

```

## pymupdf4llm/scan-image.md

Elapsed: 0.1872 s (upstream zero timings are unavailable, not speed).

```text

```

## pymupdf4llm/mixed.md

Elapsed: 0.2945 s (upstream zero timings are unavailable, not speed).

```text
Converting a PDF into Markdown sounds like a formatting chore, but the hard part is really reading order. A two-column report interleaves its text streams, so a naive extractor will splice the left column's third paragraph into the middle of the right column's heading, and the output reads like a corrupted transcript rather than a document. 

Tables fail differently. The visual grid you see on the page is only a hint; the PDF stores text runs and line strokes, and the converter must reconstruct which cells belong to which row before it can even think about pipes and dashes. When header cells span two columns, most tools emit a flattened row that loses the grouping entirely. 

Scanned pages are the third failure mode. There is no text to extract, only an image, so the pipeline has to hand the page to an OCR or vision model and hope the handwriting, stamps, and skewed margins come back as coherent sentences instead of confident nonsense scattered across the middle of an otherwise clean document. 

# **Quarterly invoice summary** 

|**Item**|**Qty**|**Unit Price**|**Total**|
|---|---|---|---|
|Consulting hours|12|85.00|1020.00|
|Data export fee|3|40.00|120.00|
|Template license|1|190.00|190.00|
|Support retainer|6|55.00|330.00|



```

## pymupdf4llm/equation.md

Elapsed: 0.1992 s (upstream zero timings are unavailable, not speed).

```text
Most extraction tools treat a displayed equation as an ordinary text line. That works when the expression is short and linear, like the examples below, but it breaks as soon as a fraction, exponent stack, or integral needs two-dimensional layout. 



a^2 + b^2 = c^2 f(x) = 3x + 7 sum_{i=1}^{n} x_i 

```

## pymupdf4llm/rotated-header.md

Elapsed: 0.1471 s (upstream zero timings are unavailable, not speed).

```text
# **Rotated header invoice** 

|||**rice**||
|---|---|---|---|
|**Item**|**Qty**|**Unit P**|**Total**|
|Consulting hours|12|85.00|1020.00|
|Data export fee|3|40.00|120.00|
|Template license|1|190.00|190.00|
|Support retainer|6|55.00|330.00|



```

## markovo/prose-single.md

Elapsed: 0.0 s (upstream zero timings are unavailable, not speed).

```text
Converting a PDF into Markdown sounds like a formatting chore, but the hard part is really reading order. A two-column report interleaves its text streams, so a naive extractor will splice the left column's third paragraph into the middle of the right column's heading, and the output reads like a corrupted transcript rather than a document.

Tables fail differently. The visual grid you see on the page is only a hint; the PDF stores text runs and line strokes, and the converter must reconstruct which cells belong to which row before it can even think about pipes and dashes. When header cells span two columns, most tools emit a flattened row that loses the grouping entirely.

Scanned pages are the third failure mode. There is no text to extract, only an image, so the pipeline has to hand the page to an OCR or vision model and hope the handwriting, stamps, and skewed margins come back as coherent sentences instead of confident nonsense scattered across the middle of an otherwise clean document.
```

## markovo/table-simple.md

Elapsed: 0.0 s (upstream zero timings are unavailable, not speed).

```text
## Quarterly invoice summary

<table><tr><td>Item</td><td>Qty</td><td>Unit Price</td><td>Total</td></tr><tr><td>Consulting hours</td><td>12</td><td>85.00</td><td>1020.00</td></tr><tr><td>Data export fee</td><td>3</td><td>40.00</td><td>120.00</td></tr><tr><td>Template license</td><td>1</td><td>190.00</td><td>190.00</td></tr><tr><td>Support retainer</td><td>6</td><td>55.00</td><td>330.00</td></tr><tr></tr></table>
```

## markovo/table-merged-header.md

Elapsed: 0.0 s (upstream zero timings are unavailable, not speed).

```text
<table><tr><td>Item</td><td>Qty</td><td>Price</td><td></td></tr><tr><td></td><td></td><td>Unit</td><td>Total</td></tr><tr><td>Consulting hours</td><td>12</td><td>85.00</td><td>1020.00</td></tr><tr><td>Data export fee</td><td>3</td><td>40.00</td><td>120.00</td></tr><tr><td>Template license</td><td>1</td><td>190.00</td><td>190.00</td></tr><tr><td>Support retainer</td><td>6</td><td>55.00</td><td>330.00</td></tr><tr></tr></table>
```

## markovo/two-column.md

Elapsed: 0.0 s (upstream zero timings are unavailable, not speed).

```text
Invoice reconciliation starts with the export file, not the ledger. Teams that reconcile weekly pull the payment provider's settlement report first, match it against issued invoices by number, and only then open the accounting system. Skipping the export step leaves ghost receivables that nobody can trace back to a real transaction.

Returns processing needs a cutoff rule before it needs software. A warehouse that accepts returns within thirty days must decide whether the clock starts at shipment, delivery, or carrier scan, because each choice shifts which orders qualify by several days. The rule has to be written down before the tooling question matters.

Freight quotes age badly in volatile weeks. A forwarder quoting on Monday may honour the number for seventy-two hours or until fuel surcharges update, whichever comes first, and the difference shows up on the invoice. Buyers who screenshot the quote save themselves an argument about which number was actually agreed.

Demand forecasts fail upward more often than they fail downward. Optimistic sales inputs push safety stock up for slow movers, and the excess sits in the warehouse for two quarters before anyone reopens the spreadsheet. A weekly report on stock cover by SKU surfaces the overcorrection before the capital is committed.

Vendor onboarding stalls on the bank details form. Procurement collects the legal name and tax number early, but the remittance address and bank letter arrive weeks later because nobody owned that request. Routing the form through finance on day one removes the most common bottleneck in the whole checklist.

Cycle counts beat annual stocktakes for finding errors early. Counting twenty high-value SKUs every Friday catches a misplaced pallet while the movement is still in memory, where a December full count finds it months after the staff involved have rotated. Accuracy improves because the feedback loop is short.
```

## markovo/scan-image.md

Elapsed: 0.0 s (upstream zero timings are unavailable, not speed).

```text
This page exists only as a picture. A scanner produced it, the PDF embeds it as a bitmap, and no amount of text extraction will recover these words without OCR.
```

## markovo/mixed.md

Elapsed: 0.0 s (upstream zero timings are unavailable, not speed).

```text
Converting a PDF into Markdown sounds like a formatting chore, but the hard part is really reading order. A two-column report interleaves its text streams, so a naive extractor will splice the left column's third paragraph into the middle of the right column's heading, and the output reads like a corrupted transcript rather than a document.

Tables fail differently. The visual grid you see on the page is only a hint; the PDF stores text runs and line strokes, and the converter must reconstruct which cells belong to which row before it can even think about pipes and dashes. When header cells span two columns, most tools emit a flattened row that loses the grouping entirely.

Scanned pages are the third failure mode. There is no text to extract, only an image, so the pipeline has to hand the page to an OCR or vision model and hope the handwriting, stamps, and skewed margins come back as coherent sentences instead of confident nonsense scattered across the middle of an otherwise clean document.

## Quarterly invoice summary

<table><tr><td>Item</td><td>Qty</td><td>Unit Price</td><td>Total</td></tr><tr><td>Consulting hours</td><td>12</td><td>85.00</td><td>1020.00</td></tr><tr><td>Data export fee</td><td>3</td><td>40.00</td><td>120.00</td></tr><tr><td>Template license</td><td>1</td><td>190.00</td><td>190.00</td></tr><tr><td>Support retainer</td><td>6</td><td>55.00</td><td>330.00</td></tr><tr></tr></table>

This page exists only as a picture. A scanner produced it, the PDF embeds it as a bitmap, and no amount of text extraction will recover these words without OCR.
```

## markovo/equation.md

Elapsed: 0.0 s (upstream zero timings are unavailable, not speed).

```text
Most extraction tools treat a displayed equation as an ordinary text line. That works when the expression is short and linear, like the examples below, but it breaks as soon as a fraction, exponent stack, or integral needs two-dimensional layout.

$$
\[\mathsf{E}=\mathsf{m}\mathsf{c}\mathsf{^2}\]
$$

$$
\[a^{\wedge}2+b^{\wedge}2=c^{\wedge}2\]
$$

$$
\[\mathsf{f}(\mathsf{x})=3\mathsf{x}+7\]
$$

$$
\[\mathsf{s u m}_{\_}\{i=1\}^{\wedge}\{n\}x\textsubscript{_}i\]
$$
```

## markovo/rotated-header.md

Elapsed: 0.0 s (upstream zero timings are unavailable, not speed).

```text
## Rotated header invoice

<table><tr><td>Item</td><td>Qty</td><td>Unit Price</td><td>Total</td></tr><tr><td>Consulting hours</td><td>12</td><td>85.00</td><td>1020.00</td></tr><tr><td>Data export fee</td><td>3</td><td>40.00</td><td>120.00</td></tr><tr><td>Template license</td><td>1</td><td>190.00</td><td>190.00</td></tr><tr><td>Support retainer</td><td>6</td><td>55.00</td><td>330.00</td></tr><tr></tr></table>
```

