This is a manual review of BuildManager run 019d33d6-1da8-738a-bbed-acf2673c5162 against the human QS workbook and the previous AI pass 019d313f-b455-712a-9c67-de8aa6cd0a7d. Compared with run 3, this pass is materially better on doors, floor finishes, equipment separation and even partial waterproofing. The cost of that improvement is noise: more flags, more review placeholders, and validator traces that still bleed into the output.
The pipeline backs away from unsafe door-family grouping, returns to an exact 91-door schedule, separates equipment into its own trade, and starts emitting actual waterproofing quantities instead of flags only.
Run 4 is much richer, but it also contains more validator traces, code-review placeholders and bill-adjacent QA rows. It is closer to the workbook, but less clean to hand straight to pricing.
| Metric | Human workbook | Run 3 | Run 4 | Call | Interpretation |
|---|---|---|---|---|---|
| Overall output volume | 500 workbook rows | 267 AI rows | 528 AI rows | +5.6% vs human | Run 4 is back above the workbook row count, which tells you it is richer than run 3 but also more fragmented and less tidy. |
| Door schedule integrity | 91 new doors grouped into 14 clean pricing lines | 16 family rows in Doors totaling 116 EA, plus major DT reconciliation leakage | 91 explicit door rows totaling 91 EA, with only two small validator traces outside Doors | Recovered exact count | This is the biggest run-4 improvement. The pipeline has backed away from unsafe family grouping and returned to explicit openings. |
| Genuine floor-finish coverage | 1,499.57 m² of floor finishes and tiling | 1,447.59 m² | 1,516.79 m² | +1.1% vs human | Run 4 keeps the recovered floor package from run 3 and brings TL3 fully back into range as well. |
| Skirting length | 737.33 lm | 625.40 lm | 662.50 lm | -10.1% vs human | Skirtings improve again, but they are still short enough that a QS would want to review transitions and wet-area edges. |
| Joinery and equipment structure | 124 joinery-style lines plus 33 equipment lines | 48 joinery rows with no dedicated equipment trade | 168 joinery rows plus 33 equipment rows | Closer, but over-split | Run 4 is much closer to the workbook structure because appliances and amenities hardware are now separated, but the joinery itself is overly exploded. |
| Waterproofing | 229.90 m² measured explicitly | No measured trade, only unresolved flags | 46.69 m² floor membrane plus threshold waterstops and perimeter sealant | Partial recovery | This is the first run that starts to measure waterproofing, but it still falls well short of the full floor-and-wall package in the workbook. |
| Painting and wall-finish packaging | Mostly area-based painting with separate finish packages | 1,139.3 m² painting plus 1,979.5 m of mixed specials | 619.4 m² painting plus 27 wall-finish rows of height-coded lengths | Richer, less normalised | Run 4 exposes more of the finish logic as dedicated rows, but it is less converted into direct pricing units than run 3. |
| Signage | 11 EA | 0 EA | 1 EA | Back, still -90.9% | The run recovers one signage item, but the broader schedule is still missing almost entirely. |
| Services and commercial wrapper | 16 wrapper rows including consultants and MEP provisional sums | 10 allowances plus isolated review items | 10 allowances plus one electrical review item and one mechanical indicative item | Still under-scoped | Architecture is improving faster than commercial completeness. The wrapper layer is still not behaving like a real estimate. |
| Bill hygiene | No validator traces or code-review placeholders in priced output | 24 flags and large leaked DT validator rows | 44 flags, smaller DT validator traces, and several code-review items still visible in trades | Noisier again | Run 4 is diagnostically richer, but those QA traces should not surface as bill items. The extractor and the bill layer still need cleaner separation. |
This pass is not just a bigger schedule. It is a better commercial proxy in some core areas. The remaining question is how much cleanup a QS still has to do before pricing.
91 new doors are grouped cleanly and are commercially safe to price.
Run 3 over-aggregated the door package into family rows, which made the count and the bill logic unsafe.
Run 4 returns to 91 explicit door rows, which is a much safer abstraction. The remaining DT3 and DT4 validator traces are small, but they still should not surface.
Keep the explicit opening mode for doors, then suppress validator traces before the bill is emitted.
The workbook prices nearly the full legend-driven finish package and 737.33 lm of skirting.
Run 3 recovered most finish scope, but TL3 stayed short and skirtings were still materially under the workbook.
Run 4 keeps the broad finish recovery, restores TL3 to 184.1 m², and lifts skirting to 662.5 lm. This is the best floor package so far.
Preserve the recovered family coverage, then trim the small C1 and VL2 review traces out of the bill output.
The workbook separates joinery packages from appliances and fitout equipment, which keeps pricing structured.
Run 3 still mixed most of that scope back into Joinery and left the appliances implicit or unresolved.
Run 4 creates a dedicated Equipment trade with 33 rows and massively expands Joinery detail. That is structurally closer to the workbook, but it is also too fragmented to price cleanly without regrouping.
After extraction, regroup joinery subcomponents back into priceable assemblies while keeping appliances and loose equipment separate.
Bathroom floors and walls are measured explicitly at 229.9 m².
Run 3 diagnosed waterproofing uncertainty, but still emitted no measured trade at all.
Run 4 finally emits a waterproofing trade, including floor membrane, threshold waterstops and sealant, but it still misses most of the vertical wall membrane package.
Extend wet-area recognition from floor membrane into wall membrane coverage so the full bathroom package reaches the bill.
Painting is largely area-based and separated from wall-finish accessories and feature treatments.
Run 3 had more usable painting area, but it still mixed direct pricing units with raw specials.
Run 4 splits more of the finish package into dedicated wall-finish rows and acoustic-panel traces, which is richer evidence but less normalised for direct pricing.
Add a surface-conversion pass that turns height-coded finish rows into m² and parks the QA notes outside the priced bill.
11 signage items are counted directly from schedule information.
Run 3 missed signage entirely.
Run 4 recovers one direct-stuck vinyl lettering item, but the rest of the schedule is still absent.
Treat signage as a dedicated counted schedule instead of relying on generic extraction to surface it incidentally.
Consultants, temporary services and MEP fallback allowances are built into the estimate so the commercial structure is complete.
Run 3 remained thin on allowances and left services as sparse review notes.
Run 4 still behaves similarly. It is slightly clearer, but it still does not turn sparse services information into a workable provisional-sum structure.
Layer a controlled allowance pack on top of the improved architectural takeoff so the estimate behaves like a real QS workbook.
The workbook is a clean commercial bill, not a blend of output plus diagnostics.
Run 3 had fewer flags than run 4, but it also had major leaked reconciliation rows inside Tiling.
Run 4 reduces the size of those leaks, but it raises many more QA traces, code-review placeholders and validator items. That is better for debugging, worse for direct pricing.
Keep the diagnostics, but publish them into a QA layer rather than the same output stream as the bill items.
On floors, the story is mostly positive. The remaining problems are now less about missing whole families and more about boundary errors or QA placeholders showing up in the bill.
| Family | Human | Run 3 | Run 4 | Call | Read |
|---|---|---|---|---|---|
| C1 | 18.18 m² | 18.20 m² | 18.20 m² + 1 review item | Recovered, with trace | The measured quantity is still right, but run 4 also emits a visible review placeholder that should stay out of the bill. |
| CP1 | 272.54 m² | 272.50 m² | 272.50 m² | Stable | Still one of the cleanest and most reliable families in the whole pipeline. |
| CP2 | 30.94 m² | 29.59 m² | 29.59 m² | Stable | Run 4 keeps the recovered carpet-tile family intact. |
| CP3 | 44.35 m² | 44.40 m² | 44.40 m² | Stable | Feature carpet tile coverage remains strong. |
| TL2 | 163.50 m² | 163.62 m² | 163.62 m² | Stable | Main floor tile coverage stays very close to the workbook. |
| TL3 | 183.03 m² | 114.90 m² | 184.10 m² | Recovered | This is a meaningful run-4 gain. The bathroom wall-tile package is now back in line with the workbook. |
| VL1 | 364.78 m² | 484.49 m² | 484.49 m² | Still over | The family remains over-expanded. Run 4 does not solve this boundary issue. |
| VL2 | 19.62 m² | 19.70 m² | 19.70 m² + 1 review item | Stable, with trace | The measured quantity is right, but a visible code-review trace still leaks into the output. |
| VD2 / WD2 | 75.08 m² | 51.50 m² | 51.50 m² | Still partial | The timber / vinyl family is still under-measured against the workbook. |
| DEM make-good | Not part of new-finish pricing | 760.0 m² inside Demolition | 760.0 m² inside Demolition | Still fixed | The correct namespace from run 3 is preserved, which keeps the replacement-finish totals honest. |
Run 4 is the strongest overall pass so far if you judge it as a workbook proxy rather than as a perfectly clean bill. Doors, floors, equipment and partial waterproofing all move in the right direction together.
The pipeline appears to have stepped back from the unstable family-grouping strategy and returned to explicit schedule rows where needed. That is especially visible in the recovered 91-door schedule.
The remaining problem is separation of concerns. Run 4 is blending bill items, QA traces and code-review notes into the same output stream, which makes it more useful for debugging than for direct pricing.
Run 4 is the strongest overall Railway Road pass to date because it improves the door schedule, keeps the recovered floor package, splits equipment out properly, and finally starts measuring waterproofing. If the goal is to review and price with light QS cleanup, this is progress. If the goal is zero-touch pricing, it is still not there.
The right next move is not to simplify the extractor again. Keep the recovered detail, but separate diagnostics from bill output and regroup the over-split trades into pricing-friendly packages.
Run 4 proves that explicit openings are safer than family reconciliation. The next step is to keep that mode and stop the validator leftovers from surfacing in Tiling.
The extraction is now rich enough. What is missing is a packaging layer that turns all those subcomponents into the same practical joinery groupings a QS workbook expects.
Floor membrane, thresholds and sealant are now present. The next gain is to add the vertical membrane and any ancillary wet-area wall coverage so the package matches the workbook.
TL3 is fixed, but VL1 is still too large and VD2 / WD2 is still too small. The finish-family guardrails now need to catch overshoots and undershoots together.
Run 4 contains useful diagnostics, but those placeholders and validator traces should live in a review layer, not inside the priced takeoff itself.
Those remain the consistent weak spots. The architecture is improving faster than the allowance and schedule-conversion logic that a real estimate still needs.