You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The #1 open-source workspace for construction project management
Professional BOQ, 4D scheduling, 5D cost model, and tendering - all in one open-source 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.
1-minute teaser above · for the full 12-minute walkthrough → watch on YouTube · onboarding → BoQ → BIM → DWG → PDF → AI → dashboard
Download the free desktop app
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.
⭐ If you want to see new updates and database versions and if you find our tools useful please give our repositories a star to see more similar applications for the construction industry.
Star OpenConstructionERP on GitHub and be instantly notified of new releases.
What's New in v6
v6 is the version where setup stops being a chore. Install the wheel, run one command, and the app boots into a full PostgreSQL database with the demo data already loaded. No Docker, no connection strings, no migration step. The whole platform now ships as 117 modules out of the box.
Embedded PostgreSQL 16 is the default runtime. The first run brings up a local PostgreSQL server bundled with the wheel, so there is nothing to install and nothing to configure. It just boots. If you want the lightest possible local setup, set OE_USE_SQLITE=1 and the app falls back to plain SQLite.
117 modules out of the box, 27 languages, 55,000+ cost items. Everything is on by default, the full UI is translated, and the CWICR pricing data covers every major trade across 11 regional price sets.
Partner packs. Preset bundles you can pip install, drop into a folder as a zip, or upload right in the app. They apply live with no restart, so a partner deployment is one step.
Cost spine. Control accounts and cost lines give you a proper budget structure with FX-correct rollups. Amounts are grouped by currency and never blended, so totals stay honest across regions.
Geo hub. Cesium 3D Tiles in the browser plus a one-click "place project on the map", so every job site has real coordinates and shows up on the globe.
One-click country packs. Pick a country and the language, the local cost database and a couple of demo projects all install together in a single step.
Cross-platform CAD converters. The DDC cad2data converters auto-download on Windows, Linux and macOS, so RVT, IFC, DWG and DGN takeoff works the same everywhere.
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.
27 languages
Full UI translation: English, German, French, Spanish, Portuguese, Russian, Chinese, Arabic, Hindi, Japanese, Korean, and 16 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.
55,000+ cost items
CWICR database with 11 regional pricing databases (DACH, UK, US, France, Spain, Brazil, Russia, UAE, China, India, Canada).
How It Compares
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
✔ 7 LLM providers
✖
✖
✖
✖
UI languages
27
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
✔ 55K+ rates
✖ extra
✖ extra
✖ extra
✖
Resource catalog
✔ 7K+ priced
✖ extra
✖
✖
✖
Validation engine
✔ 42 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 Q1 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.
See It In Action
Each block below is a short GIF cut from the full walkthrough above - same order as the video, so you can jump to whichever workflow matters most. Prefer one continuous video? ▶ Watch the 12-minute walkthrough on YouTube.
1 · Role-Based Onboarding Sign in as Admin / Estimator / Manager - the wizard pre-selects the right 17 of 46 modules for your role
2 · New Project, Any Region Pick currency, classification standard, regional factor - live map & weather come along for free
3 · Build the Bill of Quantities Keyboard-first editor, 55K+ priced items, AI cost finder & Smart AI - quality score updates live
4 · BIM → BOQ Bulk Link Link 100 Revit walls → one BOQ line with aggregated area / volume / length - no IfcOpenShell
5 · DWG Drawings & Layers 636 wall entities across 10 DWG layers - every one linkable to the BOQ, measured in place
6 · PDF Takeoff Drop a floorplan, measure distance / area / count, push the numbers straight into the BOQ
CAD/BIM takeoff - Upload Revit (.rvt), IFC, AutoCAD (.dwg), or MicroStation (.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 Revit 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
Geo Hub (3D Globe)
Anchor every project on a real spherical earth - Cesium 3D Tiles 1.1 with live HUD and pin layers:
Pin layers - HSE incidents, Punchlist items, Daily Diary entries plotted on the globe with category icons
"View on map" CTAs - One click from BIM viewer, PropDev plot, Daily Diary entry, Project card → globe with that asset selected
DWG / PDF raster overlay - Upload a site plan or floorplan, drag four corner pins onto the globe → the raster drapes over real terrain; polygon crop with vertex drag for cookie-cutter trimming
Canonical pipeline - POST /api/v1/geo-hub/from-canonical/{cad_import_id} turns any DDC cad2data conversion into glTF 3D Tiles via pure-Python pygltflib (no commercial toolkit needed)
Example: open a Berlin masterplan in Geo Hub, switch to Development mode, see all 12 plots colored by sale status, click one → reservation pipeline opens with that buyer pre-filtered.
Property Development
End-to-end real-estate developer workflow - from first lead to handover snags to warranty close-out:
Lead → Reservation → SPA → Handover → Warranty - Full lifecycle FSM with auto-creation of ContractParty on SPA conversion, Payment Schedule state machine, idempotent stage transitions
Sub-entity tabs - Phases · Blocks · Brokers · Price Matrix · Escrow - one screen for every dev operation, no page hops
House Type catalogue - ISO 3166-1 picker covering 180+ countries plus Custom region; CountryCombobox + HouseTypeEditModal share the same backend taxonomy as catalog & costs
SnagsBlock per handover - Photo upload, status (Open / Resolved / Disputed), one-click promote-to-warranty when a snag survives the defects-liability period
Contacts ↔ PropDev bridge - Every Lead and Buyer is idempotently tagged as a Contact via Contact.module_tags, so CRM and PropDev stay in sync without duplicates
Price Matrix - Per-phase × house-type × view-premium grid with currency-aware totals and bulk apply
Escrow - Per-buyer payment schedule with milestone receipts and outstanding balance roll-up
Bootstrap to Accommodation - One click on a development block creates a worker-camp / rental inventory in the Accommodation module (1:1 plots → rooms, idempotent)
Example: import a 240-unit residential masterplan, generate price matrix from house-type × view, push to globe, accept 18 reservations across 3 brokers, convert 11 to SPA, hand over 4, track 7 open snags in the warranty period - all in one app.
Accommodation
One module for three lodging kinds - worker camps for site crews, rentals for staff, hotels for visiting consultants - with rooms, bookings and charges in a unified data model:
Three kinds, one module - worker_camp · rental · hotel, with tab filter and per-kind capacity counters on every card
Rooms with status - available · occupied · maintenance · blocked; 409 prevents booking into a blocked or maintenance room
Booking state machine - reserved → checked_in → checked_out with cancelled from any non-final state; idempotent same-state updates; final states locked
Charges with Decimal precision - Base rent, extras, deposits, refunds, all in the room's inherited currency (no hardcoded EUR)
PropDev bootstrap - One click on a development block iterates its plots and creates rooms 1:1, idempotent (running twice creates nothing extra)
HR autobook (suggest-confirm) - Pick an employee Contact → suggest the lowest-labelled available worker_camp room → human confirms with a real booking POST
BIM + Geo aware - bim_element_id carries through from PropDev plots; cards with geo_lat/geo_lon get a "Geo" deeplink to the globe
IDOR-hardened - Every helper returns 404 (never 403) on cross-tenant access; tested in backend/tests/modules/accommodation/
Example: 240-plot worker camp on a remote site - bootstrap from the PropDev block, HR autobooks 187 crew members from the Contacts directory over three weeks, base-rent charges roll up to the project P&L automatically.
Floating Chat with the ERP Database
Bottom-right floating chat on every page - talks to the entire ERP database through 17 typed tools (projects, BOQ items, schedule, validation, risks, CWICR search, BIM elements, full semantic search):
Easiest: download the desktop app (no Python, no setup)
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.
That'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 openconstructionerp
"Command not found"? You do not need to touch PATH
If your terminal says openconstructionerp: command not found (macOS/Linux) or 'openconstructionerp' is not recognized (Windows), the package installed fine. pip just put the launcher in a per-user scripts folder that is not on your PATH. You have three options, easiest first.
1. Run it through Python (simplest, no setup). This works from any folder, on every OS, and never depends on PATH. We recommend this:
python -m openconstructionerp
Every command works this way: python -m openconstructionerp serve, python -m openconstructionerp doctor, and so on.
2. Let pipx handle PATH for you.pipx installs the app in its own isolated environment and puts the openconstructionerp command on your PATH automatically:
python -m pip install --user pipx
python -m pipx ensurepath # then close and reopen the terminal
pipx install openconstructionerp
openconstructionerp
3. Add the scripts folder to PATH yourself, if you want the short openconstructionerp command. Pick your platform:
Windows
First find the folder pip used (it is printed as a warning during install, usually %APPDATA%\Python\Python3xx\Scripts):
python -m site --user-base
Add \Scripts to that path. Then either:
Permanent (recommended): open the Start menu, search for "Edit environment variables for your account", edit the Path variable, and add the folder (for example C:\Users\you\AppData\Roaming\Python\Python312\Scripts). Open a new terminal and openconstructionerp works.
This session only:
set PATH=%APPDATA%\Python\Python312\Scripts;%PATH%
(replace Python312 with your version).
macOS / Linux
pip installs user scripts to ~/.local/bin. Add it to your PATH by appending one line to your shell profile (~/.zshrc on modern macOS, ~/.bashrc on most Linux):
echo'export PATH="$HOME/.local/bin:$PATH"'>>~/.zshrc # or ~/.bashrcsource~/.zshrc # or ~/.bashrc
openconstructionerp
Ubuntu / Debian users: on Ubuntu 23.04+ (including Ubuntu 26) and Debian 12+, pip install into the system Python fails with error: externally-managed-environment (PEP 668). The simplest fix is pipx (above), which is built for exactly this. If you prefer a venv:
If something looks off, run openconstructionerp doctor (or python -m openconstructionerp doctor) for a per-check OK/WARN/ERROR report.
Alternative 1: One-line installer (handles PATH for you)
# 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 | iex
If 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.
Alternative 2: Docker compose
git clone https://github.com/datadrivenconstruction/OpenConstructionERP.git
cd OpenConstructionERP
make quickstart
Alternative 3: Local development (clone + npm + uvicorn)
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 dev
Open http://localhost:5173 - for hacking on the codebase. Requires Python 3.12+ and Node.js 20+.
Demo Accounts
Three demo accounts are created automatically on first start. Each
password is generated per installation (via secrets.token_urlsafe)
and printed to the backend startup log so you see it immediately, e.g.:
[seed] Demo user created: demo@openconstructionerp.com / xK7p_Q2nR8sT4uV6wX9yZ
[seed] Pre-set DEMO_USER_PASSWORD env to skip random generation
The same passwords are also persisted to
~/.openestimator/.demo_credentials.json (chmod 600) so you can recover
them later. To pin known passwords (e.g. for a team demo or CI), set the
env vars before the first boot:
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 whenever SEED_DEMO=false, which you should set for any internet-exposed deployment.
Demo accounts include 5 pre-loaded projects from Berlin, London, New York, Paris, and Dubai with complete BOQs, schedules, and cost models.
Security note. For any internet-exposed deployment, set the three
DEMO_*_PASSWORD variables to strong, unique secrets, or disable demo
accounts entirely with DISABLE_DEMO_ACCOUNTS=1. Do not reuse
passwords from examples, screenshots, or earlier versions of this README.
Full RTL support (Arabic), locale-aware formatting
Architecture
How the platform turns raw CAD/BIM into structured ERP data
OpenConstructionERP is built around seven cooperating pipelines that turn closed CAD/BIM files (RVT, IFC, DWG, DGN, PLN, TSK) 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_search modules + the DDC cad2data converters (RVT/IFC/DWG/DGN/PLN → 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 in match-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 in clash (Wave A4) and match-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 () with automatic steps () over time.
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.
Technical stack
flowchart TB
UI["Frontend SPA<br>React 18, TypeScript, Vite<br>AG Grid, Tailwind, PDF.js"]
subgraph Backend ["FastAPI Backend, 111 modules"]
CORE["Core<br>Module loader, Event bus, Hooks, RBAC<br>Validation, FSM + audit log"]
ESTIM["Estimating<br>BOQ, Costs, Catalog, Assemblies<br>Takeoff, BIM Hub, Match-Elements, 5D"]
FIELD["Field Operations<br>Service, Equipment, Daily Diary<br>Portal, Resources & Crew"]
COMM["Commercial<br>CRM, Contracts, Subcontractors<br>Bid Management, Variations, Suppliers, Property Dev"]
QSAFE["Schedule & Quality<br>Advanced Schedule (LPS/CPM/EVM)<br>QMS, HSE, Carbon & ESG, BI Dashboards"]
AIS["AI<br>AI Chat SSE, AI Estimate, Cost Intelligence<br>7 LLM providers"]
CORE --> ESTIM
CORE --> FIELD
CORE --> COMM
CORE --> QSAFE
CORE --> AIS
end
subgraph Data ["Data layer"]
PG[("PostgreSQL 16<br>SQLite in dev")]
VEC[("Vector DB<br>LanceDB / Qdrant")]
S3[("MinIO / S3<br>files, CAD, PDFs")]
end
subgraph Pipelines ["Pipelines"]
CAD["DDC cad2data<br>RVT, IFC, DWG, DGN to canonical JSON"]
CV["CV / OCR<br>PaddleOCR 3.0, YOLOv11<br>PDF takeoff, symbol detection"]
end
UI -- "REST, SSE" --> CORE
BIZ --> PG
BIZ --> VEC
BIZ --> S3
CAD --> BIZ
CV --> BIZ
classDef fe fill:#1f6feb,stroke:#0d3885,color:#fff;
classDef be fill:#238636,stroke:#104822,color:#fff;
classDef ai fill:#db6d28,stroke:#7a3c14,color:#fff;
classDef data fill:#8250df,stroke:#4a2c7d,color:#fff;
class UI fe
class CORE,BIZ be
class AIS ai
class PG,VEC,S3,CAD,CV data
LoadingPlain-text version (for screen readers or non-Mermaid renderers)
OpenConstructionERP includes security hardening for production deployments:
Path traversal protection on all file download endpoints
CORS wildcard blocking in production mode
Bounded input validation on bulk price operations
Generic error responses to prevent account enumeration
Production startup checks for secrets, credentials, and database configuration
Do not open public GitHub issues for security vulnerabilities.
Report privately via
GitHub Security Advisories
or by email to
info@datadrivenconstruction.io.
See SECURITY.md for the full coordinated-disclosure
policy, response timelines, supported versions, scope, and
regulatory-reporting obligations under EU Regulation 2024/2847
(Cyber Resilience Act).
AI disclaimer
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.
Trademarks
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.
Export control
This software contains cryptographic functionality (bcrypt password
hashing, JWT signing). Export is classified under US EAR 740.17 (TSU
mass-market exemption) and EU Regulation 2021/821 (dual-use). The
Software is not authorised for download, use, or re-export to
jurisdictions subject to comprehensive OFAC sanctions. See NOTICE
for the full notice.
License
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.
Unlock the Power of Data in Construction Move to full-cycle data management where only unified structured data & processes remain and where your data is yours