Skip to main content
DoneThat

AI Adoption GuideConstructionInspect

Open Defect Aging Monitor

Agentic system tracks open punch list items, sends escalating chasers by responsible party, and flags items threatening handover milestones.

Construction processBidAwardPlanMobilizeBuildInspectHandoverClose

By Don, DoneThat’s AI coach · updated

The output is an aged open item, not a closed one

The aging monitor returns an open punch item that has passed its chase clock, cited to the punch record, with a chase aimed at the named responsible party. If the item is already closed in the source system, the output for that identifier stays empty. The agent does not invent a defect inspection never logged, does not reopen a closed item to have something to chase, and does not close an item from a photo, a reply, or a calendar date.

A reminder is not a defect. A site photo is not a sign-off. Handover leads get noise when a bot treats a chase as a hold, or treats a corridor photo as proof the snag is gone. Age what quality already recorded. Do not grow a second punch list beside it.

Punch and snagging already live in project systems such as Procore or Autodesk. The monitor reads those records. It does not replace the inspection that created the item, and it does not stand in for AI defect detection from site photos. Detection can propose candidates for a human inspector. Aging starts only after a punch record exists and that record is still open.

Age the punch list from the live punch record

Age from the live punch record, not from a spreadsheet extract that went stale overnight. For each open item, pull the identifier, location, the description as written by inspection, current status, date opened, any due date already on the record, and the named responsible party (trade, subcontractor, or internal package owner). Clock age as calendar days open. Clock days past due only when a due date already exists. Do not invent a due date to make aging look more urgent.

Work the list in the priority bands quality already uses: must-fix before sectional completion, should-fix before practical completion, and cosmetic or residual items that can ride into the defects liability period. If inspection marked an item cosmetic, aging does not promote it to a handover hold because the date looks bad.

Refresh against live status before every chase cycle. The common failure is chasing a closed item: the painter closed the record in the field in the afternoon, the overnight job still held "open" from the morning extract, and the sub gets a chasing email for work already signed off. That burns trust and trains people to ignore the next chase. If status is closed, complete, or void, emit nothing. Empty is the correct answer.

Do not backfill missing punch items from photos, walkthrough notes, or chat. If the inspector did not log it, there is no item to age.

A quality lead runs the monitor the week before a Level 4 corridor sectional completion. The live punch record shows item PL-4421, "scuff and incomplete sealant at corridor 4.12 door frame, north leaf," already past the first chase threshold, status Open, responsible party the finishing subcontractor named on the item, due before sectional completion. The monitor cites PL-4421, computes days open from the opened date, and queues a chase to that named party. It does not add a second scuff from a photo the agent liked. It does not close PL-4421 because a later photo looks clean. If overnight the sub marked PL-4421 closed and the inspector has not reopened it, the next run returns empty for that identifier.

Chase the named responsible party, then escalate

A chase is a message to the party already named on the punch record, carrying the cite, location, age, and remaining time to the relevant milestone. First chase goes to the responsible trade or package owner. If the item stays open past the next threshold, escalate to the subcontractor's site supervisor or commercial contact already on the project, then to the contractor's package manager. Do not invent a new owner because the named one is slow. Reassignment is a human quality or commercial action.

Keep chase content cited: item ID, verbatim defect text, location, days open, due date if present, and a request to update the punch record when the work is ready for reinspection. Do not treat a reply of "we will do it tomorrow" as closure. Do not treat the chase itself as evidence the item will be fixed.

This pattern is the same family of work as a subcontractor compliance chasing agent, with a narrower object: one open quality item, not a missing certificate. Do not merge the two queues. A missing RAMS chase is not a punch chase.

The failure that looks like progress is auto-closing from a photo. A finishing sub sends a phone image of the door frame. The agent matches the location, scores the scuff as gone, and writes Closed. Inspection never reinspected. At handover the employer's agent still sees the sealant gap. Closure stays with the person who has authority to accept reinspection, usually the quality inspector or clerk of works, in the source system. The monitor may attach the photo on the chase thread. It must not flip status.

Flag a handover threat only when quality is still open

A handover threat is an open must-fix (or the equivalent contractual snag class) whose remaining time to sectional or practical completion sits inside the team's agreed danger window, and whose record still cites an unresolved quality item. The test is age plus contract class plus open status. A chase in flight is not a hold. An overdue reminder is not a hold. A photo that looks unfinished, with no punch record, is not a hold.

Build the threat list as a subset of the aged open list. Each flagged row must still carry the punch identifier and the quality description. If the item is closed, drop it from the threat list even if a chase email went out that morning. If the item is open but classed as cosmetic, keep aging and chasing it, and do not put it on the handover hold board unless quality has reclassified it.

Package completeness is a different object. O&M, as-builts, and certificates belong with a handover package completeness check. An aged punch item can sit inside an otherwise complete package. A complete package can still fail quality because PL-4421 is open. Do not let the package check swallow the punch list, and do not let punch aging pretend the documents are done.

Missing a must-fix that blocks handover is the failure that hurts. It happens when the monitor only ages items that already have a due date, and the critical snag was logged without one. It happens when the extract filters to "assigned to me" and the item sits on a trade that left site. Age every open item in the inspect scope you were asked to watch. Flag threats using quality class and milestone dates from the programme, not only from a due-date field someone forgot to fill.

After practical completion, remaining opens may move into defects liability. That is a different clock. Hand the residual list to defect liability period tracking agent rather than stretching inspect-stage aging until the items look like live snags forever.

What the monitor must never do

Do not invent an open defect. No photo-only snag, no similar issue on the next door, no inferred incomplete sealant because the adjacent item is open.

Do not auto-close. Not from elapsed time, not from a chase acknowledgement, not from a photo, not from a subcontractor saying the work is done.

If the item is already closed, emit empty for that identifier. Do not reopen to have something to chase.

Do not treat a chase as a handover hold without an open quality item behind it. Holds come from aged, still-open, must-fix (or equivalent) punch records that threaten the milestone. Chases try to clear those records. They are not the records.

Run the loop in that order every cycle: read live punch status, age what is still open, chase the named party with a cite, then flag only the open quality items that actually threaten handover.

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