Production Python patterns for construction tech teams β parse the documents, enforce the taxonomy, sync the schedule, calculate the change order.
π Live site β construction-automation.org
Construction project tracking falls apart when RFIs, submittals, schedule exports, and change orders flow through hand-built scripts. Numbers drift between Procore and Sage, a misrouted RFI blows a response deadline, a change order quietly pushes the finish date, and by audit time nobody can prove which instruction governed the work on a given day.
This project is a deep, production-focused reference for building the Python automation that holds up under bid bursts, monthly pay applications, and audit review. Every page ships runnable, strictly-typed Python β Pydantic v2 contracts, Decimal money, Literal domain vocabularies, deterministic confidence-based routing, and structured logging β grounded in real construction data standards (CSI MasterFormat, WBS, discipline codes, document-status state machines).
The material is organized around three complementary areas, each a hand-built guide with architecture diagrams, step-by-step implementations, verification tests, and troubleshooting playbooks.
Turn scanned drawings, RFIs, submittals, and change orders into validated, routable data. OCR preprocessing, field extraction, schema-validated parsing, async batching for document bursts, PDF/Excel sync, and error-handling protocols with dead-letter queues and replay.
The canonical data model behind trustworthy tracking. WBS mapping, budget code standardization across platforms, RFI schema design, submittal metadata and revision chains, security boundaries for subcontractor data, and fallback alert routing.
Get schedule data out of Primavera P6 and Microsoft Project and into your tracking database. XER/XML export parsing, critical-path delta detection, total-float erosion, baseline variance, out-of-sequence progress detection, and tamper-evident schedule-impact logging tied to change orders and RFI delays.
Construction tech developers, project managers, estimators, and Python automation builders working at the intersection of Primavera/MS Project exports, Procore, Sage 300, CSI MasterFormat, and the financial discipline that change orders demand.
Every code example on the site follows the same production rules, so the patterns compose across the whole pipeline:
- Strict typing & validation β Pydantic v2 with
field_validator/model_validator, regex-constrained domain codes (XX XX XXMasterFormat,PROJ-NNN-DIV-NNWBS), andLiteralvocabularies for disciplines and document statuses. - Money is never a float β all costs use
Decimalwith explicit rounding, so rollups reconcile to the cent. - Deterministic routing β a single set of confidence bands (auto-route / human-review / quarantine) governs every classification and match, so behavior is consistent and auditable end to end.
- Failure is first-class β dead-letter queues, idempotent retries, structured audit logs, and replay-after-fix instead of silent data loss.
- Eleventy static site generator (Nunjucks + Markdown)
- Hand-authored, theme-adaptive inline SVG diagrams β no runtime charting dependency
- KaTeX for math, Prism for syntax highlighting
- Progressive Web App: web app manifest, service worker, offline caching
- Structured data (JSON-LD:
TechArticle,HowTo,FAQPage,BreadcrumbList) on every page - Deployed on Cloudflare Workers
npm install
npm run build # build the static site into _site/
npm run serve # local dev server with live reloadcontent/ the guides, as Markdown (one folder per topic)
_data/ site metadata and section definitions
_includes/ Nunjucks layouts and partials
assets/ CSS, icons, images, client JS
index.njk home page
Content and code are published for the construction technology community. Issues and suggestions that improve accuracy or add real-world construction detail are welcome.