GPT-4o extracts engineering table data with only 38.5% accuracy. This gap is not a model intelligence failure; it is a structural one. Without explicit, machine-readable fields, your dimension tables are invisible to generative search answers, regardless of the underlying AI’s sophistication.
Why plain HTML tables fail AI search schema requirements
Human eyes read a table by scanning rows and columns. Language models parse it by matching tokens to explicit definitions. When you publish engineering table markup as standard HTML, you provide visual structure that large language models (LLMs) cannot reliably interpret as semantic data. The model sees a grid of strings, not a dataset with defined fields. This ambiguity is where extraction accuracy collapses.

Recent benchmark data illustrates the scale of this failure. In an evaluation of 11 AI models on tabular data extraction from architectural and engineering documents, GPT-4o API achieved only 38.5% accuracy. In more than six out of ten cases, the model failed to correctly identify the table’s structure. In contrast, Gemini 2.5 Pro achieved 94.2% accuracy on the same task. The gap reflects how different architectures handle implicit versus explicit structure. Models that rely on visual layout cues perform poorly when that layout lacks machine-readable tags.
The semantic gap: layout vs. definition
The core problem for LLMs is distinguishing between data types that look identical in plain text. A nominal value of “10.0” and a tolerance of “±0.1” may appear in adjacent cells, but without explicit field definitions, the model has no way to know which is the baseline dimension and which is the allowable deviation. It relies on context clues that are often ambiguous or missing in technical documentation. This leads to misattribution, where a tolerance is recorded as a dimension, or a material specification is confused with a finish requirement.
Technical data SEO addresses this by ensuring structured data is recoverable by AI agents for B2B technical content. This approach treats the table not as a display element, but as a data source. By mapping each cell to a specific schema field, you remove the guesswork for the AI. The goal is to make the table interpretable with precision, allowing AI search engines to extract and cite the data accurately in generative answers.
Building the JSON blueprint for dimension and tolerance fields

A robust AI search schema for engineering data requires moving beyond visual alignment to explicit field definitions. Every dimension entry must be decomposed into atomic components that an LLM can parse without ambiguity. The core attributes for a standard linear dimension include dimension_type, nominal_value, upper_tolerance, lower_tolerance, and tolerance_class. When these are separated, the model can distinguish between the design intent (nominal) and the permissible variation (tolerance) without relying on hyphens or plus/minus signs that often confuse tokenizers.
Handling GD&T in structured data
Geometric Dimensioning and Tolerancing (GD&T) adds a layer of complexity because it defines form, orientation, and location relative to datums, not just size. To make this machine-readable, the JSON structure must explicitly specify the datum_reference, zone_modifier, and geometric_type (e.g., position, perpendicularity). For example, a position tolerance of Ø 0.05 relative to datum A is not just a number; it is a relationship. If the markup does not explicitly link the tolerance value to its specific datum, the AI may misinterpret the constraint as a general size tolerance. Defining these relationships as distinct keys prevents the model from conflating dimensional limits with geometric ones.
{
"dimension_id": "dim-001",
"dimension_type": "threaded_hole",
"nominal_value": 3.0,
"tolerance_class": "6H",
"upper_tolerance": 0.0,
"lower_tolerance": -0.066,
"gd_t": {
"geometric_type": "position",
"zone_modifier": "Ø",
"datum_reference": ["A", "B"],
"tolerance_value": 0.05
},
"is_reference": false,
"feature_count": 4
}
Preventing misattribution with metadata flags
The is_reference flag and feature_count are critical for preventing AI from misattributing specifications to the wrong part of the drawing. A dimension marked as is_reference: true indicates it is for informational purposes only and should not be used for manufacturing verification. Without this flag, an AI agent might incorrectly apply a reference tolerance to a production check. Similarly, feature_count tells the model how many instances share this specification. If a drawing shows one dimension callout for four identical holes, a feature_count of 4 prevents the model from assuming the tolerance applies only to a single feature. These metadata fields provide the context that raw numbers lack, ensuring that technical data SEO efforts result in accurate, actionable information rather than ambiguous data points that require human re-verification.
Material tables: what the benchmark data actually covers
A frequent point of confusion in engineering table markup is the assumption that material specifications demand the same granular, row-by-row JSON structure as dimensional data. In practice, the reference benchmark treated material information primarily as a title_block attribute rather than a complex dataset requiring deep schema mapping. This distinction is critical for any AI search schema strategy, as it dictates how much technical markup is actually necessary to achieve high extraction accuracy.
In the studied architectural and mechanical drawing sets, material details did not appear as standalone, multi-row tables with varying properties per row. Instead, they were embedded within the drawing’s metadata. For the purpose of machine parsing, the relevant fields are limited to a standard set: part_number, part_name, material, mass, and scale. Marking these up is straightforward; the AI agent only needs to identify these key-value pairs within the title block region of the document. There is no need to apply the complex tolerance or datum logic discussed in dimension fields to the material designation itself.
Handling BOM and separate material tables
If your B2B technical content includes a separate Bill of Materials (BOM) where different components have distinct material specifications, the approach shifts slightly. Here, you are no longer dealing with a single global attribute but with a list of items. However, this still does not require a complex dimensional schema. Each row in the BOM can be treated as a simple key-value association. The AI agent needs to map the item_id to its corresponding material_type and quantity.
Avoid over-engineing this section. Do not attempt to embed chemical composition data or material grades in nested JSON objects unless that data is explicitly used in search queries. The goal of technical data SEO is not to digitize every fact on the page, but to ensure that the primary identifiers are recoverable. By keeping the BOM markup flat and clear, you reduce the cognitive load on the extraction model. This directly contributes to the high accuracy rates seen in top-performing models. The complexity belongs in the dimension fields; the material fields should remain simple and direct.
Common markup mistakes that cause AI hallucination
In data extraction, hallucination occurs when a model invents missing values to fill gaps in ambiguous input. If a drawing shows a dimension but lacks an explicit tolerance tag, the AI may fabricate a plausible number (e.g., a phantom ±0.1 mm) rather than flagging the omission. This is not a model intelligence failure; it is a markup failure. The model is doing exactly what it was trained to do: complete patterns. When the pattern is incomplete, it guesses.
Benchmarks reveal three recurring failure modes that trigger this behavior:
- Mixed units without schema tags. A table containing both millimeters and inches, but without
unitfields, forces the model to guess the context for each row. GPT-4o’s 38.5% accuracy rate is largely attributable to such structural ambiguity. - Merged cells. HTML
colspanandrowspanbreak the rectangular grid assumptions of many parsers. Without explicit JSON structure, the model cannot determine which value belongs to which column. - Missing view context. If a dimension table is not linked to a specific drawing view (e.g., “Section A-A”), the AI may misattribute specifications to the wrong part of the assembly.
The fix is the exhaustive rule: every number and note in the source document must map to a designated field in your JSON schema. If a value does not fit the standard fields (nominal, tolerance, class), it must go into a notes array. No orphan data. No implicit meaning.
Using generic LLMs without strict JSON validation compounds these risks. In high-stakes B2B technical content, a fabricated tolerance is not a typo; it is a compliance violation. The AI search schema must enforce that every output field is either populated from the source or explicitly marked as null. This prevents the model from filling the blank with a guess.
As AI search becomes the primary discovery channel for industrial buyers, structuring technical data is no longer just a developer task; it is a business continuity requirement. Auditing your current documentation for schema readiness is the logical next step to ensure your B2B technical content remains visible and accurate in the AI-driven search era.
