← All posts

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

FormatGAEB DA XML 3.3 (schema version 2021-05)
Exchange phaseX83 — a request for bids: quantities and texts, no prices
ProjectErweiterung Grundschule Am Lindenhof — Fenster, Türen, Sonnenschutz
Project number2026-0417
ClientStadt Musterstadt, Hochbauamt
Bid opening14 October 2026
Construction1 March – 31 August 2027
Positions22, in 5 titles
Units usedSt, m, m², psch, h
Size15 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 psch and h.
  • 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.

Comments

Comments are reviewed before they appear.

Loading comments…

    Only used if we need to reply to you directly.

    Your name and comment will be published after review. Privacy policy.