ChatGPT for Construction Estimating: Check a Quote, Do Not Write It

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for ChatGPT for Construction Estimating: Check a Quote, Do Not Write It.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for ChatGPT for Construction Estimating: Check a Quote, Do Not Write It.

Yes, as a second reader rather than an author. Give ChatGPT a finished quote and the scope notes, and ask for arithmetic mismatches, scope gaps and likely omissions. Don't ask it for quantities or rates, because it knows nothing about your costs, suppliers or site. Check each finding against the drawings and make every change yourself.

Most estimators who try ChatGPT start by asking it to produce the estimate. It obliges with tidy line items and rates that look plausible and come from nowhere. The version that earns its place is the reverse: you finish the quote the normal way, then have ChatGPT read it like a sceptical colleague, slowly, line by line, with the scope notes open beside it.

Follow me on Instagram@sagnikteaches

The worked example is a quote for a small single-storey rear extension to a house, about 21 square metres, priced by a small building firm. All the figures are invented for illustration. Over four passes, the check finds an adding-up slip, a heating mismatch and several pieces of missing work. Sent as it stood, the quote would have left $559 of margin on a $54,810 job.

Connect on LinkedInSagnik Bhattacharya

ChatGPT is not the judge in any of this. A spreadsheet judges the arithmetic, the drawings judge the scope, and you judge what changes. Its job is to make the list of things to look at longer than your eyes would make it at the end of a bid day.

Subscribe on YouTube@sagnikteaches

What ChatGPT cannot know about your price

A price is made of things that live outside the chat window: your labour rates and how fast your crew works, this week's supplier prices, the access to the site, the ground, the client's habit of changing their mind, and your appetite for risk. ChatGPT sees none of those. Ask it to write the estimate and it fills the gaps with averages from its training, in the same confident tone as everything else it says.

An invented rate looks exactly like a real one. A line reading "facing brickwork, $118 per square metre" carries no sign of whether it came from a supplier, a textbook or nowhere. That is why the title says do not write it: the estimator is accountable for every figure, and a figure with no source can't be defended when the job goes over.

What it does well is reading. A quote is a table and the scope notes are text. Comparing two pieces of text, spotting that one mentions underfloor heating and the other doesn't, and walking through a build sequence asking "did anyone price this?" are all cheap for a language model. Whether small firms can trust AI numbers more broadly is covered in can AI produce accurate estimates for a small building firm. This tutorial stays with the checker role.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

What goes into the chat, and what stays out

Goes inStays out
The finished quote lines: description, quantity, unit, rate, totalCost build-ups, supplier quotes and other bidders' prices
Scope notes as text: the client's brief and the notes from the drawingsThe client's name, address and phone numbers
Your standard exclusions wordingOverhead, margin logic and rate sheets (delete the mark-up line before pasting if it shows)
The job type and size in one sentenceAnything covered by tender terms or a confidentiality agreement that limits sharing

Your sell rates are commercially sensitive, so check the plan before you paste. OpenAI's Data controls page explains that on personal plans chats are used to improve its models unless you switch off Improve the model for everyone, which sits under Settings, then Data controls. A Business workspace is not used for training by default. Avoid the thumbs-up and thumbs-down buttons on any chat that held a quote: OpenAI says feedback can send the whole conversation for training even when you have opted out.

Paste text, not a photo of a PDF. Copy the quote table into plain text or export it as CSV, and type or paste the scope notes as bullets. Text arrives exactly as written; a photographed page can lose a digit, and a lost digit is the very thing you are hunting.

The quote under test

Here is the quote as the firm sent it to its own checker, with the scope notes that came from the client's brief and the drawing notes. Neither is perfect, which is the point.

LineDescriptionQtyUnitRate ($)Total ($)
1Site set-up, welfare and floor protection1lot1,6501,650
2Scaffold: erect, hire for 6 weeks, dismantle1lot1,9001,900
3Strip-out and opening in existing rear wall, with temporary props1lot2,7502,750
4Excavation and strip foundations24m1603,840
5Ground slab: hardcore, insulation, membrane, screed21m21382,898
6Cavity walls: block inner leaf, facing brick outer leaf43m21245,132
7Steel beam, padstones and lintels, to engineer's design1lot3,9503,950
8Flat roof: joists, deck, insulation, membrane, edge protection24m22054,920
9Fixed rooflights2nr1,1802,360
10Sliding door set, 3 m, supplied and fitted1nr3,8503,850
11Side window1nr690690
12Electrical installation (PC sum)1PC3,6003,600
13Heating: radiator and pipework extension1lot2,4002,400
14Drainage alterations1lot1,9501,950
15Plaster and paint, walls and ceiling63m2382,394
16Flooring, supplied and fitted21m2721,512
17Skirting, architrave and one internal door1lot880880
18Skips and waste removal3nr3951,185
Subtotal47,661
Overhead and profit, 15% on cost7,149
Quote total54,810

