Skip to main content
DoneThat

AI Adoption GuideConstructionBid

Tender Clause Risk Classification

LLM classifies contract clauses by risk category, including liquidated damages, unlimited liability, and unusual scope, to prioritize legal review.

Construction processBidAwardPlanMobilizeBuildInspectHandoverClose

By Don, DoneThat’s AI coach · updated

Extract clauses from the tender pack first

Classification on a long PDF as one blob hides liquidated damages in a schedule and buries unlimited liability in a definitions annex. Extract first.

Pull the invitation to tender, the form of contract, special conditions, preliminaries, pricing documents, and any employer amendments. Construction bid packs often live in document control and project systems from vendors such as Autodesk and Procore. Treat those systems as the source of the files, not as a substitute for extraction. Export or download the contract set so the classifier sees the same text legal will cite.

Segment at clause and sub-clause level, keeping the numbering. A cite that names a clause number without the quoted sentence is not a cite. Keep the surrounding heading so delay damages in a preliminaries item is not merged with delay in a programme narrative.

Mark non-contract text: cover letters, question-and-answer logs, drawing notes, and marketing summaries. If those fragments enter the classifier, you get false unusual-scope tags on ordinary specification language.

One illustrative pass: a bid lead on a school refurbishment invitation to tender splits the pack into the unamended form of contract, the employer's special conditions, and the preliminaries. Unlimited liability language, when it appears at all, usually sits in the special conditions or in an employer amendment, not in the unamended form. If you classify the form of contract alone, that language never enters the queue. Extraction is the quality gate. Classification cannot recover a clause that never made it into the input.

Classify against a closed list, with a cite

For each extracted clause, the model returns one label from the frozen list, the verbatim span it used, and a confidence band. High and medium confidence may receive a category. Low confidence stays uncoded.

For liquidated damages, the cite must point at the damages or delay-damages provision, including any daily or weekly rate and any cap, or the clear absence of a cap. If the model tags time-is-of-the-essence language as liquidated damages without a damages mechanism, send it back as uncoded.

For unlimited liability, the cite must show the carve-out or the missing cap, not a general indemnity heading. Many construction contracts cap some heads and leave others open. Tag the open head, quote the sentence that leaves it open, and leave capped heads in a different category if your list has one.

Unusual scope is for obligations that sit outside the trade, geography, or procurement model you bid, not for any clause a junior estimator has not seen before. Standard insurance, bonding, and statutory cooperation language is usual for construction tenders. Tagging a normal public-liability or contractors-all-risks requirement as unusual scope burns legal time and trains the team to ignore the tag.

The cite is a quote plus locator: clause number, document name, and page or PDF page if numbering is unreliable. Legal must be able to jump to the same sentence. If they cannot, the tag is void.

Do not auto-map a tag into a commercial position. A liquidated damages tag does not mean you should price the damages or qualify the bid. That decision stays with legal and the bid lead after review.

Where the employer has issued a marked-up form, pair this pass with contract redline deviation analysis so you classify the version you would actually sign, not the unamended template.

Three ways a clean-looking run still fails

Missing liquidated damages. Those provisions often live in a contract particular, an appendix, or a preliminaries item named damages for delay, not under a heading that says liquidated damages. If extraction dropped schedules, or the model required the words liquidated damages as a keyword, the most expensive time risk in the pack never enters the high-risk queue. Guardrail: a bid is not classified-complete until the damages-for-delay location is either tagged or explicitly logged as absent after a targeted search of particulars and appendices.

Tagging standard insurance as unusual. Public liability minima, professional indemnity for design portions, and joint-names requirements are ordinary in construction invitations to tender. An unusual-scope tag on those clauses floods the legal queue. Counsel then learns that unusual means the model was surprised. Guardrail: maintain an allow-list of insurance and bonding patterns that cannot receive unusual-scope without a second, human confirmation.

Auto-accepting a bid because no high-risk tag fired. Silence is not a legal review. A run can return no high-risk tags because the special conditions file was omitted, because delay damages were phrased in a schedule the parser skipped, or because every difficult clause was low-confidence and therefore uncoded. Guardrail: the bid lead cannot mark legal complete from an empty high-risk list. Completion requires legal sign-off on the high-risk queue and a disposition of the uncoded set.

Pass the tagged pack into bid review and the register

After legal has confirmed or rejected tags, the surviving high-risk items belong on the project risk conversation, not only in a review email. Feed confirmed categories, cites, and the legal disposition into project risk register generation so delay damages, uncapped liability, and unusual obligations remain visible if you win.

Keep the audit trail: source file, clause locator, quote, model category, confidence, legal category if different, and decision. That trail is what you reuse on the next tender from the same employer. It is also what you need if someone later asks why a qualification was or was not taken.

Classification does not replace reading the contract. It orders the reading so liquidated damages, unlimited liability, and unusual scope are not found on the afternoon the bid is due.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first