Benchmark: Tablewise vs MarkItDown

Five synthetic spreadsheets, both converters, the same machine. Every fixture is generated by bench/run_benchmark.py, so you can re-run it and check the numbers yourself.

Generated 2026-10-22 · macOS · Python 3.14 · MarkItDown 0.1.x · no real documents involved

Scoreboard

Each cell is Tablewise / MarkItDown. “Unnamed” and “NaN” are defects: lower is better. Formatted percentages, marked formulas and ISO dates are wins: higher is better.

CaseUnnamed colsNaN cellsFormatted %Formulas markedHidden labelledISO dates
financial_pack
Three-level header, merged cells, formulas, percentages
0 / 11 0 / 41 3 / 0 3 / 0 0 / 0 0 / 0
invoices_dates
Dates, datetimes, percentages, decimals
0 / 0 0 / 0 4 / 0 0 / 0 0 / 0 8 / 8
hidden_sheet
A visible report plus a hidden helper sheet
0 / 0 0 / 0 0 / 0 0 / 0 1 / 0 0 / 0
formula_model
Formulas with no cached value
0 / 0 0 / 6 0 / 0 6 / 0 0 / 0 0 / 0
ledger_negatives
Negative zero, tiny values, zero formatting
0 / 0 0 / 0 0 / 0 0 / 0 0 / 0 0 / 0

The same file, both ways

financial_pack: three-level header, merged cells, formulas, percentages.

MarkItDownflattened
## P&L
| Property | 2026 | Unnamed: 2 | Unnamed: 3 | Unnamed: 4 | Unnamed: 5 | Unnamed: 6 | Unnamed: 7 | Unnamed: 8 | Unnamed: 9 | Unnamed: 10 | Unnamed: 11 | Unnamed: 12 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| NaN | Actual | NaN | NaN | NaN | Budget | NaN | NaN | NaN | Last year | NaN | NaN | NaN |
| NaN | Jan | Feb | Mar | Apr | Jan | Feb | Mar | Apr | Jan | Feb | Mar | Apr |
| ADR | 120.5 | NaN | NaN | NaN | 110 | NaN | NaN | NaN | 105.25 | NaN | NaN | NaN |
| Occupancy | 0.8769 | NaN | NaN | NaN | 0.82 | NaN | NaN | NaN | 0.79 | NaN | NaN | NaN |
| RevPAR | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
Tablewisereadable
## P&L

| Property | 2026 |  |  |  |  |  |  |  |  |  |  |  |
|  | Actual | Actual | Actual | Actual | Budget | Budget | Budget | Budget | Last year | Last year | Last year | Last year |
|  | Jan | Feb | Mar | Apr | Jan | Feb | Mar | Apr | Jan | Feb | Mar | Apr |
| ADR | 120.50 |  |  |  | 110 |  |  |  | 105.25 |  |  |  |
| Occupancy | 87.69% |  |  |  | 82.00% |  |  |  | 79.00% |  |  |  |
| RevPAR | (formula not calculated) |  |  |  | (formula not calculated) |  |  |  | (formula not calculated) |  |  |  |

What this does and does not prove