TroubleshootingMarch 24, 2026
Meidy Baffou·LazyPDF

OCR Misreading Numbers and Symbols: Why It Happens and How to Fix It

Optical character recognition has come a long way in the past decade. Modern OCR engines can handle handwriting, multiple languages, skewed scans, and watermarked documents with impressive accuracy. But one class of errors has proven stubbornly persistent across virtually every OCR tool: the misreading of numbers and special symbols. The confusion between 0 (zero) and O (letter O), between 1 (one) and l (lowercase L) or I (uppercase I), between 5 and S, between 8 and B — these are not random. They follow predictable patterns rooted in how OCR engines work at a fundamental level. And when you are processing invoices, financial statements, scientific data, spreadsheets, or any document where numeric precision matters, a single misread digit can corrupt an entire dataset. Consider what happens when an OCR engine reads an invoice total of $10,000 as $1O,000 — with an O instead of a zero. The number looks almost identical on the scanned page, but in a spreadsheet, it becomes an error value or is treated as text. Multiply that across hundreds of line items or thousands of invoices in a batch process, and the downstream data quality problem becomes severe. This guide explains exactly why OCR engines struggle with numbers and symbols, what factors make the problem worse, and — most importantly — what you can practically do to improve accuracy for numeric and symbolic content. These techniques work whether you are using LazyPDF's OCR tool for individual documents or running large-scale document processing pipelines.

Why OCR Engines Confuse Numbers and Letters

