Convert PDF to GAEB. Put your bill of quantities to work.
Your bill of quantities arrives as a PDF. Your estimating software needs items, quantities and complete specifications. We develop the conversion workflow: AI extraction, source review and GAEB X83/X84 for a tested import into your system.
PDF / LVIdentify headings, items and continuations
JSONReview descriptions, quantities and sources
X83 / X84Keep specification and bid distinct
From source document to inspectable files.
Four fit-out items from a fictional bill of quantities. Switch between the manually checked data and the actual X83/X84 files. The source document and export report are available alongside them.
One bill of quantities. Two exchange phases.
X83 contains specifications and quantities. The matching X84 contains bid prices. Item identifiers connect the two files.
| Item | Quantity | Unit price |
|---|---|---|
01.01.0010Wandflächen vorbereiten |
24.000m² | 8.500 EUR |
01.01.0020Wandanstrich ausführen |
24.000m² | 14.750 EUR |
01.01.0030Sockelleisten montieren |
18.500m | 11.200 EUR |
01.01.0040Abschlusskontrolle |
1.000St | 45.000 EUR |
4 items · EUR 810.20 bid total excluding VAT · X83 and X84 validated against GAEB XSD.
{
"bidder": "Fiktiver Musterbetrieb",
"bidder_city": "Musterort",
"bidder_postcode": "00000",
"bidder_street": "Beispielstraße 1",
"currency": "EUR",
"document_sha256": "91faa4998e3dba7aeeaae66d4dd78f873c16ea46226d25b35e5689f37dc7609d",
"issues": [],
"lv_id": "DEMO-WERKRAUM",
"name": "Fiktives Referenzbeispiel, manuell übertragen",
"nodes": [
{
"alternative_group": null,
"alternative_rank": null,
"complements": [],
"field_sources": {},
"id": "title01",
"include_in_total": null,
"issues": [],
"item_type": "normal",
"kind": "heading",
"long_text": "",
"oz": "01",
"parent_id": null,
"parent_oz": null,
"quantity": null,
"short_text": "Ausbau",
"sources": [],
"unit": null,
"unit_price": null
},
{
"alternative_group": null,
"alternative_rank": null,
"complements": [],
"field_sources": {},
"id": "title0101",
"include_in_total": null,
"issues": [],
"item_type": "normal",
"kind": "heading",
"long_text": "",
"oz": "01.01",
"parent_id": "title01",
"parent_oz": "01",
"quantity": null,
"short_text": "Oberflächen",
"sources": [],
"unit": null,
"unit_price": null
},
{
"alternative_group": null,
"alternative_rank": null,
"complements": [],
"field_sources": {},
"id": "item0010",
"include_in_total": null,
"issues": [],
"item_type": "normal",
"kind": "item",
"long_text": "Lose Beschichtungen entfernen und den Untergrund trocken reinigen.\nAnschlüsse an Fenster und Türen sorgfältig abkleben. Staub und Restmaterial fachgerecht aufnehmen.",
"oz": "01.01.0010",
"parent_id": "title0101",
"parent_oz": "01.01",
"quantity": "24.000",
"short_text": "Wandflächen vorbereiten",
"sources": [
{
"bbox": null,
"line_ids": [],
"method": "manual_reference",
"page": 1
}
],
"unit": "m2",
"unit_price": "8.500"
},
{
"alternative_group": null,
"alternative_rank": null,
"complements": [],
"field_sources": {},
"id": "item0020",
"include_in_total": null,
"issues": [],
"item_type": "normal",
"kind": "item",
"long_text": "Zweifacher Anstrich mit weißer Innenwandfarbe auf vorbereitetem Untergrund.\nDie Fläche muss nach dem Trocknen gleichmäßig deckend sein. Abklebungen entfernen und die Arbeitsstelle sauber übergeben.",
"oz": "01.01.0020",
"parent_id": "title0101",
"parent_oz": "01.01",
"quantity": "24.000",
"short_text": "Wandanstrich ausführen",
"sources": [
{
"bbox": null,
"line_ids": [],
"method": "manual_reference",
"page": 1
}
],
"unit": "m2",
"unit_price": "14.750"
},
{
"alternative_group": null,
"alternative_rank": null,
"complements": [],
"field_sources": {},
"id": "item0030",
"include_in_total": null,
"issues": [],
"item_type": "normal",
"kind": "item",
"long_text": "Sockelleisten aus Holz liefern, ablängen und befestigen. Gehrungen an Ecken herstellen.\nSichtbare Oberflächen dürfen keine offenen Befestigungslöcher aufweisen.",
"oz": "01.01.0030",
"parent_id": "title0101",
"parent_oz": "01.01",
"quantity": "18.500",
"short_text": "Sockelleisten montieren",
"sources": [
{
"bbox": null,
"line_ids": [],
"method": "manual_reference",
"page": 1
}
],
"unit": "m",
"unit_price": "11.200"
},
{
"alternative_group": null,
"alternative_rank": null,
"complements": [],
"field_sources": {},
"id": "item0040",
"include_in_total": null,
"issues": [],
"item_type": "normal",
"kind": "item",
"long_text": "Alle bearbeiteten Flächen gemeinsam begehen. Kleine Fehlstellen unmittelbar nacharbeiten.\nEin kurzes Protokoll mit Datum und ausgeführten Nacharbeiten übergeben.",
"oz": "01.01.0040",
"parent_id": "title0101",
"parent_oz": "01.01",
"quantity": "1.000",
"short_text": "Abschlusskontrolle",
"sources": [
{
"bbox": null,
"line_ids": [],
"method": "manual_reference",
"page": 1
}
],
"unit": "St",
"unit_price": "45.000"
}
],
"page_count": 1,
"processing_complete": true,
"project": "Musterprojekt Werkraum",
"review_status": "synthetic_manual_reference",
"reviewed": true,
"schema_version": "lv-1.0"
}
<?xml version='1.0' encoding='UTF-8'?>
<GAEB xmlns="http://www.gaeb.de/GAEB_DA_XML/DA83/3.3">
<GAEBInfo>
<Version>3.3</Version>
<VersDate>2021-05</VersDate>
<Date>2026-09-08</Date>
<ProgSystem>Bettag Systems</ProgSystem>
<ProgName>LV-Konvertierung</ProgName>
</GAEBInfo>
<PrjInfo>
<NamePrj>Musterprojekt Werkraum</NamePrj>
<Cur>EUR</Cur>
</PrjInfo>
<Award>
<DP>83</DP>
<BoQ ID="b91faa4998e3dba7aeeaae66d">
<BoQInfo>
<Name>DEMO-WERKRAUM</Name>
<LblBoQ>Musterprojekt Werkraum</LblBoQ>
<OutlCompl>AllTxt</OutlCompl>
<BoQBkdn>
<Type>BoQLevel</Type>
<Length>2</Length>
<Num>Yes</Num>
</BoQBkdn>
<BoQBkdn>
<Type>BoQLevel</Type>
<Length>2</Length>
<Num>Yes</Num>
</BoQBkdn>
<BoQBkdn>
<Type>Item</Type>
<Length>4</Length>
<Num>Yes</Num>
</BoQBkdn>
</BoQInfo>
<BoQBody>
<BoQCtgy ID="ntitle01" RNoPart="01">
<LblTx>
<span>Ausbau</span>
</LblTx>
<BoQBody>
<BoQCtgy ID="ntitle0101" RNoPart="01">
<LblTx>
<span>Oberflächen</span>
</LblTx>
<BoQBody>
<Itemlist>
<Item ID="nitem0010" RNoPart="0010">
<Qty>24.000</Qty>
<QU>m2</QU>
<Description ID="e5c3c8c11ec758b791cd120b1468e7b3">
<CompleteText>
<DetailTxt>
<Text>
<p>
<span>Lose Beschichtungen entfernen und den Untergrund trocken reinigen.</span>
<br/>
<span>Anschlüsse an Fenster und Türen sorgfältig abkleben. Staub und Restmaterial fachgerecht aufnehmen.</span>
</p>
</Text>
</DetailTxt>
</CompleteText>
</Description>
</Item>
<Item ID="nitem0020" RNoPart="0020">
<Qty>24.000</Qty>
<QU>m2</QU>
<Description ID="b641721ff4f15759b6480d1cfbb64b67">
<CompleteText>
<DetailTxt>
<Text>
<p>
<span>Zweifacher Anstrich mit weißer Innenwandfarbe auf vorbereitetem Untergrund.</span>
<br/>
<span>Die Fläche muss nach dem Trocknen gleichmäßig deckend sein. Abklebungen entfernen und die Arbeitsstelle sauber übergeben.</span>
</p>
</Text>
</DetailTxt>
</CompleteText>
</Description>
</Item>
<Item ID="nitem0030" RNoPart="0030">
<Qty>18.500</Qty>
<QU>m</QU>
<Description ID="16163a6edcac5d7d9ecb903d99f34c02">
<CompleteText>
<DetailTxt>
<Text>
<p>
<span>Sockelleisten aus Holz liefern, ablängen und befestigen. Gehrungen an Ecken herstellen.</span>
<br/>
<span>Sichtbare Oberflächen dürfen keine offenen Befestigungslöcher aufweisen.</span>
</p>
</Text>
</DetailTxt>
</CompleteText>
</Description>
</Item>
<Item ID="nitem0040" RNoPart="0040">
<Qty>1.000</Qty>
<QU>St</QU>
<Description ID="f7eaaa6cc8715f89a0226d02ef343515">
<CompleteText>
<DetailTxt>
<Text>
<p>
<span>Alle bearbeiteten Flächen gemeinsam begehen. Kleine Fehlstellen unmittelbar nacharbeiten.</span>
<br/>
<span>Ein kurzes Protokoll mit Datum und ausgeführten Nacharbeiten übergeben.</span>
</p>
</Text>
</DetailTxt>
</CompleteText>
</Description>
</Item>
</Itemlist>
</BoQBody>
</BoQCtgy>
</BoQBody>
</BoQCtgy>
</BoQBody>
</BoQ>
</Award>
</GAEB>
<?xml version='1.0' encoding='UTF-8'?>
<GAEB xmlns="http://www.gaeb.de/GAEB_DA_XML/DA84/3.3">
<GAEBInfo>
<Version>3.3</Version>
<VersDate>2021-05</VersDate>
<Date>2026-09-08</Date>
<ProgSystem>Bettag Systems</ProgSystem>
<ProgName>LV-Konvertierung</ProgName>
</GAEBInfo>
<PrjInfo>
<NamePrj>Musterprojekt Werkraum</NamePrj>
</PrjInfo>
<Award>
<DP>84</DP>
<CTR>
<Address>
<Name1>Fiktiver Musterbetrieb</Name1>
<Street>Beispielstraße 1</Street>
<PCode>00000</PCode>
<City>Musterort</City>
</Address>
</CTR>
<BoQ ID="b91faa4998e3dba7aeeaae66d">
<BoQInfo>
<Name>DEMO-WERKRAUM</Name>
<BoQBkdn>
<Type>BoQLevel</Type>
<Length>2</Length>
<Num>Yes</Num>
</BoQBkdn>
<BoQBkdn>
<Type>BoQLevel</Type>
<Length>2</Length>
<Num>Yes</Num>
</BoQBkdn>
<BoQBkdn>
<Type>Item</Type>
<Length>4</Length>
<Num>Yes</Num>
</BoQBkdn>
<Totals>
<Total>810.20</Total>
</Totals>
</BoQInfo>
<BoQBody>
<BoQCtgy ID="ntitle01" RNoPart="01">
<BoQBody>
<BoQCtgy ID="ntitle0101" RNoPart="01">
<BoQBody>
<Itemlist>
<Item ID="nitem0010" RNoPart="0010">
<UP>8.500</UP>
<IT>204.00</IT>
</Item>
<Item ID="nitem0020" RNoPart="0020">
<UP>14.750</UP>
<IT>354.00</IT>
</Item>
<Item ID="nitem0030" RNoPart="0030">
<UP>11.200</UP>
<IT>207.20</IT>
</Item>
<Item ID="nitem0040" RNoPart="0040">
<UP>45.000</UP>
<IT>45.00</IT>
</Item>
</Itemlist>
</BoQBody>
<Totals>
<Total>810.20</Total>
</Totals>
</BoQCtgy>
</BoQBody>
<Totals>
<Total>810.20</Total>
</Totals>
</BoQCtgy>
</BoQBody>
</BoQ>
</Award>
</GAEB>
Manually transcribed reference of a fictional German bill of quantities. Bidder details are also fictional. This example verifies export behavior, not model extraction quality.
Keep the complete item. Even across two pages.
A long specification must survive a page break. Processing preserves heading hierarchy, item numbering and continuations. Source lines and page references make assignments reviewable; unresolved contradictions prevent GAEB export.
-
01
Inspect the document
Examine PDF text layers, scans, heading structure and special items in your samples.
-
02
Extract the items
Process images and available text evidence. Save section-level checkpoints and resume processing.
-
03
Approve the content
Check full descriptions, quantities, units, prices and assignments against the source, recording changes.
-
04
Verify the import
Generate the appropriate GAEB files, validate their schemas and test import into your estimating software.
Which GAEB exchange do you need?
The file format follows the task. Choosing the correct exchange phase is part of conversion, alongside verification in the receiving system.
What is the difference between X83 and X84?
X83 is the invitation to tender, containing specifications and quantities. X84 is the bid submission, with prices and bidder additions. In this export, full descriptions remain in the associated X83 and JSON, so X84 is delivered with its bill-of-quantities context.
Which PDFs and GAEB versions does the project support?
The current implementation processes printed German PDF bills of quantities up to 100 MB and 500 pages. It exports GAEB DA XML 3.3, the 2021-05 bill-of-quantities package, as X83 or an X83/X84 package in EUR. D83, P83, handwriting and application-specific rules require separate evaluation.
Can I use an existing X83?
Yes, as the original reference for export checks. Bill identity, item identifiers, quantities, units and descriptions are compared. Differences must be resolved before export. The reference does not replace review of PDF extraction.
Is a public live demo available yet?
The reference bundle on this page is public. The interactive application is in private development ahead of evaluation on real documents. A demonstration and pilot can be scoped around your document formats and intended receiving system.
Does valid GAEB prove accurate extraction?
Schema validation checks file structure. Correct items, complete descriptions and appropriate quantities also require comparison with the source. Production use requires evaluation of extraction accuracy, correction effort and actual imports using your documents.
Your documents. Your system. An inspectable pilot.
Start with representative pages and a sample of the required import. These define the test scope, validation rules and a decision on how to automate your document workflow.