Inspiration
Construction loses $177B annually** to delays, with 90% of projects finishing over budget or late, against a **$300B annual materials spend in the US alone. The root cause is not a lack of data — it's a lack of intelligence.
Tools like Kojo have solved the workflow digitization problem: centralized purchase orders, vendor catalogs, and delivery tracking. That's necessary, but not sufficient. Kojo tells you what happened and what is happening. It does not tell you what will happen, why, or what to do about it.
We built CASCADE to answer that question: a standalone predictive and agentic intelligence engine that ingests data from any digitized system, converts it into probabilistic forecasts, maps how a single delay propagates through the actual project schedule, reasons over a causal knowledge graph to recommend a specific fix, and drafts the action for a human to approve.
What it does
CASCADE is a five-pillar intelligence engine:
- Probabilistic Lead-Time Forecasting
Quantile regression + conformal prediction outputs 10th/50th/90th percentile delivery dates
Coverage guarantee: true delivery date falls outside the interval no more than 10% of the time — by construction, not by assumption
- Critical Path + Resource Impact (CPM + RCPSP)
Real forward/backward pass computing ES/EF/LS/LF and float for every activity
Float = 0 → Critical Activity — red flag on the schedule
Cross-project crew conflict detection (RCPSP): "Steel delay on Project A pushes HVAC crew's start on Project B, creating a new 5-day delay there"
- Causal Knowledge Graph Traversal
Subject → Predicate → Object triplets (e.g., Steel → depends_on → Port_of_Long_Beach)
Weighted evidence: "Based on 3 industry benchmarks and 1 current news signal, 72% probability this fix resolves the delay"
- ReAct Agent + External Signal
Thought → Action → Observation loop with visible function calls
Constrained by the knowledge graph — cannot invent vendors or dependencies
Live Chaos Menu: judge picks any disaster (Port Strike, Hurricane, Vendor Bankruptcy) and the system re-runs live
- Human-in-the-Loop
Drafts recommendation email and PO — nothing sends without PM click
Rejection triggers knowledge graph re-traversal for next-best option
How we built it
Data Ingestion → Probabilistic Forecast → CPM/RCPSP → KG Traversal → ReAct Agent → HITL Approval Tech Stack:
Layer Technologies Backend Python 3.14, LightGBM, scikit-learn, NetworkX, Pandas, NumPy AI / Agent Claude API, FastAPI Database PostgreSQL Frontend Streamlit, Plotly Deployment Docker External News / Weather API Key Algorithms:
Quantile Regression — outputs 10th/50th/90th percentile delivery dates
Conformal Prediction — provides statistical coverage guarantee
CPM (Critical Path Method) — forward/backward pass with ES/EF/LS/LF
RCPSP (Resource-Constrained Project Scheduling) — cross-project crew conflict detection
Knowledge Graph Traversal — subject-predicate-object triplets with weighted evidence
ReAct Loop — Thought → Action → Observation with visible function calls
UI/UX:
Dark command-center theme ("War Room")
Live Loss Clock — red, ticking dollar figures
Terminal-style ReAct trace — visible function calls as they fire
Pareto frontier charts — cost vs. time tradeoff visualization
Challenges we ran into
- Making CPM Actually Real-Time
Challenge: The Critical Path Method needed to recalculate instantly when a user drags a delivery date in the What-If Sandbox
Solution: We implemented a full forward/backward pass with topological ordering, computing ES/EF/LS/LF for every activity on the fly
- Preventing Hallucination in the ReAct Agent
Challenge: An LLM agent could invent vendors or dependencies that don't exist
Solution: Constrained decoding via the knowledge graph — the agent can only propose vendors that are nodes in the graph. Combined with a step-limit (TTL) on the ReAct loop: if it doesn't find a path within 5 steps, it raises a Human Intervention flag
- Cold-Start Data Problem
Challenge: No real construction delay data to train on in 48 hours
Solution: Pre-trained quantile model on public industry benchmarks and synthetic chaos datasets; Bayesian updating shifts estimates as real data flows in
- Making the Demo Breakable
Challenge: Most hackathon demos are scripted — judges can tell
Solution: Built the Chaos Menu — judges pick any disaster (Port Strike, Hurricane, Bankruptcy) and the system re-runs live with visible function calls. No pre-baked path.
- Cross-Project Resource Conflicts
Challenge: Single-project tools can't see how a delay on Project A affects Project B
Solution: Modeled crews as a shared, finite resource across projects (RCPSP) — a delay on one project surfaces a resource conflict alert on another
Accomplishments that we're proud of
- Four Working MVP Pillars in 48 Hours
Quantile regression + conformal prediction
Real CPM forward/backward pass
Knowledge graph traversal with weighted evidence
ReAct agent with visible function calls
- The Chaos Menu — Anti-Vaporware Test
Judges can pick any disaster and watch the system re-run live
Terminal scrolls with real function calls — Thought → Action → Observation
No pre-baked script — the mechanisms are general-purpose
- Backtested Against Real History
2021 Suez Canal Blockage (Ever Given)
Our blast-radius propagation flagged at-risk downstream activities roughly 12 days before the delay would have hit the site
- Mathematical Honesty
We show confidence intervals with coverage guarantees, not false precision
We distinguish MVP from roadmap — quantile regression today, full causal ML pipeline later
We show uncertainty where it exists (low-confidence flag) rather than fabricating confident answers
- Human-in-the-Loop That Actually Works
The agent only drafts — nothing sends without PM approval
Rejection triggers knowledge graph re-traversal for the next-best option
Full audit trail of every suggestion, edit, approval, and rejection
What we learned
- Construction Supply Chains Are a Math Problem, Not Just a Data Problem
The core challenge isn't collecting data — it's modeling uncertainty, scheduling constraints, and causal relationships
Quantile regression + conformal prediction gives you something an LSTM can't: a statistically guaranteed interval
- CPM is Underrated
Most "AI for construction" projects use heuristic scores or graph alerts
Real CPM math (ES/EF/LS/LF) is what PMs actually use — and it's surprisingly simple to implement once you understand the topology
- Agents Need Constraints, Not Just Prompts
An unconstrained LLM agent will hallucinate
Constrained decoding via a knowledge graph prevents the agent from inventing vendors or dependencies
Step-limits (TTL) prevent infinite loops
- The Demo is the Product
A scripted demo is a liability — judges can tell
Building a "break-it-yourself" demo (Chaos Menu) proves the system is real, not rehearsed
- Honest Scoping Wins
Distinguishing MVP from roadmap builds credibility
Showing uncertainty (low-confidence flag) is more honest than pretending to know everything
A judge trusts a system that says "I don't know" more than one that fabricates confidence
What's next for CASCADE
Prove It on Real Data The Suez Canal backtest was compelling for the hackathon — one well-documented historical event, and it flagged risk 12 days early. But it's still just a simulation. The single highest-leverage next step for us is getting one real construction project's BOM, schedule, and vendor data — even if it's messy CSV exports from a GC's Excel logs — and running the full pipeline end-to-end on actual operational data. That's what turns a prototype into proof.
Land a Design Partner, Not a Customer We don't need a paying customer yet. We need one general contractor or subcontractor willing to let CASCADE watch — not act on — their live project for a few weeks. This gives us three things: real data quality problems to solve, a second validation story we can point to, and a champion who can vouch for us later. We're already in conversations with one mid-sized GC who's frustrated with their current visibility gap.
Stress-Test the Forecasting Claims The "10% coverage error" and "72% probability" numbers sound great in the demo. But before we show them to anyone technical outside this room, we need to actually measure calibration on held-out data. Conformal prediction guarantees are only as good as the exchangeability assumptions holding — and construction data (seasonal, vendor-specific, small-sample) is exactly the kind of thing that breaks those assumptions if we're not careful. We're building a proper validation harness to test this.
Tighten the Integration Story Our comparison table's strongest claim is "orchestrates the chain" where Kojo/Procore/SAP don't. But right now ingestion is "CSV/Excel + LLM-assisted cleaning" — fine for a demo, but the real moat is a live connector into at least one of those systems. Even a read-only API pull from Kojo or Procore would materially strengthen the pitch and turn a hypothetical integration into a tangible one.
Decide How "Human-in-the-Loop" Scales The draft-never-send safety model is absolutely the right call for trust. But we've been thinking: at what volume does a PM's approval queue become the bottleneck we were trying to eliminate in the first place? We need answers ready for judges and investors on how approval fatigue gets managed as usage grows — batching approvals, confidence-based auto-approval for low-risk items, delegation rules for junior PMs, or exception-only workflows.
Narrow the Wedge for a V1 Pilot The architecture covers ingestion → forecasting → CPM → knowledge graph → agent → approval — that's a lot of surface area to defend as "production ready." We're picking the single scenario type that's most painful and most demoable: material delay cascades specifically. We're making that bulletproof before broadening to hurricanes, vendor bankruptcies, or the full Chaos Menu. One scenario, done right, is more valuable than five scenarios done half-way.
Built With
- 3.14-core
- api-react
- backbone.js
- causal
- claude
- cleaning
- delivery.com
- engine
- forecasting
- graph
- kg
- lightgbm-quantile
- networkx-cpm
- numpy-data
- pandas
- prediction
- preparation
- python
- scikit-learn-conformal
- traversal
- wrapper
Log in or sign up for Devpost to join the conversation.