A PC (prime cost) sum is an allowance for something not yet priced firmly. The scope notes the firm pasted alongside read:

  • Single-storey rear extension, about 21 m2, flat roof with two fixed rooflights.
  • 3 m sliding door set to the garden and one side window.
  • Steel beam over the opening in the existing rear wall, to the engineer's design.
  • Water-based underfloor heating throughout the extension.
  • Floor finish: engineered timber, supplied and fitted by the contractor.
  • Electrics: new circuit for a kitchen island, ten sockets, eight downlights and one outdoor light.
  • Drainage: re-route the existing soil pipe that crosses the footprint.
  • The client removes the existing kitchen units before start; the contractor makes good the disturbed walls.
  • External step and a short path to the garden door.
  • Decoration: the extension walls and ceiling, plus the wall between the old kitchen and the extension.
  • The contractor arranges the permit application and the inspection visits.

Pass 1: arithmetic, with a spreadsheet as the judge

Start with the dullest pass, because it is the one tired people skip. Paste the lines as CSV and ask for mismatches only.

Below is the table from a finished construction quote, as CSV. Do not change any figure.
For each line, multiply Qty by Rate and compare the product with the stated Total. List only the lines where they differ: line number, your product, the stated total, the difference.
Then add up the stated Totals for lines 1 to 18, showing a running total after lines 6, 12 and 18, and compare with the stated Subtotal.
If everything matches, reply "No mismatches found" and nothing else.
CSV (first rows shown):
line,description,qty,unit,rate,total
1,"Site set-up, welfare and floor protection",1,lot,1650,1650
2,"Scaffold: erect, hire for 6 weeks, dismantle",1,lot,1900,1900
[paste the remaining rows, then the Subtotal row]

The reply to this prompt, on the extension, looks like this (illustrative):

Line 6: 43 x 124 = 5,332. Stated total 5,132. Difference 200.
Running total of stated totals: after line 6, 18,170; after line 12, 37,540; after line 18, 47,861. Stated subtotal 47,661. Difference 200.

Two findings, both real: a mistyped digit on line 6, and a subtotal that doesn't match its own lines. Now the spreadsheet takes over, because language models can slip on long additions, and a run might list line 6 correctly yet report the running total as 47,761. Paste the CSV into a sheet, so that quantity lands in column C, rate in E and stated total in F, then add one check column and one check cell:

  • In G2, =ROUND(C2*E2,2)-F2, filled down. Any non-zero result is a line to correct.
  • Beside the subtotal, =SUM(F2:F19)-F20. Anything other than zero means the subtotal doesn't match the lines above it.

Treat ChatGPT's list as a second opinion and the formulas as the decision. If you want the longer treatment of using ChatGPT with sheets, the ChatGPT Excel guide covers it.

Pass 2: scope notes against quote lines

This pass finds work that was in the brief and fell out of the price. Notice the rule in the prompt that makes it useful: a lump-sum line that doesn't say it includes an item doesn't get the benefit of the doubt.

You are checking a quote against the client's scope notes. Do not price anything and do not suggest rates.
For every item in SCOPE NOTES, find the matching QUOTE line or lines. Output a table with four columns: Scope item | Matching quote line numbers | Status (Covered / Conflict / Not found / Unclear) | Why, in one sentence.
Use only the text I give you. If a scope item might sit inside a lump-sum line but the line does not say so, mark it Unclear, not Covered.
SCOPE NOTES:
[paste the scope notes]
QUOTE:
[paste the quote table]

A run on the extension returns something like this (illustrative):

Scope itemQuote lineStatusWhy
21 m2 single-storey extension, flat roof5, 8CoveredSlab (21 m2) and roof (24 m2) are priced.
Two fixed rooflights9CoveredTwo rooflights on line 9.
3 m sliding door set; side window10, 11CoveredBoth priced as supplied and fitted.
Steel beam over the opening7CoveredPriced to the engineer's design.
Water-based underfloor heating13ConflictLine 13 prices radiators and pipework only.
Engineered timber floor, supplied and fitted16UnclearThe line says flooring, supplied and fitted; the type isn't stated.
Island circuit, ten sockets, eight downlights, outdoor light12UnclearThe allowance lists no inclusions.
Drainage re-route14CoveredDrainage alterations are priced.
Making good disturbed wallsNoneNot foundNo line for making good after the units are removed.
External step and pathNoneNot foundNo external works line.
Decoration of extension and shared wall15CoveredPlaster and paint on 63 m2.
Permit application and inspection visitsNoneNot foundNo line for fees or visits.

