As discussed in a previous post, existing OCR benchmarks are not especially useful for discriminating between models on the kinds of documents that social scientists actually work with. Most benchmarks, like OmniDocBench v1.5, over-index on modern printed text, clean scans, and well-resourced languages. Handwritten census records, historical logbooks, degraded administrative forms, and other ``messy" real-world data are not well represented.

socOCRbench is a small (private) benchmark designed with this gap in mind. It evaluates OCR models on samples across handwriting recognition, table extraction, and printed text recognition. The overall score is the mean of three metrics: NES (Normalized Edit Similarity), chrF (character n-gram F-score) for text, and TEDS (Tree Edit Distance Similarity) for tables. Each ranges from 0 to 1, where 1.0 is perfect.

You can read more about socOCRbench and the motivation behind it in the corresponding working paper.

v3
v2
v1
Model socOCRbench NES Region W. Europe E. Europe E. Asia S. Asia MENA NES Format HW Text Print Text HW Table chrF W. Europe E. Europe E. Asia S. Asia MENA HW Text Print Text TEDS $/M In $/M Out
Gemini 3.1 Pro (low) VLM Proprietary 0.6357 0.6577 0.68910.66050.56950.73150.6377 0.6450 0.64860.70220.5843 0.6054 0.68430.53020.54750.74280.5221 0.57520.6835 0.6502 2.00 12.00
Gemini 3 Pro (low) VLM Proprietary 0.6249 0.6888 0.76270.72100.57040.73550.6545 0.6350 0.67980.80110.4241 0.6479 0.81080.56120.57200.76620.5291 0.60130.7964 0.5650 2.00 12.00
Gemini 3.1 Flash Lite VLM Proprietary 0.6067 0.6520 0.73640.66720.52310.74360.5896 0.6286 0.63290.76460.4882 0.5902 0.76240.50720.50000.72660.4550 0.53820.7503 0.5895 0.25 1.50
Gemini 3 Flash (low) VLM Proprietary 0.5995 0.6453 0.70630.61430.54460.71560.6456 0.6076 0.63920.73000.4537 0.6068 0.77070.48200.52110.73400.5261 0.57310.7378 0.5652 0.50 3.00
Claude Sonnet 4.6 VLM Proprietary 0.5982 0.5634 0.69380.60560.33890.66950.5094 0.5767 0.53680.70200.4914 0.5040 0.70730.44030.37600.64700.3492 0.46100.6674 0.7205 3.00 15.00
Gemini 3 Flash (minimal) VLM Proprietary 0.5920 0.6390 0.72870.60800.52270.72090.6145 0.6145 0.63340.73870.4712 0.5903 0.77660.46200.48890.73770.4863 0.56130.7258 0.5590 0.50 3.00
Qwen3.5 122B VLM Open Source 0.5753 0.6078 0.71330.60140.55000.68600.4884 0.5929 0.58940.73420.4551 0.5398 0.71740.42320.54830.64620.3640 0.50130.6864 0.5858 0.40 3.20
Seed 2.0 Pro VLM Proprietary 0.5632 0.6011 0.65340.62720.55540.69930.4699 0.5644 0.55390.73540.4039 0.5514 0.68190.47070.57120.69110.3422 0.48970.7019 0.5554 0.47 2.37
Qwen3.5 397B VLM Open Source 0.5616 0.6353 0.73990.60680.57810.74120.5105 0.6152 0.61400.76710.4644 0.5716 0.74680.44960.57050.70750.3838 0.52820.7219 0.4879 0.60 3.60
Qwen3.5 Plus VLM Proprietary 0.5576 0.6279 0.72990.58120.56930.72980.5293 0.6069 0.61010.75330.4574 0.5663 0.73880.44180.56990.70170.3789 0.52040.7186 0.4891 0.80 2.00
Qwen3.5 397B (thinking) VLM Open Source 0.5504 0.5935 0.69350.56230.57070.66980.4710 0.5809 0.56300.73210.4477 0.5436 0.72060.41350.56520.67000.3487 0.48920.7112 0.5204 0.60 3.60
Qwen3 VL 235B VLM Open Source 0.5478 0.5967 0.71150.59430.55400.69050.4330 0.6021 0.56270.73960.5040 0.5236 0.68930.43020.54470.66780.2859 0.46370.6908 0.5204 0.20 0.88
Gemini 2.5 Flash VLM Proprietary 0.5446 0.5833 0.65810.54890.49870.69780.5131 0.5720 0.53520.72190.4587 0.5471 0.70120.40540.50000.71280.4163 0.47850.7198 0.5091 0.15 0.60
Qwen3.5 27B VLM Open Source 0.5417 0.5926 0.69840.55740.56150.66860.4770 0.5786 0.58310.70620.4465 0.5155 0.69530.39460.54600.59980.3418 0.48410.6548 0.5242 0.30 2.40
Claude Opus 4.6 VLM Proprietary 0.5416 0.5570 0.68260.60160.34960.65690.4944 0.5538 0.52980.70380.4279 0.5058 0.71170.45250.38530.64990.3295 0.45730.6781 0.5637 15.00 75.00
Datalab (accurate) VLM Proprietary 0.5391 0.5357 0.53630.61400.48770.62910.4114 0.4459 0.48560.66340.1888 0.5171 0.61060.48030.51320.67480.3065 0.44360.6620 0.6094 0.01 0.01
Datalab (fast) VLM Proprietary 0.5374 0.5258 0.53590.58820.48600.62650.3925 0.4440 0.47010.66480.1971 0.5058 0.59870.45110.51860.67020.2905 0.42570.6597 0.6214 0.01 0.01
Gemini 2.0 Flash VLM Proprietary 0.5295 0.5777 0.63560.55770.48150.69770.5162 0.5562 0.52180.71920.4276 0.5342 0.66560.41040.47720.71000.4080 0.45160.7132 0.4872 0.10 0.40
Seed 2.0 Lite VLM Proprietary 0.5160 0.5747 0.64470.59480.53070.60220.5013 0.5347 0.55920.68540.3594 0.5417 0.68350.44650.53610.65610.3865 0.49770.6755 0.4516 0.09 0.53
Seed 2.0 Mini VLM Proprietary 0.4974 0.5448 0.58310.53230.52830.62610.4542 0.5041 0.50820.65570.3483 0.5244 0.61980.39370.56140.68720.3600 0.46410.6532 0.4433 0.10 0.40
Qwen3 VL 8B VLM Open Source 0.4738 0.5233 0.63220.54690.49400.62700.3165 0.4794 0.48030.70680.2512 0.4533 0.64340.37800.49210.55150.2014 0.39960.6277 0.4667 0.08 0.50
Qwen3.5 Flash VLM Open Source 0.4677 0.5893 0.68300.55400.54630.68400.4790 0.5489 0.57580.71450.3563 0.5289 0.70960.39790.56240.62940.3453 0.48900.6797 0.3052 0.10 0.40
Qwen3.5 35B VLM Open Source 0.4619 0.5898 0.68590.54960.54790.68850.4772 0.5472 0.57030.72750.3440 0.5288 0.71870.38770.55870.63480.3442 0.48680.6874 0.2884 0.25 2.00
Llama 4 Maverick VLM Open Source 0.4501 0.4585 0.59240.48310.19560.64970.3717 0.4981 0.38910.64000.4651 0.4200 0.56150.34480.26670.62310.3041 0.33480.6055 0.4521 0.27 0.85
Mistral OCR VLM Proprietary 0.4467 0.4819 0.62880.44040.24730.61140.4815 0.5104 0.42750.66660.4372 0.3843 0.59850.30760.13630.57390.3052 0.30700.5993 0.4597 1.00 1.00
GPT-5 Mini (min. reason.) VLM Proprietary 0.4450 0.5065 0.63690.52200.40560.54300.4252 0.5147 0.48720.64370.4133 0.4321 0.64220.35920.40270.47550.2807 0.40570.5825 0.3922 0.25 2.00
ERNIE 4.5 VL 424B VLM Proprietary 0.4448 0.4575 0.58680.41700.49010.49710.2964 0.4932 0.43730.57710.4653 0.3830 0.54660.28740.48640.38870.2057 0.37810.4806 0.4762 0.42 1.25
Qwen3 VL 30B VLM Open Source 0.4370 0.5129 0.64610.52450.49150.59300.3097 0.5053 0.46200.70740.3466 0.4438 0.64390.37390.47850.53720.1852 0.37880.6398 0.3580 0.10 0.40
Qwen3.5 9B VLM Open Source 0.4269 0.4492 0.62420.39330.45870.54380.2260 0.4731 0.40520.64980.3644 0.3920 0.63370.28030.43550.46600.1446 0.34350.5896 0.4276 0.18 1.20
Qwen3.5 4B VLM Open Source 0.4264 0.4840 0.62180.51220.43950.53800.3086 0.4962 0.45220.64210.3943 0.3991 0.60450.34260.43860.42600.1840 0.36030.5654 0.3901 / /
Gemma 3 27B VLM Open Source 0.3843 0.3640 0.47750.40970.24360.42660.2626 0.4109 0.31750.49760.4176 0.3038 0.46610.30880.15790.38100.2054 0.26790.4380 0.4618 / /
Qwen3.5 2B VLM Open Source 0.3827 0.4618 0.59820.45050.42830.53140.3008 0.4622 0.43130.62450.3309 0.3818 0.58190.30220.40290.40730.2146 0.35440.5295 0.3044 / /
GPT-5.4 (low res., med. reason.) VLM Proprietary 0.3424 0.5151 0.62400.53210.46560.57880.3750 0.4788 0.50370.64920.2834 0.4539 0.64890.37750.44930.54280.2509 0.42490.5969 0.0764 2.50 15.00
ERNIE 4.5 VL 28B VLM Proprietary 0.3321 0.4077 0.61190.28040.47880.40050.2667 0.4453 0.43000.53530.3706 0.3200 0.56640.13180.47540.23460.1916 0.35320.4168 0.2498 0.14 0.56
GPT-5.4 (high res., med. reason.) VLM Proprietary 0.3256 0.5342 0.63090.54760.50240.59860.3915 0.4922 0.51960.66620.2909 0.4641 0.65720.39260.45880.56330.2484 0.42750.6159 -0.0005 2.50 15.00
Qwen-VL-OCR VLM Proprietary 0.3249 0.4702 0.60620.51840.38440.59060.2513 0.4419 0.42070.67510.2298 0.4019 0.60930.34910.39880.51170.1406 0.33150.6081 0.1167 0.07 0.16
GPT-5.4 (auto res., med. reason.) VLM Proprietary 0.3217 0.5213 0.63930.55430.45200.58700.3739 0.4862 0.51270.65800.2877 0.4560 0.65710.39530.44380.55510.2286 0.42460.6048 0.0055 2.50 15.00
dots.ocr VLM Open Source 0.3216 0.5159 0.57730.52300.49550.60400.3799 0.4143 0.47260.69810.0723 0.4718 0.63200.38560.50120.59140.2489 0.40060.6535 0.0278 0.03 0.03
mistral-small-2603 VLM 0.3187 0.2729 0.48250.35510.05750.32460.1449 0.3550 0.22480.47120.3689 0.2312 0.47760.27280.03780.28680.0808 0.17720.4374 0.4110 ? ?
dots.ocr 1.5 VLM Open Source 0.3187 0.5249 0.64080.58010.43690.69130.2754 0.4387 0.47050.75490.0907 0.4956 0.71720.42440.47570.68610.1746 0.40670.7308 -0.0214 0.03 0.03
GPT-5.4 (orig. res., med. reason.) VLM Proprietary 0.3174 0.4963 0.64030.54730.36350.56770.3626 0.4697 0.48870.64840.2719 0.4236 0.65400.38450.33040.52230.2269 0.39210.5882 0.0457 2.50 15.00
GPT-5.4 (high res., low reason.) VLM Proprietary 0.3114 0.5137 0.62200.55460.46730.55070.3738 0.4762 0.50630.64370.2787 0.4526 0.63890.40560.44640.54190.2302 0.42210.5925 -0.0133 2.50 15.00
Qwen3.5 0.8B VLM Open Source 0.3062 0.3851 0.52200.39830.36920.43530.2008 0.3864 0.34210.56740.2496 0.3080 0.51370.26800.31660.30900.1329 0.27640.4656 0.2247 / /
GPT-5.2 (low res., med. reason.) VLM Proprietary 0.3017 0.4488 0.57900.47870.30310.56860.3147 0.4349 0.41480.61600.2738 0.4020 0.59200.34920.32950.51530.2238 0.35770.5618 0.0612 1.75 14.00
GPT-5.2 (high res., med. reason.) VLM Proprietary 0.2904 0.4407 0.57010.44670.33180.54600.3090 0.4350 0.40390.60750.2935 0.3968 0.57590.33010.36980.51220.1958 0.34610.5597 0.0366 1.75 14.00
PaddleOCR-VL-1.5 VLM Proprietary 0.2781 0.4172 0.55030.38220.50330.41340.2366 0.3622 0.36470.65390.0681 0.3801 0.59750.27790.53580.35960.1297 0.30200.6120 0.0646 0.03 0.03
GPT-5.2 (auto res., med. reason.) VLM Proprietary 0.2780 0.4509 0.58270.48530.32250.53880.3250 0.4371 0.43290.59770.2807 0.4113 0.58870.34700.36690.51110.2428 0.37520.5537 -0.0212 1.75 14.00
GPT-5 Nano (min. reason.) VLM Proprietary 0.2742 0.2799 0.44910.36530.16490.24590.1740 0.3291 0.25670.43370.2970 0.2238 0.43270.24180.11960.19300.1318 0.20270.3692 0.2943 0.05 0.40
Gemma 3 4B VLM Open Source 0.2589 0.2390 0.39990.27820.05220.27260.1919 0.3214 0.22330.34720.3939 0.1921 0.37480.20640.03030.20630.1425 0.18380.3023 0.3044 / /
GPT-5 Mini (med. reason.) VLM Proprietary 0.2540 0.3845 0.55290.37370.27810.55960.1583 0.3886 0.37440.53440.2571 0.3347 0.57080.24060.27280.49680.0925 0.31350.4847 0.0406 0.25 2.00
gpt-5.4-mini-none VLM 0.2497 0.4385 0.59980.49990.25940.51960.3139 0.4416 0.40870.61820.2979 0.3737 0.60070.34600.28880.43640.1965 0.33710.5456 -0.0647 ? ?
GLM-OCR VLM Open Source 0.2474 0.3776 0.61550.47880.48910.25220.0522 0.3584 0.37920.60950.0867 0.3272 0.66250.30280.47390.17680.0200 0.31330.5401 0.0469 0.03 0.03
OlmOCR-2 VLM Open Source 0.2391 0.4849 0.62670.47420.42770.59380.3020 0.4469 0.44310.69230.2052 0.4296 0.67360.34180.44300.52400.1660 0.37360.6373 -0.1781 0.09 0.19
FireRed-OCR VLM Open Source 0.2276 0.3912 0.56070.36490.41350.46450.1524 0.3665 0.34400.62570.1297 0.3445 0.58760.25430.41050.39920.0708 0.28070.5652 -0.0407 / /
OCRVerse VLM Open Source 0.2022 0.2820 0.53600.20860.38010.27210.0133 0.2906 0.29400.48860.0892 0.2625 0.56270.11240.40430.23150.0015 0.26120.4330 0.0579 / /
Grok 4.2 Fast VLM Proprietary 0.1965 0.2455 0.29940.26630.23000.30670.1254 0.2410 0.20560.35160.1657 0.2064 0.30270.16060.22250.25470.0916 0.17950.2946 0.1397 2.00 10.00
gpt-5.4-nano-none VLM 0.1870 0.2693 0.47870.39080.09230.20040.1841 0.3271 0.25970.43490.2865 0.2187 0.46070.27290.07090.16230.1266 0.19850.3820 0.0441 ? ?
DeepSeek-OCR2 VLM Open Source 0.1677 0.2034 0.36370.30220.04200.12770.1815 0.2675 0.17110.35590.2755 0.1550 0.35190.18520.02520.09710.1157 0.12730.3047 0.1125 0.03 0.03
LightOnOCR-2 VLM Open Source 0.1555 0.2708 0.39780.32820.11610.32010.1915 0.2733 0.20620.47480.1389 0.2430 0.42630.22270.11270.33180.1215 0.17150.4383 -0.0484 / /
Nemotron-Nano-12B VLM Open Source 0.1271 0.1464 0.35290.18130.02650.10780.0639 0.2225 0.13340.30180.2324 0.1209 0.35930.11590.02790.07600.0254 0.11090.2682 0.0759 0.20 0.20
PaddleOCR-VL-0.9B VLM Open Source 0.1005 0.1422 0.31650.15290.09170.06860.0815 0.1986 0.13430.27780.1838 0.1008 0.30050.07380.08390.02690.0187 0.08580.2362 0.0304 0.13 0.13
Kimi K2.5 VLM Proprietary 0.0969 0.1033 0.20830.10830.08130.10470.0137 0.1233 0.06490.24130.0637 0.1009 0.23180.08750.07990.09490.0105 0.06040.2301 0.0764 0.60 2.50
Tesseract v5 Classical OCR Open Source 0.0968 0.1461 0.40040.08680.04340.10230.0979 0.2039 0.13490.35680.1199 0.0813 0.39410.00350.00050.00800.0004 0.05490.2956 0.0342 / /
DeepSeek-OCR VLM Open Source 0.0789 0.1033 0.21820.10800.02950.07710.0835 0.1601 0.09470.18240.2032 0.0738 0.21720.05770.02120.04430.0288 0.06630.1650 0.0313 0.03 0.03
PP-OCRv5 Classical OCR Proprietary 0.0773 0.1623 0.41150.19800.13720.04480.0203 0.2138 0.19320.31320.1349 0.1630 0.42690.04270.33670.00860.0002 0.18530.2880 -0.1191 0.03 0.03
Molmo 2 8B VLM Open Source 0.0728 0.0936 0.26080.07400.00690.07220.0542 0.1620 0.09430.19820.1934 0.0544 0.23120.01670.00090.02050.0025 0.04890.1616 0.0363 / /
GPT-5 Nano (med. reason.) VLM Proprietary 0.0288 0.0451 0.12530.03210.00490.03730.0259 0.0640 0.05130.09580.0450 0.0240 0.11530.00170.00020.00280.0001 0.02240.0779 0.0077 0.05 0.40
Model socOCRbench Region Europe E. Asia S. Asia SE Asia MENA E. Africa Period Pre-mod. Historical Contemp. Format HW Text Print Text Print Tbl HW Tbl $/M In $/M Out
Gemini 3.1 Pro (low) VLM Proprietary 0.7009 0.7009 0.70700.64470.71890.71360.72040.6654 0.6952 0.56410.67620.8271 0.7024 0.67030.94150.82950.3561 2.00 12.00
Gemini 3 Pro (low) VLM Proprietary 0.7134 0.7134 0.67210.69080.75440.74630.70330.5976 0.6781 0.58820.63070.8107 0.6706 0.65510.94400.79140.2862 2.00 12.00
Gemini 3 Flash (low) VLM Proprietary 0.6967 0.6967 0.67540.65870.74600.66320.74000.6643 0.6738 0.56350.64000.8165 0.6736 0.65720.92180.82320.2916 0.50 3.00
Gemini 3 Pro (high) VLM Proprietary 0.6894 0.6894 0.67830.72970.66420.70880.66620.6650 0.6757 0.56820.63520.8189 0.6746 0.65860.91770.84720.2691 2.00 12.00
Gemini 3 Flash (minimal) VLM Proprietary 0.6903 0.6903 0.67000.66060.75710.67430.68930.6575 0.6705 0.57880.63250.7945 0.6619 0.64870.92530.78020.2946 0.50 3.00
Gemini 3 Flash (high) VLM Proprietary 0.6686 0.6686 0.65740.64510.74550.60790.68710.7298 0.6571 0.56890.61200.7782 0.6217 0.64500.91690.73600.1943 0.50 3.00
Gemini 3.1 Flash Lite VLM Proprietary 0.6606 0.6606 0.65510.67350.64920.71430.61090.6146 0.6425 0.52060.60180.8201 0.6737 0.62160.88420.88790.3088 0.25 1.50
Nano Banana 2 VLM Proprietary 0.5635 0.5635 0.61080.59930.57120.60900.42710.5348 0.5748 0.44080.55240.7446 0.6291 0.54830.84020.87380.2525 0.50 3.00
Gemini 2.0 Flash VLM Proprietary 0.6309 0.6309 0.61170.62830.74270.58190.58980.2326 0.5827 0.49160.56930.7055 0.6372 0.53390.87040.85430.2711 0.10 0.40
Claude Sonnet 4.6 VLM Proprietary 0.5791 0.5791 0.67080.66490.34610.63410.57950.3809 0.6064 0.46350.61820.7324 0.6568 0.57380.80760.86460.3806 3.00 15.00
Seed 2.0 Mini VLM Proprietary 0.5221 0.5221 0.56630.59280.50130.53260.41730.5695 0.5220 0.40670.50740.6967 0.5719 0.48820.86480.73240.2083 0.10 0.40
Claude Opus 4.6 VLM Proprietary 0.5590 0.5590 0.65710.67590.28230.57000.60990.2579 0.5905 0.45120.61100.6884 0.6242 0.55780.78520.86200.2860 15.00 75.00
Seed 2.0 Pro VLM Proprietary 0.5300 0.5300 0.58340.69210.44480.47950.45040.4309 0.5160 0.38570.52850.7038 0.6104 0.47600.86500.83140.2703 0.47 2.37
Qwen3.5-397B (thinking) 397B VLM Open Source 0.5452 0.5452 0.61110.67390.49120.45480.49510.1950 0.5444 0.43750.57110.6387 0.6089 0.49680.80720.82830.2826 0.60 3.60
Gemini 2.5 Flash VLM Proprietary 0.5260 0.5260 0.60190.62800.36120.48760.55140.1352 0.5238 0.33880.56780.6632 0.5933 0.49460.73610.84660.2777 0.15 0.60
Qwen3.5-122B 122B VLM Open Source 0.5386 0.5386 0.61810.68290.43210.44510.51500.1827 0.5502 0.46390.56530.6326 0.6179 0.48800.82920.85290.2792 0.40 3.20
Qwen3.5-397B 397B VLM Open Source 0.5261 0.5261 0.58990.66730.47870.40650.48810.1957 0.5216 0.41890.54530.6307 0.5964 0.47430.79490.83100.2698 0.60 3.60
Seed 2.0 Lite VLM Proprietary 0.4798 0.4798 0.54960.63610.33880.47530.39910.4287 0.4915 0.36060.49970.6577 0.5718 0.45210.80260.82200.2091 0.09 0.53
Qwen3.5-35B 35B VLM Open Source 0.5367 0.5367 0.59550.67370.48410.37800.55210.0690 0.5409 0.46380.54920.5927 0.5826 0.48230.77920.80470.2307 0.25 2.00
Qwen3.5-Plus VLM Proprietary 0.5205 0.5205 0.63030.65820.39970.46470.44940.1498 0.5491 0.44290.57360.6296 0.6062 0.49520.79760.84180.2684 0.80 2.00
Qwen3.5-Flash VLM Open Source 0.5342 0.5342 0.59300.67310.48650.37700.54160.0690 0.5395 0.46350.54610.5924 0.5821 0.48080.77500.81420.2251 0.10 0.40
Qwen3-VL-235B 235B VLM Open Source 0.5285 0.5285 0.63680.72180.39220.40660.48530.0976 0.5555 0.47600.57990.6138 0.6237 0.49340.79580.88170.2978 0.20 0.88
Qwen3.5-9B (no reasoning) 9B VLM Open Source 0.5149 0.5149 0.59720.70520.42880.36220.48120.0870 0.5273 0.44360.54700.5959 0.5930 0.46580.78380.84630.2506 / /
ERNIE 4.5 VL 424B 424B VLM Proprietary 0.5016 0.5016 0.64350.69280.40440.21920.54810.0576 0.5556 0.47440.58660.5613 0.5802 0.50320.72460.82420.2327 0.42 1.25
GPT-5.4 VLM Proprietary 0.5026 0.5026 0.62770.76080.21200.40030.51240.0969 0.5165 0.33570.58440.6319 0.5746 0.50000.76490.81670.2331 2.50 15.00
Qwen3.5-27B 27B VLM Open Source 0.5162 0.5162 0.60800.69130.45330.35770.47050.0131 0.5299 0.44020.55740.5863 0.6082 0.45530.79020.86210.2903 0.30 2.40
Qwen3-VL-8B 8B VLM Open Source 0.5049 0.5049 0.53960.84900.35240.33900.44450.0856 0.4422 0.37180.47710.5851 0.5766 0.39410.81760.85300.2513 0.08 0.50
Qwen3-VL-30B 30B VLM Open Source 0.4848 0.4848 0.59530.70660.41070.28000.43160.1088 0.5111 0.43800.54410.5650 0.5843 0.45070.75290.85280.2570 0.10 0.40
Qwen3.5-4B (no reasoning) 4B VLM Open Source 0.4708 0.4708 0.58460.68370.39810.28150.40590.0857 0.4980 0.40480.52710.5698 0.5732 0.43720.74720.82790.2538 / /
GPT-5.2 (high) VLM Proprietary 0.4320 0.4320 0.58340.65940.08230.34930.48580.0839 0.4770 0.29510.54500.5833 0.5486 0.44670.66970.82640.2195 1.75 14.00
ERNIE 4.5 VL 28B 28B VLM Proprietary 0.4697 0.4697 0.51660.77910.35450.27670.42160.0619 0.4138 0.34370.45180.5560 0.5444 0.36770.80170.79520.2251 0.14 0.56
Qwen3.5-2B (no reasoning) 2B VLM Open Source 0.4502 0.4502 0.61820.62020.37310.24480.39480.0484 0.4766 0.37990.57600.5161 0.5951 0.41570.71890.84400.3788 / /
Sarvam Vision VLM Proprietary 0.4533 0.4533 0.57460.49610.56080.14370.49120.0438 0.4785 0.41160.50950.5379 0.5367 0.43630.68990.79960.2181 / /
Llama 4 Maverick 17Bx128E VLM Open Source 0.3827 0.3827 0.54840.45130.12620.43440.35330.3066 0.4350 0.26150.51020.5740 0.5383 0.39980.68490.80310.2665 0.27 0.85
dots.ocr VLM Open Source 0.4444 0.4444 0.58660.68930.41620.26570.26430.0438 0.4974 0.48340.50660.5329 0.5556 0.43280.76780.82590.2145 / /
OlmOCR-2 7B VLM Open Source 0.4083 0.4083 0.61700.66040.15190.25310.35890.0632 0.4868 0.34370.55580.5297 0.5282 0.44880.67040.73900.2195 / /
GPT-5.2 (low) VLM Proprietary 0.4000 0.4000 0.56400.63790.08160.28010.43660.0187 0.4495 0.25910.51660.5553 0.5223 0.41890.62280.80110.2083 1.75 14.00
Qwen-VL-OCR VLM Proprietary 0.4103 0.4103 0.56200.64260.35640.16090.32940.0085 0.4562 0.36980.50100.4999 0.5186 0.39720.71020.76630.1660 0.07 0.16
Qwen3.5-0.8B (no reasoning) 0.9B VLM Open Source 0.3787 0.3787 0.56070.60720.29220.15750.27590.0388 0.4369 0.34580.50610.4617 0.4836 0.38870.67940.66500.1857 / /
GPT-5.3 Codex VLM Proprietary 0.3459 0.3459 0.51640.62090.07510.25270.26430.0000 0.3956 0.17360.47170.5333 0.4995 0.36620.55210.83570.2000 1.75 14.00
PaddleOCR-VL-1.5 VLM Open Source 0.3097 0.3097 0.48450.40840.14930.17170.33470.0248 0.3688 0.23940.43180.3724 0.3284 0.34910.59130.20060.1280 / /
GLM-OCR 0.9B VLM Open Source 0.2683 0.2683 0.54210.42050.04120.17460.16290.0504 0.3848 0.23460.47540.3641 0.3402 0.36620.58100.22020.1492 0.03 0.03
FireRed-OCR 2B VLM Open Source 0.2839 0.2839 0.50200.57850.00700.10780.22430.0082 0.3483 0.20410.45810.3563 0.3464 0.32660.58260.31310.1292 / /
Mistral OCR VLM Proprietary 0.2816 0.2816 0.46440.41020.03560.12630.37130.0615 0.3205 0.14290.45260.4474 0.4668 0.28870.54830.87190.1809 1.00 1.00
PaddleOCR-VL VLM Open Source 0.2420 0.2420 0.37310.38150.01140.10360.34020.0448 0.2768 0.12990.30780.3657 0.2685 0.28420.40660.23360.1294 / /
Gemma 3 27B 27B VLM Open Source 0.2761 0.2761 0.45930.30590.09430.20700.31390.0790 0.3229 0.19330.40500.4395 0.4440 0.29310.50090.79340.2201 0.20 0.40
PP-OCRv5 Classical OCR Open Source 0.2383 0.2383 0.47480.65590.00160.03480.02430.0296 0.3197 0.15960.45290.3930 0.4563 0.26690.55750.79610.1905 / /
Nemotron-Nano-12B 12B VLM Open Source 0.2357 0.2357 0.45680.48450.03700.10290.09740.0160 0.2950 0.10360.43390.4087 0.4401 0.25420.55100.70660.2291 0.20 0.20
Gemma 3 4B 4B VLM Open Source 0.2428 0.2428 0.44420.25630.06430.14390.30550.0608 0.2962 0.17660.39050.3896 0.3987 0.27350.47050.68600.1974 0.07 0.14
PaddleOCR-VL-0.9B 0.9B VLM Open Source 0.1824 0.1824 0.36630.39140.02010.04150.09250.0338 0.2353 0.08140.35880.3019 0.3162 0.19870.53100.39010.1187 / /
DeepSeek-OCR 1.3B VLM Open Source 0.1883 0.1883 0.25740.41160.12560.06700.07970.0254 0.1970 0.09910.22780.2725 0.2484 0.17680.32280.31550.1640 0.03 0.03
DeepSeek-OCR2 VLM Open Source 0.2412 0.2412 0.36800.53680.07390.06250.16490.0370 0.1823 0.09800.28780.3466 0.3319 0.16700.54770.52900.1293 0.03 0.03
Kimi K2.5 VLM Proprietary 0.1231 0.1231 0.20940.30040.03230.04970.02380.0000 0.1365 0.03470.14140.2715 0.1821 0.14480.22290.37200.0168 0.60 2.50
LayoutParser Classical OCR Open Source 0.1029 0.1029 0.30330.05100.02200.05360.08480.0732 0.1677 0.08920.27050.1650 0.2027 0.13720.39880.11870.1462 / /
Tesseract v5 Classical OCR Open Source 0.1030 0.1030 0.30360.05100.02200.05360.08480.0732 0.1673 0.08920.27090.1627 0.2004 0.13720.39880.10810.1479 / /
Molmo 2 8B 8B VLM Open Source 0.1162 0.1162 0.32750.10360.01880.06320.06810.0179 0.1863 0.09800.27570.2292 0.2544 0.16680.34050.37280.1495 / /
EfficientOCR Classical OCR Open Source 0.0400 0.0400 0.09790.01860.01680.02920.03740.0213 0.0568 0.02940.10570.0474 0.0806 0.04380.12360.06280.0944 / /
Model Overall HW [A] HW [B] Tables [A] Tables [B] $/M In $/M Out
Gemini 3.1 Pro (low) VLM Proprietary 0.5965 0.6959 0.5260 0.9636 0.3640 2.00 12.00
Gemini 3 Flash (low) VLM Proprietary 0.5522 0.6369 0.5153 0.9717 0.2737 0.50 3.00
Gemini 3 Pro (low) VLM Proprietary 0.5472 0.6445 0.5289 0.8936 0.2667 2.00 12.00
Gemini 3 Pro (high) VLM Proprietary 0.5406 0.6589 0.5106 0.8989 0.2400 2.00 12.00
Gemini 2.0 Flash VLM Proprietary 0.5100 0.5849 0.4312 0.9471 0.2850 0.10 0.40
Gemini 3 Flash (high) VLM Proprietary 0.4808 0.6049 0.4750 0.7551 0.1862 0.50 3.00
Gemini 2.5 Flash VLM Proprietary 0.4670 0.5390 0.3689 0.9107 0.2650 0.15 0.60
Qwen3.5-397B (thinking) 397B VLM Open Source 0.4598 0.6128 0.2734 0.9016 0.2552 0.60 3.60
Qwen3-VL-235B 235B VLM Open Source 0.4581 0.6174 0.1969 0.9398 0.3132 0.20 0.88
Qwen3.5-397B 397B VLM Open Source 0.4484 0.6055 0.2409 0.9301 0.2432 0.60 3.60
Qwen3.5-27B 27B VLM Open Source 0.4340 0.5733 0.1976 0.9368 0.2760 0.30 2.40
Qwen3.5-35B 35B VLM Open Source 0.4296 0.5784 0.2273 0.9275 0.2210 0.25 2.00
Qwen3.5-Flash VLM Proprietary 0.4280 0.5763 0.2247 0.9247 0.2220 0.10 0.40
Qwen3.5-122B 122B VLM Open Source 0.4264 0.5637 0.1954 0.9195 0.2692 0.40 3.20
Qwen3-VL-30B 30B VLM Open Source 0.4194 0.5716 0.1699 0.9104 0.2653 0.10 0.40
Qwen3-VL-8B 8B VLM Open Source 0.4105 0.5705 0.1637 0.8456 0.2709 0.08 0.50
ERNIE 4.5 VL 424B 424B VLM Proprietary 0.4057 0.5468 0.1896 0.9062 0.2222 0.55 2.20
Seed 2.0 Mini VLM Proprietary 0.4882 0.5695 0.2083 0.8648 0.4023 0.10 0.40
Seed 2.0 Pro VLM Proprietary 0.4058 0.4582 0.2601 0.9513 0.2350 0.47 2.37
GPT-5.2 (high) VLM Proprietary 0.3932 0.5190 0.1959 0.8951 0.2074 1.75 14.00
Llama 4 Maverick 400B VLM Open Source 0.3911 0.4563 0.1884 0.9358 0.2704 0.15 0.60
ERNIE 4.5 VL 28B 28B VLM Proprietary 0.3837 0.5256 0.1537 0.8735 0.2212 0.55 2.20
GPT-5.2 (low) VLM Proprietary 0.3759 0.5140 0.1693 0.8445 0.2014 1.75 14.00
Seed 2.0 Lite VLM Proprietary 0.3724 0.4653 0.1918 0.9013 0.1970 0.09 0.53
dots.ocr-1.5 3B VLM Open Source 0.3720 0.5670 0.1423 0.7768 0.1810 / /
Qwen-VL-OCR VLM Proprietary 0.3525 0.5082 0.1105 0.8696 0.1720 0.07 0.16
Datalab (accurate) VLM Proprietary 0.3477 0.3575 0.1854 0.9260 0.2363 ? ?
dots.ocr 3B VLM Open Source 0.3328 0.4193 0.0751 0.9150 0.2299 / /
GLM-OCR 0.8B VLM Open Source 0.3247 0.4369 0.0693 0.8200 0.2283 0.03 0.03
PaddleOCR-VL-1.5 0.9B VLM Open Source 0.3131 0.4066 0.1155 0.7949 0.1805 / /
Mistral OCR VLM Proprietary 0.3006 0.3103 0.1063 0.9760 0.1784 $2/1K pages
Datalab (fast) Classical OCR Proprietary 0.2975 0.3031 0.0837 0.9169 0.2317 ? ?
PaddleOCR-VL-0.9B 0.9B VLM Open Source 0.2864 0.3231 0.0856 0.8047 0.2145 / /
Sarvam Vision VLM Proprietary 0.2735 0.2851 0.1899 0.7194 0.1335 / /
FireRed-OCR 2B VLM Open Source 0.2585 0.3266 0.1292 0.5826 0.3131 / /
PP-OCRv5 Classical OCR Open Source 0.2501 0.3400 0.0069 0.7319 0.1759 / /
Nemotron-Nano-12B 12B VLM Open Source 0.2177 0.2568 0.0127 0.6273 0.2020 0.20 0.20
OlmOCR-2 7B VLM Open Source 0.2087 0.3405 0.0696 0.2791 0.1624 / /
LightOnOCR-2-1B 1B VLM Open Source 0.2024 0.3138 0.1005 0.4828 0.0345 / /
DeepSeek-OCR 3B VLM Open Source 0.1997 0.2534 0.0336 0.5004 0.1732 0.03 0.03
Kimi K2.5 VLM Proprietary 0.1336 0.2081 0.0415 0.3944 0.0129 0.60 2.50
DeepSeek-OCR2 3B VLM Open Source 0.1181 0.0995 0.0303 0.3715 0.1191 0.03 0.03
Tesseract Classical OCR Open Source 0.1091 0.1037 0.0285 0.1696 0.1808 / /
Layout Parser Classical OCR Open Source 0.1082 0.1037 0.0285 0.1609 0.1815 / /
EfficientOCR Classical OCR Open Source 0.0635 0.0509 0.0108 0.1104 0.1187 / /

