Professional BOQ, CAD and BIM takeoff, 4D scheduling, 5D cost model, and tendering - all in one self-hosted platform.
Like WordPress for construction companies - pick modules from the marketplace, drop in your own, or replace ours with custom-built ones. Same plug-and-play model, but for BOQ, scheduling, cost control, BIM, and tendering.
A platform companies build any construction app on. Use OpenConstructionERP as the base to assemble the exact software a project needs and to build your own modules on top, from estimating and BIM to scheduling and site delivery. One open, powerful foundation for anything you run in construction.
▶ Watch the 12-min walkthrough · Demo · Documentation · Build on it · Discussions · Report Bug
full_preview_compressed.mp4
No Python, no Docker, nothing to set up. Pick your system and run it.
Not sure which file? openconstructionerp.com/download picks the right one for you automatically. Prefer the terminal? pip install openconstructionerp or Docker, see Quick Start below.
| 120K+ cost items |
44 languages |
47 countries |
6 CAD formats |
193 modules |
293 guided cases |
|
|
|
|
|
|
|
|
Ready to try it? See the Getting Started guide for three ways to install (desktop app, pip, Docker) with prerequisites and step-by-step instructions, or jump straight to the Quick Start section below.
Short, practical videos, most of them from the OpenConstruction Academy YouTube channel. Click a thumbnail to watch. Each one follows a real task in the app, from installing it to getting paid. Videos marked DE are in German, the rest are in English.
Start here, estimating and BOQ
Cost databases, quantities and schedule
Tendering, procurement, finance and contracts
More series on the channel
- German, the Landshut learning project from start to finish: Projekt und Verantwortung klären (7:18) · Dokumente und Entscheidungen sichern (6:00), plus the German videos above.
- French, Québec: Démarrer avec OpenConstructionERP en français (3:46) · Estimer un projet de construction (4:18) · Soumissions et BSDQ (4:31) · Facturation, retenue et hypothèque légale (4:37) · Réception des travaux et déficiences (3:44)
- French, site management: Budget de chantier : justifier chaque coût (5:06) · Achats et stock : suivre les quantités (4:37) · Chantier : suivre les heures et le matériel (5:23) · Facture et paiement : comprendre le solde (5:39)
- Talk: The uberization of construction (ETH Zürich) (14:22)
Browse every video on the OpenConstruction Academy channel
Construction cost estimation software is expensive, closed-source, and locked to specific regions. OpenConstructionERP changes that.
| What you get | How it works |
|---|---|
| Free forever | AGPL-3.0 license. No subscriptions, no per-seat fees, no vendor lock-in. |
| Your data, your server | Self-hosted. Everything runs on your machine - nothing leaves your network. |
| 44 languages | Full UI translation: English, German, French, Spanish, Portuguese, Russian, Chinese, Arabic, Hindi, Japanese, Korean, and 33 more. |
| 30+ regional standards | DIN 276, NRM 1/2, CSI MasterFormat, GAEB, ГЭСН, DPGF, GB/T 50500, CPWD, ÖNORM, Birim Fiyat, Sekisan, SINAPI, and more. |
| AI-powered | Connect any LLM provider (Anthropic, OpenAI, Gemini, Mistral, Groq, DeepSeek) for smart estimation. |
| 120,000+ cost items | Nine cost bases - global CWICR (repriced across 30 markets) plus eight national bases (China, Turkey, Brazil, Spain, Italy, Greece, Vietnam, Indonesia). |
The entire UI ships in 44 languages, including full right-to-left support for Arabic, Urdu, Persian and Hebrew. Switch language from any screen and every label, message and report follows.
🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇲🇽 Español (MX) · 🇨🇱 Español (CL) · 🇨🇴 Español (CO) · 🇵🇹 Português · 🇧🇷 Português (BR) · 🇷🇺 Русский · 🇨🇳 简体中文 · 🇸🇦 العربية · 🇮🇳 हिन्दी · 🇹🇷 Türkçe · 🇮🇹 Italiano · 🇳🇱 Nederlands · 🇵🇱 Polski · 🇨🇿 Čeština · 🇯🇵 日本語 · 🇰🇷 한국어 · 🇸🇪 Svenska · 🇳🇴 Norsk · 🇩🇰 Dansk · 🇫🇮 Suomi · 🇧🇬 Български · 🇭🇷 Hrvatski · 🇭🇺 Magyar · 🇮🇩 Bahasa Indonesia · 🇷🇴 Română · 🇹🇭 ไทย · 🇻🇳 Tiếng Việt · 🇺🇦 Українська · 🇬🇷 Ελληνικά · 🇰🇬 Кыргызча · 🇰🇿 Қазақша · 🇧🇩 বাংলা · 🇪🇪 Eesti · 🇵🇭 Filipino · 🇵🇰 اردو · 🇮🇷 فارسی · 🇮🇱 עברית · 🇺🇿 Oʻzbekcha · 🇲🇳 Монгол
| Capability | OpenConstructionERP | Enterprise BIM |
CAD Takeoff |
Legacy Estimating |
PDF Markup |
|---|---|---|---|---|---|
| License | AGPL-3.0 (free) | Proprietary | Proprietary | Proprietary | Proprietary |
| Self-hosted / offline | ✔ | ✖ | ✖ | ⚠ partial | ✖ |
| Price | Free forever | ~€500/mo | ~€300/mo | ~€200/mo | ~€30/mo |
| AI estimation | ✔ 20 LLM providers | ✖ | ✖ | ✖ | ✖ |
| UI languages | 44 | 5 | 3 | 2 | 8 |
| Regional standards | 30+ | 4 | 3 | 2 | - |
| BOQ editor | ✔ | ✔ | ✔ | ✔ | ✖ |
| CAD/BIM takeoff | ✔ RVT IFC DWG DGN | ✔ | ✔ | ✖ | PDF only |
| 4D/5D planning | ✔ | ✔ | ✖ | ✖ | ✖ |
| Cost database included | ✔ 120K+ rates | ✖ extra | ✖ extra | ✖ extra | ✖ |
| Resource catalog | ✔ 7K+ priced | ✖ extra | ✖ | ✖ | ✖ |
| Validation engine | ✔ 158 rules | ⚠ limited | ✖ | ✖ | ✖ |
| REST API | ✔ full | ⚠ limited | ✖ | ✖ | ✖ |
| Real-time collab | ✔ soft locks | ✔ | ✖ | ✖ | ✖ |
| Open data export | ✔ GAEB · XLSX · JSON | ⚠ limited | ⚠ limited | ⚠ limited | PDF only |
| IDS / COBie requirements | ✔ import + export | ✖ | ✖ | ✖ | ✖ |
| Property dev lifecycle | ✔ Lead → SPA → Handover | ✖ | ✖ | ✖ | ✖ |
| 3D globe / geo-anchor | ✔ Cesium 3D Tiles | ⚠ map only | ✖ | ✖ | ✖ |
Comparison reflects typical category capabilities based on publicly available information as of Q3 2026. Pricing is approximate (per-seat, list price) and varies by vendor and region. OpenConstructionERP is an independent open-source project and is not affiliated with any commercial vendor in the categories above.
A quick tour of the main workspaces. Every screen is the real application running the 70-project demo spanning 30+ countries that ships with a fresh install.
Build professional cost estimates with a powerful BOQ editor. The full lifecycle - from first sketch to final tender submission:
- Hierarchical BOQ structure - Sections, positions, sub-positions with drag-and-drop reordering
- Inline editing - Click any cell to edit. Tab between fields. Undo/redo with Ctrl+Z
- Resources & assemblies - Link labor, materials, equipment to each position. Build reusable cost recipes
- Markups - Overhead, profit, VAT, contingency - configure per project or use regional defaults
- Automatic calculations - Quantity × unit rate = total. Section subtotals. Grand total with markups
- Validation - 158 built-in rules check for missing quantities, zero prices, duplicate items, and compliance with DIN 276, NRM, MasterFormat
- Export - Download as Excel, CSV, PDF report, or GAEB XML (X83)
Access the world's construction pricing data:
- Cost bases - 120,000+ cost items across 9 bases: the global CWICR database covering all major construction trades, repriced across 30 regional markets, plus 8 national bases built on each country's own norm system (China, Turkey, Brazil, Spain, Italy, Greece, Vietnam, Indonesia)
- Smart search - Find items by description, code, or classification. AI-powered semantic search matches meaning, not just keywords ("concrete wall" finds "reinforced partition C30/37")
- Resource catalog - 7,000+ materials, equipment, labor rates, and operators. Build custom assemblies from catalog items
- Regional pricing - Automatic price adjustment based on project location. Compare rates across regions
- Import your data - Upload your own cost database from Excel, CSV, or connect via API
Extract quantities from any source - drawings, models, text, or photos:
- CAD/BIM takeoff - Upload RVT, IFC, DWG, or DGN files. DDC converters extract elements with volumes, areas, and lengths automatically
- Interactive QTO - Choose how to group extracted data: by Category, Type, Level, Family. Format-specific presets for RVT and IFC
- Linked geometry preview - Click the BIM link badge on any BOQ position to see a 3D preview of linked elements with interactive rotate/zoom/pan controls
- BIM Quantity Picker - Select quantities (area, volume, length) directly from linked BIM elements and apply them to BOQ positions. The source parameter name is shown next to the unit
- DWG polyline measurement - Click any polyline in the DWG viewer to instantly see area, perimeter, and individual segment lengths with on-canvas labels
- PDF measurement - Open construction drawings directly in the browser. Measure distances, areas, and count elements with calibrated scale
- AI estimation - Describe your project in plain text, upload a building photo, or paste a PDF - AI generates a complete BOQ with quantities and market rates
- AI Cost Advisor - Ask questions about pricing, materials, or estimation methodology. AI answers using your cost database as context
- Cost matching - After AI generates an estimate, match each item against your CWICR database to replace AI-guessed rates with real market prices
The platform also includes 158-rule validation engine (DIN 276, NRM, MasterFormat, GAEB), 3D globe visualization (Cesium), property development lifecycle, accommodation management, an AI assistant that prepares changes for a person to approve, BIM clash detection, 4D/5D scheduling, tendering and risk management, PDF markups, punch lists, daily diary with HSE tracking, and 30+ regional classification standards. See MODULES.md for the full list of 193 modules.
Get productive in under 10 minutes:
- Choose language - Select from 44 languages. The entire UI switches instantly
- Select region - Determines default cost database, currency, and classification standard
- Load cost database - One-click import of CWICR pricing data for your region (120,000+ items)
- Import resource catalog - Materials, labor, equipment, and pre-built assemblies
- Configure AI (optional) - Enter an API key from any supported LLM provider
- Create your first project - Set name, region, standard, and start estimating
Download the installer for your operating system, run it, and OpenConstructionERP opens as a native desktop app. No Python, no pip, no Docker, and no database to set up. Everything runs locally on your machine.
- Download for your platform picks the right file for your OS automatically.
- Or grab one straight from the latest release: Windows
.exeinstaller, macOS.dmg(Apple Silicon), or Linux.deb/.AppImage.
Your operating system will warn you before it runs the installer, and that is expected. There is no code signing certificate for this project yet, so the desktop builds are unsigned. On Windows, SmartScreen says "Windows protected your PC"; choose More info, then Run anyway. On macOS, Gatekeeper says the developer cannot be verified; open the app from the Finder context menu and choose Open, or clear it with xattr -dr com.apple.quarantine on the installed app. Linux packages are unaffected. If you would rather verify the download than trust the warning, every release carries SHA256SUMS together with a Sigstore signature and certificate, so you can check the bytes you received against what the build produced.
There is no Intel macOS build at the moment. On an Intel Mac, use the pip or Docker route below.
The first launch takes about a minute while it sets up your local database, then every launch after that is fast. Open source under AGPL-3.0.
Prefer the command line? The options below (pip, Docker, source) need Python 3.12+. Check with
python --version.
pip install --upgrade openconstructionerp
openconstructionerpThat's it. The single wheel ships the backend plus the pre-built React frontend. The first run sets up a local embedded PostgreSQL database (no Docker, no setup), loads the demo data, opens your browser at http://localhost:8080, and you sign in with demo@openconstructionerp.com / DemoPass1234!. No Node.js and no extra services. Every later run, just type openconstructionerp again. PyPI package.
If the openconstructionerp command is not found after install, run it through Python instead. This works on every operating system and never depends on PATH:
python -m openconstructionerpDeploying on a server? By default the app listens on
127.0.0.1(localhost only). To make it reachable over the network, add--host 0.0.0.0:openconstructionerp serve --host 0.0.0.0 --port 8080For a production setup with systemd and reverse proxy, see docs/INSTALL_LINUX.md.
"Command not found"? Run
python -m openconstructionerpinstead. This works on every OS without touching PATH. Alternatively, install with pipx which handles PATH automatically. For platform-specific PATH setup and Ubuntu/Debian PEP 668 workarounds, see docs/getting-started.md.If something looks off, run
openconstructionerp doctorfor a per-check OK/WARN/ERROR report.
# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/datadrivenconstruction/OpenConstructionERP/main/scripts/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/datadrivenconstruction/OpenConstructionERP/main/scripts/install.ps1 | iexIf you would rather not think about PATH at all, use this. It picks Docker if installed, otherwise uv, otherwise a dedicated Python virtual environment, installs OpenConstructionERP there, puts the openconstructionerp command on your PATH automatically, and finishes with a short panel showing the URL, the demo login and how to start. It also offers to launch right away. Open a new terminal afterwards and openconstructionerp just works. Runs at http://localhost:8080.
From the published image, no clone needed:
curl -fsSL https://raw.githubusercontent.com/datadrivenconstruction/OpenConstructionERP/main/docker-compose.quickstart.yml -o docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/datadrivenconstruction/OpenConstructionERP/main/docker-compose.quickstart.image.yml -o docker-compose.override.yml
echo "POSTGRES_PASSWORD=$(openssl rand -base64 24)" > .env
echo "JWT_SECRET=$(openssl rand -hex 32)" >> .env
docker compose pull app && docker compose up -dOr build from source (also the better choice on Apple Silicon):
git clone https://github.com/datadrivenconstruction/OpenConstructionERP.git
cd OpenConstructionERP
echo "POSTGRES_PASSWORD=$(openssl rand -base64 24)" > .env
echo "JWT_SECRET=$(openssl rand -hex 32)" >> .env
make quickstartOpen http://localhost:8080. See docs/getting-started.md for Windows PowerShell commands and the full compose file reference.
git clone https://github.com/datadrivenconstruction/OpenConstructionERP.git
cd OpenConstructionERP
# Install dependencies
pip install -e ./backend[server]
cd frontend && npm install && cd ..
# Start (Linux/macOS)
make dev
# Start (Windows - two terminals)
# Terminal 1: cd backend && uvicorn app.main:create_app --factory --reload --port 8000
# Terminal 2: cd frontend && npm run devOpen http://localhost:5173 - for hacking on the codebase. Requires Python 3.12+ and Node.js 22 or newer (CI and the Docker image build on 24).
Three demo accounts are created automatically on first start. Each
password is generated per installation (via secrets.token_urlsafe)
and saved to ~/.openestimator/.demo_credentials.json (chmod 600). The
startup log tells you where the file is, and never prints the password
itself, because a log is the thing that gets copied, shipped and shared:
[seed] Demo user created: demo@openconstructionerp.com. Password saved to /home/you/.openestimator/.demo_credentials.json (set DEMO_USER_PASSWORD before the first start to choose it)
Only if that file cannot be written is the password printed, once, to the console and not to the log. To pin known passwords (e.g. for a team demo or CI), set the env vars before the first boot:
DEMO_USER_PASSWORD- admin (demo@openconstructionerp.com)DEMO_ESTIMATOR_PASSWORD- estimator (estimator@openconstructionerp.com)DEMO_MANAGER_PASSWORD- manager (manager@openconstructionerp.com)
| Account | Password | Role | |
|---|---|---|---|
| Admin | demo@openconstructionerp.com |
see .demo_credentials.json |
Full access |
| Estimator | estimator@openconstructionerp.com |
see .demo_credentials.json |
Estimator |
| Manager | manager@openconstructionerp.com |
see .demo_credentials.json |
Manager |
On a local default install you can simply type
DemoPass1234!on the sign-in form for any demo account. The built-in demo login accepts it, so the documented credential always works. The per-install random password above is the stored hash, kept for reference and for API tokens. This shortcut turns off wheneverSEED_DEMO=false, which you should set for any internet-exposed deployment.
Demo accounts include 70 pre-loaded projects across 30+ countries with complete BOQs, schedules and cost models, from a Berlin residential block and a Paris school to a Dubai warehouse, a Shanghai office tower, a Toronto condo and a Guangzhou renovation.
Security note. For any internet-exposed deployment, set the three
DEMO_*_PASSWORDvariables to strong, unique secrets, or disable demo accounts entirely withDISABLE_DEMO_ACCOUNTS=1. Do not reuse passwords from examples, screenshots, or earlier versions of this README.
| Layer | Technology | Purpose |
|---|---|---|
| Backend | Python 3.12+ / FastAPI | Async API, Pydantic v2 validation, modular architecture |
| Frontend | React 18 / TypeScript / Vite | SPA with code splitting, 45 locale files |
| Database | PostgreSQL 16+ (only) | OLTP with JSON columns; an embedded PostgreSQL starts automatically for local dev, so there is no Docker, no separate database, and nothing to configure |
| UI | Tailwind CSS / AG Grid | Professional data grid, responsive design, dark mode |
| AI | Any LLM via REST API | Anthropic, OpenAI, Gemini, Mistral, Groq, DeepSeek |
| Vector Search | LanceDB (embedded) / Qdrant | Semantic cost item search, 384d or 3072d embeddings |
| CAD/BIM | DDC cad2data | RVT, IFC, DWG, DGN → structured quantities |
| i18n | i18next + 45 locale files | 44 offered in the language picker (Mongolian ships as a locale file but is not in the picker yet); full RTL support (Arabic, Urdu, Persian, Hebrew), locale-aware formatting |
For a high-level system overview, stack diagram and module structure, see docs/architecture/OVERVIEW.md.
OpenConstructionERP is built around seven cooperating pipelines that turn closed CAD/BIM files (RVT, IFC, DWG, DGN) into structured, queryable ERP data - without locking you into a proprietary stack. Every module in the platform plugs into one or more of these stages:
- Mining - collect existing project data (CAD/BIM models, CDE drops, COBie deliverables) into a semi-structured pool. Handled by
cad,documents,bim_hub,file_searchmodules + the DDC cad2data converters (RVT/IFC/DWG/DGN → canonical JSON). - QTO Check & Quantity Take-off rules - apply rule sets per discipline / family / type to extract quantities deterministically. Handled by
takeoff,requirements,validation, and the rule editor inmatch-elements. - BlackBox (company standard) - codify your firm's classifications, formulas, unit factors and assembly recipes as a single canonical rule book (COBie / CFIHOS / SQL / Excel / Access). Handled by
costs,assemblies,catalog,cost_intelligence. - New project modeling - apply the BlackBox to a fresh model: geometry → filtering → grouping → verification → BOQ. Handled by
boq,projects,match-elements,clash. - BlackBox mapping - map a new project's raw element list onto the canonical rule book via vector + lexical + rule-based matchers. Handled by
match-elements(7-stage pipeline) + AI Estimate. - Project-specific data (4D/5D/6D) - derive scheduling, cost, hours, ordering and environmental footprint per group. Handled by
scheduling,advanced_schedule,5d_planner,risk,carbon,hse. - Saving data & Machine Learning - persist project history into the database, data lake and ML models so each new project starts further ahead. Handled by
analytics,bi_dashboards,ai_chat,cost_intelligence, and the rule-learning loop inclash(Wave A4) andmatch-elements.
The right-hand side of the diagram is the automatic data retrieval layer that every UI surface (Dashboard, BOQ editor, /clash, /match-elements, /files, /scheduling) consumes: dashboards, calculations, reports, tables, charts, geometries, and ERP-ready exports - all driven from the same canonical store. The Machine-Learning column on the far right is where the platform progressively automates classification, parameterisation, recognition and marking, replacing manual steps (
This pipeline is the reason OpenConstructionERP can replace several commercial point-solutions with a single self-hosted stack - every module reads from and writes to the same canonical data layer.
Plain-text version (for screen readers or non-Mermaid renderers)
┌──────────────────────────────────────────────────┐
│ Frontend (React SPA) │
│ TypeScript · Tailwind · AG Grid · PDF.js │
└──────────────────┬───────────────────────────────┘
│ REST + SSE
┌──────────────────┴───────────────────────────────┐
│ Backend (FastAPI) │
│ 193 auto-discovered modules · Plugin system │
├──────────────────────────────────────────────────┤
│ BOQ · Costs · Schedule · 5D · Validation · AI │
│ Takeoff · Tendering · Risk · Reports · Catalog │
│ Requirements · Markups · Punch List · BIM Hub │
│ PropDev · Geo Hub · Coordination · Clash AI │
│ Accommodation · Floating Chat · 26 widgets │
├──────────────────────────────────────────────────┤
│ Database (PostgreSQL, embedded in dev) │
│ Vector DB (LanceDB / Qdrant) │
│ CAD Converters (DDC cad2data) │
│ CV Pipeline (PaddleOCR + YOLOv11) │
└──────────────────────────────────────────────────┘
GitHub release assets only, does not include pip install from PyPI, docker pull from GHCR, git clone, or direct downloads from openconstructionerp.com.
OpenConstructionERP is built by DataDrivenConstruction and shaped by feedback from users worldwide. If you find it useful:
- ⭐ Star this repo - helps others discover the project
Join Discussions - ask questions, share ideas, help others Report issues - help us improve Professional consulting - custom deployment, training, enterprise support
OpenConstructionERP is shaped by the people who report bugs, request features, and ask the sharp questions that push the platform forward. We credit every one of them. For supply-chain security, we do not merge external pull requests - see CONTRIBUTING.md for how contributions work here.
See CONTRIBUTORS.md for the full list. Want to join it? Open an issue or say hello in the community chat.
Report vulnerabilities privately via GitHub Security Advisories or info@datadrivenconstruction.io. See SECURITY.md for the full coordinated-disclosure policy and supported versions.
AI suggestions produced by this software are preliminary estimates. A qualified construction-estimation professional must verify all quantities, classifications, and costs before any contractual or tender-submission use. See NOTICE and TERMS.md §4.
All product names, logos, and trademarks referenced in this repository are property of their respective owners. Any comparative references to commercial categories or products are made for fair comparative purposes based on publicly available information. OpenConstructionERP is an independent project and is not affiliated with, endorsed by, or sponsored by any third-party trademark owners. Full attributions in NOTICE.
OpenConstructionERP has been under continuous development for more than six years and has benefited from contributions, feedback, testing, and domain expertise from many different people.
To maintain a consistent architecture and reduce security, dependency, and integration risks, the project follows a centralized integration model.
This means that most production code is ultimately reviewed, consolidated, tested, and published through a single maintainer account. As a result, the GitHub contributor history does not necessarily reflect the actual number of people who have contributed to the project.
This approach is intentional. For a platform with many interconnected modules, unrestricted integration of changes from different environments, dependency versions, coding approaches, and configurations can gradually lead to incompatibilities and architectural fragmentation.
Rather than allowing the codebase to evolve into a collection of loosely connected components, changes are integrated into one coherent development line and undergo review and testing before being merged into the main project.
A single publishing account represents a controlled integration and release process designed to preserve stability, security, and architectural consistency.
AGPL-3.0 - see LICENSE. Third-party attributions in NOTICE.
You can freely use, modify, and distribute this software. If you modify and deploy it as a service, AGPL §13 requires you to make the corresponding source code available under the same licence.
For commercial licensing, which lifts the AGPL obligations on OpenConstructionERP itself so you can deploy it closed-source, see COMMERCIAL-LICENSE.md or contact info@datadrivenconstruction.io.
Read section 4a of that file before you deploy. Our commercial licence covers our own code and cannot cover anyone else's, and one dependency we ship in every install, PyMuPDF, is separately under the AGPL. A closed-source deployment has to deal with that component on its own terms. Section 4a names the features that use it and sets out the three options.
- PRIVACY.md - GDPR / UK DPA / CCPA / LGPD baseline
- TERMS.md - terms of use for the hosted instance
- COOKIES.md - browser storage inventory
- SECURITY.md - responsible disclosure



































