Chart to data table — extracting numeric data from visual chart images and what 'confidence' really means
Most data inside published reports lives in two places: numerical tables (which we extract via Tables-from-PDF) and visual charts (which are unstructured images). Extracting numbers from a chart is harder than extracting from a table because the chart is a picture — bars have heights, lines have y-values at each x, pie slices have angles. Reading the data back out requires visual estimation calibrated against gridlines, axis labels, and any explicit value labels. The chart-to-data-table tool does exactly this estimation. Here is what charts it handles, why the output sometimes returns ranges rather than precise numbers, and the cases where extraction is preferable to manually digitizing.
How chart-to-data extraction works
The tool reads each chart in the PDF as an image, then runs an AI vision pass that identifies the chart's type, its axes, its scale, its data series, and the individual data points. Output is a markdown table with axis labels and units. The format matches how a human would represent the chart's data in a spreadsheet — one column per axis, one row per data point, headers explaining what each column means.
For values that are precisely readable from the chart (e.g. a bar that's exactly at the 100 gridline; a value label printed next to a data point), the output is the exact number. For values that require estimation (e.g. a bar between gridlines, a line value where no label is printed), the output is a range with a confidence note. The tool deliberately doesn't invent precision that isn't in the source.
Chart types the tool handles
Common types covered with high accuracy:
- Bar charts (vertical, horizontal, grouped, stacked). The most common business-report type. Bar heights map to values; the tool reads bar tops against the y-axis scale.
- Line charts (single line, multi-line, with markers). Time-series and trend visualizations. The tool samples points along each line at the x-axis tick positions.
- Pie charts. Slice angles map to percentages. The tool extracts each slice's label and percentage; for unlabeled slices, percentages are estimated from angle.
- Scatter plots. Each point's (x, y) extracted relative to axes. Useful for research-paper figures.
- Stacked and 100%-stacked. Each layer's contribution to each x-position extracted. The tool reads the layer boundaries against the y-axis.
- Histograms. Bar charts where bars represent bins. The tool reads bin labels (x-axis ranges) and counts (y-axis heights).
- Radar / spider charts. Each axis's value for each series extracted. Useful for capability comparisons and multi-attribute scoring.
Why output sometimes returns ranges
Three specific situations where the tool returns "170-180" or "approximately 50%" rather than a single number:
- Bars without value labels and only major gridlines. A bar that visually sits between the 150 and 200 gridlines, with no smaller gridlines or numeric label, gets returned as a range. Estimating to single-percent precision from coarse-gridline charts introduces fake accuracy.
- Charts at low resolution. If the chart is small or low-DPI, pixel-level estimation introduces error. The tool returns ranges rather than overstating its confidence.
- Pie slices without labels. Visually estimating a pie slice's angle to closer than ±5% accuracy is unreliable. Without labels, slices come out as approximate percentages.
When extraction beats manually digitizing
Cases where the tool's output is more accurate than what a human would produce by hand:
- Many charts at once. A 50-chart report. Digitizing each chart by hand takes a day; extraction takes a few minutes.
- Charts with consistent style. Once the tool has read one chart in a report, similar-styled charts in the same report extract very reliably. Human digitizers introduce more variance across many charts than the tool does.
- When ranges are acceptable. If your downstream use can work with "170-180" rather than needing "177.5", the tool's range output is honest about precision in a way that a hand-digitizer's confident "178" usually isn't.
- Bulk financial-report analysis. Quarterly reports come out at scale; extracting bar-chart data across dozens of companies for comparable analysis is the natural use case.
When manual digitization is still better
Three signals that suggest hand work:
- A single chart that matters a lot. If the entire analysis hinges on the exact value of one chart, take the time to manually estimate against gridlines or contact the source for the underlying data.
- Unusual chart types. Sankey diagrams, treemaps, sunburst, parallel coordinates — the tool handles best-effort but accuracy varies. For these, manual digitization or asking the source for data is more reliable.
- Chart image quality is too low. If you can barely read the chart yourself, the tool can't read it either. Get a higher-resolution version of the source or ask the source for the underlying data.
Limits and pricing
Chart to Data Table charges 5 credits per chart found. A 10-chart report costs 50 credits; the tool lists every chart it detected in the summary so you can audit the count before being charged. PDFs up to 25 MB.
Common pairings: Extract Tables from PDF for the numerical-table portions; Chart-to-Data-Table for the chart portions. Together they cover the complete numeric content of a report. PDF Inspector to see how many charts and tables are in a PDF before deciding which tools to run.