API Cost Note: Pricing shown per million tokens ($/M In = input cost, $/M Out = output cost). "/" indicates free/open-source models. "?" indicates proprietary pricing (contact vendor). Costs are approximate and may vary by provider or region. Data collected February 2026.

Cost vs Performance

Average token cost = (input + output price per 1M tokens) / 2. Only models with published API pricing are included. Log scale on x-axis.

v3
v2
v1

Legend: • Google   • Anthropic   • OpenAI   • Qwen   • Mistral   • Other   • Traditional OCR

Methodology & Reproduction

All VLM models receive the same prompts. For handwriting samples: Transcribe all the text in this image exactly as written. Output ONLY the transcribed text, nothing else. For table samples: OCR this document image into a markdown table. Transcribe all text exactly as written. Output ONLY the markdown table, nothing else. Image-only models (dots.ocr, OlmOCR-2) receive no text prompt. dots.ocr-1.5 uses its native prompt_ocr prompt (Extract the text content from this image.). DeepSeek-OCR2 uses its native prompts (Free OCR. for handwriting, Convert the document to markdown. for tables). The metric is Normalized Edit Similarity (NES): 1 - edit_distance(pred, gt) / max(len(pred), len(gt)).

v2 Scoring

The headline socOCRbench score is a region macro-average: the mean of per-region dataset means, so that each region counts equally regardless of sample count. Regions: Europe, East Asia, South Asia, Southeast Asia, MENA, East Africa. Period and format breakdowns are shown as supplementary columns. Periods: Pre-modern (<1700), Historical (1700–1950), Contemporary (post-1950). Formats: Handwritten text, Printed text, Printed tables, Handwritten tables.

