What a G702 checker cannot check

Published · 8 min read · By Ludvig Bergerud, builder of PayAppCheck

A G702 checker recomputes what the two forms state about each other: column totals, Column C to Line 3, Column G to Line 4, Lines 3 to 9, and 5a and 5b against their bases. From one document it cannot reach last month item by item, your contract records, the rest of the packet, or a keying error.

Run the checks on your own numbers

Type the G703 rows and G702 lines as printed. Each failure names the cell, the figure it needs, and the gap.

Open the free checker

Search results for “free G702” are almost entirely blank forms. A blank form is the right answer when you are the subcontractor writing the application, and the free builder fills one in and downloads it as a PDF. When you are the general contractor, owner, lender, or bookkeeper receiving one, your problem is proving that a document somebody else produced is arithmetically correct before you certify it and money moves. What follows is the split between the checks that run on figures you type and the ones that need the document read, the four blind spots behind both, and what else in this space is free.

What a checker recomputes, and where each check runs

The G702 and its G703 continuation sheet restate the same money in more than one place, which is what makes the pair checkable. Which of those identities a checker can actually run depends on what it is allowed to see. Figures you type give it the totals and the certificate. The figures printed down each row need the document itself read, and that is the line between the free calculator and the upload route.

That line is about evidence, not about software. The free calculator has no arithmetic of its own: it sends the figures you type to the same deterministic engine that runs on an uploaded pay application, over the same rules with the same one-dollar tolerance, and shows you what came back. So the free page and the paid product cannot disagree about the same figures. What changes between them is how much the engine is handed to work on.

From figures you type, with no account and no document to upload:

  • Column totals. Each printed grand total against the sum of the rows above it. A printed total whose column is blank on even one row is held back rather than compared against a short sum, because that comparison would report a gap you did not make.
  • The cross-form ties. The sum of Column C equals Line 3; the sum of Column G equals Line 4. This second one is the handshake between the detail and the certificate, and every figure after Line 4 is computed from it.
  • The certificate chain. Line 3 = Line 1 + Line 2, Line 5 = 5a + 5b, Line 6 = Line 4 - Line 5, Line 8 = Line 6 - Line 7, Line 9 = Line 3 - Line 6.
  • Retainage against its bases. When the form prints a rate, 5a is that rate applied to completed work, the Column D plus Column E base, and 5b is the rate applied to stored material, the Column F base. Not Line 4, and not the sum of Column G, both of which include stored material.
  • Readings that are not arithmetic. A line billed past its scheduled value, a gap in the item numbering, a credit in Column E measured against the Line 2 deduct, retainage still held once Line 4 has reached Line 3, and rows that fall short of the schedule total the document states. Most of those can be correct on a correct document, so they come back amber to confirm rather than red. Two do not: a schedule whose listed rows fall short of the total the document itself states is red, and so is a negative Column E with no credit change order on Line 2 to account for it.
  • A list of what it could not check. Every check the typed figures could not support comes back named, with the box that would switch it on. A blank Line 1 is never read as a contract sum of zero, and a half-filled form never reads as a clean bill of health: the green “it ties” state needs every check to have run and passed.

Row math is the part a typed-in checker works out for you rather than checking. Give it C, D, E and F and Column G comes out as D + E + F and Column H as C - G down every line, which is the addition a reviewer would otherwise do by hand. Those two then agree with the figures they were built from by construction, so the engine holds the row identities back instead of printing a tick nothing earned. A printed Column G that disagrees with D + E + F stays invisible until that printed figure arrives from somewhere other than the same four columns. That is not a shortcut, it is what typing costs: a check needs the stated figure and the computed figure to arrive separately.

On the upload route, because the printed figures are read off the page:

  • Row math as a real check. The stated G against D + E + F, the stated percent against G / C, and the stated H against C - G, on every line. H is compared against the stated G rather than a recomputed one, so a wrong G copied into both places breaks the row total and stays visible.
  • The per-line retainage column when the form carries one: its own printed total, and its sum against Line 5. Nothing you type stands in for a column printed down forty rows.
  • The carry-forward, at the total and item by item. Line 7 against the prior application’s Line 6, and each line’s Column D against the prior application’s cumulative figure for that item, once both applications are in the account.
  • The change order summary. The additions and deductions block on the certificate netting to Line 2.
  • Your own records and the rest of the project. The contract sum and the approved change-order log you pinned to the job, the retainage rate held period over period, and the release on the final application.

Two details separate a checker you keep using from one you abandon in a week. The first is tolerance: AIA figures are stated to the nearest dollar, so a dollar of drift per cell is rounding, not an error, and on a total added down a long schedule the fair allowance grows with the row count rather than staying at a dollar. A checker that flags fifty cents on a 90-line sheet is noise. The second is knowing what was not printed. Plenty of continuation sheets arrive without their certificate, and a blank Line 4 means the form did not state it, not that it stated zero. The right output there is “not checked”, not “expected $265,000, found $0.00”.

Type what the document prints, not what it should say

