AI-Powered Analytics & Decision Support for Construction Projects
Industry-Academia Collaboration | Masters in Data Science | January 2026
LogPilot is a comprehensive ML platform transforming construction telemetry into actionable insights. The system provides real-time KPIs, predictive risk signals, interactive simulations, and automated reporting for construction project management.
NEW! Access all 7 tasks through a single interface:
streamlit run unified_dashboard.pyThe unified dashboard provides:
- ๐ Central Navigation Hub - Browse all modules from one place
- ๐ System Overview - Key metrics and status at a glance
- ๐ฏ Quick Links - Fast access to documentation and run commands
- ๐ก Usage Examples - Code snippets and demos for each task
- Real-time KPI Monitoring - Data quality validation + project health metrics
- Risk Prediction - AI-powered early warning for time/cost overruns
- Anomaly Detection - Drift patterns in utilization and progress
- What-If Simulation - Interactive scenario analysis (<300ms response)
- Safety Monitoring - Leading indicators for incident prevention
- Project Scorecard - Composite performance scoring across pillars
- Automated Reporting - LLM-powered weekly operations summaries
| Task | Owner | Module | Status |
|---|---|---|---|
| Task 1 | Weiyun | KPI Dashboard & What-If Simulation | โ Complete |
| Task 2 | Vyoma | Time/Cost Overrun Prediction | โ Complete |
| Task 3 | Feruz | Utilization & Progress Drift Detection | โ Complete |
| Task 4 | Weiyun | What-If Micro-Simulation (Core) | โ Complete |
| Task 5 | Vyoma | Safety Signal Board | โ Complete |
| Task 6 | Feruz | Project Scorecard | โ Complete |
| Task 7 | Vyoma | Weekly Ops Notes (LLM) | โ Complete |
Location: kpis/, app_kpis.py
Real-time project KPI computation with data quality validation:
- Daily/weekly aggregation
- KPI dictionary with formal definitions
- Data health checks and anomaly flagging
- Interactive Streamlit dashboard
Run:
streamlit run app_kpis.pyLocation: models/, unified_dashboard.py
Early-warning system for TIME and COST overruns with daily time-series monitoring:
- TIME Model: 0.750 AUC, 100% Precision@1 (top alert always correct)
- COST Model: 0.444 AUC (experimental, directional guidance)
- Dashboard: Last 15 days of KPI trends โ predicts tomorrow's time overrun
- Production API for real-time predictions
Quick Start:
# View daily monitoring dashboard (Task 2 page)
streamlit run unified_dashboard.py
# Or test API directly
python test_api.py
# Use in code
from models.overrun_api import OverrunPredictor
predictor = OverrunPredictor()
result = predictor.predict_time_overrun(features, project_id="Alpha")Documentation: API Guide | Final Deliverable
Location: Anomaly_Detection.ipynb, results/
Anomaly detection for operational inefficiencies:
- Method: Isolation Forest for progress drift
- Episode detection and tracking
- Alert JSON generation for integration
- Visualizations: progress anomalies, drift episodes
Outputs:
results/task3_alerts.json- Alert dataresults/task3_drift_episodes.csv- Episode timelineresults/progress_anomaly.png- Visualization
Location: sim/
Interactive scenario analysis for operational decisions:
- Response Time: <300ms (real-time user experience)
- Models: LightGBM surrogate models (P10, P50, P90)
- Input: Crew size, utilization changes
- Output: Predicted progress delta with uncertainty
- Streamlit UI for PM-friendly interaction
Run:
streamlit run sim/app.pyDemo: sim/ux_mock.mp4
Location: safety/
Leading indicators for next-day safety risk (24hr advance warning):
- Approach: Rule-based system (beats 9 ML approaches!)
- Performance: Recall=1.00 (catches ALL high-risk days), Precision=0.80
- Trained Thresholds: Vibration > 37.13 Hz, Heat > 43.50ยฐC, Worker Density > 91.04
- Deliverables: Production notebook, HSE Daily Report Template, Interactive dashboard
- Production API for daily risk assessment
Quick Start:
# View dashboard (Task 5 page)
streamlit run unified_dashboard.py
# Run production notebook
jupyter notebook safety/leading_index.ipynb
# Use API
from safety.safety_dashboard import SafetyAlertSystem
safety = SafetyAlertSystem()
result = safety.predict_daily_risk(date, vibration, temp, humidity, workers, equipment)Documentation: safety/README.md | HSE Report | HSE Template
Location: Project_Scorecard.ipynb, results/
Composite performance scoring across multiple pillars:
- Aggregates project health metrics
- Daily per-site exports
- Interactive HTML dashboards (radar charts, distributions)
- Weekly scorecard summaries
Outputs:
results/scorecard_dashboard.html- Interactive visualizationresults/daily_scorecard_per_site.csv- Daily metricsresults/weekly_scorecard_summary.csv- Weekly rollupresults/pillar_radar.html- Pillar performance radarresults/scorecard_methodology.md- Methodology documentation
Location: ops_notes/
AI-powered weekly operations summary generator integrating 5 tasks:
- LLM: Google Gemini for narrative generation
- Integrated Tasks: KPIs (T1), Time Overrun (T2), Drift Detection (T3), Safety (T5), Scorecard (T6)
- Output: Executive summary, risk analysis, action items (all 5 systems)
- Target: <2 minutes PM review time, โฅ70% acceptance rate
Quick Start:
# Add API key to .env
echo "GEMINI_API_KEY=your-key" > .env
# Run test
python ops_notes/test_generator.py
# View generated report
cat ops_notes/samples/week_YYYY_MM_DD.mdDocumentation: ops_notes/README.md
logpilot-project/
โ
โโโ README.md # This file
โโโ requirements.txt # Python dependencies
โ
โโโ data/ # ๐ Raw datasets
โ โโโ construction_project_dataset.csv
โ โโโ construction_project_performance_dataset.csv
โ
โโโ kpis/ # ๐ฏ Task 1: KPI Dashboard (Weiyun)
โ โโโ etl_kpis.py # KPI computation engine
โ โโโ kpi_dictionary.md # Formal KPI definitions
โ โโโ __init__.py
โ
โโโ models/ # โ ๏ธ Task 2: Overrun Prediction (Vyoma)
โ โโโ overrun_api.py # Production API
โ โโโ model_training.ipynb # Training & evaluation
โ โโโ saved_models/ # Trained models (.pkl)
โ โโโ time_stacking_model.pkl # โญ Best TIME model
โ โโโ cost_lr_model.pkl # COST model
โ
โโโ Anomaly_Detection.ipynb # ๐ Task 3: Drift Detection (Feruz)
โโโ results/ # Task 3 & 6 outputs
โ โโโ task3_alerts.json # Anomaly alerts
โ โโโ task3_drift_episodes.csv # Drift timeline
โ โโโ scorecard_dashboard.html # Project scorecard
โ โโโ ...
โ
โโโ sim/ # ๐ฎ Task 4: What-If Simulation (Weiyun)
โ โโโ app.py # Streamlit dashboard
โ โโโ what_if.py # Simulation engine
โ โโโ models/ # Surrogate models (LightGBM)
โ โโโ experiments/ # Model training notebooks
โ
โโโ safety/ # ๐ก๏ธ Task 5: Safety Monitoring (Vyoma)
โ โโโ safety_dashboard.py # Production API
โ โโโ leading_index.ipynb # Rule-based system
โ โโโ saved_safety_models/ # Thresholds & config
โ
โโโ Project_Scorecard.ipynb # ๐ Task 6: Scorecard (Feruz)
โ
โโโ ops_notes/ # ๐ Task 7: Ops Notes (Vyoma)
โ โโโ generator.py # LLM-powered generator
โ โโโ test_generator.py # Test/demo script
โ โโโ prompt.txt # LLM prompt template
โ โโโ samples/ # Generated reports
โ
โโโ docs/ # ๐ Documentation
โ โโโ deliverables/ # Final reports
โ โโโ guides/ # How-to guides
โ โโโ experiment_logs/ # Technical details
โ
โโโ app_kpis.py # ๐ฏ Task 1 Dashboard entry point
# Install dependencies
pip install -r requirements.txt
# Set up .env file (for Task 7)
echo "GEMINI_API_KEY=your-key-here" > .env# Task 1: KPI Dashboard
streamlit run app_kpis.py
# Task 2: Test Overrun Predictor
python test_api.py
# Task 4: What-If Simulation
streamlit run sim/app.py
# Task 5: Safety Analysis
jupyter notebook safety/leading_index.ipynb
# Task 7: Generate Weekly Report
python ops_notes/test_generator.py# Task 3 & 6: HTML Dashboards
open results/scorecard_dashboard.html
open results/pillar_radar.html
# Task 7: Weekly Reports
cat ops_notes/samples/week_*.md| Module | Metric | Performance |
|---|---|---|
| Time Overrun (Task 2) | Precision@1 | 100% โ |
| Time Overrun (Task 2) | AUC | 0.750 |
| Safety (Task 5) | Recall | 1.00 (catches all high-risk days) โ |
| Safety (Task 5) | Precision | 0.80 |
| What-If Sim (Task 4) | Response Time | <300ms โ |
| Ops Notes (Task 7) | Review Time | <2 min โ |
Construction Project Performance Dataset from Kaggle: ๐ https://www.kaggle.com/datasets/ziya07/construction-project-performance-dataset
The dataset includes time-series records:
- Project progress and task completion
- Cost and schedule deviations
- Resource utilization signals
- Environmental and operational metrics
- Task 1:
kpis/kpi_dictionary.md - Task 2:
docs/guides/API_USAGE_GUIDE.md,docs/deliverables/FINAL_DELIVERABLE_SUMMARY.md - Task 5:
safety/README.md,docs/deliverables/TASK5_HSE_SAFETY_REPORT.md - Task 6:
results/scorecard_methodology.md - Task 7:
ops_notes/README.md
- ๐ Folder Structure Guide
- ๐ Notebooks Summary
- ๐ One-Pager for PMs
Core:
- Python 3.12+
- Pandas, NumPy, Scikit-learn
- XGBoost, LightGBM
- Streamlit (dashboards)
ML & Analysis:
- SHAP (interpretability)
- Isolation Forest (anomaly detection)
- Imbalanced-learn (SMOTE)
LLM Integration:
- Google Gemini API (Task 7)
- python-dotenv (config management)
Integration Branch: team-integration (this branch)
Individual Task Branches:
task1_weiyun- KPI Dashboard & What-If Simulationtask2_vyoma- Time/Cost Overrun + Safety + Ops Notes (Tasks 2, 5, 7)feruz-scorecard- Project Scorecard (Task 6)feruz-utilization_and_progress_drift- Anomaly Detection (Task 3)
โ
Data Quality: KPI validation + anomaly detection
โ
Predictive Accuracy: TIME model 100% Precision@1, Safety 100% Recall
โ
User Experience: What-If <300ms, Ops Notes <2min review
โ
Production Ready: APIs, dashboards, automated reporting
โ
Documentation: Comprehensive guides and technical reports
- Real-time data pipeline integration
- Mobile app for field operations
- Multi-project portfolio view
- Advanced LLM agents for root cause analysis
- Automated intervention recommendations
- Migrate Task 7 LLM from deprecated
google.generativeaitogoogle.genai
Project Team:
- Weiyun - Task 1, 4 (KPI, Simulation)
- Vyoma - Task 2, 5, 7 (Overrun, Safety, Ops Notes)
- Feruz - Task 3, 6 (Drift Detection, Scorecard)
Repository: https://github.com/hwy225/logpilot-project
Last Updated: January 10, 2026
Status: โ
All Tasks Complete - Production Ready