Can AI do a takeoff accurately, and how far can you trust it? We gave eight AI trade specialists a real 90-sheet bid set and checked every mark they made against the architect's own drawings.
Most estimators have heard some version of the pitch: upload the drawings and the software hands back the quantities. Then they open a real set. The doors are on the plans and the door types are in a schedule. The toilet accessories are on an enlarged plan a few sheets later. Some rooms are drawn once as a typical and repeated across the building. A takeoff is mostly reading before it is any clicking.
So we tested the part that matters on bid day. Not whether an AI can measure one line on one sheet, but whether it can take off a whole set, trade by trade, the way an estimator does. And whether you could rely on what it hands back.
We picked a real, public bid set: the 90 architectural sheets for Sanibel Fire and Rescue Station 172, a two-story fire station in Florida. Eight AI specialists, one per trade, worked through it at the same time. We ran that team four times on Claude and once on GPT, recorded every move, and scored the results against the architect's own schedules and room areas.
Here is what we found, and where it went wrong.
In short
The test. Eight AI specialists took off the 90 sheets at the same time, through Takeoff Viewer, the takeoff tool we built, and its MCP server, the connection that lets an AI assistant use it. Each specialist covers one CSI division and follows a written method based on how estimators take off that trade.
Claude. The team finished in 9.5 to 13 minutes across four runs. Every time, it found 49 to 51 of the 53 doors at their tags, all 6 fire extinguishers and 17 of the 20 toilet accessories. Room floor areas came within 5% of the architect's numbers on 13 to 18 of 33 rooms.
GPT. The team took 40 minutes and made four times as many marks. It found all 20 accessories, but missed most of the apparatus bay floor.
The catch. Every mark lands in the viewer as a proposal for an estimator to accept or reject. The misses are the kind a reviewer catches on the sheet: a typical room not multiplied, a wall tag read as a window, two rooms merged into one outline.
9.5 to 13 min
for the whole Claude team, eight specialists at once
51 of 53
doors placed at their tags in three of four Claude runs, none false
0
doors, accessories or room floors counted on two sheets, in any of the five full runs
4.8 h
for a person to make the same marks, by our time model
- 1What we did
- 2Watch it happen
- 3Splitting up 90 sheets
- 4Results
- 5What went wrong
- 6How we kept the test honest
- 7Limits
- 8What it means for an estimator
1What we did
A bid isn't one sheet. An estimator gets a set, works out which sheets matter to each trade, and takes off every trade from its own pile of plans, schedules and details. We wanted to see how much of that an AI can do on a real set, and how fast.
The set is the architectural bid set for Sanibel Fire and Rescue Station 172, a two-story fire station in Sanibel, Florida. It has 90 sheets at 30 by 42 inches, issued as 100% construction documents in January 2024 and posted publicly by the fire district for bidders.[1] The structural, civil and MEP sheets are separate files, so the test covers architecture.
Before building anything we wrote down how people do this. Our research library collects 225 sources, including 284 transcribed takeoff videos, and turns them into a written standard for each of 14 CSI divisions.[2] A standard says which sheets a trade is measured on, which ones change its quantities, the order of work, the measuring rules and the usual traps.
We built Takeoff Viewer, a takeoff tool. A person opens a PDF set in it, sets the scale, counts items, traces rooms and runs lines. We also built its MCP server. MCP is the open protocol that lets AI assistants like Claude and ChatGPT call software tools.[4] Our server turns each thing a person does in Takeoff Viewer into a tool an AI can call, on the same takeoff the person sees. Any AI assistant that speaks MCP can connect to it; we did not have to build anything separate for Claude or for GPT. For this test the server gives the AI 14 tools, eight trade specialists and two context files for this set.
A specialist is not a different model. It is the same AI given one trade's method: what to measure, on which sheets, in what order, under which names, which traps to avoid and what to report. It then works the sheets with the tools the way an estimator works them with a mouse. Every mark it makes is a proposal until a person accepts it (Figure 1).
2Watch it happen
The server logs every tool call with its time, the sheet, the part of the sheet the AI looked at and the marks it made. Figure 2 plays a whole run back from that log across all 90 sheets. Press play to see where each specialist looked and every door, room and line as it landed. Click any sheet to watch only that sheet.
This is what an estimator opens when the run is done. Figure 3 shows Claude run 4's finished takeoff in Takeoff Viewer, on three sheets. Nothing is accepted yet. The panel on the right counts the proposals waiting for review.



