Every pay application in commercial construction has to agree, to the penny, with the one before it. That single rule is the whole difficulty of this kind of billing, and it is why the numbers later on this page had to be proven rather than asserted.
Most of the sector bills on AIA forms, the pay application documents published by the American Institute of Architects. Four terms carry the mechanics, so here they are in plain English before anything else.
| Term | What it actually is |
|---|---|
| G702 | The cover sheet. One page: contract value, work billed to date, retainage held back, and the dollars due this cycle. |
| G703 | The line-by-line backing for that cover sheet, the same totals exploded across every schedule-of-values line. |
| Schedule of values | The contract chopped into billable pieces, material, labor, mobilization, each carrying its own dollar value. |
| Retainage | The 5 to 10 percent the general contractor keeps back on every draw until the job is finished and accepted. |
Related case study
An AIA pay application engine that matches the contractor's own file to the cent
Pearl Street Systems bills progress on multi-million dollar electrical jobs using AIA forms, where every invoice depends on the last one and the spreadsheet holding the chain lives with one person. We built the engine that produces those invoices, and proved it at 0.0000% drift against their real file.
See our workWhy the chain breaks
Underneath the software question sits something simpler and more dangerous: a lost-file risk and a one-person risk, both parked on the one process that gets the company paid.
When Pearl Street Systems, an electrical and lighting contractor running multi-building commercial jobs, brought us in, the owner did not describe an AI problem. He described an invoice control problem. The workbook holding the billing chain was a spreadsheet, maintained by hand, by whoever had been doing it.
That creates two failure modes that have nothing to do with technology. The last spreadsheet gets lost, or gets hard to reconstruct, and rebuilding months of billing history from PDFs is a bad week. And the person who can do it is one person, so the company's ability to bill, which is the company's ability to get paid, is bounded by one person's availability.
There was a third constraint underneath, and it decides whether any software is usable here at all. The general contractor had been accepting Pearl Street's billing file for years. So the real requirement went past correct numbers. They had to receive a document identical to the one they had accepted for years, or the software became the conversation instead of the invoice.
Where AI actually belongs in billing
One rule sits under the whole build: a model can read, but it never counts. Every dollar is computed in tested code, because money math has to be right every single time and a model is only ever probably right.
A language model is genuinely good at one part of this. The money for a job lives in a single tab of a seven-tab workbook exported from SnapCount, the estimating and takeoff software, and turning that messy export into clean, structured line items is exactly the kind of reading a model does well.
Everything numeric after that runs in tested functions, never in the model. Adding up the schedule of values, computing retainage, reconciling this application against the last one: plain code with tests behind it does all of it, and then a person reviews the finished pay application and signs it. The model reads, the code counts, the person signs, and that order is the whole safety design, because the last place you want a wrong number caught is the general contractor's accountant.
How the document gets proven, cell by cell
Correct totals were never enough here, because the requirement was a document identical to the one the general contractor had accepted for years. So an automated parity gate checks 1,290 printed cells for value and 2,816 for style on every build, and it reported 0.0000% drift from the company's own file.
Correct totals were never going to be enough, because the requirement was a document identical to the contractor's own. So we proved the document itself, cell by cell, with an automated parity gate that runs on every build.
| What the parity gate checks | Result on the real file |
|---|---|
| Printed cells checked for value across the G702, G703, and schedule of values | 1,290 |
| Cells checked for style: fonts, borders, number formats, conditional formatting | 2,816 |
| Schedule-of-values lines reconciled to the cent | 33 of 33 |
| Contract value it was proved against | $4,104,700 |
| Drift from the company's own file | 0.0000% |
Set the two workbooks side by side and the only difference is that there is none. And because the parity gate lives inside the build, any later change that breaks the format fails before it ships, instead of after a general contractor's accountant finds it. That is what an eval is: a fixed, automated test of the exact thing you promised, run on every change, for the life of the project.
The bug the simulation caught
Before the engine touched a live invoice we ran five simulated months of a real job through it, notice to proceed forward, applications and change orders and retainage. That found a real change-order bug in a sandbox, in front of us, instead of on a pay application in front of a general contractor's accountant.
Before the engine touched a live invoice, we ran five simulated months of a real job through it, a full lifecycle from notice to proceed forward: applications, change orders, retainage, month after month. That exercise found a real change-order bug. It found it in a sandbox, in front of us, rather than on a pay application in front of a general contractor's accountant.
That is the entire case for testing in one line. The simulation is where you want the bug to show up, months before a real invoice could carry it out the door.
What this is not
If your billing is a handful of simple invoices a month, you do not need any of this. A spreadsheet is fine right up until the chain gets long enough, and the people involved get busy enough, that reconstructing it becomes a real risk. That is the signal to act, not a tool being available.
The honest counterweight: if your billing is a handful of simple invoices a month, you do not need any of this. A spreadsheet is a fine tool right up until the chain gets long enough, and the people involved get busy enough, that reconstructing it becomes a real risk. The signal to act is a billing chain that has grown that long, with people that busy. A tool being available is not that signal.
And if a vendor tells you their AI generates your invoices end to end with no deterministic layer and no human signature, ask them two questions. Who computes the retainage? And who signs? The answers should be code and a person, in that order. More on how we run builds like this is on the construction industry page, and the measured results live in the case study.
Next step
Is one spreadsheet holding your billing chain together?
A discovery call maps your billing chain, finds where it leans on one file and one person, and shows what penny-perfect automation would look like on your actual forms. The parity standard is the one described above, not a softer version of it.

Written by
Christopher J. Moreno
Chris is a solo AI consultant with five documented systems across construction, roofing, and Medicare insurance, every number on them measured before it was published. He builds operating systems for real businesses that need cleaner intake, clearer follow-up, and less invisible admin drag.
Our methodology
The Flo OS in practice
The approach behind this work follows the four phases of Flo OS, our operating methodology for turning messy business workflows into systems that run cleanly and compound over time.
See how we work →Related reading
Keep reading.
Strategy · 6 min
Start Thinking in Workflows, Not Tools
Most businesses buy AI tools before they understand the workflow problem. That creates more dashboards, not more throughput.
Proof · 8 min
AI Consulting ROI: What Three Real Engagements Are Built to Produce
No invented ROI percentages. Three real engagements, what each was built to produce, and the numbers we have actually measured so far.
Operations · 9 min
QuickBooks Cannot Track Retainage. Here Is What Everyone Does Instead
There is no retainage field in QuickBooks. The whole industry runs the same workaround, and it quietly hands you a spreadsheet you have to reconcile by hand every month, forever.