Turn messy spreadsheets into data agents can trust
Airfront finds the tables, infers the headers, and reads the meaning hidden in formatting — so your AI works from clean, structured data instead of guessing at a grid of cells.
{"sheet": "Price List","meta": { "currency": "USD", "revision": "J","effective_date": "2021-01-01" },"products": [{"part": "460ST2-0007","category": "102mm High Euro","config": { "coins": 8, "notes": 7, "key": "random" },"price": { "currency": "USD", "oem": 832.49,"distributor": 849.75, "reseller": 944.16,"msrp": 1238.58 }}]}
The reliability gap on SpreadsheetBench — the benchmark for real-world spreadsheet manipulation.
Why Airfront
Spreadsheets aren't structured data
Excel runs the real world's data — and almost none of it is clean. Three properties make it uniquely hard for LLMs to read.
Non-standard layouts
Nested tables, missing or incomplete headers, and free-form notes sit side by side in one sheet. There is no schema to rely on, so naive parsing breaks immediately.
No clear table boundaries
Nothing marks where a table begins, where it ends, or how two tables relate. An agent has to infer the structure before it can read a single value correctly.
Meaning hidden in formatting
A red cell, a bold total, a merged header — critical meaning lives in color and style that plain text extraction silently throws away.
How it works
How Airfront reads a sheet
An agentic pipeline that reasons about a spreadsheet the way a person does — structure first, then values.
Detect regions
Segment the sheet into distinct tables and blocks, separating real data from titles, notes, and stray labels.
segmentationInfer structure
Reconstruct headers, boundaries, and the relationships between tables — even when they're implicit or missing.
layout modelInterpret formatting
Read color, bold, merges, and number formats as first-class signals instead of discarding them as noise.
style semanticsEmit structured output
Return typed, validated JSON — with provenance for every value — that your agents and pipelines consume directly.
typed jsonThe benchmark
The gap is measurable
SpreadsheetBench evaluates models on 912 real questions pulled from Excel forums, graded online-judge style across 2,729 spreadsheets with multiple test cases each.
Even the strongest models top out around 70% on the simpler V1 tasks— well short of the accuracy real workflows demand. A wrong cell isn't a rounding error; it's a broken report.
Source: Ma et al., “SpreadsheetBench”, arXiv:2406.14991 (NeurIPS D&B 2024). Repository.
Capabilities
Built for the messy reality
Multi-table detection
Find every table in a sheet — even stacked, side-by-side, or separated only by a blank row.
Header inference
Reconstruct single- and multi-row headers, including merged and repeated label groups.
Format-aware extraction
Capture color, bold, and highlights as structured flags instead of losing them.
Formula & type awareness
Resolve formulas to values and normalize dates, currencies, and percentages to real types.
Structured JSON output
Emit typed, schema-validated JSON ready for agents, RAG, and data pipelines.
Verifiable accuracy
Every parse is checked online-judge style against expected outputs, so you can trust the result.
Get started
Give your agents spreadsheets they can actually read
Get started now
import { parse } from "airfront";
const sheet = await parse("Price List.xlsx", { schema: "pricing" });
sheet.tables[0].rows[0];
// { part: "460ST2-0007", category: "102mm High Euro", ... }