We also filmed the viewer itself while the runs happened, in four browser tabs pinned to four sheets.
Claude run 4, 9.5 minutes, shown at 30x
Claude: A101, first floor plan
Claude: A102, second floor plan
Claude: A461, enlarged toilet plans
Claude: A151, roof plan
GPT, 40 minutes, shown at 30x
GPT: A101, first floor plan
GPT: A102, second floor plan
GPT: A461, enlarged toilet plans
GPT: A151, roof plan
3Splitting up 90 sheets
An estimator's first job is reading the set and deciding which sheets each trade needs. We gave that to two models. A document AI read all 90 pages into text and tables in 72 seconds. Then a second model answered one question for every sheet and division: is this sheet measured on, does it change the quantities, is it only a cross-check, or is it not needed? That took 17 seconds for 90 sheets.
We checked the sort before trusting it. Claude wrote a reference answer first, and a separate reviewer agent settled every disagreement without knowing which side was which. The sorting model matched the reviewed answer on about 95% of sheet and division pairs, and an audit of the pairs both agreed on puts its real accuracy nearer 90%. Missing a sheet loses quantities, while an extra sheet only costs a specialist a few seconds, so a sheet stayed in a trade's bundle unless the model was confident it wasn't needed. That kept 320 of the 323 pairs that mattered.
Enlarged plans, and how nothing got counted twice
Toilet rooms, stairs and other tight spaces are drawn twice in this set: once on the floor plan and again on an enlarged plan at a bigger scale. The enlarged plan is the only place some things are shown. The toilet accessory tags and the restroom finish outlines are on A461, the enlarged toilet plan, and not on the floor plans. So the methods say to count those items and measure those rooms on the enlarged plan, which is what estimators do.
Drawing the same room twice means it can be counted twice. The rule in every method is to count an item once, on the sheet that shows it best, and the specialist labels each mark with its door number, accessory type or room number. Afterwards we checked every run for the same door number, accessory or room floor on more than one sheet. There were none in any of the five full runs. The tool does not block a double count by itself. The specialists avoided it by following the rule, and the labels make one easy to spot in review.
4Results
We ran the Claude team four times to see how much the results move between runs, and the GPT team once. Section 6 explains what differed between runs. The answer key comes from the architect's own drawings and was fixed before the scored runs.
| Task | Answer key | Claude | GPT |
|---|---|---|---|
| Doors placed at their tags | 53 doors on the A500 schedule | 49 to 51 | 3716 more placed on enlarged plans |
| Storefront openings by type | 36 SF tags on the plans | 31 to 35 | 33 |
| Toilet accessories by type | 20 on the A461 plans | 17 | 20 |
| Fire extinguishers | 6 on the life safety plan G101 | 6 | 6 |
| Rooms within 5% of the architect's area | 33 room areas on G101 | 13 to 18 | 14 |
| Median room area error | 1.4 to 2.7% | 1.7% | |
| Total floor area of the rooms it measured | −1.1 to −2.8% | −32.7% | |
| Wrong marks on scored items | 2 to 17 | 8 | |
| Time, first tool call to last | 9.5 to 13.1 min | 40.2 min | |
| Marks placed, all trades | 335 to 392 | 1,315 |
The Claude runs agree closely on counts. Doors, accessories and extinguishers barely move from run to run. Room areas move more, because which rooms a specialist decides to outline changes from run to run, but the rooms it does outline usually land within a few percent (Figure 6).
GPT worked very differently. It made five times the tool calls, opened 79 of the 90 sheets, and measured far more than the scored items, for example 185 glazing and storefront areas on the exterior elevations. It was the only team to count the typical crew restroom twice, which gave it all 20 accessories. It also outlined only about a fifth of the apparatus bay floor, which left its total area a third short.
Against a person
We did not time a person on this set. Instead we estimated how long a person would take to make the same marks. From the library's videos we timed 55 single actions, such as clicking a count, tracing a room, setting a scale and reading a sheet, and took a low, middle and high time for each.[3] Then we multiplied by what Claude run 1 actually did: 241 counts, 59 areas, 39 lines, 117 item types set up, 14 scales, every sheet a specialist opened, plus one read of the whole set and a share for checking.
Most of the person's time is not clicking. Clicking 241 points is about ten minutes. Reading sheets and setting up 117 item types is most of the rest. The model is rough. It only prices what the agents did, and they did not finish every trade, so a complete manual takeoff would take longer. It also counts each specialist's sheet reading separately, where one person doing every trade would read some sheets once.
5What went wrong
Each of these is something an estimator would catch on review, which is why every mark is a proposal. They are also the list of things the methods and tools need to get better at.
Counting
- The typical crew restroom was counted once by Claude. A461 draws one crew restroom marked typical for rooms 212 and 213. No Claude run placed the doubled counts, which leaves three accessories short every time. GPT doubled it.
- The two lift doors were never credited. The schedule lists doors 124 and 224 as supplied by the lift maker. Most runs carried them as lift entrances under Division 14 instead of as doors.
- GPT put 16 doors on enlarged plans. It followed the rule to count on the enlarged plan, but the stair plan A481 draws the doors without tags, so we could only check its eight points there by eye. They sit on the right openings.
Reading
- Wall tags read as windows. In Claude run 2 the openings specialist counted 10 W2 tags and 7 Z6 tags as window types. Both are partition types on this set.
- A drawing conflict went unreported. The signage schedule says 15 room signs and the plans tag 10. The specialist counted 10 and said the number looked low, but did not report the conflict.
- The lift models were missed. The sheet that names the two Garaventa lifts was in the lift specialist's bundle but labelled "not needed" by the sort, so the specialist never opened it.
Measuring
- Rooms folded together. In run 1 the second floor kitchen, dining, day room and corridor came out within 2% of their combined area, but the outline also took in the slide pole room next door.
- GPT outlined part of the apparatus bay. Its outline was 78% under the bay's 3,359 SF.
- Outdoor areas were mostly skipped. The covered porch, mechanical yard, patio and training roof deck carry floor finishes but were rarely measured.
The specialists also caught things a reviewer would want to know. They flagged a pair door that changes the leaf count, owner-furnished accessories that are install-only, an equipment tag that looks like a mis-tag, a grill hood on the schedule with no tag on the plan, and a schedule row that contradicts its own remarks. Every report lists what the specialist did not do and why.
6How we kept the test honest
The answer key
Every answer comes from text the architect put in the PDF, not from any AI takeoff. We built the key and fingerprinted its files before the scored runs.
| Task | Source in the drawings | A mark counts when |
|---|---|---|
| Doors | The door schedule on A500, located by each door's tag on the floor plans. Door tags and room numbers use slightly different text sizes in the PDF, which is how we told them apart. | A point labelled with the door number is within about 7 ft of its tag. Door 124 has no tag, so 52 of 53 is the best possible. |
| Storefront | The SF1 to SF12 tags on the floor plans, one tag per opening. | A point of the right type is within about 7 ft of the tag. |
| Room areas | The area printed for each room on the life safety plan G101. | An outline holds the room's label and comes within 5% of the printed area. |
| Accessories | The T tags on the enlarged toilet plans, with the typical crew restroom counted twice. | The count of each type matches. |
| Extinguishers | The extinguisher symbols on G101, leaving out the legend. | A point sits on the symbol. |
Everything else the specialists produced, such as roofs, flashing, partitions, ceilings, shades and countertops, is in the run files but not scored, because we have no independent answer for it.
What each run was
| Run | What was different | Doors | Storefront | Rooms in 5% | Minutes |
|---|---|---|---|---|---|
| Claude 1 | First scored run. Not filmed. | 51 | 32 | 17 | 13.1 |
| Claude 2 | The same setup again, to see how much a repeat moves. | 51 | 32 | 18 | 10.9 |
| Claude 3 | First filmed run. The footage came out soft, so it is not shown. | 49 | 35 | 13 | 11.8 |
| Claude 4 | Filmed, on the faster server described below. Its replay, screenshots and videos are the ones in this report. | 51 | 31 | 14 | 9.5 |
| GPT | gpt-6-astra through the Codex CLI, filmed, on the faster server. | 37 | 33 | 14 | 40.2 |
| Haiku | Claude's smaller model, three scored specialists only, with a lower stop limit. It stopped early. | 48 | 25 | 3 | 5.5 |
The Claude runs differ only in randomness and in two things outside the AI: whether we filmed the run, and which server build it used. The specialists, prompts, answer key and scoring are the same in all of them.
Changes after the first runs
We made five corrections after scoring began, and logged each one with its reason. Four fixed gaps in our key or bugs in our scorer that came to light on run 1: a label like "T-1 102" was misread, two doors and three restrooms had a second valid location we had missed, and four open-plan rooms with no walls between them are now judged as one. The fifth came with the GPT run, which labelled floor transitions and door paint with door numbers, so each task now only scores items from its own division. These changes raised run 1's score. As first scored, run 1 had 49 doors, 16 rooms within 5% and 3 accessories, the last because of the label bug. Before any scored run, an unscored pilot also led us to tell every specialist to finish its whole method and check its marks.
The server got faster mid-test
Our first GPT run stalled. GPT asks for many more sheet images than Claude, and the server drew every image on one thread, redrawing the whole sheet even for a small corner. Under that load an image took a median 19 seconds and the finishes specialist gave up, so that run is not scored. We moved the drawing to a small pool of worker threads and now draw each sheet once and cut later views from it. In a load test a second look at a sheet went from 5 to 10 seconds to under half a second. The tools return the same answers as before. Claude run 4 and the scored GPT run use the faster server.
7Limits
- One set. One building type, one architect, one drafting style, and only the architectural sheets.
- Part of the work is scored. Doors, storefront, rooms, accessories and extinguishers have answers. Roofs, partitions, ceilings, shades, casework and the envelope do not.
- We built the key and corrected it. It comes from the architect's text, but we chose how to read it, and five corrections came after scoring began.
- The room areas on G101 are net or gross by the sheet's own legend, so a few percent of difference can be convention rather than error.
- The person's time is a model, built from tutorial and working videos, not a timed estimator on this set.
- An AI checked the sheet sort, applying our standards. A licensed estimator has not yet reviewed the sort or the standards.
- Few runs. Four Claude runs and one GPT run show how much results move, not a full distribution. The ChatGPT app's own connector has not been run.
8What it means for an estimator
The slow part of takeoff isn't the clicking. Reading the set, deciding what each trade needs, setting up item types and tracing rooms is most of a person's day. Eight specialists did that work in parallel, in about ten minutes, and left every mark on the sheet where a reviewer can see it.
On the items we could check, the counts were right most of the time and about half the rooms came within 5%. The mistakes were the kind an estimator recognizes at a glance. That makes the useful workflow a review, not a rebuild. The estimator opens the viewer, sees every proposed door, room and accessory on its sheet, reads the specialist's list of conflicts, and accepts, fixes or rejects.
The next steps come straight from the misses: multiply typical plans, check each tag against the legend before counting it, report every conflict between a schedule and a plan, and connect the ChatGPT app through its own connector.
Sources
- Sanibel Fire and Rescue District, Station 172 bid set, architectural, 100% construction documents, 2024-01-05. sanibelfire.com. Architect of record: Schenkel Shultz. Checked 2026-10-31
- Custom GC Apps, takeoff research library: 225 sources, 284 video transcripts and 14 trade standards. Internal, to be published.
- Custom GC Apps, manual time per action: 55 single actions timed from the library's video transcripts, with low, middle and high values and the likely bias of each source. Internal working paper, 2026-10-31.
- Model Context Protocol, specification and documentation. modelcontextprotocol.io. Checked 2026-10-31
The drawings are the work of Schenkel Shultz, used with their agreement. The test rules, answer key, scorer and every run's logs are kept with the field test files.
