By the time a phase shows red on a report, the money is already spent. The invoice cleared, the lumber is on the deck, the sub has moved to the next job. Whatever you do next is damage control, and the honest name for a monthly budget review is an autopsy. The useful question is what was visible three weeks earlier, when the same problem cost a phone call.

The answer is: quite a lot, and mostly the same handful of things on almost every build. None of them are financial. All of them are recorded.

A safety flag that nobody owns

Tuesday, 07:14. Vision AI reads a photo off the crew's upload and raises a flag — fall protection not visible on the main roof surface, three workers on the deck. It routes to the project manager. Friday at 16:40, still unassigned.

Ninety-eight hours. The obvious reading is a safety problem, and sometimes it is. The more common reading is a routing problem: the person who could have fixed it in ten minutes never saw it. And a routing gap does not confine itself to safety. The same inbox is where the purchase request is sitting, and the sub's RFI, and the photo that shows the wrong window rough opening. An unassigned flag is a smoke test for whether anything reaches anyone on this job.

The arithmetic BLT states is the interval, not a judgement: raised 07:14 Tuesday, unassigned at 98 hours, oldest of three open on this project, phase still active. One action — assign it to a person. Inspections and flags both live or die on whether they get an owner and a clock.

A phase with no photos during active work

This one is quiet and it is expensive. Twenty-six hours clocked to roof deck this week, four people, GPS on every row. Photographs uploaded against that phase this week: zero.

Three things follow from that gap, in ascending order of cost. You cannot see the work, so nobody catches the detail that is wrong while it is still uncovered. Vision AI cannot flag what it was never shown, so a clean report on this phase means nothing at all. And in October, when the inspector or the client or the insurer asks what the deck looked like before it was covered, the answer is a shrug.

The fix is ten seconds of somebody's thumb. That is the entire reason the site feed is built for one hand in the sun with gloves on, and why offline capture holds the frames until the truck hits pavement. A photograph that requires a laptop is a photograph that does not exist.

An invoice raised against an estimate it already passed

The plumbing sub's written estimate for rough-in was $9,200. Invoices posted against it: $4,100 in June, $4,600 in July. Now a third arrives for $2,150. That lands the phase at $10,850 — $1,650 past a number both parties signed, and the change log has nothing in it explaining the difference.

Nothing here is fraud. It is almost always work that genuinely happened: two extra hose bibs, a relocated cleanout, a day of standing water. But the moment to have that conversation is when the third invoice arrives, not at close-out with the sub's crew already framing a different house. BLT states the three figures, the estimate they are measured against, and the absence of a change order. You decide whether it is a change order or a conversation.

Committed money that never converts

A purchase request approved nineteen days ago for $1,240 of plumbing rough-in materials. No receipt has ever posted against it. Two possibilities: the material was bought and the receipt is in a truck console, in which case your actual is understated by $1,240 and every projection built on it is optimistic. Or it was never bought, the crew improvised, and there is $1,240 of committed money quietly holding down a line that could have absorbed a real overrun.

Both matter. Neither shows up as red anywhere, because committed money is not over budget — it is exactly the number it is supposed to be. Only the age of it is wrong.

Two more that repeat

  • Clock-in drift on a phase with a hard date. A crew of four averaging 7:38 on a phase that averaged 7:04 last month is thirty-four minutes a day times four people. Across a two-week phase that is roughly forty-five hours you never budgeted, and it turns up as labor overage in a month, having been visible on the time rows from day two.
  • A change log that goes silent on a job that is obviously changing. Eleven client emails in the feed this month and no entries in the change log is not a calm project. It is a project where the changes are being absorbed for free.

Why these get missed by people who are good at their jobs

Not inattention. Arithmetic. A superintendent running three lots is watching maybe sixty live objects: phases, subs, inspections, deliveries, flags, requests. Every one of these signals is an absence — a photo that wasn't taken, an assignment that didn't happen, a change order that was never written. Human attention is exceptionally good at noticing things that appear and exceptionally bad at noticing things that failed to. Absences do not generate notifications on their own. Somebody has to be counting.

That counting is a genuinely dull job and a machine is well suited to it. Reading the stream continuously and reporting where the expected event never arrived is not clever. It is just relentless, which is the part people cannot be at 4 p.m. on a Thursday in August.

Where they surface

All of it lands in one place, before anyone has thought to ask. The 6 a.m. recap is not a summary of yesterday's activity — you were there. It is the queue of things that stalled: two flags without owners, one phase without photos during active hours, one invoice past the estimate it was raised under, one purchase request nineteen days old. Each carries the figures behind it and exactly one action, and the whole thing is meant to be handled in the truck before the door closes.

What the stream cannot tell you

None of these is proof, and BLT does not present them as proof. A phase with no photos might be a phase where the crew spent Thursday on the other lot. A flag left four days might have been handled by a phone call at 7:20 that morning, correctly, by somebody who then forgot to close it. An invoice past estimate might be exactly the change order you approved verbally on site and both of you consider settled.

The stream is not telling you what happened. It is telling you where to look, with the figures already assembled so that looking takes forty seconds instead of an afternoon. The judgement about what it means stays where it belongs, with the person who was standing there.

Read the use case Next: What construction AI actually can't do