v1 Scoring

A simpler weighted average across HW [A], HW [B], Tables [A], and Tables [B] categories.

Model Provider Model ID / Notes
Gemini 3.1 Pro (low) OpenRouter google/gemini-3.1-pro-preview, reasoning_effort=low
Gemini 3 Pro (low) OpenRouter google/gemini-3-pro-preview, reasoning_effort=low
Gemini 3 Pro (high) OpenRouter google/gemini-3-pro-preview, reasoning_effort=high
Gemini 2.5 Flash Google GenAI SDK gemini-2.5-flash via genai.Client
Gemini 2.0 Flash OpenRouter google/gemini-2.0-flash-001
Gemini 3 Flash (low) OpenRouter google/gemini-3-flash-preview, reasoning_effort=low
Gemini 3 Flash (minimal) OpenRouter google/gemini-3-flash-preview, reasoning_effort=minimal
Gemini 3 Flash (high) OpenRouter google/gemini-3-flash-preview, reasoning_effort=high
GPT-5.3 Codex OpenRouter openai/gpt-5.3-codex
GPT-5.2 (low) OpenRouter openai/gpt-5.2, reasoning_effort=low
GPT-5.2 (high) OpenRouter openai/gpt-5.2, reasoning_effort=high
Claude Sonnet 4.6 OpenRouter anthropic/claude-sonnet-4.6
Claude Opus 4.6 OpenRouter anthropic/claude-opus-4.6
Qwen3-VL-235B OpenRouter qwen/qwen3-vl-235b-a22b-instruct
Qwen3-VL-30B DeepInfra Qwen/Qwen3-VL-30B-A3B-Instruct
Seed 2.0 Pro ZenMux volcengine/doubao-seed-2.0-pro
Seed 2.0 Lite ZenMux volcengine/doubao-seed-2.0-lite
Seed 2.0 Mini OpenRouter bytedance/seed-2.0-mini
dots.ocr-1.5 Local (vLLM) rednote-hilab/dots.ocr-1.5, native prompt_ocr
dots.ocr Replicate sljeff/dots.ocr, image-only input
GLM-OCR Zhipu AI glm-ocr via layout parsing API
PaddleOCR-VL-1.5 PaddlePaddle Cloud Layout parsing API (aistudio-app.com)
PaddleOCR-VL-0.9B DeepInfra PaddlePaddle/PaddleOCR-VL-0.9B
Nemotron-Nano-12B DeepInfra nvidia/NVIDIA-Nemotron-Nano-12B-v2-VL
OlmOCR-2 DeepInfra allenai/olmOCR-2-7B-1025, image-only input
LightOnOCR-2-1B Local (transformers) lightonai/LightOnOCR-2-1B, bfloat16, CUDA
LightOnOCR-2-1B Local (Ollama) maternion/LightOnOCR-2, Q4 GGUF via Ollama
Qwen3.5-2B (no reasoning) Local (Ollama) qwen3.5:2b, Q4 GGUF via Ollama, thinking disabled
FireRed-OCR HF Spaces (T4) FireRedTeam/FireRed-OCR, Gradio API
DeepSeek-OCR DeepInfra deepseek-ai/DeepSeek-OCR
DeepSeek-OCR2 Novita AI deepseek/deepseek-ocr-2, native prompts
Qwen3-VL-8B Novita AI qwen/qwen3-vl-8b-instruct
Llama 4 Maverick Novita AI meta-llama/llama-4-maverick-17b-128e-instruct-fp8
ERNIE 4.5 VL 424B Novita AI baidu/ernie-4.5-vl-424b-a47b
ERNIE 4.5 VL 28B Novita AI baidu/ernie-4.5-vl-28b-a3b
Sarvam Vision Sarvam AI Document Intelligence API, output_format=md
PP-OCRv5 PaddlePaddle Cloud OCR API (aistudio-app.com)
Tesseract Local Tesseract 5, eng+fra+deu+nor, psm 6
Layout Parser Local Detectron2 (PubLayNet Faster R-CNN) + Tesseract
EfficientOCR Local Tiled word-level FAISS KNN recognition
Qwen3.5-397B Novita AI / OpenRouter qwen/qwen3.5-397b-a17b, thinking disabled
Qwen3.5-397B (thinking) Novita AI / OpenRouter qwen/qwen3.5-397b-a17b, thinking enabled, max_tokens=32768
Qwen3.5-27B Alibaba Cloud Model Studio qwen3.5-27b, thinking disabled
Qwen3.5-35B Alibaba Cloud Model Studio qwen3.5-35b-a3b, thinking disabled
Qwen3.5-Flash Alibaba Cloud Model Studio qwen3.5-flash, thinking disabled
Qwen3.5-122B Alibaba Cloud Model Studio qwen3.5-122b-a10b, thinking disabled
Qwen-VL-OCR Alibaba Cloud Model Studio qwen-vl-ocr, min_pixels=3072, max_pixels=8388608
Kimi K2.5 OpenRouter moonshotai/kimi-k2.5
Datalab (fast) Datalab API datalab-python-sdk, mode=fast
Datalab (accurate) Datalab API datalab-python-sdk, mode=accurate
Mistral OCR Mistral AI mistral-ocr-latest via mistralai SDK, image-only input
Mistral Small 2603 OpenRouter mistralai/mistral-small-2603
GPT-5.4 Mini (auto res., no reason.) OpenAI gpt-5.4-mini, detail=auto, reasoning_effort=none
GPT-5.4 Nano (auto res., no reason.) OpenAI gpt-5.4-nano, detail=auto, reasoning_effort=none
Changelog