OCR works by analysing the shape of each character on a page, comparing it against a trained model of what different characters look like, and choosing the best match. The problem with numbers is that several digits and letters are genuinely near-identical in many common fonts and scan conditions. The zero/O confusion is the most notorious example. In many sans-serif fonts — Arial, Helvetica, Calibri — the digit 0 and the letter O have extremely similar visual profiles. The primary distinguishing features (a slight narrowing of the oval, the presence or absence of a cut in the character) are often lost at lower scan resolutions or when the document has slight blurring or printing artifacts. The OCR engine's confidence score for 0 versus O may be nearly identical, and the engine may guess wrong. Context is the key tool that human readers use to distinguish them — in a numeric column of an invoice, we know it must be a zero; in a word like 'October', we know it must be an O. This contextual reasoning requires the OCR engine to understand the document's structure, the language and numeric patterns in use, and the semantic role of each field. Simpler OCR engines without structural awareness treat each character in isolation, losing this contextual advantage entirely. Symbol recognition adds another layer of difficulty. Characters like percentage signs (%), hash symbols (#), at signs (@), and currency symbols (€, £, ¥) often have lower representation in OCR training data than standard alphanumeric characters. When these symbols are printed small, in a degraded scan, or in an unusual font, the engine may substitute a character that scored slightly higher on shape similarity.

How to Improve Your Scan Quality for Better Numeric OCR

The single most impactful thing you can do to improve OCR accuracy for numbers is improve the quality of the source image. OCR accuracy degrades non-linearly with scan quality — small improvements in resolution and contrast can produce large improvements in recognition accuracy, particularly for the ambiguous characters that cause the most problems. Resolution is the primary variable. Most OCR engines recommend a minimum of 300 DPI (dots per inch) for reliable recognition. For documents with small print, dense numeric tables, or complex symbols, 400–600 DPI is better. Many consumer flatbed scanners default to 200 DPI, which is sufficient for reading but often insufficient for accurate OCR, especially for numerals. Check your scanner settings and increase the DPI before scanning financial documents. Contrast matters almost as much as resolution. A scanned document with grey text on a slightly off-white background has lower contrast than black text on white. The OCR engine's character recognition is most accurate when the foreground (text) and background have sharp contrast. If your scanner has auto-enhancement or document mode settings, enable them. If you are working with an already-scanned PDF, many image editing tools and PDF processors can apply contrast enhancement before OCR.

  1. 1Step 1 — Scan at 300 DPI minimum, 400 DPI or higher for financial documents with small text. Find your scanner's resolution settings (often in the scan application or driver preferences) and set it explicitly rather than relying on the default.
  2. 2Step 2 — Use black-and-white or grayscale mode rather than colour for text-heavy documents. Colour scans are larger files and do not add meaningful information for OCR. Black-and-white mode with dithering can actually improve OCR performance on some documents by sharpening the text boundary.
  3. 3Step 3 — Apply deskewing before OCR. Even slight page tilt (1–2 degrees) can affect how characters are recognised, particularly for characters that rely on vertical strokes for disambiguation (like 1, l, and I). Most OCR tools include auto-deskew; make sure it is enabled.
  4. 4Step 4 — Remove noise and speckle. Scanned documents often pick up dust, paper texture, and compression artifacts that the OCR engine may try to interpret as characters or that corrupt character shapes. Pre-processing with a despeckling filter (available in many scan applications and PDF tools) reduces false readings.
  5. 5Step 5 — For mixed content (text plus tables plus numbers), look for an OCR tool that allows you to specify zones or regions. Setting a region as 'numeric only' tells the engine to only consider digit characters for that area, dramatically reducing number-letter confusion for invoice totals, account numbers, and similar fields.

Font and Document Design Factors That Cause OCR Errors

Not all fonts are created equal from an OCR perspective, and the choices made when the original document was designed and printed have a direct impact on recognition accuracy years or decades later when you try to digitise it. Sans-serif fonts like Arial and Helvetica are generally more OCR-friendly than serif fonts for body text, but they are actually worse for numeric disambiguation. Serif fonts like Times New Roman and Georgia add distinctive strokes to characters that help differentiate similar shapes. The '1' in Times New Roman has serifs that clearly distinguish it from the lowercase 'l'. In Arial, both characters may be nearly identical depending on the font weight. Monospaced fonts (Courier, Courier New) are historically the most OCR-friendly for numeric content because every character occupies exactly the same width. This predictable spacing helps OCR engines segment characters correctly and reduces the overlap artifacts that cause recognition errors. Many accounting and financial software systems historically printed reports in Courier specifically to facilitate scanning and OCR. Font size also matters. Text below 8pt is difficult for OCR engines even at high scan resolutions. Tables with footnotes, fine-print terms, or compressed numeric notation below 8pt are high-risk areas for errors. If you have control over the document design, keep critical numbers at 10pt or larger. Printing quality matters too. Inkjet-printed documents (as opposed to laser-printed or professionally typeset) can suffer from ink bleeding, particularly on absorbent paper. This bleeding blurs character edges, which is most harmful for thin characters like 1 and narrow gaps like the inside of a 0. Laser-printed or typeset documents consistently produce better OCR results.

Post-OCR Validation: Catching and Correcting Numeric Errors

Even with optimal scan settings and good source documents, numeric OCR errors will occasionally occur. The practical strategy is not to eliminate all errors before OCR (impossible) but to implement systematic post-processing that catches and flags errors before they corrupt downstream data. The most powerful post-OCR validation technique for numeric content is format checking. If you know that a field should contain a date, an amount in a specific currency format, a percentage, or a number within a known range, you can write simple rules that flag values that do not match. A total that parses as 'l0,234.56' (with a lowercase l instead of 1) will fail a numeric format check immediately. An account number that contains letters when it should be all digits is similarly catchable. For invoice processing and spreadsheet extraction, LazyPDF's PDF to Excel tool uses structured extraction that applies format awareness during conversion. Rather than treating every character as equal, structured extraction understands that a column of numbers should contain numbers, and applies statistical context to improve recognition decisions. For high-stakes applications — medical records, financial statements, legal documents — consider implementing a confidence threshold system. OCR engines typically output a confidence score for each character or word. Characters below a confidence threshold (say, 85%) can be automatically flagged for human review rather than accepted as-is. This approach concentrates human review effort on exactly the ambiguous cases that need it, rather than requiring review of every character. Finally, for documents with known structure (invoice templates, form types you process repeatedly), template matching can dramatically improve accuracy. By telling the OCR system where specific fields appear on the page, you constrain the recognition context and allow the engine to apply field-specific character sets. A field labelled 'Total Amount' should only ever contain digits, decimal points, and currency symbols — everything else is a recognition error.

Frequently Asked Questions

Why does OCR almost always get words right but struggle with numbers?

Words provide massive context: a misrecognised letter in a word usually produces a non-word, which the OCR engine's spell-check layer can catch and correct. Numbers have no equivalent dictionary. The sequence '10,234' has no linguistic structure that flags '1O,234' as wrong — the engine has no way to know zero was intended without understanding the document's numeric context. This is why character-level ambiguity between digits and letters is so much more damaging in numeric content than in prose.

Can I improve OCR accuracy for older, poor-quality scanned documents?

Yes, significantly, through pre-processing. Techniques like contrast enhancement, deskewing, despeckling, and resolution upscaling (using bicubic interpolation before OCR, not after) can meaningfully improve recognition accuracy on degraded scans. Tools like ImageMagick, GIMP, or dedicated document enhancement software can apply these corrections. Run the enhancement on the image before feeding it to the OCR engine. Even a 20% reduction in error rate on a bad scan can save hours of manual correction.

What is the best OCR setting for processing invoices and financial tables?

For invoices and financial tables, use the highest available DPI setting (400+ if possible), enable structured table recognition if your OCR tool supports it, and if the tool allows zone configuration, set numeric columns to digits-only mode. After OCR, validate every extracted number against expected formats (currency amounts, account number lengths, date formats). Use confidence scores to flag low-confidence characters for review rather than accepting them automatically.

OCR read my numbers correctly in the text but the Excel output has them as text, not numbers — why?

This happens when the OCR output includes characters that look like numbers but are not — either non-breaking spaces, currency symbols embedded in the number, or the literal letter 'O' instead of zero. Excel interprets these cells as text rather than numeric values because they fail its numeric parsing. Check the cells that are left-aligned in Excel (text) versus right-aligned (numbers) — those are your problem cells. Use Find and Replace to substitute 'O' → '0' and 'l' → '1' in affected columns, then use Data > Text to Columns to re-parse as numbers.

Should I correct OCR errors manually or use automated validation?

Both, in a layered approach. Automated validation catches systematic errors — all instances of 'O' where '0' is expected in a numeric column, all dates that fail to parse, all totals that do not match line item sums. These can be corrected programmatically. Manual review handles ambiguous cases: characters where confidence was low, fields with unusual formats, or values that are numerically valid but semantically wrong (like a legitimate O in an alphanumeric code). Reserving manual effort for genuinely ambiguous cases is far more efficient than reviewing every character.

Need to extract data from a scanned PDF into a spreadsheet? LazyPDF's OCR and PDF to Excel tools can recognise and extract numeric content from your documents without any software installation.

Try OCR Tool

Related Articles