Both convert documents to Markdown. They disagree on one thing: a spreadsheet is not a paragraph. Here is where each one wins, with a benchmark you can re-run.
Use MarkItDown for plain documents — PDFs without tables, Word text, HTML, EPUB, emails. It is free, mature and has an official MCP server. Use Tablewise when the document carries numbers in a table that a model has to read correctly: monthly packs, budgets, P&L, invoices, ledgers. Or when you need to prove where a figure came from.
| MarkItDown | Tablewise | |
|---|---|---|
| Merged cells / multi-level headers | Flattened into Unnamed | Rebuilt as a real table |
| Formula without a cached value | Empty cell | (formula not calculated) |
| Percentage formatting | 0.8769 | 87.69% |
| Hidden sheets | Silently dropped | Kept and labelled |
| Provenance header | No | source, engine, converted |
| Desktop app for non-technical users | No | Yes |
| Hosted API with monthly plans | No | Yes |
| Deterministic, no AI, no network | Yes | Yes (CLI and desktop) |
| PDF table reconstruction (Docling) | Basic | Yes, via Docling |
Five synthetic workbooks generated by bench/run_benchmark.py.
Numbers are defects (lower is better) or wins (higher is better):
| Case | Unnamed cols | NaN cells | Formatted % | Formulas marked |
|---|---|---|---|---|
financial_pack | 0 / 11 | 0 / 41 | 3 / 0 | 3 / 0 |
invoices_dates | 0 / 0 | 0 / 0 | 4 / 0 | 0 / 0 |
formula_model | 0 / 0 | 0 / 6 | 0 / 0 | 6 / 0 |
hidden_sheet | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
ledger_negatives | 0 / 0 | 0 / 0 | 0 / 0 | 0 / 0 |
Format: Tablewise / MarkItDown. Full page with the raw outputs: benchmark.
Free key, 50 units a month, no card. Or run the CLI locally and send nothing anywhere.