Create bills of quantities and estimates in OpenConstructionERP: search cost items, build BOQ sections, link BIM elements in bulk, validate the BOQ, and export GAEB/XLSX/JSON. Use for any estimating workflow on the platform.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --skill oce-estimate-boq --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Oce Estimate Boq?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/datadrivenconstruction-oce-estimate-boq)More formats (shields.io, HTML) on the badges page.
---
name: oce-estimate-boq
description: "Create bills of quantities and estimates in OpenConstructionERP: search cost items, build BOQ sections, link BIM elements in bulk, validate the BOQ, and export GAEB/XLSX/JSON. Use for any estimating workflow on the platform."
---
# BOQ & Estimation in OpenConstructionERP
## Workflow
1. **Pick a cost base** — load it (see `oce-load-cost-bases`) so items are searchable.
2. **Create the BOQ** — `POST /api/v1/boqs` with project, currency, classification standard (DIN 276 / NRM / MasterFormat / regional).
3. **Find items** — `GET /api/v1/costs/?region=TR_NATIONAL&q=duvar` (SQL search) or the semantic path (`/qdrant-search` when Qdrant is on). Every item carries a `components[]` breakdown (labour/material/machine with norm quantities and unit prices).
4. **Link quantities** — either manual entry, BIM bulk-link (`POST /api/v1/bim/elements/bulk-link` style endpoints aggregate area/volume/length per element), or PDF/DWG takeoff measurements.
5. **Validate** — `POST /api/v1/boqs/{id}/validate/` runs rule packs (BOQ quality, DIN276, NRM, GAEB) and returns violations; quality score updates live.
6. **Export** — GAEB X83/X84, XLSX, JSON for tendering.
## Cost item anatomy (what the platform stores per item)
```json
{
"code": "15.115.1008",
"description": "El veya kompresörle ... yumuşak kaya kazılması",
"unit": "m³",
"rate": 1044.5,
"currency": "TRY",
"classification": {"collection":"İnşaat","department":"İnşaat","section":"15.115","category":"CONSTRUCTION WORK"},
"components": [
{"name":"Kompresör","type":"equipment","quantity":0.2,"unit_rate":1991.73,"cost":398.35},
{"name":"Düz işçi","type":"labor","quantity":1.25,"unit_rate":165.0,"cost":206.25}
],
"metadata": {"labor_cost":437.25,"equipment_cost":398.35,"labor_hours":3.83}
}
```
## Estimation inputs the platform supports
| Input | Path | Notes |
|---|---|---|
| Natural language | `POST /api/v1/costs/match` (or AI estimate) | multi-lingual matching |
| Photo | AI photo-to-BOQ (GPT-4o + YOLO) | returns scoped BOQ with confidence |
| BIM model | element → cost matching (`/suggest-for-element`) | uses volume/area from the model |
| DWG/PDF | takeoff measurement | vectors/rooms detected, pushed into BOQ |
## Pricing notes (honest rules)
- National bases are priced in their home currency; markets are PPP-repriced upstream (no FX inside the platform).
- Coefficient bases (Vietnam Dinh Muc, Indonesia AHSP) import with `rate = 0` — attach a market resource price sheet before estimating.
- Turkey positions carry the source book's markup (e.g. 25% contractor profit) inside `total_cost_per_position`; resource sums reconcile to `total_resource_cost_per_position`.
## Best practices
1. Always verify `unit` matches your takeoff quantity (m²/m³/m/kg).
2. Check the `components[]` sum against `rate` before committing a binding estimate.
3. Keep the region currency on the BOQ; never blend currencies in one total.
4. Re-run validation after every bulk edit — the quality score is the fastest signal.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!