Skip to content Skip to footer

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

View full chart
Tap to expand

Fastest Speed

View full chart
Tap to expand

Lowest Cost per 100

View full chart
Tap to expand

Best Value

View full chart
Tap to expand

CHART TITLE

Model NameWord Acc %CER %Speed$/100Value
google/gemini-3-flash-preview96.940.673.96s$0.219.76
anthropic/claude-opus-4.896.080.8212.00s$3.919.20
google/gemini-2.5-flash95.610.993.65s$0.179.67
google/gemini-2.5-pro97.020.6713.94s$2.629.44
openai/gpt-5.595.841.2127.51s$8.318.59
anthropic/claude-sonnet-596.710.789.86s$1.619.55
google/gemini-3.1-flash-lite96.710.783.01s$0.119.76
qwen/qwen3.7-plus LOCAL96.390.8633.87s$0.609.67
google/gemini-3.1-pro-preview96.550.7830.17s$6.618.87
openai/gpt-5-mini94.901.4835.02s$0.699.55
openai/o4-mini94.511.7324.52s$2.229.32
google/gemini-3.1-flash-lite-preview78.9818.732.24s$0.078.52
bytedance-seed/seed-2.0-lite94.271.4427.28s$0.499.53
qwen/qwen3-vl-235b-a22b-instruct LOCAL95.061.236.91s$0.149.64
openai/gpt-5.193.492.335.49s$0.639.46
anthropic/claude-fable-595.760.7117.18s$8.298.59
openai/gpt-4.1-mini96.471.016.37s$0.179.73
qwen/qwen3-vl-235b-a22b-thinking LOCAL94.821.3224.31s$0.769.54
bytedance-seed/seed-2.0-mini94.751.4223.80s$0.179.61
openai/gpt-5.1-codex-mini93.881.7711.66s$0.669.48
z-ai/glm-4.6v93.961.9347.68s$0.299.54
qwen/qwen3.5-plus-02-15 LOCAL95.760.9056.05s$0.899.58
anthropic/claude-opus-4.795.920.6813.02s$3.889.19
openai/gpt-4.194.751.483.94s$0.659.55
anthropic/claude-opus-4.696.080.6912.85s$2.289.42
anthropic/claude-opus-4.595.610.8412.36s$2.289.39
qwen/qwen2.5-vl-72b-instruct LOCAL95.371.548.54s$0.269.64
anthropic/claude-sonnet-4.695.760.7911.38s$1.389.52
x-ai/grok-4.595.760.8717.87s$2.159.42
qwen/qwen3.5-397b-a17b LOCAL95.610.9049.68s$1.699.47
qwen/qwen3.5-122b-a10b LOCAL95.060.9822.74s$0.739.56
qwen/qwen3.5-27b LOCAL94.671.2712.11s$0.459.57
x-ai/grok-4.394.821.097.89s$0.589.56
mistralai/mistral-medium-3.1 LOCAL93.492.796.26s$0.149.53
openai/gpt-5.1-codex93.651.9328.60s$3.569.08
bytedance-seed/seed-1.6-flash93.412.1910.31s$0.079.53
mistralai/mistral-small-3.1-24b-instruct LOCAL82.2014.397.76s$0.068.75
qwen/qwen3.5-35b-a3b LOCAL95.061.3314.82s$0.619.57
qwen/qwen3.5-flash-02-23 LOCAL94.751.5231.26s$0.129.62
openai/gpt-5.494.512.114.17s$1.209.45
openai/gpt-593.652.4166.44s$6.268.71
google/gemini-2.5-flash-lite94.351.403.24s$0.049.60
mistralai/mistral-small-3.2-24b-instruct LOCAL92.163.844.65s$0.039.45
qwen/qwen3-vl-8b-instruct LOCAL93.801.896.68s$0.069.56
qwen/qwen3.5-9b LOCAL93.652.0335.31s$0.109.54
openai/o393.802.4214.26s$3.089.15
qwen/qwen3-vl-30b-a3b-instruct LOCAL92.244.159.32s$0.089.45
anthropic/claude-sonnet-4.592.083.4712.82s$1.409.26
openai/gpt-5.292.943.3428.83s$2.679.15
mistralai/ministral-8b-2512 LOCAL91.454.415.28s$0.049.40
anthropic/claude-sonnet-492.863.049.52s$1.399.31
google/gemma-4-31b-it LOCAL92.553.8113.19s$0.039.48
z-ai/glm-5v-turbo LOCAL90.593.5512.20s$0.979.21
mistralai/mistral-medium-3-592.243.135.93s$0.759.36
openai/gpt-5.1-chat93.182.724.66s$0.639.44
mistralai/mistral-large-2512 LOCAL85.888.2610.91s$0.158.99
minimax/minimax-m3 LOCAL91.693.397.26s$0.189.39
amazon/nova-lite-v188.785.544.08s$0.039.21
openai/gpt-5.2-chat93.652.318.15s$1.109.41
bytedance-seed/seed-1.692.943.3630.26s$0.479.44
openai/gpt-5.4-mini90.903.993.34s$0.379.31
amazon/nova-2-lite-v183.457.795.24s$0.138.82
mistralai/ministral-3b-2512 LOCAL85.188.073.31s$0.038.96
meta-llama/llama-4-maverick LOCAL87.376.567.23s$0.129.10
openai/gpt-4.1-nano86.357.414.57s$0.069.04
mistralai/ministral-14b-2512 LOCAL89.184.527.30s$0.039.24
google/gemma-4-26b-a4b-it LOCAL86.208.776.00s$0.029.03
anthropic/claude-haiku-4.584.088.528.61s$0.478.82
mistralai/mistral-small-2603 LOCAL68.2422.005.24s$0.057.77
google/gemma-3-27b-it LOCAL63.8425.6114.18s$0.027.47
google/gemma-3-12b-it LOCAL55.5334.0211.21s$0.016.89
anthropic/claude-opus-5-fast96.940.717.27s$8.418.65
anthropic/claude-opus-596.080.7612.05s$4.119.17
google/gemini-3.6-flash96.310.7811.57s$2.869.36
google/gemini-3.5-flash-lite96.550.863.05s$0.169.74
openai/gpt-5.6-luna91.223.5320.84s$2.189.09
openai/gpt-5.6-terra92.553.0413.89s$3.808.97
openai/gpt-5.6-sol96.241.0535.42s$9.998.39
google/gemini-3.7-flash96.240.7514.17s$0.559.66
qwen/qwen3.8-max95.610.9191.04s$3.909.17
qwen/qwen3.8-27b LOCAL93.961.6937.48s$0.909.46
qwen/qwen3.7-flash94.041.4792.96s$0.109.57
meta/muse-glimmer-30b LOCAL95.451.3734.44s$0.489.62
x-ai/grok-4.696.160.7844.99s$2.629.38
bytedance-seed/seed-2-1-turbo94.511.52165.38s$3.969.08
thinkingmachines/inkling-small LOCAL75.2217.2925.23s$1.308.09
deepseek/deepseek-v4-flash-vision-exp LOCAL87.766.1964.28s$0.579.07
z-ai/glm-5.3-flash LOCAL93.961.5238.47s$0.249.55
qwen/qwen3.8-flash94.201.6915.77s$0.369.55
anthropic/claude-fable-5.195.920.7216.18s$7.808.66
google/gemini-3.8-flash96.390.7531.38s$2.329.44
meta/muse-spark-1.396.470.8314.61s$1.559.55
qwen/qwen3.8-max-090296.390.8360.33s$3.439.29
openai/gpt-6-astra-pro96.630.7227.10s$22.286.76
openai/gpt-6-astra97.020.6718.09s$7.328.81
deepseek/deepseek-v4.1-flash LOCAL94.751.849.12s$0.109.62
inclusionai/ling-3.0-flash-vl LOCAL94.512.0150.44s$0.109.60
sakana/fugu-max95.450.9819.38s$4.259.11
z-ai/glm-5.3-flashx LOCAL93.881.9216.52s$0.619.49
qwen/qwen3.8-omni-flash95.061.2925.07s$0.079.65
x-ai/grok-4.795.690.8457.57s$3.349.25
xiaomi/mimo-v2.6-flash LOCAL95.371.3237.29s$0.159.66
anthropic/claude-opus-5.596.080.696.61s$3.129.31
openai/gpt-6-sol94.751.5118.55s$2.789.26
openai/gpt-6-sol-pro95.531.3326.80s$6.878.76
xiaomi/mimo-v2.6-pro LOCAL93.801.7770.14s$0.539.50