What OCR Can and Can't Read in Charts
There is one rule that explains every result you'll ever get from OCR on a chart: it reads characters, not shapes. A chart is a picture; the tool can only hand back something that already exists as text inside that picture. Everything below follows from that.
What comes back as text
- The chart title and subtitle
- Axis titles and every tick label
- Legend entries and series names
- Data labels, where the chart has them
- Footnotes, source lines and units ("$m", "thousands", "%")
- Any table printed alongside the chart
What never comes back
- The height of a bar
- The value of a line at any point that isn't labelled
- Slopes, areas and growth rates you'd have to calculate
- A pie or donut slice's share, if the percentage isn't written down
- Anything hidden behind crowding, overlap or text so small it has lost its pixels
None of these are tool weaknesses — the number simply isn't in the image. Any tool that returns a figure for an unlabelled bar is estimating, not reading. Ours will tell you the chart is visual and leave the value out, which is the more useful answer: a plausible wrong number is worse than a gap.
Four ways to get more text out of a chart
- Turn the data labels on in the source app and re-export the image. This is by far the biggest win: what isn't text becomes text.
- Crop to the plot area. Less background noise, more pixels per label.
- Capture bigger. Screenshot the chart at full size instead of using a thumbnail, and don't shrink it before uploading.
- Export the underlying data if the tool that made the chart offers it. OCR is for when you don't have the source.
Check these before you trust the numbers
- Unit multipliers. "12" under a "€m" label is twelve million. The unit usually lives in an axis title, and it's easy to read past it.
- Axis breaks. A chart that jumps from 10 to 100 without a gap is compressing something — don't read the slope as real growth.
- Stacked vs separate series. In a stacked chart, the top band's label is not the total.
- Date formats. "3/4" is a date in some charts and a fraction in others.
- Negative values and dual axes. Two vertical axes on one chart means labels belong to different scales.
Then summarize the figure
Once the labels, legend and data points are text, the summary is where the chart actually becomes usable: units, what was plotted, the range the values sit in, and what the figure is showing. Because the tool knows which parts it read and which parts stayed visual, the summary can say so — that's the difference between a summary you can quote and one you have to re-check against the chart.