This is the part that makes or breaks a checker, and it is easy to get backwards. If a tool computes Column G for you from D + E + F, then G = D + E + F can never fail. If it computes the totals row, the column totals always tie. If it derives Line 6 from Line 4 and Line 5, the certificate chain is green on every input. A tool built that way shows a reassuring row of ticks while checking nothing at all.

A real check needs two independent numbers: what the document states, and what the arithmetic says it has to be. So the printed totals row is its own field, and Lines 3, 4, 5, 6, 8 and 9 are typed as printed rather than derived from one another. Leave one blank and the right output is that the check did not run, not a green tick nothing earned. That is more typing, and it is the entire point. It is also why a formula-linked template, useful as it is for building an application, cannot check one: its formulas verify the numbers you typed into your copy, which is the tool computing its own answer and then agreeing with itself.

A pay application that ties everywhere except one place

A three-line schedule of values on a $450,000 contract, 10% retainage, at the second application. Every row satisfies G = D + E + F and H = C - G, and every printed column total equals the sum of its own rows:

A · DescriptionC · Sched.D · Prev.E · ThisF · StoredG · To date%H · Balance
1 · Sitework120,00090,00020,0000110,00092%10,000
2 · Concrete240,000100,00040,00015,000155,00065%85,000
3 · Structural steel90,00000000%90,000
Printed totals450,000190,00060,00015,000265,00059%185,000

The certificate in front of it reads: Line 1 $450,000, Line 2 zero, Line 3 $450,000, Line 4 $256,000, Line 5a $25,000, Line 5b $1,500, Line 5 $26,500, Line 6 $229,500, Line 7 $175,500, Line 8 $54,000, Line 9 $220,500. Nothing about it looks wrong. Here is what a checker reports:

CheckExpectedAs printedResult
Column G total = sum of rows265,000265,000Ties
Sum of Column C = Line 3450,000450,000Ties
Sum of Column G = Line 4265,000256,000Off by 9,000
Line 3 = Line 1 + Line 2450,000450,000Ties
5a = 10% x (Column D + Column E)25,00025,000Ties
5b = 10% x Column F1,5001,500Ties
Line 5 = 5a + 5b26,50026,500Ties
Line 6 = Line 4 - Line 5229,500229,500Ties
Line 8 = Line 6 - Line 754,00054,000Ties
Line 9 = Line 3 - Line 6220,500220,500Ties

One failure out of ten, and it is a transposition: 265 typed as 256 in Line 4. Every line below it was then computed from the wrong figure, which is why they all agree with each other and why reading the certificate on its own catches nothing. Correct Line 4 to $265,000 and Line 6 becomes $238,500 and Line 8 becomes $63,000, so the check as written is $9,000 short. The subcontractor loses that money, you certify a figure that does not match the work, and next month’s Line 7 inherits the error. Typed into the free calculator, these figures come back with one red row: Column G ties to Line 4, expected $265,000.00, stated $256,000.00, off by -$9,000.00. Everything else on the page comes out even, the whole certificate chain included.

Follow what that one flag settles and what it does not. Setting Line 4 to $265,000 ties Column G and immediately breaks Line 6 = Line 4 - Line 5, and the printed column totals already agree with the rows, so the schedule is not the loose end either. Lines 4, 6, 8 and 9 move together, which is what a certificate written down from a wrong Line 4 looks like. No single figure repairs it, which is why the right output is the broken tie and the $9,000 rather than a proposed correction: the person holding the document decides which figure was meant, on the free page and inside the product alike. The seven other shapes the gap takes are in how to find the error when the G703 does not match the G702.

The four blind spots

Worth being blunt about, because the limits are structural rather than a matter of effort. A tool that sees one document, from figures you supply, cannot reach four whole classes of error:

  • Last month, in any form. Line 7 has to equal the previous certificate’s Line 6, and every line’s Column D has to equal what that item cumulatively billed last month. Neither reaches back from one document’s figures. The second is the one that matters: front-loading spread across twenty line items, or scope moved from one item to another, leaves every total on this month’s form agreeing. That needs the prior application’s entire schedule, matched item by item, which is what the upload route does once both applications are in the account.
  • Anything involving your records. The executed contract sum, the approved change-order log, the contract retainage rate. A sub who inflates Line 2 with change orders you never approved produces a document whose internal arithmetic is flawless. Only your own file contradicts it.
  • The rest of the packet. The lien waiver’s amount, through date, type, and signature; the certificate of insurance; certified payroll. See lien waiver vs pay application for the three waiver checks.
  • Whether the number on the page is the number you entered. Figures you key in carry no confidence signal, so every mismatch reads as a document error when sometimes it is a keying error. A 120-line schedule still has to be entered by hand, which is the slowest part of the job by an order of magnitude, and it is the whole reason the upload route exists.

Three of the four move when the document is read instead of retyped. The uploaded file brings its own printed figures, so the carry-forward runs item by item against last month’s application once both are in the account, a lien waiver in the same packet is checked against Line 8, and nothing is retyped, so a difference belongs to the document rather than to you. The fourth stays yours until you hand it over: the contract sum, the approved change orders and the retainage rate are checked against your records only once you pin them to the project. The full pre-certification sequence, tool or no tool, is in the review checklist.