Each non-covered row is a lead, not a conclusion. The heating conflict is real: the scope says underfloor and the price says radiators. The floor finish needs one look at the supplier's quote. The electrical allowance needs a sentence saying what it covers. Three "Not found" rows turn straight into pricing work. If you want the same missing-lines idea on a smaller job, the bathroom remodel version applies it to a single room.

Pass 3: walk the job in build order

The first two passes only catch what the notes already mention. Pass 3 goes after what nobody wrote down. Ask ChatGPT to walk the job stage by stage from first visit to handover and name the things small contractors commonly forget to price, then mark each as in the quote or not.

This is a single-storey rear extension to a house, built by a small contractor. Walk through the job in build order, from the first site visit to handover. At each stage list items that are commonly forgotten at quoting stage. Items only: no prices, no rates.
Then check each item against the QUOTE below and mark it "in the quote (line N)" or "not in the quote". Do not guess: if the wording is ambiguous, say "unclear".
QUOTE:
[paste the quote table]

Expect fourteen or so items. In the extension run, ten were already covered by lines 1 to 18 or by the Pass 2 table, which is a useful confirmation in itself. Four were new:

  • Temporary weather protection while the rear wall is open. The quote has temporary props on line 3 and nothing for sheeting.
  • Ground conditions. No allowance and no exclusion for ground that differs from what the trial hole showed.
  • Final clean and handover. Not mentioned anywhere.
  • A possible double count of scaffold: line 2 prices scaffold, and line 8 mentions edge protection.

This is the least reliable pass, because the prompt asks for generic knowledge rather than for comparison with text you supplied. Keep an item only when you can point to the drawings, the site visit or your own history of misses. Of the four above, two survived that test, and the next sections show which.

Pass 4: read the quote as the homeowner would

The last pass checks wording. A quote can be arithmetically perfect and still start an argument at handover because the client assumed something was in. Ask ChatGPT to play that reader.

You are the homeowner reading this quote. You are not a builder. List every line or sentence where you would assume something is included that may not be, and say what you would assume. Then list what the quote does not say about who supplies items such as kitchen units, floor coverings and light fittings.
QUOTE:
[paste the quote table]

The response, trimmed (illustrative): the homeowner would assume the electrical allowance covers everything in the brief; that "flooring" means the timber they chose; that "plaster and paint" includes the existing kitchen; and that light fittings beyond the downlights are included. Nothing states who supplies the kitchen units, and the quote lists no exclusions at all.

Rewrite what the homeowner would misread. Before and after, for the electrical line:

Before: Electrical installation (PC sum), $3,600.
After: Electrical installation: allowance of $3,600 covering one kitchen island circuit, ten sockets, eight downlights and one outdoor light. Any difference is invoiced or credited at cost, with the supplier's invoice shown to you first.

Then add an exclusions paragraph: kitchen units and appliances, light fittings other than the eight downlights, decoration of any room other than the extension and the shared wall, and floor coverings in the existing house. One writing job is also safe here. Once you have priced a line yourself, ChatGPT can turn "exc & strip fdn" into plain English for the client, because the numbers are yours and only the wording is its.

Sorting 13 findings into changes, rewordings and rejects

After four passes the firm has thirteen findings. It checks each against the drawings, the supplier quotes and its own rates, then logs a verdict. The prices on the right are the estimator's own, not ChatGPT's.

#PassFindingVerdictEffect on price
11Line 6 total is $5,132; 43 x $124 is $5,332Real+$200
21Subtotal is $200 below the sum of its own linesReal+$200
32Scope says underfloor heating; line 13 prices radiatorsReal+$1,350 net
42Floor type not stated on line 16Wording only: the rate came from the supplier's quote for engineered timber$0
52Electrical allowance lists no inclusionsWording only$0
62External step and path not pricedReal+$1,280
72Making good to disturbed walls not pricedReal+$960
82Permit application and inspection visits not pricedReal; allowance, with who pays the fees to be confirmed+$750
93No temporary weather protectionReal+$350
103No allowance for poor groundReal; added as a stated provisional sum+$1,500
113Final clean not mentionedRejected: it is in the labour rates$0
123Possible scaffold double countRejected: roof edge protection belongs to the roof system, not the scaffold$0
134No exclusions listedWording only: exclusions paragraph added$0

Eight findings changed the price, three changed only the wording, two were rejected. That ratio is a feature of this made-up quote, not a benchmark, but the pattern is typical of the method: most findings are leads that survive, and a few are false alarms that cost a minute each to dismiss. The log matters because it makes you write the reason for every rejection, and a rejection with a reason is a decision rather than a shrug.

What the check was worth on this quote

