The intelligence standard for project schedules
Open-source schedule intelligence platform — from validation to prediction to cost-schedule integration.
User Guide · API Reference · Methodologies · MCP Tools · Contributing · Changelog · Roadmap · Latest Audit
MeridianIQ is an open-source platform for project schedule and cost intelligence in construction and engineering. It provides the tools that schedulers, project controls professionals, and forensic delay analysts need — transparent, auditable, and free.
Every methodology is traceable to published standards: AACE Recommended Practices, DCMA 14-Point Assessment, SCL Delay and Disruption Protocol, and GAO Schedule Assessment Guide.
Author: Vitor Maia Rodovalho
| Indicator | Value |
|---|---|
| Analysis engines | 48 + 1 export module |
| MCP tools | 22 (Claude integration via FastMCP) |
| Schedule formats | 2 (Primavera P6 XER + Microsoft Project XML) |
| Tests passing | 1687 backend + 175 Vitest (composables + Svelte 5 components + i18n key-parity + charts) + 64 Playwright E2E |
| Frontend pages | 55 (Schedule Viewer, EVM S-Curve, Cost Integration, Health Score, NLP Query, Early Warning, Lifecycle Phase, Revision Trends, …) |
| API endpoints | 129 across 25 routers |
| SVG chart components | 11 (incl. EVM S-Curve + Multi-Revision S-Curve) + ScheduleViewer (hand-crafted, no chart.js) |
| Released versions | v0.1.0 → v4.3.0 |
| Live platform | meridianiq.vitormr.dev |
| Monthly infra cost | $0 (free tier) |
The flagship feature — a production-grade Gantt chart built entirely with SVG (zero external dependencies):
- WBS Tree — Collapsible work breakdown structure with activity counts
- Gantt Bars — Color-coded by status (critical, active, complete, not started)
- Progress Overlay — Physical % complete as filled bar portion
- Baseline Comparison — Gray dashed bars below current bars showing planned dates
- Float Visualization — Amber bars from early finish to late finish
- Sliding Right Detection — Amber arrows for delayed activities
- Dependency Lines — SVG bezier curves (FS/FF/SS/SF) with hover highlighting
- Critical Path Toggle — Filter to show only critical activities
- Search & Filter — By name/code, status, constraints
- Sortable Activity Table — 11 columns with click-to-sort headers
- Activity Detail Panel — Click a bar to see 12 fields + predecessors/successors
- Date Axis — Day/Week/Month zoom with data date and today markers
- Keyboard Shortcuts — +/- zoom, E/C expand/collapse, ? help modal
- CSV Export — Download filtered activity data
- Dark Mode — Inherits from global theme
- Print Ready — Print stylesheet preserves colors
| Capability | Standard | Version |
|---|---|---|
| XER Parsing — Custom MIT-licensed Primavera P6 parser | — | v0.1 |
| Schedule Validation — DCMA 14-Point Assessment with scoring | DCMA EVMS | v0.1 |
| Critical Path Analysis — Forward/backward pass, total float | CPM (Kelly & Walker, 1959) | v0.1 |
| Schedule Comparison — Multi-layer matching, manipulation detection | — | v0.1 |
| Forensic Analysis — Contemporaneous Period Analysis | AACE RP 29R-03 | v0.2 |
| Time Impact Analysis — Delay fragments, impacted vs unimpacted CPM | AACE RP 52R-06 | v0.3 |
| Contract Compliance — Automated provision checks | AIA A201, SCL Protocol | v0.3 |
| Earned Value Management — SPI, CPI, EAC, S-Curve | ANSI/EIA-748 | v0.4 |
| Monte Carlo Simulation — QSRA with PERT-Beta distributions | AACE RP 57R-09 | v0.5 |
| Float Trend Analysis — Track float distribution across schedule updates | AACE RP 49R-06 | v0.8 |
| Early Warning System — 12-rule alert engine for proactive monitoring | DCMA EVMS | v0.8 |
| Schedule Health Score — Composite metric combining all indicators | — | v0.8 |
| PDF Reports — WeasyPrint-generated reports for all analysis modules | — | v0.8 |
| Half-Step Bifurcation — Separates progress vs revision delay effects | AACE RP 29R-03 MIP 3.4 | v2.1 |
| ML Delay Prediction — Activity-level risk scoring with SHAP-like factors | Gondia et al. (2021) | v2.1 |
| Benchmark Database — Anonymized cross-project percentile comparison | — | v2.1 |
| What-If Simulator — Deterministic + probabilistic scenario analysis | AACE RP 57R-09 | v2.2 |
| Schedule Scorecard — 5-dimension weighted letter grades A-F | DCMA + GAO | v2.2 |
| Duration Prediction — RF+GB ensemble trained on benchmark data | AbdElMottaleb (2025) | v2.2 |
| Resource Leveling — RCPSP via Serial SGS with 4 priority rules | Kolisch (1996) | v2.3 |
| Schedule Generation — Template-based with stochastic durations | — | v2.3 |
| Conversational Builder — NLP-driven schedule creation via Claude API | — | v2.3 |
| XER Export — Round-trip fidelity write-back to P6 format | Oracle P6 XER | v3.0 |
| Evolution Strategies Optimizer — (mu, lambda) ES for RCPSP | Loncar (2023) | v3.0 |
| Anomaly Detection — IQR/z-score outlier detection for schedule data | — | v2.0 |
| Root Cause Analysis — Backwards network trace via NetworkX | AACE RP 49R-06 | v2.0 |
| Calendar Validation — 9 checks with scoring per DCMA #13 | DCMA EVMS, AACE RP 49R-06 | v3.1 |
| Delay Attribution — Party breakdown (Owner/Contractor/Shared) | AACE RP 29R-03, SCL Protocol | v3.1 |
| Interactive Schedule Viewer — WBS tree, Gantt bars, baseline, float, dependencies | AACE RP 49R-06, GAO Guide | v3.2 |
| Schedule Metadata — Auto-detect update#, revision, type from filename + XER data | — | v3.5 |
| Schedule Trends — Period-over-period evolution tracking with auto-insights | AACE RP 29R-03 | v3.5 |
| Cost Integration — CBS/WBS correlation from budget files | AACE RP 10S-90 | v3.5 |
| Narrative Reports — Structured text generation for claims and status reports | AACE RP 29R-03 | v3.5 |
graph TB
subgraph "Edge Layer — Cloudflare"
CF_PAGES["CF Pages<br/>SvelteKit Frontend<br/>(global edge delivery)"]
end
subgraph "Compute Layer — Fly.io"
FASTAPI["FastAPI Container<br/>Analysis Engines (48)<br/>129 endpoints"]
end
subgraph "Platform Layer — Supabase"
AUTH["Auth<br/>Google · LinkedIn · MS<br/>JWT + RLS"]
DB[("PostgreSQL<br/>16+ entities<br/>RLS enforced")]
STORAGE["Storage<br/>XER files · PDFs<br/>RLS buckets"]
end
CF_PAGES <-->|"REST"| FASTAPI
FASTAPI <-->|"SQL"| DB
FASTAPI -->|"Store/Read"| STORAGE
FASTAPI -->|"Verify JWT"| AUTH
CF_PAGES -->|"Direct auth flow"| AUTH
style CF_PAGES fill:#F38020,color:#fff
style FASTAPI fill:#009688,color:#fff
style DB fill:#3FCF8E,color:#fff
style AUTH fill:#3FCF8E,color:#fff
style STORAGE fill:#3FCF8E,color:#fff
flowchart LR
A[Upload XER] --> B[Parse]
B --> C[Validate<br/>DCMA 14-Point]
B --> D[CPM<br/>Critical Path + Float]
B --> E[Compare<br/>Two Versions]
E --> F[Manipulation<br/>Detection]
C --> G[Dashboard]
D --> G
F --> G
E --> H[CPA<br/>Window Analysis]
H --> I[Delay Waterfall]
B --> J[TIA<br/>Fragment Insertion]
J --> K[Impacted CPM]
K --> L[Responsibility<br/>Matrix]
B --> M[EVM<br/>Cost Integration]
M --> N[S-Curve<br/>SPI · CPI]
B --> O[Monte Carlo<br/>1000 iterations]
O --> P[Histogram<br/>P10 · P50 · P80 · P90]
O --> Q[Tornado<br/>Sensitivity]
O --> R[Criticality<br/>Index]
B --> S[Float Trends<br/>Multi-update]
S --> T[Early Warning<br/>12 Rules]
T --> U[Health Score<br/>Composite]
U --> V[PDF Report]
style A fill:#FF3E00,color:#fff
style G fill:#009688,color:#fff
style I fill:#D97757,color:#fff
style P fill:#013243,color:#fff
style U fill:#3FCF8E,color:#fff
| Version | Codename | Focus | Status |
|---|---|---|---|
| v0.1.0 | Foundation | Parse · Validate · Compare · Visualize | ✅ Released |
| v0.2.0 | Forensics | CPA / Window Analysis | ✅ Released |
| v0.3.0 | Claims | TIA + Contract Compliance | ✅ Released |
| v0.4.0 | Controls | EVM / WBS-CBS-BOQ | ✅ Released |
| v0.5.0 | Risk | Monte Carlo / QSRA | ✅ Released |
| v0.6 | Cloud | Supabase + Fly.io + CF Pages | ✅ Released |
| v0.7 | Identity | Auth + RLS + Ownership | ✅ Released |
| v0.8 | Intelligence | Float Trends + Early Warning + Health Score | ✅ Released |
| v0.9 | Polish | UX + CI/CD + E2E + i18n + Demo | ✅ Released |
| v1.0 | Enterprise | Teams + IPS + Recovery + Multi-format + Audit | ✅ Released |
| v2.0 | AI | ML Predictions · NLP · Anomaly Detection · MCP | ✅ Released |
| v2.1 | Prediction | Half-Step MIP 3.4 · Delay ML · Benchmarks · GDPR | ✅ Released |
| v2.2 | Scenarios | What-If Simulator · Scorecard · Duration ML · Pareto | ✅ Released |
| v2.3 | Optimization | Resource Leveling RCPSP · Schedule Generation · Builder | ✅ Released |
| v3.0 | Full Lifecycle | XER Export · ES Optimizer · Benchmark Priors · 4D Viz | ✅ Released |
| v3.1 | UX Polish | Calendar Validation · Delay Attribution · Dark Mode · Skeletons | ✅ Released |
| v3.2 | Schedule Viewer | Interactive Gantt · WBS Tree · Baseline · Float · Dependencies | ✅ Released |
| v3.5 | Cost-Schedule Intelligence | Cost Integration · Trends · Narrative Reports · Programs | ✅ Released |
| v3.6 | Gantt Stability + Intelligence Pages | Gantt refactor · schedule-view cache · EVM S-Curve · Health Score · NLP Query · Early Warning · CBS persistence · Narrative PDF · Resource histogram | ✅ Released |
| v3.7 | Forensic & Executive Reporting | CBS compare · Program rollup · Executive Summary PDF · Risk register linkage · SupabaseStore CBS rehydration · BI connector · SCL Protocol + AACE §5.3 PDFs · AIA G703 Excel · Gantt SVG/PNG export | ✅ Released |
| v3.8 | Forensic MIP Expansion + Frontend Hardening | AACE MIPs 3.1/3.2/3.5/3.6/3.7 · AIA G702 PDF · BI templates · per-WBS Gantt print · stats-consistency CI · audit IP/UA · type-safety + i18n sweeps | ✅ Released |
| v3.9 | Real-Time + Extensibility | WebSocket progress (Monte Carlo) · plugin architecture + HTTP surface · MCP HTTP/SSE transports · activity grouping · structured calendar exception parser · mobile responsive · KPI cache · slowapi consolidation | ✅ Released |
| v4.0 | Materialized Intelligence | schedule_derived_artifacts + provenance contract · async materializer pipeline (pending/ready/failed) · lifecycle phase inference (preliminary construction indicator per W4 calibration) · WebSocket progress hardening · evolution_optimizer callback · Svelte WS composable · datetime-safe store boundary · pre-registered calibration protocol | ✅ Released |
| v4.1 | Consolidation + Primitive (Cycle 2 close) | rate-limit on jobs/progress/start · slowapi in [dev] extras · WS heartbeat + 4401 close on token expiry / API-key revocation · useWebSocketProgress recoveryPoller hook · authoritative is_construction_active + 5+1 phase preview-flagged (B2 honesty-debt closure) · W4 calibration post-mortem · tools/calibration_harness.py reusable primitive (ADR-0020) · ADRs 0017/0018/0019/0020 |
✅ Released |
| v4.2 | β-honest path-A discipline (Cycle 3 close-arc + Cycle 4 close) | audit re-run + W3 reproduction-regression primitive + _ENGINE_VERSION source-of-truth migration (Cycle 3) · auto-revision detection (data_date + revision_history + soft-tombstone) · multi-rev S-curve overlay visualization (no forecast curve) · W4 pre-registered calibration gate path-A activation (ADR-0023; sub-gate C F1=0.769231 passed; sub-gates A+B path-A on corpus precondition) · paired DA + IV exit-council protocol exercised · ADRs 0021/0022/0023 |
✅ Released |
| v4.3 | Z-shape consolidation (Cycle 5 close) | revision-detection contract regression + formatDate locale helper + structured error_code on confirm 4xx + revision_skip_log ledger with reconsider mechanism (migration 029) + Vitest + @testing-library/svelte component-test harness · type-stubs (networkx/openpyxl/defusedxml) · engine_version bump 4.2→4.3 · paired DA+IV protocol per ADR-0024 · ADR-0024 |
✅ Released |
| v4.4 | Cycle 6 H-shape (forced hygiene + hard W2 gate) | mcp<2 + fastapi 0.136 + pydantic 2.13.4 + sveltekit/vite/svelte defensive floor bumps · W2 HARD GATE outcome (Pathway D operator-declared) · W3 frontend a11y cluster (direction-aware change-point markers, fetch timeout + chart NaN guards, milestones picker via HTML5 datalist, recovery ad-hoc scenario upload, standalone canonical-hash CI step) · ADR-0025 | 🚧 In-flight |
See full roadmap with architecture decisions.
- Python 3.14+
- Node.js 20+
- A Supabase project (free tier) with URL and anon/service keys
# Clone
git clone https://github.com/VitorMRodovalho/meridianiq.git
cd meridianiq
# Configure environment
cp .env.example .env
# Edit .env: set SUPABASE_URL, SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY
# Backend
pip install -e ".[dev]"
python -m uvicorn src.api.app:app --reload --port 8000
# Frontend
cd web
npm install
npm run dev -- --port 5173
# Open http://localhost:5173Or with Docker:
docker compose upThe platform is deployed and available at meridianiq.vitormr.dev.
| Layer | Technology |
|---|---|
| Backend | Python 3.14+ · FastAPI · Pydantic v2 |
| CPM Engine | NetworkX (BSD) |
| Monte Carlo | NumPy (BSD) |
| PDF Generation | WeasyPrint |
| Frontend | SvelteKit · Tailwind CSS v4 |
| Charts | SVG (hand-crafted, zero dependencies) |
| Database | Supabase PostgreSQL (managed, RLS enforced) |
| File Storage | Supabase Storage (RLS buckets) |
| Authentication | Supabase Auth (Google · LinkedIn · Microsoft OAuth) |
| Backend Hosting | Fly.io (Docker, auto-deploy) |
| Frontend Hosting | Cloudflare Pages (global edge) |
| Testing | pytest (1687+ passing) · Vitest (175 — composables + Svelte 5 components + i18n key-parity + charts) · Playwright E2E (64) |
MeridianIQ implements methodologies from these published standards:
| Standard | Application |
|---|---|
| AACE RP 29R-03 | Forensic Schedule Analysis |
| AACE RP 49R-06 | Documenting the Schedule Basis |
| AACE RP 52R-06 | Time Impact Analysis |
| AACE RP 57R-09 | Integrated Cost and Schedule Risk Analysis |
| AACE RP 10S-90 | Cost Engineering Terminology |
| ANSI/EIA-748 | Earned Value Management Systems |
| DCMA EVMS | 14-Point Schedule Assessment |
| GAO Schedule Guide | Schedule Assessment Methodology |
| SCL Protocol | Delay and Disruption Protocol (2nd Ed.) |
| CPM | Kelly & Walker (1959) |
meridianiq/
├── src/
│ ├── parser/ # Custom MIT XER parser
│ │ ├── xer_reader.py # Streaming parser, encoding detection
│ │ ├── models.py # 17+ Pydantic models
│ │ └── validator.py # Constraint validation
│ ├── analytics/
│ │ ├── cpm.py # NetworkX CPM engine
│ │ ├── dcma14.py # DCMA 14-Point Assessment
│ │ ├── comparison.py # Multi-layer matching
│ │ ├── forensics.py # CPA per AACE RP 29R-03
│ │ ├── tia.py # TIA per AACE RP 52R-06
│ │ ├── evm.py # EVM per ANSI/EIA-748
│ │ ├── risk.py # Monte Carlo per AACE RP 57R-09
│ │ ├── cost_integration.py # CBS/WBS cost correlation
│ │ ├── schedule_trends.py # Period-over-period evolution
│ │ ├── narrative_report.py # Structured claim narratives
│ │ └── ... # 48 engines total + 1 export
│ ├── database/ # Supabase client, config, store abstraction
│ └── api/
│ ├── app.py # FastAPI entry point
│ ├── routers/ # 129 endpoints across modular routers
│ └── schemas.py # Request/response models
├── web/ # SvelteKit + Tailwind (55 pages)
├── tests/ # 1687+ backend tests
├── supabase/
│ └── migrations/ # PostgreSQL schema migrations (29 files)
├── .github/
│ └── workflows/ci.yml # CI/CD: test + lint + E2E + deploy
├── docs/ # Discovery & definition documents
├── v1-reader/ # Legacy P6 reader (upstream attribution)
├── v1-compare/ # Original XER compare tool
├── v1-program-schedule/ # Production schedule analytics
├── CLAUDE.md # Claude Code project instructions
├── docker-compose.yml
├── pyproject.toml
├── LICENSE (MIT)
├── CONTRIBUTING.md
├── ATTRIBUTION.md
└── ACKNOWLEDGMENTS.md
We welcome contributions! See CONTRIBUTING.md for guidelines.
Areas where help is needed:
- Additional schedule formats (Asta Powerproject, Phoenix, Tilos)
- Methodology validation against real-world experience
- International contract compliance (FIDIC, NEC, JCT)
- Performance optimization for 50,000+ activity schedules
- Additional chart types and visualizations
MeridianIQ is designed to support academic research in project controls and forensic schedule analysis. If you use MeridianIQ in your research, please cite:
@software{meridianiq,
author = {Rodovalho, Vitor Maia},
title = {MeridianIQ: Open-Source Schedule Intelligence Platform},
year = {2025--2026},
url = {https://github.com/VitorMRodovalho/meridianiq},
note = {Implements AACE RP 29R-03, 52R-06, 57R-09; DCMA 14-Point; ANSI/EIA-748}
}Code is licensed under MIT.
See ATTRIBUTION.md for upstream credits and ACKNOWLEDGMENTS.md for tooling acknowledgments.
MeridianIQ · MIT License · © 2025–2026 Vitor Maia Rodovalho
Built with academic rigor. Every methodology traceable to published standards.