A template is not a checker

The pages ranking for this query are downloads. Enerpize publishes a free AIA-style G702/G703 payment application template in Word, Excel and PDF, no signup, and states that it automates the calculation of contract sum to date, total earned less retainage, and current payment due from your schedule of values. That is a fair description of a good template, and it is also the limitation: the automation applies to figures you enter into your copy.

The other free tools in this space build a schedule of values or a pay application for the party doing the billing, total it, and export it. That is the sender’s job, and PayAppCheck’s own free builder does it too, with the checks run before the PDF is made. A document that arrived from somebody else needs the opposite move: type what it prints and compare that against what its own arithmetic requires.

The other free option: an AI pay app review

One competitor does aim at the receiving side. Kolena publishes a free pay app review page that asks you to upload your pay application and returns a pay app review checklist, and a companion page describing an AI agent that parses submitted AIA G703 forms in PDF or Excel, cross-verifies scheduled values, previous payments and retainage, validates calculations across columns, flags anomalies or missing data, and generates structured output. Kolena publishes a customer-reported figure of pay app review time falling from three hours to under ten minutes; that is their claim about their customers, not a measurement of ours. Access runs through a free-trial signup, and the page does not name which G702 or G703 line items the agent verifies.

The structural difference is where the verdict comes from. An AI reviewer produces a judgment about a document. A reconciliation engine produces a recomputed identity: expected $265,000, stated $256,000, off by $9,000, at Line 4. The second kind of statement is checkable by hand, which matters when a subcontractor disputes the finding. It is also why the extraction step being AI is safe here: every number a model reads passes through the arithmetic before anyone sees it, so a misread digit breaks an identity and surfaces as a flag rather than as a wrong answer.

When one document becomes a stack of twenty

The free calculator handles the document in front of you. A month-end stack does not work that way: twenty applications from twenty subs, native PDFs out of billing software, Excel exports, and scans of printed forms with handwritten corrections in the margin. Retyping all of it is not a plan.

That is the product. Upload the file you were sent, every G702 line and G703 row is extracted into a grid, the same identities run against the extracted figures plus the ones a single document cannot reach, and each flag anchors to the exact cell with the expected figure, the stated figure, and the delta. Nothing is auto-corrected without a human confirming it, and clean results export to Excel, CSV or JSON. Subcontractors change nothing about how they bill. If you are weighing categories rather than tools, extract-and-verify versus create-and-submit lays out the three of them.

Questions people ask

What can a G702 checker not check?

Four classes of error, and they are the same four for any checker reading one document. It cannot match this application to last month, so front-loading spread across many lines stays invisible even when every total on this month’s form agrees. It cannot compare the document to your own records, so an inflated Line 2 with no approved change order behind it stays internally consistent. It cannot read the lien waiver, the insurance certificate, or the rest of the packet. And where the figures were entered by hand it cannot tell a document error from a keying error, because a figure you typed carries no signal about how it was read.

Which checks run from figures you type, and which need the document read off the page?

The free calculator runs every check the typed figures support: each printed column total against the sum of the rows above it, the sum of Column C against Line 3, the sum of Column G against Line 4, the certificate chain from Line 3 down to Line 9, Lines 5a and 5b against the retainage rate and their two bases, and the readings that are not arithmetic, such as a line billed past its scheduled value or a gap in the item numbering. It also names every check it could not run and the box that would switch it on, so a half-filled form never reads as a clean bill of health. What typing cannot reach is the per-row identities: Column G is worked out as D + E + F and Column H as C minus G, so checking those against the same four columns would prove nothing, and the engine stays silent instead. A printed G, percent or H, a per-line retainage column, and anything from last month or from your own contract records need the documents themselves, which is the upload route.

Why is a formula-linked template not a checker?

Because its formulas only ever see the figures you retyped into your own copy. A template computes Column G from D, E and F, so G = D + E + F holds on every input it will ever accept, and the same goes for the totals row and the certificate chain. A check needs the two numbers to arrive separately: the figure the document prints, and the figure the arithmetic requires. A template is the right tool when you are the one filling the application in, and it proves nothing about one somebody else sent you.

Do I have to upload the pay application to check it?

No. The free calculator takes no document and no account: you type the figures the document prints and the free page gives the same answer the paid product would on the same figures. Nothing is stored on our servers. Upload is the other route, and it exists so the figures are read for you instead of retyped, which is the part that stops being practical somewhere around the fortieth line item.

Does a G702 checker work on scanned pay applications?

Typed figures check the same whether the page came from billing software, a spreadsheet, or a scan, because the arithmetic does not care where a number came from. On the upload route a scan is read by a vision model and every extracted number then goes through the same identities, so a misread digit breaks an identity and is flagged rather than passing through.

Is a G702 checker the same as pay application software?

No. Billing networks such as GCPay, Textura, Siteline and Procore Pay are create-and-submit systems: they control the document at the source, which means both parties have to be on the platform before anything is verified. A checker verifies whatever arrives, from whoever sends it, in whatever format, and only the receiver has to use it.

Upload a pay app you received and see what does not tie.

Check a pay app