<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Unsiloed AI</title>
    <description>The latest articles on DEV Community by Unsiloed AI (@unsiloed).</description>
    <link>https://dev.to/unsiloed</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4214740%2Fa4eebcf2-c7b8-4eec-9c5b-f13c9ce5a55e.png</url>
      <title>DEV Community: Unsiloed AI</title>
      <link>https://dev.to/unsiloed</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/unsiloed"/>
    <language>en</language>
    <item>
      <title>Unsiloed Leads ChartParse-Bench in Chart Extraction Accuracy</title>
      <dc:creator>Unsiloed AI</dc:creator>
      <pubDate>Thu, 29 Oct 2026 08:56:17 +0000</pubDate>
      <link>https://dev.to/unsiloed/unsiloed-leads-chartparse-bench-in-chart-extraction-accuracy-496n</link>
      <guid>https://dev.to/unsiloed/unsiloed-leads-chartparse-bench-in-chart-extraction-accuracy-496n</guid>
      <description>&lt;p&gt;&lt;em&gt;By Adnan Abbas and Jishu Sengupta. Originally published on &lt;a href="https://www.unsiloed.ai/blog/unsiloed-achieves-sota-chart-parsing" rel="noopener noreferrer"&gt;Unsiloed AI&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Every industry runs on chart data. Some of the most decision-critical numbers in quarterly earnings reports, clinical trial results, insurance filings, and engineering specifications live not in text or tables, but inside bar charts, line plots, and scatter diagrams.&lt;/p&gt;

&lt;p&gt;Vision language models (VLMs) continue to improve at document parsing, but charts present a distinct challenge. Their meaning depends on the relationship between marks, labels, legends, and axes. A parser can recover the overall shape while changing the values or omitting most of the underlying points, passing those errors to quantitative analysis, chart question answering, and retrieval-augmented generation (RAG) applications.&lt;/p&gt;

&lt;p&gt;In this article, we present the Unsiloed chart parsing pipeline, compare leading VLMs and document-parsing pipelines on complex real-world charts, and evaluate them with ChartParse-Bench, a hand-curated dataset designed to test how accurate our and current state of the art chart parsing pipelines are.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/goals-12mo-rolling-comparison.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffk66rc6cpruailoy8ldk.png" alt="A 12-month rolling goals chart with 16 player series, reconstructed by Unsiloed, LlamaIndex, Extend, Reducto, Claude Opus 5, GPT-5.4, and Gemini 3.1 Pro alongside the ground truth." width="800" height="1461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/goals-12mo-rolling-comparison.png" rel="noopener noreferrer"&gt;View full-resolution image&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why LLM Applications Need Structured Chart Data?
&lt;/h2&gt;

&lt;p&gt;An LLM can describe the apparent trend in a chart without recovering the observations behind it. That may be enough for a summary, but it is not enough to answer questions such as "What was the value in 2019?", identify a crossover, calculate a rate of change, or compare two series.&lt;/p&gt;

&lt;p&gt;RAG works best when the retrieval layer can find explicit values, labels, and relationships. Converting the chart into structured series data gives downstream systems a stable representation they can search, filter, and calculate over.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Unsiloed's Chart Parsing Pipeline Handles Different Chart Types?
&lt;/h2&gt;

&lt;p&gt;A single general-purpose model has to handle different visual problems. A dense line chart requires the parser to trace overlapping series through crossings, while a bar chart requires it to locate discrete marks and bind each one to the correct category and scale.&lt;/p&gt;

&lt;p&gt;Unsiloed uses an agentic harness to identify the chart and route it to agents specialized for different chart families. Separate agents are tuned to handle charts of various types like line and area charts, bar charts, and pie and scatter plots with special tools to aid in the process. Each specialist can apply the image-processing approach suited to that geometry instead of forcing every chart through the same extraction path.&lt;/p&gt;

&lt;p&gt;The harness coordinates the result so downstream applications receive one structured representation rather than a collection of unrelated model responses.&lt;/p&gt;

&lt;p&gt;The diagram below shows how the agentic harness selects one chart-specific extraction route:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/agentic-harness-routing.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fothkg6uhxyslp4o4v4zm.png" alt="A chart image enters an orchestrator, which selects one specialist, collects its extraction result, and returns structured chart data." width="800" height="196"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/agentic-harness-routing.png" rel="noopener noreferrer"&gt;View full-resolution image&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparing Chart Parsing Pipelines on Complex Real-World Charts
&lt;/h2&gt;

