The IT manager at a 300-person contractor gets an email from the board: do AI this quarter. There is no budget line, no scope, and a remark that a competitor apparently has something. He also owns the phone system, the laptop refresh and whatever happens when the site broadband drops. Somewhere in that inbox is a demo invitation promising a chatbot that knows the project.

Here is the good news, such as it is. The firm already has the workflows. Drawings are issued. RFIs are raised. Packs are transmitted. A register is kept, badly or well. Photographs leave phones. O and M arrives as a crate. What the firm does not have is a transformation programme, a digital-twin office, or a spare information-management department waiting for a strategy away-day.

AI that earns its keep in a quarter sits on those existing paths. It retrieves the issued identity. It refuses an incomplete row. It marks a dual-current sheet. It pins a photograph to a grid. It lifts a warranty date onto a tag. Ten of those, below. None of them need a new common data environment, and every one of them fails if the model is pointed at a picnic of files rather than the published set. Finding the issued set is the AI job that pays for itself; generating a paragraph about the issued set is how you write a second, unofficial record.

What a deployable quarter actually looks like

Twelve weeks on a live job, not a programme plan. Deployable means five facts you can write on one side of a sheet before week one:

  1. One named owner — usually document control or the package engineer — not “digital” and not a vendor mailbox.
  2. The register, transmittal log, photograph folder or O and M pile you already keep.
  3. A sample on the live package, not a clean-up of the archive the night before.
  4. A refuse rule: incomplete rows do not start, and fluent wrong answers do not issue.
  5. A close condition that is not “we ran the demo again.”

Without those five you have a pilot, and pilots die of three absences: no pin to the issued set, no owner once the champion moves on, and no production workflow to sit inside. A list of ten that starts all ten and owns none is the same failure wearing a checklist.

Retraining a foundation model, a federated-BIM mandate, replacing the CDE, generating method statements nobody will sign, a dashboard that claims to know the project — those are programmes, and they belong in a different conversation and a different budget.

How to pick and run them

Do not start ten at once. The first four are document control and can share a week. Photo-to-location and incoming-delivery completeness need those pins to exist first. Specification retrieval and snag clustering need a live package that is actually being installed. Instruction pinning needs a meeting or a correspondence trail worth sampling. O and M extraction needs a system that already has tags, or the honesty to write down that it does not.

Pick one live package — a floor of architectural GAs, a structural issue for a pour, a coordinated MEP set for a zone. Name the information standard or BEP you will test against, including the status-code list that document actually publishes. If there is no list, write that down; it is already a finding.

Run each workflow as a gate on work that is happening anyway, not as a Thursday showcase for visitors. The model proposes. A named person issues, refuses, or records that the output does not stand. Issue stays a human act because it creates reliance.

1. Drawing retrieval against the issued set

This one happens every morning already. Someone hunts for the current sheet. They open the CDE, the hut folder, a messaging thread and last week’s plot, and they take whichever loads first.

What you want is narrower than a search box. Given a sheet number, a grid, a crop, or a spoken location, return the current issued identity: title, revision, purpose, transmittal, and whether the previous identity was withdrawn. If the model cannot name those facts, it has to say so. Silence is cheaper than “probably C.”

Pin it to the published set for this package, this recipient list, this purpose. Work in progress is not Shared. Shared is not Published. A ZIP of last Thursday’s export is a pile, and retrieval over a pile trains a confident liar.

In twelve weeks: point the retrieval at the published library plus the register you already keep. Ask twenty questions the site already asks — this opening, this riser, this pour. Score whether each answer cites a live revision and a transmittal, or invents a letter.

You have passed when a site engineer gets the current identity faster than the hut folder and the answer names the revision. You have failed when you get a fluent summary of a superseded sheet, or a crop handed back as though it were an issued container. The model must not generate a drawing, and it must not invent a revision letter. The longer argument for pointing the machine at retrieval sits in retrieval beats generation.

2. RFI completeness

Most “open” RFIs are not waiting on design. They are waiting on a citation. The first week of an RFI’s life is reconstruction: which opening, which sheet, which revision, who may close it.

Use the model as a gate rather than a drafter. Before a query is numbered, check that it cites a title and revision, a location a closer can find without a tour, a question that can actually be closed, and a named closer — a person, not “the architect.” Incomplete drafts go back unmarked. Do not start the clock on a “please advise.”

The pin is the issued identity the question is asked against, plus a rule for what happens if a new revision lands while the RFI is open. “Latest drawings” is no pin at all. A crop with no title block is no pin either. If C02 is live when the question is raised and C03 publishes on Wednesday, the model must flag the collision rather than let it sit.

In twelve weeks: take the last twenty numbered RFIs and mark each complete or incomplete against that list. Then run the gate on the next twenty drafts. Measure the bounce rate — the share that come back asking for a revision, a grid, or a closer — rather than the dashboard count of closed rows.

