CONSTRUCTION / BILL PAY

Retainage for Bill Pay

Native withholding for construction subcontracts

The Bill Pay gap in construction

39%
Non-construction
Bill Pay attach
24%
Construction
Bill Pay attach

Construction processes $2T+ in AP invoices every year. We have the right to win —
but construction-specific workflows are blocking adoption.

What we're hearing from the field

9 customers in the Construction Alpha actively eager to use this if we build it.

What is retainage?

Example: GC hires an electrical sub for a $100K contract at 10% retainage
Invoice Billed Retained (10%) Paid
#1 $25,000 $2,500 $22,500
#2 $25,000 $2,500 $22,500
#3 $25,000 $2,500 $22,500
#4 $25,000 $2,500 $22,500
Release $10,000

5-10% of every invoice is withheld until the work is done, then released in bulk.

Problem statement

Customers need to withhold a percentage of an invoice payment, then release that percentage at a later date.

What we know

Retainage is scoped to the subcontract (PO)
Retainage terms live on the subcontract. Companies have standard rates per vendor, but rates can differ by project or scope. The PO is the right anchor.
Flat rate covers 90%+ of contracts
Fixed 5% or 10% withheld from every progress payment until release. Variable/step-down rates exist but are rare.
Rate can vary per line item on the SOV
Most common: uniform rate across all lines (10%). But specific lines can be 0% (e.g., stored materials). Users need to see and edit per-line rates.
Mid-contract rate changes exist but are rare
Sometimes retainage % changes mid-contract (e.g., reduced after substantial completion). For V1: apply current PO rate to each new bill. Previously retained amounts stay as-is.

Scope

In scope

Data models
Flat retainage rate on the PO + tracking retainage on bill line items. Forward-looking support for per-line rates and more complex withholding.
Retainage in the product
Front-end display of retainage on bills, PO summaries, and release bills.
Sage Intacct sync
Extends our existing PO import and AP sync for Intacct — adding retainage fields to paths that already work.

Out of scope

Variable / step-down rates
Data model supports per-line rates; step-down adds completion % thresholds
Invoices without matched PO
Schema is source-agnostic; V2: auto-create PO from G702
Release workflow UX
Release sync is in scope; creating release bills from UI is deferred
Multi-PO bills
V1: one PO per bill. Many-to-many mapping exists but adds rate complexity
Other ERPs
Data model is ERP-agnostic; priority after Sage: QBO, NetSuite, Acumatica
Vendor compliance automation
AI collection and validation of lien waivers, COIs, and other documents — separate workstream
REAL EXAMPLE — HUFFINES / WATERTON

The subcontract

Waterton Proposal
Proposal — $81,043.55, 35 EA fence columns
Retainage Clause
Contract clause — 10% retainage, NET 15

This specific purchase order has one line item with 10% retainage. Total contract value is $81K.

ASPIRATIONAL UX

Purchase Order with withholding

← Back to Purchase Orders

Waterton Construction — Private Fence Columns

Withholding: 10% PO-2025-1687
Details
Bills (0)
Activity
Contract Amount
$81,043.55
Vendor
Waterton Construction
Payment Terms
NET 15
Status
Active
Withholding Configuration
Enabled
Yes
Default Rate
10%
GL Account
2100 · Retainage Payable
Schedule of Values
Description Qty Unit Price Amount Rate
Fencing Column (Private) 35 EA $2,315.53 $81,043.55 10%
Total $81,043.55
Retainage Summary
Total Retained
$0.00
Total Released
$0.00
Balance
$0.00

New fields: withholding_enabled, withholding_default_rate, per-line withholding_rate

APP 1 — SEP 24, 2025 — 35% COMPLETE

First invoice

App 1 G702 App 1 G703

Application #1

Work this period $28,186.10
Retainage (10%) -$2,818.61
Net payment due $25,367.49
Running Totals
Cumulative billed $28,186.10
Cumulative retained $2,818.61
ASPIRATIONAL UX — APP 1

Bill with withholding

← Back to Bills

Waterton Construction — App #1

Retainage withheld
Matched Purchase Order
PO-2025-1687 — Private Fence Columns
10% withholding
Line Items
Description Gross Rate Withheld Net (amount)
Fencing Column (Private) $28,186.10 10% $2,818.61 $25,367.49
Bill Summary
Gross
$28,186.10
Withheld
$2,818.61
Payment (net)
$25,367.49
PO Retainage Balance
Retained
$2,818.61
Released
$0.00

Gross $28,186.10 − 10% retainage = $25,367.49 net payment.

APP 2 — OCT 22, 2025 — 94% COMPLETE

Second invoice

App 2 G702 App 2 G703

Application #2

Work this period $48,152.31
Retainage (10%) -$4,815.23
Net payment due $43,337.08
Running Totals
Cumulative billed $76,338.41
Cumulative retained $7,633.84
ASPIRATIONAL UX — APP 2

Retainage accumulates

← Back to Bills

Waterton Construction — App #2

Retainage withheld
Line Items
Description Gross Rate Withheld Net (amount)
Fencing Column (Private) $48,152.31 10% $4,815.23 $43,337.08
Bill Summary
Gross
$48,152.31
Withheld
$4,815.23
Payment (net)
$43,337.08
PO Retainage Balance
Retained
$7,633.84
Released
$0.00

PO retainage summary is computed from matched bills (R7) — not stored on the PO.

APP 3 — NOV 24, 2025 — 100% COMPLETE

Third invoice

App 3 G702 App 3 G703

Application #3 (final work)

Work this period $4,705.14
Retainage (10%) -$470.52
Net payment due $4,234.62
Running Totals
Cumulative billed $81,043.55
Cumulative retained $8,104.36
% Complete 100%
ASPIRATIONAL UX — APP 3

Third invoice in Ramp

← Back to Bills

Waterton Construction — App #3

Retainage withheld
Line Items
Description Gross Rate Withheld Net (amount)
Fencing Column (Private) $4,705.14 10% $470.52 $4,234.62
Bill Summary
Gross
$4,705.14
Withheld
$470.52
Payment (net)
$4,234.62
PO Retainage Balance
Retained
$8,104.36
Released
$0.00

100% complete. $8,104.36 retained across all 3 invoices, awaiting release.

APP 4 — RETAINAGE RELEASE

Fourth invoice — request for retainage release

App R G702 App R G703

Release Application

Retainage released $8,104.36
New retainage rate 0%
Contract Final
Total billed $81,043.55
Total retained $0.00
Total paid $81,043.55
GL SUMMARY

Across all 4 bills

Event Land Improvements (DR) Retainage Payable (CR) Cash (CR)
Invoice 1 +$28,186.10 +$2,818.61 -$25,367.49
Invoice 2 +$48,152.31 +$4,815.23 -$43,337.08
Invoice 3 +$4,705.14 +$470.52 -$4,234.62
Invoice 4 (release) -$8,104.36 -$8,104.36
Net $81,043.55 $0.00 -$81,043.55

Retainage Payable nets to $0. The full contract value flows through — retainage just controls when.

Next steps

Follow along and share feedback in #project-retainage