&lt;p&gt;Real-world charts are important since they prove that our pipeline works well on messy charts found in production scenarios across various industries. Across the following qualitative examples, we display the 2 main groups of failures many chart parsing pipelines face which our agentic system is robust to.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Output Has The Correct Outline But Incorrect Chart Value Extracted
&lt;/h3&gt;

&lt;p&gt;A parser can preserve a chart's outline while changing its coordinate system or attaching the wrong values to it. In the following chart below Unsiloed is the only parser to maintain chart accuracy and structure very perfectly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/rbi-liquidity-conditions-comparison.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faqd9jkgd09w2cm5jyjmm.png" alt="An RBI liquidity conditions chart reconstructed by seven pipelines: Unsiloed keeps the filled bands and the dashed net-LAF line, while the others flatten them into sparse lines or rescale the date axis." width="800" height="1461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/rbi-liquidity-conditions-comparison.png" rel="noopener noreferrer"&gt;View full-resolution image&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Errors are harder to notice when a reconstruction remains visually plausible. In the three-fund comparison, Unsiloed follows the source curves closely. GPT-5.4 adds sharp fluctuations that are not present in the source, while several other outputs smooth the curves into a smaller set of points.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/three-fund-benchmark-comparison.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx3lmt8wm32gqmfabisp9.png" alt="A three-fund indexed performance chart over 250 trading days: Unsiloed matches the ground-truth curves point for point, GPT-5.4 introduces fluctuations that are not in the source, and LlamaIndex, Extend, and Reducto return smoothed low-resolution curves." width="800" height="1461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/three-fund-benchmark-comparison.png" rel="noopener noreferrer"&gt;View full-resolution image&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Sparse Output Hides Missing Data
&lt;/h3&gt;

&lt;p&gt;Stacked area charts make missing structure especially damaging because each series is defined by both its upper and lower boundary. Unsiloed returns the formats as bands in their original order and scale. LlamaParse and Extend separate the bands into independent lines, changing what the values mean.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/music-sales-stacked-area-comparison.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmtmzvaqr2jw5nm2rhxmy.png" alt="A stacked area chart of US music sales by format: Unsiloed reproduces the stacked bands in their original order and scale, while LlamaParse and Extend redraw them as independent lines." width="800" height="1461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/music-sales-stacked-area-comparison.png" rel="noopener noreferrer"&gt;View full-resolution image&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The 10-series comparison makes the missing points visible. Unsiloed traces all 10 series across approximately 250 trading days.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/sector-constituents-10-series-comparison.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd4ys6bwle27kq2ldw0n4.png" alt="A 10-series sector constituents chart over one year: Unsiloed traces every series across roughly 250 trading days, while the other pipelines return a dozen or so landmarks per series." width="800" height="1461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/sector-constituents-10-series-comparison.png" rel="noopener noreferrer"&gt;View full-resolution image&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These examples demonstrate the failure modes, but they cannot establish the size of the error. Quantitative evaluation requires synthetic charts whose underlying values are known.&lt;/p&gt;

&lt;h2&gt;
  
  
  ChartParse-Bench: A Chart Parsing Benchmark
&lt;/h2&gt;

&lt;p&gt;Understanding the gaps of qualitative evaluation and driven by our belief in a robust evaluation, we present ChartParse-Bench. ChartParse-Bench is a synthetic chart parsing benchmark that provides ground truth for errors that can only be observed qualitatively in real documents. It contains 58 charts and ground-truth points generated with Matplotlib. Each chart isolates a predefined failure mode, such as swapping series at a crossing, interpolating through a gap, or treating a hatched fill as data. This dataset will help us have a quantitative evaluation of our chart parsing pipeline. It is hosted on Hugging Face at &lt;a href="https://huggingface.co/datasets/Unsiloed/chart-parse-bench" rel="noopener noreferrer"&gt;Unsiloed/chart-parse-bench&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The benchmark covers five chart families:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Line charts (18):&lt;/strong&gt; Series identity through crossings, resampling, and axis binding&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scatter plots (11):&lt;/strong&gt; Recall under overplotting, size and shape channels, and outliers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Area charts (nine):&lt;/strong&gt; Stacking, computed baselines, and composited fills&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compound charts (12):&lt;/strong&gt; Non-Cartesian frames, linked panels, and mixed geometries&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Market charts (eight):&lt;/strong&gt; Correlated series that move together&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/chartparse-bench-grid.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvpz5zli44svxowea8zbw.png" alt="A grid of 58 synthetic line, scatter, area, compound, and market charts designed to isolate chart-parsing failure modes." width="799" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/chartparse-bench-grid.png" rel="noopener noreferrer"&gt;View full-resolution image&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Quantitative Measurement of Chart Parsing Pipelines
&lt;/h2&gt;