Success looks like a refused draft, and a numbered query a closer can answer without a return visit. Failure looks like a generated RFI that reads beautifully and cites no revision. Cycle time dies in three places: an unnamed closer, an incomplete citation, and a query pinned to nothing. The method is set out in halving RFI cycle time without buying anything. Do not generate the answer. Retrieve whether the question is allowed to start.

3. Transmittal completeness

Issue is not upload, and a green cell in a spreadsheet is not a numbered transmittal.

Ask the model to reconstruct four facts from the system of record — not from anybody’s memory — for every revision published since last Monday: unique transmittal number and date; named recipients, not “the contractor”; exact containers and revisions; purpose, or the action requested. A gap in any of the four is a missing transmittal. Then there is the fifth fact most registers skip: is there dated evidence of receipt at the installing company, and not only at the first mailbox it passed through?

Pin it to the issued act — these containers, this revision, this purpose, this list of names. A zip sent to a mailbox with no named installer is storage. A pack of thirty sheets where the one that changed is not identified is a transmittal nobody will read.

In twelve weeks: sample one week of issues on the live package. Resist starting with a tidy historic pack; one complete cover sheet proves a performance, whereas a week of numbered issues proves a habit. The model lists the holes, document control writes down the sheet numbers, and nobody averages them into a percentage.

A pass here is boring — number, date, names, containers, purpose. A fail is upload-without-a-number dressed up as “issued.” The model must not invent a transmittal number to close the row. A missing transmittal is a finding; an invented one is a forged issue.

4. Register hygiene

A drawing register that looks complete on Monday can be a lie by Friday. The row is current. The site is not.

This is the weekly pass a document controller already owes the live package: exactly one current revision per title; the previous identity marked superseded, not merely sitting under a filename suffix; a withdrawal fact — collected print, stamped copy, recorded return — or a named instruction that the previous identity is dead; aged placeholders older than two issue cycles either chased or closed. Dual-current rows fail even when one of them is “about to be withdrawn.”

The pin is the register as a claim about current identity, tested against the published containers and, if you can walk it, the hut set. ISO 19650’s published state exists because putting a file in a folder and withdrawing the previous instruction are two different acts. If you cannot point at the withdrawn identity, you have not superseded anything. You have added.

In twelve weeks: forty-five to ninety minutes on the packages the site is installing this week. The model flags dual-current titles, unmarked predecessors, and empty rows that still look owed. The document controller walks the four checks in the weekly hygiene checklist. Carry last week’s fails forward; hygiene that resets every Monday is theatre.

You have passed when there is one current revision and a dead previous identity. You have failed when two live-looking letters share a sheet number, or when the dashboard is tidy and nobody walked it. The model must never “clean” the register by deleting history — deleting a superseded file is how a claim file goes empty.

5. Photo-to-location

A phone dump is not a record. A progress photograph is a claim: this work, this place, this date, against this issued instruction. Lose any one of those and you have a picture.

The model’s job is to refuse unlocated frames and propose a pin for the ones that can take one. Location a closer can find: grid, level, detail, room, chainage. Container number and revision. Date, and who took it. A crop of concrete with no title block and no grid is scenery. Camera filenames are not metadata, and “Site progress — September” is a folder rather than a register.

Pin it to the issued revision the photograph is evidence against — or mark honestly that it was taken against the hut set rather than the published container. A photograph of work built to a superseded print is not progress evidence; it is evidence that two instructions were live at once. File it as that, or do not file it as progress.

In twelve weeks: take one week of photographs from the live package. Keep the frame that locates the work. Discard the burst, the welfare shot, the sky, the corridor that could be any floor. Write the pin on the day, in the same place the file will live. The keep-or-discard rule is already set out in progress capture without the storage bill; here the model is simply enforcing it.

A pass is a photograph findable by sheet number and revision. A fail is a beautiful album that answers no question anyone asked. And the model must not invent a gridline to make a frame keepable — unlocated stays unlocated, or it goes in the bin.

6. Incoming delivery completeness

Incoming information is a gate, not a courtesy. A mid-size contractor receives packs all week: consultant issues, trade drawings, specialist models, a ZIP named “latest.” Most of them get filed. Few of them are tested against the information standard before anyone plots.

Check the delivery against the list the BEP or information standard actually publishes: naming, revision, suitability or purpose, container identity, and whether the status matches the CDE state. S0 in Published, or an A-code still checked out to the author, is a contradiction the system will happily store and an adjudicator will not. A title block saying S2 while the library says A4 amounts to two instructions.

The pin is the agreed status list and the published state machine, not a badge in a filename. A suitability code is a sentence about permitted use. If the file can be downloaded or plotted regardless of the letter, the code is decoration, and the model should say so rather than congratulate the metadata.