March 17, 2026: 64 models evaluated. Added Mistral Small 2603 (0.3140), GPT-5.4 Mini (0.4401) and GPT-5.4 Nano (0.2982) with auto resolution and no reasoning, Datalab fast (0.4849) and Datalab accurate (0.4908).

March 15, 2026: 59 models evaluated. Added GPT-5 Mini and GPT-5 Nano with both default (medium) and minimal reasoning variants. Clarified all GPT model names to show resolution and reasoning settings (e.g. "GPT-5.4 (high res., med. reason.)"). Reducing reasoning dramatically improves smaller models: GPT-5 Mini jumps from 0.3866 to 0.5106, GPT-5 Nano from 0.0546 to 0.3045. Added Seed 2.0 Pro (0.5831), dots.ocr (0.4651), Grok 4.2 Fast (0.2433). Added Qwen3.5 9B via OpenRouter (0.4612), Qwen3.5 4B/2B/0.8B via Ollama, and LightOnOCR-2 via Ollama (0.2720). Updated chart to auto-generate from scores. Fixed GPT pricing from official OpenAI docs.

March 12, 2026: Launched v3 with 280 full-page document images across 5 regions (W. Europe, E. Europe, E. Asia, S. Asia, MENA) and 3 formats (HW Text, Print Text, HW Table). 38 models evaluated. Added Mistral OCR, DeepSeek-OCR, DeepSeek-OCR2, OlmOCR-2, PaddleOCR-VL-0.9B, Nemotron-Nano-12B, ERNIE 4.5 VL 28B, and Qwen3 VL 30B. Added batch Gemini pricing to the cost-performance chart. Removed GPT-5.3 Codex (incompatible with chat completions API).