&lt;p&gt;We utilise 2 important metrics to effectively measure how accurate our chart parsing baseline is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Mean absolute error (MAE)&lt;/strong&gt; measures how far each extracted value is from the value used to generate the chart. The benchmark averages these differences across the evaluated points and expresses the result as a percentage of the axis range. Lower MAE means the reconstructed values sit closer to the ground truth.&lt;/p&gt;

&lt;p&gt;MAE however only scores the points a parser emits. A model can return a dozen well-placed landmarks from a 500-point series and receive a reasonable error score even though it omitted most of the data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Point density&lt;/strong&gt; exposes that omission by comparing the volume of structured points produced by each pipeline. It acts as a completeness check alongside MAE. Both numbers are needed because dense output can be inaccurate, while accurate output can be too sparse for interpolation, crossover detection, trend fitting, or point lookup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benchmark Results
&lt;/h2&gt;

&lt;p&gt;The first result compares the mean absolute error of all seven pipelines across the benchmark.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/mae-results.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fig2hozvste35rognrxnx.png" alt="A ranked table of mean absolute error for seven chart-parsing methods, with lower values indicating more accurate reconstruction." width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/mae-results.png" rel="noopener noreferrer"&gt;View full-resolution image&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The second compares how many structured coordinates each pipeline returned from the same 58 charts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/point-density-results.png" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.unsiloed.ai%2Fblog-assets%2Funsiloed-achieves-sota-chart-parsing%2Fpoint-density-results.png" alt="A ranked table of the output-point total each chart parser returned, with Unsiloed at 105,989 points and every other pipeline an order of magnitude lower." width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/blog-assets/unsiloed-achieves-sota-chart-parsing/point-density-results.png" rel="noopener noreferrer"&gt;View full-resolution image&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Reliable Chart Data Makes Downstream Answers More Reliable
&lt;/h2&gt;

&lt;p&gt;Charts can look correctly reconstructed while their values, series identities, or sampling resolution have changed. Those errors become difficult to detect after the original image has passed through a document pipeline and only the extracted representation reaches the application.&lt;/p&gt;

&lt;p&gt;For RAG, chart question answering, and quantitative analysis, parsing quality therefore depends on both accuracy and completeness. Preserving the values is necessary, but so is preserving enough of the series for downstream systems to calculate over the data rather than infer from a simplified outline.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.unsiloed.ai/login" rel="noopener noreferrer"&gt;Sign up&lt;/a&gt; and test Unsiloed on your most challenging document use cases.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>benchmark</category>
      <category>dataengineering</category>
    </item>
    <item>
      <title>Charts, Plots, and Figures: Getting Visual Data APIs Skip (July 2026)</title>
      <dc:creator>Unsiloed AI</dc:creator>
      <pubDate>Thu, 29 Oct 2026 08:52:32 +0000</pubDate>
      <link>https://dev.to/unsiloed/charts-plots-and-figures-getting-visual-data-apis-skip-july-2026-2gd2</link>
      <guid>https://dev.to/unsiloed/charts-plots-and-figures-getting-visual-data-apis-skip-july-2026-2gd2</guid>
      <description>&lt;p&gt;&lt;em&gt;By Aman Mishra. Originally published on &lt;a href="https://www.unsiloed.ai/blog/parsing-charts-figures-pdf-document-parsing" rel="noopener noreferrer"&gt;Unsiloed AI&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Your parser can return clean text, neat chunks, and complete metadata while still missing the most important value on the page: the number inside a chart.&lt;/p&gt;

&lt;p&gt;That is where document extraction pipelines quietly fail. A chart is more than an image in the middle of a report. It may contain the revenue trend, clinical threshold, model benchmark, or risk score the downstream system needs. If the parser detects the figure but does not recover the data inside it, every RAG query, agent workflow, or compliance check built on that output inherits the gap.&lt;/p&gt;

