Engine · Field · LIVE

Pay apps reconciled before you sign.

Reviews subcontractor pay applications (AIA G702/G703) against the project's schedule of values, work-completed %, and the procurement record. Flags over-billing, math errors, uninstalled material billed as installed, and retainage drift — every finding traced to the line, the SOV row, and the prior pay app.

~30s
per pay app
5
finding categories
G702 / G703
native parse
$ + %
dual-tagged findings
01 · What it catches

The drift that compounds across pay periods.

Five categories cover the bulk of where pay-app review goes sideways. Each finding carries a severity tag, the dollar impact, the SOV row it ties to, and the recommended action.

CRITICAL · Over-billing

Sub bills 80% on framing. Schedule says 60%.

The pay app claims 80% completion on framing. Trueleveler pulls the master schedule's earned-value % and the daily log's framing crew counts. Both say ~60%. We flag the 20-point gap with the source data and propose a verified completion %.

CRITICAL · Uninstalled material

Steel billed as installed. Yard says delivered.

Procurement tracker shows the material was delivered May 8 but no install activity is logged. AIA allows billing for stored materials but at a separate line with proof of insurance — this is being billed as installed work. We surface the procurement record and the missing "stored materials" column.

DEVIATION · Math errors

Schedule of values doesn't sum to contract value

SOV line totals come to $1.84M; G702 contract value reads $1.86M. Retainage withheld doesn't match contract-spec retainage rate. Period addition off by $4,200 across two lines. We recompute every column and flag every cell that doesn't reconcile.

DEVIATION · Retainage drift

10% required. 7% withheld.

The subcontract calls for 10% retainage until 50% complete then 5% thereafter. This pay app withholds 7% on a 35% complete job. The vendor is asking you to release retainage you're contractually obligated to hold. Surfaced with the contract clause that controls.

NOTE · Materials on site

Stored-materials line item, no certificate

$84K of stored materials billed but no Certificate of Stored Materials attached. AIA G703 column F technically allows this with a separate proof-of-insurance docket. Flagged as "Approve with conditions: require COSM" for the PM to verify before signing.

NOTE · CO carryforward

Approved CO not reflected in SOV revision

CO-007 was approved last month for $34,200. This pay app's contract value still shows the original sum — the SOV wasn't updated. Sub may be billing against the old line structure. We surface the CO and the math correction.

02 · The review panel

Pay app submitted. Cross-checked. Annotated.

One screen. Left: the G702/G703 as the sub submitted it. Right: every finding the engine surfaced, severity-tagged with dollar impact and source citation.

PA-06SUBMITTEDABC Mechanical · period to 5/15 · Total billed $284,500 · Net this period $228,000 (after 10% retainage and prior payments) As-submitted
F1CRITICALOver-billing · Line 4 (Ductwork) · Billed 75% complete. Schedule earned-value: 58%. Daily log crew-day average: 53% complete. Recommended: cap at 60%. -$18,400
F2CRITICALUninstalled material · Line 7 (RTU equipment) · Billed as installed. Procurement: delivered 5/8, no install activity logged. AIA G703 col F applies (stored). -$42,000
F3DEVIATIONRetainage rate · G702 line 5b · 7.5% withheld. Subcontract §6.2 requires 10% until 50% completion (currently 38%). +$5,684
F4DEVIATIONMath · Lines 12–14 sum · Line totals $84,180. Schedule of values column G total reads $87,800. Period addition error. -$3,620
F5NOTECO-007 not in SOV · Approved 4/22 for $34,200. Contract value should be $1,054,200; this pay app shows $1,020,000. Reissue SOV or carry the delta. Verify
ΣRECOMMENDEDApprove with conditions: reduce net amount by $58,336 (-25.6%). Approve $169,664. Engine confidence: 88%. Review with PM
Output

A reviewer's brief in PDF or Word, ready for the PM's monthly close. Each finding deep-links to the SOV row, the contract clause, the procurement delivery slip, and the master schedule activity. Approve, dispute, or route for negotiation — the audit trail captures the decision.

03 · The SOV reconcile

Schedule of values as the source of truth.

The SOV is the contract you signed expressed as line items. It's also where the most argument happens at pay-app time. The engine pulls the executed SOV (or builds one from the contract) and reconciles every billing line against it.

Initial reconcile

SOV totals = contract value

Sum of all line items equals the contract amount. CO-revised contract values flow into the running total. If the math doesn't sum, the pay app can't be paid in full — flagged before findings.

Period reconcile

