Verified against Gemini · 2026-07-30
Pull the actual numbers out of a financial report's charts, not just its text
A multimodal PDF prompt that reads the visual charts and tables embedded in an annual report or financial statement — not just the surrounding narrative text — and returns the underlying data points, since a plain text extraction of the PDF misses anything rendered only as an image or vector chart.
The prompt
Ready to copy — highlighted parts are example details you can swap.
I've uploaded a PDF: a 44-page annual report for a mid-cap manufacturing company. Read the specific pages I'm pointing you to as images, not just as extracted text — the numbers I need are shown as charts, and a text-only extraction of this PDF would have nothing to extract from those pages. PAGES/CHARTS OF INTEREST the revenue-by-segment bar chart on page 12 and the five-year gross-margin trend line chart on page 18 WHAT TO EXTRACT revenue figures per segment per year, and gross margin percentage per year PRECISION RULES label anything read off a chart without a printed data label as an estimate, with a stated margin of uncertainty INSTRUCTIONS 1. For any value that has a printed data label directly on the chart (a number shown next to a bar or point), extract it exactly as printed and mark it as exact. 2. For any value you're reading off the chart's visual position with no printed label — estimating a bar's height against the axis — extract your best estimate and mark it explicitly as an estimate, with a stated range of uncertainty (for example, "approximately 18-19%, read off axis position"). 3. State the chart type and axis scale you're reading (linear vs. log, whether the y-axis starts at zero or is truncated) before giving the numbers, since a truncated or non-zero axis changes how a value should be interpreted even once correctly read. 4. Flag anything that looks inconsistent with the headline figures stated in the narrative text elsewhere in the report. 5. This extraction is meant to support further analysis, not to substitute for the company's actual filed financial statements or investor disclosures — say so plainly, and if a number here would materially affect a real decision, note that it should be verified against the primary filing. LEGEND AND COLOR-CODING If the chart uses a legend to distinguish multiple series (different segments, different years), confirm which color or pattern corresponds to which legend entry before reading values off the chart, and say if the legend itself is hard to match against the plotted lines or bars with confidence — a misread legend produces a value that looks precisely extracted but is actually attributed to the wrong series entirely. STACKED VS. GROUPED CHARTS If the chart is a stacked bar or area chart, note that each segment's value has to be read as the difference between its boundaries, not from the axis directly, and say explicitly if a segment's boundary is hard to pin down precisely — a small error in reading a stacked boundary compounds differently than the same error would in a simple bar chart. OUTPUT FORMAT A table: metric | year/period | value | exact or estimate | source page/chart. Follow it with a short note on axis scale or any chart formatting choice that affects how these numbers should be read, and a separate note on anything from the legend or stacking structure that added uncertainty to a specific value.
Customize
Optional — swap in your own details for the highlighted parts above.
Why this works
Gemini reads the PDF's rendered pages as images alongside its text layer, so it can interpret a bar chart's relative heights or a line chart's plotted points even when the underlying numbers were never printed as text anywhere in the document — a text-only PDF extraction tool has literally nothing to extract from a chart image and would either report the page as empty of numeric content or silently skip it, which is a much worse failure than an honest estimate because it's easy to not notice the gap at all. Requiring an explicit estimate label with a stated uncertainty margin exists because reading a value off a chart's visual position is inherently approximate — the difference between a bar that looks like it hits 18% versus 19% on an unlabeled axis is a judgment call, and presenting that judgment with the same confidence as a printed figure would mislead anyone building an actual financial model on top of it. Requiring the axis scale and truncation to be stated before the numbers targets a specific and genuinely deceptive charting practice: a y-axis that starts at 80 instead of 0 makes a small difference look dramatic, and a value correctly read off that chart is still misleading if the axis distortion itself isn't flagged alongside it. The instruction to cross-check against the surrounding narrative text catches the case where a chart is genuinely mislabeled or uses an easily-misread scale — the accompanying prose often states the actual headline figure in words, which becomes a tie-breaker a chart-only reading has no way to access on its own. Confirming the legend against the plotted series before extracting any value addresses a specific and easy way to be confidently wrong: a color-coded chart with a legend that's positioned awkwardly or uses similar shades for two segments can be misread in a way that's internally consistent — every value looks reasonable — but is attributed to the wrong segment across the whole chart, which is a harder error to catch after the fact than an isolated bad reading of one point. The stacked-versus-grouped distinction matters because the two chart types require genuinely different arithmetic to extract a value at all — a grouped bar's height is its value directly off the axis, while a stacked segment's value is the gap between its own boundary and the one below it, and applying the wrong reading method to the wrong chart type produces numbers that are wrong by a consistent, chart-wide amount rather than randomly, which can make the error harder to notice on a spot check of just one or two values.
Verified against
Gemini Gemini 3 Pro · 2026-07-30
Changelog
- 2026-07-30 — Initial publish, verified against Gemini 3 Pro extracting chart data from a 44-page annual report PDF.
Need this built into your business?
If a prompt isn't enough — what Scult builds, built and maintained for you — that's Scult's day job.
EXPLORE WHAT SCULT BUILDS