&lt;p&gt;This post explains why chart extraction fails, what real figure extraction has to recover, and how a vision-model pipeline can return chart data as structured, cited output.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Most document parsers detect charts but do not extract the values inside them.&lt;/li&gt;
&lt;li&gt;Chart extraction means recovering axis labels, tick values, legends, series names, and data points as structured output.&lt;/li&gt;
&lt;li&gt;Different chart types need different decoding logic: bar charts use height, pie charts use arc angles, heatmaps use color scales, and dual-axis charts use multiple coordinate systems.&lt;/li&gt;
&lt;li&gt;A reliable pipeline detects the figure, classifies the chart type, decodes the visual encoding, and links every value back to its source region.&lt;/li&gt;
&lt;li&gt;Unsiloed AI returns extracted figure output with confidence scores and bounding-box citations, so high-confidence results can pass through automatically and borderline results can be routed for review.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Charts Are a Data Trap in Documents
&lt;/h2&gt;

&lt;p&gt;Charts, plots, and figures often carry the densest information in a document. A quarterly revenue chart, a trial outcome plot, or a model benchmark figure can contain the answer a downstream system is supposed to retrieve.&lt;/p&gt;

&lt;p&gt;Most document parsers are still built around text. They read embedded PDF text, OCR scanned words, detect tables, and return layout regions. A chart breaks that model because its data lives in visual relationships: bar height, line position, axis scale, legend color, point radius, and spatial grouping. NVIDIA's overview of &lt;a href="https://developer.nvidia.com/blog/approaches-to-pdf-data-extraction-for-information-retrieval/" rel="noopener noreferrer"&gt;PDF data extraction for information retrieval&lt;/a&gt; explains why closing this gap takes page-element detection and specialized extraction models.&lt;/p&gt;

&lt;p&gt;The failure is hard to spot. A parser may return a bounding box labeled &lt;code&gt;figure&lt;/code&gt;, or include a screenshot-like image reference, and the output looks complete. But the values inside the chart are missing, so a question like "Which product line drove Q3 growth?" returns nothing if the answer only appeared in a stacked bar chart.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Chart Extraction Actually Means
&lt;/h2&gt;

&lt;p&gt;Chart extraction means reconstructing the data encoded inside a visual. A useful extraction returns axis titles, tick labels, legend entries, series names, units, and data-point values. Researchers often call this "chart-to-table" or "derendering" because the goal is to recover the table that produced the chart. Google Research's work on &lt;a href="https://research.google/blog/foundation-models-for-reasoning-on-charts/" rel="noopener noreferrer"&gt;foundation models for chart reasoning&lt;/a&gt; shows how image-to-text models can learn to generate a table-like representation of chart data from an image.&lt;/p&gt;

&lt;p&gt;Figure detection is not the same thing. Detection tells you where a chart sits on the page. Extraction tells you what the chart says. For pipelines that need numbers, captions, labels, and traceable evidence, a bounding box alone is not enough.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl4ys32y192cv79i1lv9q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl4ys32y192cv79i1lv9q.png" width="800" height="658"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Different Chart Types Need Different Decoders
&lt;/h2&gt;

&lt;p&gt;Each chart type encodes data differently, so a generic image-to-text pass is not enough.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Chart Type&lt;/td&gt;
&lt;td&gt;How Data Is Encoded&lt;/td&gt;
&lt;td&gt;Why Standard Parsers Fail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bar and column charts&lt;/td&gt;
&lt;td&gt;Value mapped to bar height in a raster image&lt;/td&gt;
&lt;td&gt;The parser sees the bars as shapes, not values&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Line charts&lt;/td&gt;
&lt;td&gt;Points connected across x/y axes&lt;/td&gt;
&lt;td&gt;Tick spacing, units, and point-to-axis mapping are not recovered&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pie and donut charts&lt;/td&gt;
&lt;td&gt;Values encoded as arc angles&lt;/td&gt;
&lt;td&gt;Legend text may be read, but slice values are not tied to geometry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scatter and bubble charts&lt;/td&gt;
&lt;td&gt;Two or three encoded dimensions per point&lt;/td&gt;
&lt;td&gt;Points need coordinate mapping against axis ranges&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heatmaps and matrix charts&lt;/td&gt;
&lt;td&gt;Magnitude encoded as color&lt;/td&gt;
&lt;td&gt;The color scale has to be calibrated before values can be recovered&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Combined and dual-axis charts&lt;/td&gt;
&lt;td&gt;Multiple series across two coordinate systems&lt;/td&gt;
&lt;td&gt;A single-coordinate extraction model mixes or drops series&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This is why chart extraction has to classify the figure before decoding it. A bar chart, heatmap, and dual-axis chart may all sit inside a &lt;code&gt;figure&lt;/code&gt; bounding box, but they need different logic to recover their values.&lt;/p&gt;

&lt;h2&gt;
  
  
  How a Chart Extraction Pipeline Works
