Skip to main content
DoneThat

AI Adoption GuideConstructionAward

Contract Redline Deviation Analysis

LLM compares vendor-returned contract markups against the base contract and quantifies risk delta per clause.

Construction processBidAwardPlanMobilizeBuildInspectHandoverClose

By Don, DoneThat’s AI coach · updated

Compare the returned markup to the issued form

The usable output at award is a clause-level deviation: the issued wording, the returned wording, a change type, and a risk note that legal still owns. If the clause did not change, the row stays empty. Do not invent a markup so the table looks complete. Do not treat a "risk delta" as a measured loss. It is the direction of the change for that clause (remedy removed, cap deleted, liability widened, time bar softened), not a dollar impact and not a dispute forecast.

Start from the form you issued, not from the vendor's covering letter. The comparison is body text against body text. Lock the issued form that went out with the tender, or the last employer-approved draft counsel signed off. Everything after that is a return.

Construction file systems (Autodesk, Procore, and other project platforms) are version stores. Freeze two files: the base and the return. They do not decide which change is acceptable. A vendor-uploaded clean PDF is not the base because it is easier to read.

Use tender clause risk classification only as a watch list for liquidated damages, indemnities, termination, payment, variations, insurance, and any clause already marked high-touch. This pass is not a second classification of the original tender. It is a check of what came back.

Align each clause and cite both texts

Lock the base: the form of contract issued with the tender, plus schedules and special conditions the markup may have touched. If the vendor returned a full restated contract, that restatement is the return, not a comment overlay on the issued Word file.

Lock the return as received. If they sent a covering letter and a rewrite, compare the rewrite. Do not merge the two into a third text.

Align by clause number and heading. Where the vendor renumbered, align by obligation: who pays, who is liable, when time starts, what is capped. A relocated paragraph that keeps the same duty is a relocation. A relocated paragraph that drops a sentence is a deletion inside a move.

For each aligned pair, emit one of: unchanged (empty), insertion, deletion, substitution, or relocation. For anything other than empty, cite both texts verbatim. A paraphrase is how a deleted half-sentence disappears. Legal ranks after the cites exist. The model does not accept, reject, or score a loss.

Illustrative example, not a measured outcome. Issued liquidated damages: "If the Contractor fails to achieve Practical Completion by the Date for Practical Completion, the Contractor shall pay liquidated damages of [daily rate] per calendar day, capped at 10 percent of the Contract Sum." The returned markup keeps the daily-rate sentence, deletes the cap sentence, and inserts: "Liquidated damages shall not apply where delay is caused in whole or in part by the Principal."

The deviation row shows the clause identifier, the full issued paragraph, the full returned paragraph, the change types (deletion of the cap; insertion of a shared-fault carve-out), and a note for legal: the cap is gone, and liquidated damages may be argued down to zero on concurrent or alleged principal delay. That note is not a dollar figure, not a probability, and not an instruction to accept. If the definitions clause later in the same document is unchanged, that row is blank. Empty stays empty.

If a comment balloon says "for discussion" but the body already deleted the cap, the body is the deviation. Comments are not a second contract.

Formatting, silence, and the vendor draft

Missing a deleted liquidated damages clause, or a deleted cap inside that clause, is the expensive miss. Strike-through in tracked changes can vanish when someone exports a clean copy or prints to PDF. If the return is a flattened PDF with no comments, still run a clause-by-clause pass against the issued form. Do not summarize the covering letter and call it the redline. A deleted cap, time bar, or condition precedent will not appear in the letter.

Treating formatting as a risk fills the list with noise. Heading restyles, fonts, clause renumbering that does not change the obligation, list-to-paragraph conversion, and balloons that only say "OK" are not deviations. If every style change is flagged, legal stops reading, and a real deletion in the same list is skipped.

Auto-accepting the vendor draft is the third failure. A conformed file that already incorporates the markup is still a vendor draft until legal says otherwise. Do not promote it to the execution version because it is tidy. Do not treat high similarity to the issued form as clearance of the one sentence that changed. Similarity of the rest of the document is not clearance of the clause that moved.

Silence in a schedule is not automatically agreed as issued. If the vendor returned only the general conditions and omitted a schedule, record an incomplete return, not an empty row for that schedule. Empty means you compared both texts and they match. Missing means you do not have the second text.

Pass accepted wording into award and claims

Put the ranked list in the award recommendation report as exceptions, not as a substitute for the recommendation. Unresolved must-fix items are conditions of award, or reasons not to award that bidder, once counsel and commercial close the point. Do not leave them only in an annex the recommendation summary never mentions.

Copy items accepted as-is, still with both cites, into project risk register generation so operations inherit the executed wording, not a paraphrase. A register line that says "LD exposure" without the carve-out text is how the award exception gets lost.

When a delay or variation argument appears later, variation claim entitlement analysis should open the executed clause, not the tender form and not the vendor's rejected markup. If a carve-out was accepted, entitlement starts from that text. If it was rejected and the issued form was signed, the empty redline row is the record that this clause did not move.

Do not use the redline pack as a loss forecast. A deleted cap is a change in contractual position. Any dollars show up later in delay, variation, or dispute work, with facts that do not exist at award.

Keep the working file boring: base locked, return locked, one row per clause, verbatim cites for anything that moved, blanks for everything that did not, and legal's rank in a column the model cannot overwrite.

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