In twelve weeks: take every container that left work in progress this week on the live package, or ten of them if the pack is larger. The model lists contradictions; document control refuses the ones that fail. If you cannot find a single case this week — or last — where a code blocked a use, the codes are not doing any work. The vocabulary is in the suitability-codes note.

A pass is a refused pack and a named hole. A fail is “received” as the only status anyone recorded. The model must not rewrite the title block to match the library: two instructions remain two instructions until a person issues a third.

7. Specification clause retrieval

“The spec” is a location, in the same way “the drawings” is a location. It might mean the published specification at the revision named in the contract, a superseded issue still in a trade’s bag, or a generic clause the model picked up somewhere else entirely.

Retrieve the clause that was issued — section, clause number, revision, date — for the question the package is actually asking: fire-stopping at this penetration, finish at this room, test at this hold point. If the published specification does not contain the answer, the model says the clause is not there. It does not fetch a plausible paragraph from elsewhere and dress it as the project spec.

Pin it to the issued specification revision, plus the drawing revision the clause is being read against. Spec and drawing disagree on live jobs; that disagreement is a finding worth having. Harmonising the two in a chat window creates a new unofficial instruction.

In twelve weeks: take ten questions the package engineer already asks from the specification. Score whether each answer cites the live revision and the clause number, or paraphrases a family of clauses as though they were this job. Keep the retrieval inside the published specification and the published drawings, and do not let the model “complete” a missing clause.

A pass is a cited clause the closer can open. A fail is a fluent requirement that cannot be found in the issued spec. Generating a specification is not something a mid-size contractor should deploy this quarter. Retrieving the one already issued is.

8. Snag clustering against issued details

The characteristic snagging list is a late second register: unowned items, photographs of last month’s wall, defects never pinned to the issued set. Completion is then asked to close on that table, and the table cannot close, because it does not know which instruction each mark is a mark against.

Use the model for clustering, not close-out. Group open items by issued identity — sheet, revision, detail, location, trade — and flag the ones with no pin, no owner the trade will answer to, or a photograph that no longer matches the wall. A cluster is a proposal. Status stays a human column.

The pin is the issued detail the defect is claimed against: not the album folder, not “level four corridor,” not a marker dropped on a plan that has itself moved since. If the cited revision is superseded, the snag is open against a dead identity — re-pin it, or close and re-raise. Leaving it open is how a green cell ends up authorising the previous sheet.

In twelve weeks: take the live snagging list on one floor or one package, not the whole building. The model proposes clusters and missing pins; the package manager names owners. Do not let the model paint rows green. The type is named in snagging lists are where projects go to die.

A pass is a cluster a trade can walk, every item citing a live identity. A fail is a shorter spreadsheet that still cannot say which revision the scratch is a scratch on. Volume of closed rows has never been completion.

9. Instruction and meeting-action pinning

Coordination meetings produce actions. Correspondence produces instructions. Most of both float. “Please proceed as discussed” sits in a thread, the register has moved on, and the hut print has not.

Extract candidate actions and instructions from the minutes and correspondence you already keep, and refuse any that cannot be pinned: issued container, revision, purpose, named owner, due state, close condition. “As discussed” is not an instruction. “Work to the drawings” is not an action. A generated minute nobody will sign is a new unofficial set with better grammar.

The pin is the same issued identity the drawing retrieval uses. If the meeting moved an opening, the action cites the sheet and revision that still holds, or it cites the RFI that must be raised. If a new revision issued after the meeting, the model flags every action still naming the dead letter.

In twelve weeks: take two weeks of minutes and the correspondence file for the live package. The model lists unpinned actions and instructions citing no revision. The chair or the document controller returns them unmarked, or pins them in the system of record. Do not let the model issue anything — a chat log that is neither the CDE nor the cabin set is a third record.

A pass is an action a stranger to the meeting can close against a named container. A fail is a tidy action list that still says “the drawings.” Toolbox talks have the same defect in spoken form, and the citation rule is in toolbox talks that link back to a drawing revision. If it was decided, it can be pointed at.

10. O and M extraction

Four hundred vendor PDFs are a completed transmittal. Nobody will ever operate a building from them.

Extract onto rows rather than building a smarter ZIP, and start from the asset register rather than the pile. For each tagged, maintainable asset on one live system, lift what operations will query: tag, location, system, manufacturer, model, serial; the current document identity and section for the instruction; the maintenance action and interval; the warranty window; one spare. Full-text search across four hundred files returns every mention of “filter.” The operator needed the filter on AHU-03.

The pin is the same tag the register, the inspection and test plans and the commissioning sheets already use — or an honest “none” where the pile holds no instance literature. A generic catalogue for a product family is type-level evidence, not the instance row. Two files that both look current are a finding rather than something to merge.