&lt;/h2&gt;

&lt;p&gt;A production chart extraction pipeline usually runs in four stages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Detect:&lt;/strong&gt; A vision model scans each page and marks figure regions with bounding boxes.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Classify:&lt;/strong&gt; The system identifies the figure type, such as bar, line, scatter, pie, stacked, or dual-axis.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Decode:&lt;/strong&gt; A chart-specific model reads axis scales, tick labels, legends, series, and visual marks, then rebuilds the values as structured data.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Validate:&lt;/strong&gt; Extracted figure output comes back with confidence scores and bounding-box citations, so the pipeline can tell which results to trust and which to route for review.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2hzmv27n96mrg3yviex3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2hzmv27n96mrg3yviex3.png" width="799" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Classification is where text-first parsers usually stop. They can detect that a visual region exists, but they do not know whether the region contains a chart, diagram, scanned table, or decorative image. Without that distinction, the parser either skips the region or returns pixels that still need manual interpretation.&lt;/p&gt;

&lt;p&gt;Decoding is the harder part. A pipeline has to handle logarithmic axes, irregular ticks, overlapping series, rotated labels, legends outside the plot area, and low-resolution scans. &lt;a href="https://www.unsiloed.ai/blog/best-layout-aware-ocr-solutions-complex-documents" rel="noopener noreferrer"&gt;Layout-aware OCR&lt;/a&gt; helps recover nearby text, but chart values still require visual inference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Validating Chart Data With Confidence Scores
&lt;/h2&gt;

&lt;p&gt;Chart extraction quality changes with chart complexity. Clean bar charts with visible labels parse more reliably. Dense line charts, overlapping series, small tick labels, handwritten annotations, and low-resolution scans produce more uncertainty.&lt;/p&gt;

&lt;p&gt;That uncertainty has to be visible in the output. Unsiloed returns confidence scores and bounding-box citations with extracted figure output. The confidence score tells the pipeline how much to trust the extraction. The citation tells a reviewer exactly where to verify it.&lt;/p&gt;

&lt;p&gt;That makes automated routing practical. A common routing policy is to pass high-confidence values straight through, flag borderline values for review, and retry, escalate, or exclude low-confidence and partial extractions before they pollute a database, RAG index, or agent workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Localizing Figures and Linking Captions
&lt;/h2&gt;

&lt;p&gt;Reliable figure extraction depends on two related tasks: localization and association. Localization finds the figure boundary. Association links the figure to its caption, title, surrounding paragraph, or nearby table.&lt;/p&gt;

&lt;p&gt;Template-based extractors struggle here because they expect figures to appear at fixed coordinates. That works until a report template changes, a caption wraps onto another line, or a figure moves across pages. Caption association also breaks when the caption is a separate text block instead of part of the image.&lt;/p&gt;

&lt;p&gt;A vision-first parser uses the full page to detect figure boundaries, then uses spatial reasoning to connect the figure to nearby caption text and section context. That context matters for retrieval. A chart value is much more useful when it is attached to "Figure 3: Q3 revenue by product line" than when it appears as an isolated number.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chart Extraction at Scale
&lt;/h2&gt;

&lt;p&gt;At scale, chart extraction becomes a pipeline design problem. The model has to extract values, preserve provenance, and expose enough metadata for review and retrieval.&lt;/p&gt;

&lt;p&gt;Common failure points include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cross-page context:&lt;/strong&gt; Figures that span pages or reference a legend elsewhere break parsers that process each page independently, the same issue behind why &lt;a href="https://www.unsiloed.ai/blog/why-multi-page-tables-still-break-every-extraction-pipeline" rel="noopener noreferrer"&gt;multi-page tables break extraction pipelines&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coordinate systems:&lt;/strong&gt; Bounding boxes in PDF point space need to map onto rasterized image coordinates. If the API does not return the coordinate system and page dimensions, verification becomes harder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confidence distribution:&lt;/strong&gt; A parser that performs well on clean charts may degrade on scans, compressed images, and unusual aspect ratios. Per-figure &lt;a href="https://www.unsiloed.ai/blog/confidence-score-reliability-the-missing-metric-in-document-extraction" rel="noopener noreferrer"&gt;confidence scores&lt;/a&gt; let teams route weaker extractions to review.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage format:&lt;/strong&gt; Structured JSON with axis labels, series names, units, and data-point arrays indexes cleanly for retrieval. Flat text summaries do not preserve enough structure for reliable downstream use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provenance:&lt;/strong&gt; Linking every extracted value to a page and bounding box keeps audit trails intact when a number is disputed, and supports a stronger &lt;a href="https://www.unsiloed.ai/blog/chunking-strategy-rag-systems-technical-implementation-guide" rel="noopener noreferrer"&gt;chunking strategy for RAG systems&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How Unsiloed AI Handles Chart and Figure Extraction
&lt;/h2&gt;

