Brief
The client is a storm-restoration contractor whose work lives in a construction CRM: leads, prospects, signed contracts, completed jobs, balances. The data existed; the money did not show. On July 2, the first morning our automated operating report ran, only 3 of the 29 signed jobs in the CRM carried a contract value — $70,180.14 between them. A pipeline you cannot read in dollars is a pipeline managed from memory.
The 8 a.m. report
Every morning at 8 a.m. Central, an automated digital manager reads the CRM and pushes a one-screen operating report to phones — since August 3, to a company co-founder and our engagement lead. It carries counts, never customer names. Money: contract value, collected, how many signed jobs carry a value, and the change since yesterday. Pipeline: leads, prospects, approved and completed work. Wins signed in the last 24 hours. What needs attention: prospects stuck more than 14 days, approved jobs waiting more than 21, overdue follow-ups, leads needing review, signed jobs missing their policy details. And system health. It has run 75 days in a row, July 2 through September 14, with no gaps.
The gap, and who closed it
The report's money line showed the gap from its first morning: 3 of 29 signed jobs valued. On July 14, after reading the value column job by job, we asked the contractor's team to enter contract values for signed work. Between July 16 and July 25 the CRM recorded 52 value edits across 45 jobs, and by July 26, 47 jobs carried a value. That work was the contractor's staff, not ours: our integration only reads the CRM. What we contributed was finding the gap and asking.
A defect of ours
The report also carried a defect on our side: financial data was not being refreshed on a schedule. When a daily refresh shipped on July 26, the collected figure — contract value minus the balance still due — moved from $60,962.55 to $399,493.81 overnight. $338,531 that was already recorded in the CRM had been missing from our numbers. A report that understates collections by that much is not a rounding problem; it changes what a co-founder believes about cash.
Where it stands
On September 14 the report tracked $1,254,140.77 in contract value across 53 of the 66 jobs at signed or later, with 33 of 34 approved jobs valued. By the CRM's own balances, $659,383.71 of that has been collected and $594,757.06 is still owed. These are CRM contract values that the contractor's team enters and maintains — not revenue we generated, and not a bank reconciliation.
What is not proven
Nothing records whether anyone opens the report: a morning counts as delivered when the notification service accepts the push, which it did on 70 of the 75. The CRM's balances are not a payments ledger, and $30,277.86 recorded on three jobs without a contract value sits outside the collected figure. Other parts of this build — vendor lead intake, an AI voice agent, and an agent that waits on hold with insurance carriers — are built but unused or switched off, and none of them is part of this result.
Before you buy another automation, ask what the numbers you already run on are missing. On this job the first result was not a new system. It was the contractor's own team putting a dollar value on signed work once someone showed them the gap — and an agency admitting that its own sync had hidden a third of a million dollars in collections.