In twelve weeks: pick one system — a plant room, a fire-alarm loop, a floor of terminal units. Inventory the pile against the tags. The model proposes field values and page pointers; a person binds the current document identity and refuses gaps while a purchase order is still open and somebody still wants paying. The recut is in O and M manuals: from four hundred PDFs to a queryable dataset. Do not wait for practical completion and a consultant.

A pass is a tag on the casing that reaches one current instruction without opening the ZIP first. A fail is a contents page listing packages, or a model that invents a serial to complete the row. Optical character recognition produces text, not tags. Someone still has to say which pages belong to which installed instance.

A quarter score sheet

Print this. One row per workflow you actually started. The owner fills it in. The project manager does not edit it afterwards.

WorkflowThis quarter’s samplePassFail — write the identities
1. Drawing retrievalTwenty questions the site already asksCurrent issued identity, or an honest cannot
2. RFI completenessNext twenty draftsComplete citation, closer, pin — or unmarked
3. Transmittal checkOne week of issues on the live packageNumber, date, names, containers, purpose
4. Register hygieneLive package, forty-five to ninety minutesOne current revision; previous withdrawn
5. Photo-to-locationOne week of photographsSheet, revision, location — or discarded
6. Incoming completenessTen containers that left WIPList, state, title block; at least one refused use
7. Spec retrievalTen live specification questionsCited clause on the issued revision
8. Snag clusteringOne floor or one package listClusters pinned to live identities
9. Instruction pinningTwo weeks of minutes and correspondenceActions that cite a container, or unmarked
10. O and M extractionOne tagged systemTag to current instruction, without the ZIP first

A pass is boring. A fail is a sheet number, an RFI number, a filename, a tag. Do not average the ten rows into a percentage, and do not start a row you will not own. Carry fails forward until they are closed.

The labour that matters here is refusal. Every incomplete RFI you number is a week donated to reconstruction. Every unlocated photograph you keep is a storage bill. Every fluent answer citing no revision is an unofficial instruction with a timestamp on it. Refusal is also how you know the workflow is alive: if nothing has been refused in four weeks, the gate is decoration.

What is not on the list

Our IT manager will be offered other work this quarter, and most of it is a programme wearing a demo.

Do not deploy generative daily reports, generative method statements, or generative replies to trades as production records. Generation is cheap; reliance is not. A sentence nobody will sign is not contemporaneous.

Do not deploy autonomous clash close-out, autonomous RFI answering, or a model that “coordinates.” An agent can propose. It cannot issue.

Do not deploy a twin nobody updates, a vision model as a permit-to-work, or a chatbot pointed at the entire project folder as though that folder were the issued set. Those trials die in the familiar pattern, and they consume the only quarter you had for the ten workflows that could have entered Tuesday.

Some work still takes design time, and none of this touches it. A coordination collision that has not been resolved is not a process failure. These ten remove the days that were never design: the hunt, the bounce, the unmarked predecessor, the unlocated photograph, the crate of PDFs. They do not move an opening, close a snag, or operate a valve.

A model that fluently retrieves a superseded sheet is worse than one that misses. Misses send people back to the register; fluent wrong letters send them to the workface. So the owner of the exception — the person entitled to say this output does not issue — is part of the workflow. If that person is “the model” or “everyone,” you have nobody.

What to actually do with the quarter

Start by writing back to whoever sent the email. Two workflows, not ten, and say which two: for most mid-size contractors that means drawing retrieval and register hygiene, because everything else pins to what those two produce. Ten started and none owned is the outcome the board will remember.

Then find the cost, which is not licences. It is a standing slice of a document controller’s week for twelve weeks, and that person is already fully occupied, so something else comes off their list or gets backfilled. Say so in the same email. A quarter costed at zero gets staffed at zero and closes at nothing.

Give the owner written authority to refuse — an incomplete RFI, an unpinned action, a pack that fails the status check — and expect the first refusal to be escalated to a director almost immediately. How that escalation goes is the real test of the quarter, more than any score on the sheet.

At procurement, put one question to every vendor in the room: which issued containers, which revision, which recipients, which purpose is the model reading? If they cannot answer, you are not being sold a construction information tool. You are being sold retrieval over a picnic, and the twelve weeks will go into the demo rather than the job.

And if the board wants a number at the end of it, hand them the refusal log rather than a percentage. The RFIs sent back before they were numbered, the packs refused at the gate, the register row that turned out to be two live sheets on a floor already being plastered — that is what this looks like when it has worked, and it is worth more at the next tender than any pilot report.

Read next: Retrieval beats generation: the best AI use case in AECO is finding things, Construction AI pilots mostly die. Here is the pattern., A buyer's diligence framework for construction AI vendors.