GAEB XML sample file: a free X83 to download and inspect
A free GAEB DA XML 3.3 sample file (X83) with 22 positions, every position type and a nested structure — plus what each part of it means and three ways to open it.
Sometimes you need a GAEB file and you do not have one: you are testing an import, writing a parser, comparing two estimating tools, or you simply want to see what a bill of quantities looks like before the first real tender lands in your inbox. Here is one you can use for any of that.
Download the sample: musterlv-schule.x83 (15 KB, GAEB DA XML 3.3, phase X83)
Or open it straight in the browser — GAEB-Check loads it with one click, no upload of your own files required.
It is synthetic. The project, the client and the quantities are invented, so you can attach it to a support ticket, commit it to a test suite, or hand it to a vendor without leaking anything from a real job.
What is in the file
| Format | GAEB DA XML 3.3 (schema version 2021-05) |
| Exchange phase | X83 — a request for bids: quantities and texts, no prices |
| Project | Erweiterung Grundschule Am Lindenhof — Fenster, Türen, Sonnenschutz |
| Project number | 2026-0417 |
| Client | Stadt Musterstadt, Hochbauamt |
| Bid opening | 14 October 2026 |
| Construction | 1 March – 31 August 2027 |
| Positions | 22, in 5 titles |
| Units used | St, m, m², psch, h |
| Size | 15 KB |
The structure is a realistic one, not a flat list:
01 Fenster (windows) 7 positions
02 Außentüren (exterior doors) 4
03 Sonnenschutz (solar shading) 4
04 Glasfassade Eingang (entrance façade)
04.01 Erdgeschoss (ground floor) 2
04.02 Obergeschoss (upper floor) 2
05 Nebenleistungen (ancillary work) 3
Note title 04: it has sub-titles, so its positions carry three-part ordinal numbers like 04.01.0010. That is the shape that breaks naive importers, which is exactly why it is in here.
What makes it a useful test file
Most sample files you find online are five positions of nothing in particular. This one deliberately contains every case that an estimating tool, an importer or a parser has to get right:
- A text-only position (
01.0010) — a note to the bidder, no quantity, no price, and it must never be counted in a total. - An alternative position (
01.0040, Alternativ zu 01.0020) — priced, but not part of the bid sum. - A contingency position (
01.0070, Bedarfsposition) — the acoustic-glass surcharge, ordered only if needed. - A lump-sum position (
03.0040) — Pauschal, so it has no quantity by design. - Two positions with no quantity at all (
02.0040,03.0040) — one measured on site, one lump sum. A validator should flag these; a good one should explain why they are not necessarily errors. - Nested titles (04.01, 04.02) and five different units, including
pschandh. - A long text on every position — the specification prose that carries the real requirements.
If your importer handles all 22 positions, keeps the alternative and contingency positions out of the total, and survives the three-level numbering, it will handle most real tenders.
Three ways to open it
In the browser. GAEB-Check reads it and shows the project header, the title structure, every position with quantity and type, and anything the file gets wrong. Free, nothing installed, nothing stored.
In a text editor. DA XML is XML, so any editor shows you the raw markup — useful for seeing how <BoQCtgy>, <Item> and <Description> actually nest. Less useful for reading 22 positions.
In Python. pip install pyGAEB, then:
from pygaeb import GAEBParser
doc = GAEBParser.parse("musterlv-schule.x83")
for item in doc.iter_items():
print(item.full_oz, item.item_type.value, item.qty, item.unit, item.short_text)
The Python guide goes further — validation, comparison, and writing a priced X84 back. The guide to opening a GAEB file compares all the options, including the vendor viewers.
What to test with it
- An import. Load it into your estimating software and check the position count (22), the title tree, and whether the alternative and contingency positions are marked as such.
- A round trip. Price it, export an X84, and confirm the ordinal numbers still line up with this file. That reconciliation is what the client's software does when your bid arrives — see X83 to X84 for why it matters.
- A validator. The file has two positions without a quantity. A tool that reports them is doing its job; a tool that silently treats them as zero is not.
Where this comes from
The file was generated with pyGAEB, our open-source GAEB engine, and written as DA XML 3.3 against the official 2021-05 schemas. Use it for whatever you like — testing, teaching, a bug report, a demo. If you want to understand what the 83 in the extension means and which file you are supposed to send back, the formats guide explains the whole X80–X89 sequence in one table.
Was this article helpful?
No cookies, no tracking — one vote per reader per day.
Comments
Comments are reviewed before they appear.
Loading comments…