March 5, 2026: Added LightOnOCR-2-1B via Ollama (0.2185) and Qwen3.5-2B (no reasoning) via Ollama (0.3682). Both run locally with quantized GGUF weights. Small images padded to 224px minimum for Ollama compatibility.

March 3, 2026: Added Gemini 3.1 Flash Lite (0.6546), Gemma 3 27B (0.2069), Gemma 3 4B (0.1808), and Nemotron-Nano 12B (0.2071). Re-benchmarked OlmOCR-2 with correct prompt (0.3678, up from 0.223). Re-benchmarked Nemotron-Nano with reasoning disabled (0.2071, up from 0.1359).

March 2, 2026: Added Qwen3.5 small models via HuggingFace Inference Endpoints: Qwen3.5-9B (0.4469), Qwen3.5-4B (0.4108), and Qwen3.5-0.8B (0.3294). All run with reasoning disabled.

March 1, 2026: Added Nano Banana 2 (0.5727), FireRed-OCR (0.2592). Added Gemini 3 Flash (minimal reasoning) variant.

February 27, 2026: Added Seed 2.0 Mini (0.5257), ERNIE 4.5 VL 424B (0.4424), Llama 4 Maverick (0.3730), PaddleOCR-VL (0.2933), GLM-OCR (0.2660), Molmo-2 8B (0.0944). Added LLM post-processing (cleanup) experiments for several models.