Add the eight price changes: the arithmetic fixes are $400 on the cost subtotal, and the omissions are $1,350 + $1,280 + $960 + $750 + $350 + $1,500, which is $6,190. The cost subtotal moves from $47,661 to $54,251.

As sentAfter the check
Cost subtotal$47,661$54,251
Overhead and profit at 15% on cost$7,149$8,138
Quote total$54,810$62,389

The corrected quote is $7,579 higher, about 14%. The arithmetic fixes alone account for only $460 of that, which is why a checking routine that stops at the adding-up misses most of the value. Now look at what would have happened if the original had gone out. The job costs $54,251 to build on the corrected figures, and the firm would be paid $54,810: $559 above cost, about 1% of the price, against the 15% mark-up it believed it was charging. Whether the market bears $62,389 is a separate decision. The point is that the firm now makes it knowingly.

The whole check took about 35 minutes on this quote: five minutes pasting, ten reading outputs and twenty testing each finding against drawings and supplier quotes. The testing is where the time goes, and it is the part that cannot be handed over.

Back-test it on three of your own past quotes

Before trusting the routine, find out whether it would have caught your own misses. Pick three finished jobs where something went wrong: a variation you should have priced, a trade you forgot, a unit mixed up. Remove names. Paste the original quote and the scope notes as they stood before the job, then run Passes 2 and 3.

Score three things. Did it raise the item that cost you money? How many false alarms came with each true hit? How long did the verification take? My rule of thumb, which you should replace with your own after a few jobs: keep the routine if it raises the real miss on at least two of the three, and drop it if it raises none. The remodelling estimator test uses the same back-testing logic for a dedicated estimating tool.

Turn each real miss into a standing checklist line

ChatGPT's generic list of forgotten items is weaker than a list built from your own jobs. So every accepted finding goes into a misses log, and the log becomes a checklist that you paste into Pass 3 next time. Three illustrative rows:

Job typeWhat was missedCostChecklist line added
Bathroom refitExtractor duct to an outside wall$380Where does every extraction duct end, and what does it need?
Garage conversionMaking good the floor level at the old threshold$520Are there level changes between the old floor and the new one?
Loft conversionScaffold hire ran two weeks over$700Does scaffold duration match the programme plus two weeks?

After a dozen jobs the log is a checklist that no chatbot can supply, because it encodes your own mistakes. Paste it as "Items this firm has missed before" and ask ChatGPT to test each against the quote. That version of Pass 3 raises fewer items and almost all of them are worth reading.

Where the check stops and a dedicated tool starts

A chat window copes well with a twenty-line quote. It copes badly with a 400-line commercial bid that goes through four revisions, because the table gets pasted in pieces and version control is whatever you remember. Two jobs also sit outside this routine altogether. Quantities from drawings are a takeoff job, and a small firm's test of AI takeoff from drawings shows what happened when one tried it. Comparing several subcontractor quotes for the same scope is bid levelling, and what AI catches and misses when levelling bids covers that.

The decision rule is simple. If the quote is short, you finish it yourself and ChatGPT reads it after you. If it is long or revised often, move the table into a tool that keeps lines and versions, and use ChatGPT for the same four passes on exports from it.

Questions estimators ask about the quote check

Can ChatGPT take quantities off drawings for me?

Not dependably. Measuring from drawings is a takeoff job, and reading dimensions from an image is where chat assistants slip most often: a wrong scale, a missed note, a number read from the wrong line. Do the takeoff by hand or in a takeoff tool, then use ChatGPT on the finished quote. It reads text well, so give it the written quantities and scope notes rather than the drawing.

Do I need to paste in my rate sheet or cost data?

No. The check works on the finished quote and the scope notes, and it never needs to know what anything costs you. Leave out cost build-ups, supplier prices and mark-up logic. If your quote shows a mark-up line, delete it before pasting and check the arithmetic on the cost lines alone.

How many findings are normal on one quote?

Expect a handful of useful ones and a few false alarms. On the extension above, 13 findings led to 11 changes (eight to the price, three to the wording) and two rejections, but that is one illustrative case. Run the check on five past quotes where you know what went wrong, count hits and misses, and set your own expectation from that.

Should the quote check replace a second estimator?

It can't. A second estimator brings site knowledge, supplier relationships and a feel for risk that the text of a quote doesn't contain. The ChatGPT pass is cheap enough to run on every quote and catches mechanical errors early, which leaves the second estimator's time for pricing risk instead of hunting for a transposed digit.

Further reads

Sources: OpenAI help pages (Data controls in ChatGPT) and ChatGPT pricing pages, read on 1 November 2026. All quote figures are invented for illustration.

Want a quote check your whole team can run?

On a 1:1 call we'll look at how quotes leave your office today, build a check routine that fits your estimating steps, and decide which findings a person must always sign off.

Book a 1:1 call with me