@datadrivenconstruction/ddc-cwicr
v1.0.0
Published
Open Construction Cost Estimation Database — 55,719 work items, 27,672 resources, 9 languages with regional pricing
Maintainers
Readme
@datadrivenconstruction/ddc-cwicr
Open Construction Cost Estimation Database — 55,719 work items, 27,672 resources, 85 fields, 9 languages with regional pricing.
Part of the Data Driven Construction ecosystem Live demo: openconstructionestimate.com
What is DDC CWICR?
Construction Work Items, Components & Resources (CWICR) — a comprehensive multilingual construction cost database designed for automated cost estimation from text, photos, PDFs, and CAD/BIM models.
Key Features
- 55,719 work items with full resource breakdowns
- 27,672 resources (materials, labor, equipment)
- 85 structured fields per record
- 9 languages with regional pricing
- Pre-computed OpenAI embeddings (3,072 dimensions) for semantic search
- Apache Parquet format for fast analytics
Supported Languages & Regions
| Code | Language | Region | Currency |
| ---- | ----------- | ---------------- | -------- |
| ar | Arabic | Dubai | AED |
| de | German | Berlin | EUR |
| en | English | Toronto | CAD |
| es | Spanish | Barcelona | EUR |
| fr | French | Paris | EUR |
| hi | Hindi | Mumbai | INR |
| pt | Portuguese | São Paulo | BRL |
| ru | Russian | St. Petersburg | RUB |
| zh | Chinese | Shanghai | CNY |
Installation
npm install @datadrivenconstruction/ddc-cwicrThis package includes all 9 parquet data files (~376 MB).
CLI Usage
# List all languages and data status
ddc-cwicr list
# Show details for a language
ddc-cwicr info en
ddc-cwicr info ru
# Get path to parquet file (for use in Python/scripts)
ddc-cwicr path en
# List all installed data paths
ddc-cwicr pathsNode.js API
const { DDCCWICR } = require('@datadrivenconstruction/ddc-cwicr');
const cwicr = new DDCCWICR();
// Get path to parquet file
const enPath = cwicr.getDataPath('en');
const ruPath = cwicr.getDataPath('ru');
// Check if data is available
cwicr.hasData('de'); // true
// List all languages
const languages = cwicr.listLanguages();
// Get only installed data paths
const paths = cwicr.getInstalledPaths();
// Language info
const info = cwicr.getLanguageInfo('fr');
// { code: 'fr', name: 'French', region: 'Paris', currency: 'EUR', file: '...' }Python Usage
Use the parquet files directly with pandas:
import pandas as pd
# Get path from CLI
# $ ddc-cwicr path en
# C:\...\data\ENG_TORONTO_workitems_costs_resources_DDC_CWICR.parquet
df = pd.read_parquet('path/to/ENG_TORONTO_workitems_costs_resources_DDC_CWICR.parquet')
# Query work items
walls = df[df['work_item_name'].str.contains('wall', case=False)]
print(walls[['work_item_name', 'unit', 'total_cost_median']].head())Data Schema (85 Fields)
Classification
category,department,section,subsection
Work Item
rate_code,work_item_name,unit,scope_flag
Resources
material_code,material_name,material_unit,material_quantity,material_price
Labor
workers,engineers,machinists,labor_hours,labor_wages
Machinery
equipment_class,equipment_hours,equipment_rates,fuel_costs
Pricing
total_cost_min,total_cost_max,total_cost_median
Embeddings
embedding— OpenAI text-embedding-3-large (3,072 dimensions)
Cost Estimation Formula
Cost = Technology Norm × Regional Price
Example (Ceramic tile flooring, Berlin):
Labor: 172 hrs/100m² × €17.95/hr = €3,088.11
Materials: 632 m²/100m² × €5.02/m² = €3,170.73
Equipment: 1.67 hrs/100m² × €38.42/hr = €64.18
─────────────────────────────────────────
Total: €7,725.91 per 100m²n8n Workflows
This package includes 4 production-ready n8n workflow templates:
- Text-based cost estimation — Telegram bot with semantic search
- Photo-based estimation — GPT-4 Vision analysis with auto-dimensioning
- Universal bot — Text + Photo + PDF estimation via Telegram
- CAD/BIM pipeline — 4D/5D cost estimation from Revit/IFC/DWG
Import from the workflows/ directory into your n8n instance.
Links
License
- Database: CC BY 4.0 — Attribution: "DDC CWICR by DataDrivenConstruction"
- Code: MIT