February 26, 2026: Expanded benchmark with new handwriting and table samples. Europe share reduced from 58% to 44% of samples. Added Tesseract v5, LayoutParser, EfficientOCR, PP-OCRv5, and Mistral OCR. Added cost vs performance scatter plot.

February 25, 2026: Expanded benchmark with new handwriting samples. Launched v2 scoring with macro-averaging across Region, Period, and Format axes. Added Claude Sonnet 4.6, Claude Opus 4.6, and GPT-5.3 Codex.

February 24, 2026: Added five Qwen models via Alibaba Cloud Model Studio: Qwen3.5-27B (0.4340), Qwen3.5-35B (0.4296), Qwen3.5-Flash (0.4280), Qwen3.5-122B (0.4264), and Qwen-VL-OCR (0.3525). All Qwen3.5 variants scored within a tight 0.43–0.43 range, with the smaller 27B model slightly outperforming the 122B. Qwen-VL-OCR, Alibaba's dedicated OCR model, underperformed the general-purpose Qwen3.5 models.

February 19, 2026: Added Gemini 3.1 Pro (low), which takes the #1 spot at 0.5965. Fixed a bug in the evaluation script where models that wrapped output in markdown code fences (e.g. ```markdown ... ```) had their entire response stripped instead of just the fence markers.