This period + previous = total billed

Column G total = Column D (this period) + Column E (previous). Schoolyard math, but where 20% of all rejections come from. We recompute every row.

Cross-period

Sub bills 40% → 60% → 75% → back to 70%

Completion can't go DOWN unless you're processing a back-charge. Flagged with the prior-pay-app history so the PM sees the regression and decides if it's an honest correction or a billing dispute.

04 · The procurement cross-check

Material billed. Delivery confirmed?

AIA G703 column F lets a sub bill for stored materials — material delivered to the site or to an off-site warehouse, not yet installed. The check is simple in theory: was it actually delivered? Was it stored with the right insurance? Most reviewers don't have the procurement data on hand to verify.

Pay App Review pulls from the project's Procurement tracker automatically. For every "stored materials" line on the pay app, we surface the matching delivery slip, the supplier, the proof-of-storage location, and the certificate of insurance for off-site storage. Mismatches get flagged — the most common: material billed as stored that was never delivered.

Match

$84K stored steel · delivered 5/8

Procurement record: 12 columns of W12×26 delivered by Walsh Steel 5/8/2026, signed by the super. COSM on file. Approved as-billed.

Partial

$42K HVAC equipment · only $28K verified

Pay app claims $42K of FCU units delivered. Procurement record shows 8 of 12 units received (~$28K). Approve $28K. Hold $14K until delivery.

Mismatch

$22K stored materials · no record

Pay app claims stored material. Procurement record has no delivery, no PO, no supplier confirmation. Dispute pending evidence.

05 · Owner reporting + audit trail

Sign-off ready. Audit-trail intact.

Every reviewed pay app lands in a single project register with the engine's findings, the PM's decision, and the dollar deltas. Pay App Review pairs with the owner-reporting export so the monthly billing narrative writes itself.

Reviewer brief PDF

Hand it to the PM. Or to counsel.

Full findings list, severity-tagged, with dollar impact per finding, recommended approve/dispute totals, and one-line PM verdict per item. The document a contracting officer needs to back up a billing decision.

Pay app register

Every pay app, every sub, every period

Filterable by vendor, period, status, total approved/disputed dollars. Owner-side meetings get a clean redacted view (totals only). Internal meetings get the full register with finding rationale.

Approved pay apps update the project's billing-to-date roll-up; disputed lines feed back to the negotiation tracker so the PM can negotiate dispute resolution without losing the audit trail.

★ · Pairs with

It works alone. It's better in a chain.

Pay App Review reads cleanly on its own. But the cross-checks — the part that catches the dollars — require the other engines feeding it.

06 · FAQ

Things everyone asks first.

What pay app formats are supported?

AIA G702 (Application for Payment) + G703 (Continuation Sheet) are native — we parse the AIA-issued PDF directly. Custom owner-issued pay app forms (proprietary spreadsheets, Sage Construction, Procore exports) are auto-mapped to the G702/G703 schema with reasonable accuracy. If your form is exotic, we fall back to extracting the SOV table and reconciling line-by-line.

How accurate is the completion-% check?

The engine cross-references three signals: master schedule earned-value, daily log crew counts on the relevant activity, and procurement delivery + install history. When all three agree within 5%, confidence is high. When they diverge, we surface all three for the PM to triangulate. We never claim certainty — we surface the data the PM needs to make the call.

What about pay apps that come in as a PDF screenshot of an Excel file?

Works, with a slight accuracy hit. OCR extracts the line items and we reconstruct the SOV. Findings carry a lower-confidence flag for any cell where OCR confidence was below threshold — the PM verifies before approving. Most of our pilots feed the engine clean PDFs or XLSX exports for highest accuracy.

Does it integrate with our accounting system?

Read-only for v1. We export approved pay apps as G702/G703 PDF + structured CSV; you push to your accounting system through whatever bridge you use today (manual entry, Sage import, Procore sync). Bidirectional QBO and Sage 300 CRE are on the v4.2 roadmap.

How does it handle owner pay applications (GMP contracts)?

Same engine, perspective flipped. The owner-facing pay app uses the GMP contract as the source of truth instead of the subcontract; stored materials check against the project-wide procurement register; retainage rules pull from the prime contract. Useful for owner-rep PMs running pay-app review on the GC's side too.

Drop a real pay app. See the findings in 30 seconds.

Bring a G702/G703 from a live project to a 15-minute call. We'll process it on screen against your real SOV and procurement data. You keep the reviewer brief.

Start free — 14 days, no card →