AI Handwriting Transcription Rankings
As genealogists, using AI models to transcribe handwritten historical documents is one of the most valuable applications of the technology. OpenTranscribe can batch-transcribe documents using many different providers, but choosing the right model can be tricky. These rankings highlight which AI models can deliver the best performance, speed, price and value for your handwriting transcription project.
Each model is tested against dozens of expert human transcriptions of fresh historical documents in English and German Kurrent script, dating from the 17th to 19th centuries. Every document is transcribed multiple times, scored on the median result, and combined across the full test set. Added or hallucinated words count as errors, so the score reflects how a model actually reads a document.
How to read these results
- Sorting: Click any column header to sort the table, and click again to reverse the order.
- Word Acc %: The percentage of words transcribed correctly (higher is better).
- CER %: Character Error Rate, the percentage of characters that are wrong (lower is better).
- Speed: Average time in seconds the model takes to complete the transcription of one image.
- $/100: The average total cost in USD to transcribe 100 images using this model via OpenRouter.
- Value: A score from 1-10 considering accuracy and cost efficiency (higher is a better value).
- local Identifies free, open models that can be downloaded and used locally on your computer.
Most Accurate
Fastest Speed
Lowest Cost per 100
Best Value
| Model Name | Word Acc % | CER % | Speed | $/100 | Value |
|---|---|---|---|---|---|
| google/gemini-3-flash-preview | 96.94 | 0.67 | 3.96s | $0.21 | 9.76 |
| anthropic/claude-opus-4.8 | 96.08 | 0.82 | 12.00s | $3.91 | 9.20 |
| google/gemini-2.5-flash | 95.61 | 0.99 | 3.65s | $0.17 | 9.67 |
| google/gemini-2.5-pro | 97.02 | 0.67 | 13.94s | $2.62 | 9.44 |
| openai/gpt-5.5 | 95.84 | 1.21 | 27.51s | $8.31 | 8.59 |
| anthropic/claude-sonnet-5 | 96.71 | 0.78 | 9.86s | $1.61 | 9.55 |
| google/gemini-3.1-flash-lite | 96.71 | 0.78 | 3.01s | $0.11 | 9.76 |
| qwen/qwen3.7-plus LOCAL | 96.39 | 0.86 | 33.87s | $0.60 | 9.67 |
| google/gemini-3.1-pro-preview | 96.55 | 0.78 | 30.17s | $6.61 | 8.87 |
| openai/gpt-5-mini | 94.90 | 1.48 | 35.02s | $0.69 | 9.55 |
| openai/o4-mini | 94.51 | 1.73 | 24.52s | $2.22 | 9.32 |
| google/gemini-3.1-flash-lite-preview | 78.98 | 18.73 | 2.24s | $0.07 | 8.52 |
| bytedance-seed/seed-2.0-lite | 94.27 | 1.44 | 27.28s | $0.49 | 9.53 |
| qwen/qwen3-vl-235b-a22b-instruct LOCAL | 95.06 | 1.23 | 6.91s | $0.14 | 9.64 |
| openai/gpt-5.1 | 93.49 | 2.33 | 5.49s | $0.63 | 9.46 |
| anthropic/claude-fable-5 | 95.76 | 0.71 | 17.18s | $8.29 | 8.59 |
| openai/gpt-4.1-mini | 96.47 | 1.01 | 6.37s | $0.17 | 9.73 |
| qwen/qwen3-vl-235b-a22b-thinking LOCAL | 94.82 | 1.32 | 24.31s | $0.76 | 9.54 |
| bytedance-seed/seed-2.0-mini | 94.75 | 1.42 | 23.80s | $0.17 | 9.61 |
| openai/gpt-5.1-codex-mini | 93.88 | 1.77 | 11.66s | $0.66 | 9.48 |
| z-ai/glm-4.6v | 93.96 | 1.93 | 47.68s | $0.29 | 9.54 |
| qwen/qwen3.5-plus-02-15 LOCAL | 95.76 | 0.90 | 56.05s | $0.89 | 9.58 |
| anthropic/claude-opus-4.7 | 95.92 | 0.68 | 13.02s | $3.88 | 9.19 |
| openai/gpt-4.1 | 94.75 | 1.48 | 3.94s | $0.65 | 9.55 |
| anthropic/claude-opus-4.6 | 96.08 | 0.69 | 12.85s | $2.28 | 9.42 |
| anthropic/claude-opus-4.5 | 95.61 | 0.84 | 12.36s | $2.28 | 9.39 |
| qwen/qwen2.5-vl-72b-instruct LOCAL | 95.37 | 1.54 | 8.54s | $0.26 | 9.64 |
| anthropic/claude-sonnet-4.6 | 95.76 | 0.79 | 11.38s | $1.38 | 9.52 |
| x-ai/grok-4.5 | 95.76 | 0.87 | 17.87s | $2.15 | 9.42 |
| qwen/qwen3.5-397b-a17b LOCAL | 95.61 | 0.90 | 49.68s | $1.69 | 9.47 |
| qwen/qwen3.5-122b-a10b LOCAL | 95.06 | 0.98 | 22.74s | $0.73 | 9.56 |
| qwen/qwen3.5-27b LOCAL | 94.67 | 1.27 | 12.11s | $0.45 | 9.57 |
| x-ai/grok-4.3 | 94.82 | 1.09 | 7.89s | $0.58 | 9.56 |
| mistralai/mistral-medium-3.1 LOCAL | 93.49 | 2.79 | 6.26s | $0.14 | 9.53 |
| openai/gpt-5.1-codex | 93.65 | 1.93 | 28.60s | $3.56 | 9.08 |
| bytedance-seed/seed-1.6-flash | 93.41 | 2.19 | 10.31s | $0.07 | 9.53 |
| mistralai/mistral-small-3.1-24b-instruct LOCAL | 82.20 | 14.39 | 7.76s | $0.06 | 8.75 |
| qwen/qwen3.5-35b-a3b LOCAL | 95.06 | 1.33 | 14.82s | $0.61 | 9.57 |
| qwen/qwen3.5-flash-02-23 LOCAL | 94.75 | 1.52 | 31.26s | $0.12 | 9.62 |
| openai/gpt-5.4 | 94.51 | 2.11 | 4.17s | $1.20 | 9.45 |
| openai/gpt-5 | 93.65 | 2.41 | 66.44s | $6.26 | 8.71 |
| google/gemini-2.5-flash-lite | 94.35 | 1.40 | 3.24s | $0.04 | 9.60 |
| mistralai/mistral-small-3.2-24b-instruct LOCAL | 92.16 | 3.84 | 4.65s | $0.03 | 9.45 |
| qwen/qwen3-vl-8b-instruct LOCAL | 93.80 | 1.89 | 6.68s | $0.06 | 9.56 |
| qwen/qwen3.5-9b LOCAL | 93.65 | 2.03 | 35.31s | $0.10 | 9.54 |
| openai/o3 | 93.80 | 2.42 | 14.26s | $3.08 | 9.15 |
| qwen/qwen3-vl-30b-a3b-instruct LOCAL | 92.24 | 4.15 | 9.32s | $0.08 | 9.45 |
| anthropic/claude-sonnet-4.5 | 92.08 | 3.47 | 12.82s | $1.40 | 9.26 |
| openai/gpt-5.2 | 92.94 | 3.34 | 28.83s | $2.67 | 9.15 |
| mistralai/ministral-8b-2512 LOCAL | 91.45 | 4.41 | 5.28s | $0.04 | 9.40 |
| anthropic/claude-sonnet-4 | 92.86 | 3.04 | 9.52s | $1.39 | 9.31 |
| google/gemma-4-31b-it LOCAL | 92.55 | 3.81 | 13.19s | $0.03 | 9.48 |
| z-ai/glm-5v-turbo LOCAL | 90.59 | 3.55 | 12.20s | $0.97 | 9.21 |
| mistralai/mistral-medium-3-5 | 92.24 | 3.13 | 5.93s | $0.75 | 9.36 |
| openai/gpt-5.1-chat | 93.18 | 2.72 | 4.66s | $0.63 | 9.44 |
| mistralai/mistral-large-2512 LOCAL | 85.88 | 8.26 | 10.91s | $0.15 | 8.99 |
| minimax/minimax-m3 LOCAL | 91.69 | 3.39 | 7.26s | $0.18 | 9.39 |
| amazon/nova-lite-v1 | 88.78 | 5.54 | 4.08s | $0.03 | 9.21 |
| openai/gpt-5.2-chat | 93.65 | 2.31 | 8.15s | $1.10 | 9.41 |
| bytedance-seed/seed-1.6 | 92.94 | 3.36 | 30.26s | $0.47 | 9.44 |
| openai/gpt-5.4-mini | 90.90 | 3.99 | 3.34s | $0.37 | 9.31 |
| amazon/nova-2-lite-v1 | 83.45 | 7.79 | 5.24s | $0.13 | 8.82 |
| mistralai/ministral-3b-2512 LOCAL | 85.18 | 8.07 | 3.31s | $0.03 | 8.96 |
| meta-llama/llama-4-maverick LOCAL | 87.37 | 6.56 | 7.23s | $0.12 | 9.10 |
| openai/gpt-4.1-nano | 86.35 | 7.41 | 4.57s | $0.06 | 9.04 |
| mistralai/ministral-14b-2512 LOCAL | 89.18 | 4.52 | 7.30s | $0.03 | 9.24 |
| google/gemma-4-26b-a4b-it LOCAL | 86.20 | 8.77 | 6.00s | $0.02 | 9.03 |
| anthropic/claude-haiku-4.5 | 84.08 | 8.52 | 8.61s | $0.47 | 8.82 |
| mistralai/mistral-small-2603 LOCAL | 68.24 | 22.00 | 5.24s | $0.05 | 7.77 |
| google/gemma-3-27b-it LOCAL | 63.84 | 25.61 | 14.18s | $0.02 | 7.47 |
| google/gemma-3-12b-it LOCAL | 55.53 | 34.02 | 11.21s | $0.01 | 6.89 |
| anthropic/claude-opus-5-fast | 96.94 | 0.71 | 7.27s | $8.41 | 8.65 |
| anthropic/claude-opus-5 | 96.08 | 0.76 | 12.05s | $4.11 | 9.17 |
| google/gemini-3.6-flash | 96.31 | 0.78 | 11.57s | $2.86 | 9.36 |
| google/gemini-3.5-flash-lite | 96.55 | 0.86 | 3.05s | $0.16 | 9.74 |
| openai/gpt-5.6-luna | 91.22 | 3.53 | 20.84s | $2.18 | 9.09 |
| openai/gpt-5.6-terra | 92.55 | 3.04 | 13.89s | $3.80 | 8.97 |
| openai/gpt-5.6-sol | 96.24 | 1.05 | 35.42s | $9.99 | 8.39 |
| google/gemini-3.7-flash | 96.24 | 0.75 | 14.17s | $0.55 | 9.66 |
| qwen/qwen3.8-max | 95.61 | 0.91 | 91.04s | $3.90 | 9.17 |
| qwen/qwen3.8-27b LOCAL | 93.96 | 1.69 | 37.48s | $0.90 | 9.46 |
| qwen/qwen3.7-flash | 94.04 | 1.47 | 92.96s | $0.10 | 9.57 |
| meta/muse-glimmer-30b LOCAL | 95.45 | 1.37 | 34.44s | $0.48 | 9.62 |
| x-ai/grok-4.6 | 96.16 | 0.78 | 44.99s | $2.62 | 9.38 |
| bytedance-seed/seed-2-1-turbo | 94.51 | 1.52 | 165.38s | $3.96 | 9.08 |
| thinkingmachines/inkling-small LOCAL | 75.22 | 17.29 | 25.23s | $1.30 | 8.09 |
| deepseek/deepseek-v4-flash-vision-exp LOCAL | 87.76 | 6.19 | 64.28s | $0.57 | 9.07 |
| z-ai/glm-5.3-flash LOCAL | 93.96 | 1.52 | 38.47s | $0.24 | 9.55 |
| qwen/qwen3.8-flash | 94.20 | 1.69 | 15.77s | $0.36 | 9.55 |
| anthropic/claude-fable-5.1 | 95.92 | 0.72 | 16.18s | $7.80 | 8.66 |
| google/gemini-3.8-flash | 96.39 | 0.75 | 31.38s | $2.32 | 9.44 |
| meta/muse-spark-1.3 | 96.47 | 0.83 | 14.61s | $1.55 | 9.55 |
| qwen/qwen3.8-max-0902 | 96.39 | 0.83 | 60.33s | $3.43 | 9.29 |
| openai/gpt-6-astra-pro | 96.63 | 0.72 | 27.10s | $22.28 | 6.76 |
| openai/gpt-6-astra | 97.02 | 0.67 | 18.09s | $7.32 | 8.81 |
| deepseek/deepseek-v4.1-flash LOCAL | 94.75 | 1.84 | 9.12s | $0.10 | 9.62 |
| inclusionai/ling-3.0-flash-vl LOCAL | 94.51 | 2.01 | 50.44s | $0.10 | 9.60 |
| sakana/fugu-max | 95.45 | 0.98 | 19.38s | $4.25 | 9.11 |
| z-ai/glm-5.3-flashx LOCAL | 93.88 | 1.92 | 16.52s | $0.61 | 9.49 |
| qwen/qwen3.8-omni-flash | 95.06 | 1.29 | 25.07s | $0.07 | 9.65 |
| x-ai/grok-4.7 | 95.69 | 0.84 | 57.57s | $3.34 | 9.25 |
| xiaomi/mimo-v2.6-flash LOCAL | 95.37 | 1.32 | 37.29s | $0.15 | 9.66 |
| anthropic/claude-opus-5.5 | 96.08 | 0.69 | 6.61s | $3.12 | 9.31 |
| openai/gpt-6-sol | 94.75 | 1.51 | 18.55s | $2.78 | 9.26 |
| openai/gpt-6-sol-pro | 95.53 | 1.33 | 26.80s | $6.87 | 8.76 |
| xiaomi/mimo-v2.6-pro LOCAL | 93.80 | 1.77 | 70.14s | $0.53 | 9.50 |