CPM scheduling

A critical path that recomputes itself.

Not a Gantt bar you drag by hand. A real critical-path-method engine — forward and backward pass, total and free float, four dependency types and lead/lag — that recalculates downstream dates the moment a change order, RFI answer, or field condition moves a task. Import your Primavera P6 or MS Project file and keep going.

Forward / backward pass + float Primavera P6 (.xer) + MS Project (.mpp) import Forensic time-impact delay analysis AI weekly narrative w/ AI-as-judge audit
CPM
True forward/backward pass — ES, EF, LS, LF, total float and free float on every activity, critical path derived
.xer / .mpp
Imports Primavera P6 and Microsoft Project files; round-trips to Excel for the field
TIA
Time-impact analysis with concurrent-delay forensics — defensible day-by-day attribution
EV
Earned-value CPI / SPI tied to actual schedule progress, refreshed against baseline
The CPM engine

Network logic, not hand-dragged bars.

Every activity carries duration, a working calendar, and typed relationships to the activities around it. AOS runs a topological sort and a full forward/backward pass to compute early and late dates, total and free float, and the critical path — then re-runs it whenever the network changes. A circular dependency doesn't silently corrupt the dates; it's caught and the exact cycle is surfaced for you to fix.

  • Four dependency types — finish-to-start, start-to-start, finish-to-finish, and start-to-finish, each with positive or negative lag.
  • Eight constraint kinds — start-no-earlier-than, finish-no-later-than, must-start-on, and the rest, applied before propagation.
  • Total & free float — computed per activity so you can see what can slip without moving the finish, and what can't.
  • Working calendars — durations snap to workdays; a five-day task starting Monday finishes Friday, not the next Monday.
  • Cycle detection — a logic loop raises a validation error with the offending activity path, not a wrong answer.
Forward / backward pass — activity dates
ActivityESLFFloat
Curtain wall — eastFeb 02Feb 200
Glazing — L4–L8Feb 23Mar 060
MEP rough-in — L6Feb 18Mar 022
Interior framing — L3Feb 09Mar 119
Roofing — membraneMar 09Mar 140
Float 0 = critical path FS / SS / FF / SF + lag
Import & interop

Bring the schedule you already have.

Nobody rebuilds a 1,400-line schedule by hand to try a new tool. AOS reads your Primavera P6 export and your Microsoft Project file, maps activities, relationships, calendars, and constraints into the engine, and runs the pass. Export back to Excel for the field, and the schedule stays linked to the rest of the job rather than living in a silo.

  • Primavera P6 (.xer) — activities, relationships, calendars, and constraints imported into the native network.
  • Microsoft Project (.mpp) — read your existing MSP plan without an export dance.
  • Excel round-trip — import and export tasks as a spreadsheet for crews and subs who live in it.
  • Import audit — every import is logged with what was read, what was mapped, and what was rejected.
  • Linked, not islanded — imported activities tie to RFIs, change orders, and pay-app progress on the same record.
Import · "Westside Tower — P6 export.xer"
1Read .xer / .mpp file1,412 acts
2Map relationships + lag2,038 rels
3Map calendars + constraints6 cals
4Run CPM passCP found
5Import audit logged3 skipped
6Export to Excel for field.xlsx
Baselines, snapshots & earned value

Know exactly how far you've drifted.

Set a baseline at award and AOS snapshots the schedule on every recompute, so drift is measured against a fixed line instead of a memory. Earned-value metrics roll cost and schedule progress into CPI and SPI, and a resource histogram shows where you're over-allocated before the field finds out the hard way.

  • Baselines — lock the as-awarded schedule; every later state is compared to it, not to last week.
  • Snapshots — point-in-time captures on recompute for an auditable history of how the plan moved.
  • Earned value — CPI and SPI computed from progress and cost, with an EV curve over time.
  • Resource leveling & histogram — surface over-allocation and smooth peaks within available float.
  • Three-week lookahead — the near-term window pulled straight from the live network, not maintained by hand.
Earned value vs. baseline — period 6
MetricValueRead
SPI (schedule)0.94Behind
CPI (cost)1.02On
Baseline drift+4 dSlip
Snapshots on file18Audited
Over-allocated crews2Level
Forensic delay & TIA

Build the delay claim while it's still fresh.

Delay notices are logged against activities as they happen, with reason codes. Time-impact analysis walks them chronologically and attributes slip event by event — with a what-if rollback that shows the finish date had a given event never occurred. The forensic model handles the hard case most tools fudge: when two delays overlap on the critical path during the same window, only one can push the finish, so AOS counts the longest and flags the rest as concurrent rather than double-counting your claim.

  • Delay notices with reason codes — captured in the field, not reconstructed from memory months later.
  • Chronological attribution — per-event marginal slip and a running cumulative total.
  • What-if rollback — the finish date the project would have hit without a specific delay event.
  • Concurrent-delay forensics — overlapping critical delays bucketed; only the governing one counts, the rest flagged subordinate.
  • Per-reason rollup — slip grouped by cause, ready to attach to a claim or an owner conversation.
Time-impact analysis — attributable slip
Delay eventClaimedAttributed
Differing site condition7 d7 d
Owner design change5 d5 d
Weather (concurrent)4 d0 d
Late submittal (concurrent)3 d0 d
Total attributable19 d12 d
Reporting & intelligence

The schedule update writes the first draft.

Every week AOS reads the rollups — contingency days, open RFIs and delay notices, EV indices, productivity — and drafts the narrative a scheduler would write. Then a second AI pass grades that narrative for accuracy against the underlying numbers before anyone sees it. The digest lands on a cadence you set; critical slips page the right people, quiet weeks don't.

AI weekly narrative

A drafted schedule update built from the live rollups — slip, drivers, float erosion, EV — not a blank text box on a Friday.

AI-as-judge audit

A second model grades the narrative against the source numbers, so the words match the schedule before it goes out.

Schedule digest

A recurring digest on the cadence you choose, delivered to GC, owner, and sub portals from one source of truth.

Slip alerts

Baseline drift flagged with context; critical-path moves escalate, low-float noise doesn't. No alarm fatigue.

Everything else the schedule touches

The work nobody else automated.

Portfolio

BAC-weighted rollup

Schedule health across every active job, weighted by budget at completion — so the exec view reflects the jobs that matter most.

Forecast

Cost & material curves

Cost-loaded activities project a spend curve over the network; material needs forecast forward from the schedule dates.

Portals

Owner & sub schedule views

The same network surfaces to owner and subcontractor portals — read-access to what's coming, no status call required.

API

Schedule JSON API

Activities, relationships, and computed dates available as structured JSON for your own dashboards and integrations.

Calendar

ICS export

Push key milestones and activity windows to any calendar that reads ICS — superintendents see the week in their own app.

Audit

Computation log + retrospective

Every CPM run is logged; a post-job retrospective compares plan vs. actual so the next schedule starts smarter.

See CPM run on your real schedule.

30 minutes. Bring a Primavera P6 export or an MS Project file from a live job. We'll import it, run the pass, and show you the critical path, the float, and where it's already drifting.