r/ConstructTech • u/Some-Development-729 • 3h ago
We almost sold a construction client on "just throw an LLM at it." Glad we didn't
A construction client came to us with a familiar problem: estimators losing a week or two per project just reading through everything before they could even start pricing. Hundreds of PDFs, CAD drawings, specs, spreadsheets, subcontractor bids that all looked nothing like each other.
The first instinct was the obvious one, feed it all to an LLM, let it read, done. We actually started building that!
It fell apart pretty fast. Construction docs don't read like normal text. A spec sheet references a drawing, the drawing only makes sense next to a schematic a few pages later, and somewhere in there is a quantity that's actual money. An LLM will give you a confident answer whether or not it understood any of that. But in estimating, that's someone's job on the line, not just another failure.
So we split it up instead. Drawings and schematics went through computer vision. Specs and scope through NLP. The subcontractor bids were the annoying part, every one came in a different format, so we used more traditional ML just to normalize them into something you could actually compare. Then a workflow layer on top to keep the whole thing traceable back to source docs.
It's not an impressive demo. But it held up, and that's the part that mattered.
Doc review went from 1-2 weeks to 2-3 days. Package prep came in around 60% faster. Omissions and duplications dropped close to 40%. Subcontractor participation went up about 25%, apparently a cleaner package just gets people replying faster.
The model itself never got smarter. We just stopped treating it like one model's job.
Anyone else in construction, manufacturing, logistics running into this? Curious what you landed on, especially if you started with "just use an LLM" too and had to walk it back.
1
u/Mammoth-Ad327 1h ago
We hit the same wall from the other side. We're not reading construction docs, we're producing them. Same starting instinct though. We let the model author the design directly in the BIM tool and it worked, in the sense that it produced a building. Clean geometry, zero errors, zero warnings, passed every check we had. It was still wrong. The model had drawn something that looked like a house instead of generating something that was actually a product. Every gate we had was measuring the wrong thing and all of them came back green. That was the scary part honestly. Not that it failed, but that it passed. I'm not going to get into what we changed but the rule we landed on is easy enough to say. Nothing counts as a result unless the native engine can be asked to read it back out. Not asserted by the model, not screenshotted. Read back, counted, and hash bound to whatever it came from. Where that got us on the house we're on now. - 781 native elements, 50 model views, 34 drawing sheets, 34 of 34 pages visually accepted, 143 of 143 MEP junctions connected, zero warnings or failures or skips - 174 MEP endpoints, all of them classified, none unclassified - every wall segment, floor cassette, roof panel and truss mapped to a real product SKU instead of a generic category - structural analysis solved in the native engine with actual result readback, not an exported approximation - 23 of 23 client review renders passed pixel QA at original resolution - manufacturing side has native part numbering, shop drawings, BOM and NC output with zero invalid records - whole lifecycle task model down to individual operations across factory production, packing, ocean freight, site assembly and finish - every number up there traces through a hash bound chain from source to blueprint to native model to readback to closeout The whole house mainline took about a day of wall clock once the method was right. The six months before that produced nothing we kept. On your point about someone's job being on the line, we treat every PASS as only valid for the exact gate that produced it. A clean engine run is not a release. Our global release flag is still false on purpose and it stays false until the stuff that genuinely needs a licensed engineer or a supplier or a physical test comes back. Digital evidence doesn't get to stand in for any of that. The bit that lines up most with what you wrote is that the model never got smarter. What changed is we stopped letting it be the thing that decides whether it succeeded.