&lt;p&gt;Most &lt;a href="https://www.unsiloed.ai/blog/document-data-extraction-software-technical-comparison" rel="noopener noreferrer"&gt;document data extraction software&lt;/a&gt; either skips figures or returns an image reference with no structured data attached. Unsiloed AI runs vision-model inference on detected figure regions and returns structured values instead of a raw visual placeholder.&lt;/p&gt;

&lt;p&gt;For bar charts and line plots, that means axis labels, series names, units, and data-point values. For annotated figures, it means caption text, callout labels, and the spatial relationships between annotations and the regions they mark. These are the figure-level signals that &lt;a href="https://www.unsiloed.ai/blog/multimodal-data-extraction-tools-enterprise-ai-agents" rel="noopener noreferrer"&gt;multimodal data extraction tools&lt;/a&gt; need before they can support reliable AI agents or document workflows.&lt;/p&gt;

&lt;p&gt;Extracted figure output includes confidence scores and bounding-box citations back to source regions, so downstream systems can verify what was extracted and where it came from.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Chart Extraction Matters
&lt;/h2&gt;

&lt;p&gt;Chart extraction matters whenever a document pipeline has to answer questions from visual evidence, beyond body text alone.&lt;/p&gt;

&lt;p&gt;Use a chart-aware parser when your documents include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Financial reports with revenue, forecast, or variance charts&lt;/li&gt;
&lt;li&gt;Scientific papers with plots, benchmarks, or experimental results&lt;/li&gt;
&lt;li&gt;Medical and clinical documents with threshold charts or outcome figures&lt;/li&gt;
&lt;li&gt;Legal, insurance, or compliance documents with timelines, risk matrices, or annotated diagrams&lt;/li&gt;
&lt;li&gt;Product, operations, or manufacturing reports with trend charts and dashboards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If those figures are skipped, the pipeline does not merely lose nice-to-have context. It loses source data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts on Building a Reliable Chart Extraction Pipeline
&lt;/h2&gt;

&lt;p&gt;Skipped charts are systematic data loss. They are hard to spot because the parser may still return a clean-looking document structure, but the values that mattered never enter the pipeline.&lt;/p&gt;

&lt;p&gt;A reliable chart extraction workflow detects figures, classifies chart types, decodes visual encodings, returns structured data, and ties extracted output to confidence scores and source regions. To see how Unsiloed handles chart extraction in production document workflows, &lt;a href="https://www.unsiloed.ai/book-demo" rel="noopener noreferrer"&gt;book a demo&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What's the difference between figure detection and chart extraction?
&lt;/h3&gt;

&lt;p&gt;Figure detection locates where a chart or figure sits on a page and returns its bounding-box coordinates. Chart extraction goes further by recovering the encoded data inside that figure, including axis labels, tick values, legends, series names, and plotted quantities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can OCR extract data from charts in a PDF?
&lt;/h3&gt;

&lt;p&gt;OCR can read text labels in and around a chart, but it cannot recover the chart values by itself. Chart values are encoded visually through geometry, color, position, and scale. A vision pipeline has to detect the figure, classify the chart type, and decode the visual encoding into structured data.&lt;/p&gt;

&lt;h3&gt;
  
  
  What should a chart extraction API return?
&lt;/h3&gt;

&lt;p&gt;A useful chart extraction API should return structured data, not a bare image crop. Look for axis labels, units, tick values, legend entries, series names, data-point values, confidence scores, and source citations such as page numbers and bounding boxes.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I validate extracted chart data at scale?
&lt;/h3&gt;

&lt;p&gt;Route extractions by confidence score. High-confidence values can pass through automatically, while borderline values should be flagged for review. Bounding-box citations make review faster because each value points back to the exact source region in the document.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does Unsiloed AI handle chart and figure extraction?
&lt;/h3&gt;

&lt;p&gt;Unsiloed AI runs vision-model inference on detected figure regions, returning structured values for charts and spatial context for annotated figures. Extracted figure output includes confidence scores and bounding-box citations, so downstream systems can verify the result before using it in search, analytics, or automation.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>pdf</category>
      <category>dataengineering</category>
    </item>
  </channel>
</rss>
