Handling Large BOQs PRO
The AI scheduling engine is designed to scale from small single-section BOQs to complex multi-section programmes without requiring any change in how you interact with it.
How the AI scales with project sizeโ
The two-pass strategy naturally accommodates growth in project complexity.
Each WBS section โ one top-level ancestor grouping in your BOQ โ produces one intra-section LLM call. Those calls are parallelised: the AI processes all sections simultaneously rather than waiting for each to complete before starting the next. This means total wall time is dominated by the slowest section, not the sum of all sections. A BOQ with 8 sections does not take 8 times longer than a BOQ with 1 section.
The cross-section call is always a single lightweight summary call regardless of how many sections exist. It receives one line per section (section name, first item, last item, trade family) and returns inter-section links. This payload stays small โ typically under 20 lines โ even on large projects.
Chunking for oversized sections: If a single WBS section has more than 80 leaf items, which occurs in abnormally flat BOQ structures where most items sit under one heading, the AI automatically applies a 60-item sliding window with a 10-item overlap. Predecessor links in the overlap zone are de-duplicated. This chunking is transparent โ no user action is required and the progress panel does not distinguish chunked from non-chunked sections.
Phase grouping for very large projectsโ
Enable phase grouping when your BOQ has more than 20 WBS sections or more than 300 total items. The recommended badge appears automatically in the AI Schedule modal when these thresholds are met.
Phase grouping clusters your WBS sections into five construction phases โ civil, concrete, finishes, MEP, and general โ and sequences across phases in natural construction order rather than sending all sections to a single cross-section call.
Without phase grouping, the cross-section call receives all sections in one payload. This is efficient and accurate up to approximately 20 sections. Above that threshold, the payload grows large enough that the LLM may produce less precise sequencing โ phase grouping keeps each cross-section call focused on a manageable subset.
Performance referenceโ
| BOQ size | AI calls per iteration | Expected total time (3 iterations max) |
|---|---|---|
| 50 items or fewer, 1 section | 2 | less than 30 s |
| 100 items, 4 sections | 5 | less than 60 s |
| 200 items, 6 sections | 7 | less than 2 min |
| 300 items, 8 sections | 12 | less than 4 min |
Calls within a pass are parallelised. Total wall time is dominated by the slowest section, not the sum of all calls.
WBS structure quality mattersโ
A well-structured BOQ with clear heading rows and deep ancestor paths produces better AI sequencing than a flat BOQ with all items under one heading. If the schedule looks odd after AI optimisation, check that your BOQ was imported with proper heading rows and section groupings โ the AI uses the full ancestor context of each item to infer trade order and inter-section dependencies.
Error handlingโ
The AI handles imperfect LLM responses gracefully rather than failing the entire run.
- Malformed JSON from the LLM: The engine falls back to sequential ordering for that section and logs a warning.
- Unknown item IDs in the LLM response: Any link referencing an ID not present in the scenario is stripped. A warning is logged.
- Cycles detected after merge: The closing back-edge of the cycle is removed and a warning is logged. Processing continues with the remaining links. The warning appears in the iteration progress panel and as a toast when the run completes.
These warnings do not stop the run. The schedule is synthesised with the valid subset of links and the S-curve is scored normally.