February 16, 2026: Added Qwen3.5-397B in two variants: thinking disabled (0.4484) and thinking enabled (0.4598).

February 15, 2026: Added API cost columns, Gemini 2.5/2.0 Flash, ERNIE 4.5 VL, Llama 4 Maverick, dots.ocr-1.5, Qwen3-VL-8B, DeepSeek-OCR2, Kimi K2.5, Datalab, PP-OCRv5. Fixed max_tokens for thinking models.

Example Applications

Newspapers

Motivated by a Twitter debate about OCR quality for historical documents, I tested the top-performing models on a dense multi-column newspaper page. These sorts of images are particularly challenging: small text, multiple columns, and often hundreds of entries per page with names, addresses, exchanges, and phone numbers that must be correctly associated.

Below is the page alongside OCR output from Datalab (fast mode) and Qwen3.5-397B, which does even better—greatly improving on Datalab's tail-end degradation. Both APIs processed the image in under 20 seconds. Cropping the image with, e.g., PP-DocLayoutV3, and then OCR'ing those crops would doubtlessly work best, since the raw image is (6627x8628) and characterized by "long tiny text" (in the words of OmniDocBench).

1922 newspaper page
Original scan (click to enlarge)
View OCR Output →
Datalab (fast) — 17,362 characters
View OCR Output →
Qwen3.5-397B — 23,340 characters

Last updated: February 25, 2026