Get a demo

NetSuite Retainage Tracking: Managing AR and AP Retention for Contractors

General contractors and subcontractors track both accounts receivable (customer) retainage and accounts payable (subcontractor) retainage in NetSuite using BlueCollar Projects, a Built for NetSuite SuiteApp. BlueCollar Projects withholds retention per contract or line item, posts retainage to dedicated balance sheet accounts outside standard AR and AP aging, and automates partial or final retention billing.

Why Standard NetSuite Invoicing Distorts Construction Retainage and Aging Reports

In commercial construction, project owners typically withhold 5% to 10% of each progress billing as accounts receivable (AR) retainage until substantial completion, and general contractors withhold a matching percentage from subcontractor vendor bills as accounts payable (AP) retainage.

Because standard NetSuite does not include native construction retainage subledgers, contractors running uncustomized NetSuite usually resort to one of two workarounds, both of which create accounting problems:

  1. The negative discount line workaround: Adding a negative -10% retention line item on a standard NetSuite invoice reduces the invoice total to the net cash due, but it also understates gross Billed to Date on your NetSuite WIP report unless manually adjusted, and leaves the withheld retention invisible on the balance sheet.
  2. Booking 100% of the invoice into standard Trade AR or Trade AP: If you record the full gross progress draw in Trade AR (or full subcontractor bill in Trade AP) and only collect or pay 90%, the remaining 10% retention sits inside standard NetSuite AR and AP aging reports. Within three months, every active project looks 90+ days past due, distorting borrowing-base certificates for lenders, credit holds, and cash flow forecasts.

AR vs. AP Retainage Workflows in NetSuite With BlueCollar Projects

Inside NetSuite construction software with BlueCollar Projects, customer AR retainage and subcontractor AP retainage are tracked at the contract, commitment, and line-item level while posting to dedicated general ledger accounts.

Workflow StageAccounts Receivable (Customer / Owner) RetainageAccounts Payable (Subcontractor / Vendor) Retainage
1. Contract / Commitment SetupDefault retention % set on the BlueCollar Contract and individual Schedule of Values linesDefault retention % set on the BlueCollar Subcontract and individual subcontract cost-code lines
2. Monthly Draw / Vendor Bill EntryBilling coordinator enters period progress on the SOV; BlueCollar Projects calculates gross billing, retention withheld, and net payment dueAP clerk enters the subcontractor pay app (or receives it via NetSuite Procore integration); BlueCollar Projects calculates gross cost, retention withheld, and net payable
3. General Ledger Posting at DrawDebit Trade AR (net due now)
Debit Retainage Receivable (withheld retention)
Credit Billed Construction Revenue (100% gross draw)
Debit Job Cost by Cost Code (100% gross work)
Credit Trade AP (net payable now)
Credit Retainage Payable (withheld retention)
4. Aging & WIP Treatment During Active JobTrade AR aging shows only collectible progress draws; Retainage Receivable tracks held retention by project and customer; WIP Billed to Date reflects 100% gross billingTrade AP aging shows only currently payable subcontractor draws; Retainage Payable tracks held sub retention by vendor and subcontract; Job Cost reflects 100% of incurred subcontract cost
5. Partial or Final Retention ReleaseAt milestone or substantial completion, generate a Retention Billing invoice in BlueCollar Projects: Debit Trade AR, Credit Retainage ReceivableOnce lien waivers and closeout docs are approved, release subcontractor retention in BlueCollar Projects: Debit Retainage Payable, Credit Trade AP (creating a payable vendor bill)
6. Cash Collection / DisbursementReceive customer payment against the Trade AR retention invoicePay subcontractor vendor bill through standard NetSuite AP check or ACH run

Handling Variable Retention Rates, Step-Downs, and Line-Level Retainage

Construction contracts rarely apply a flat retention percentage from mobilization through final closeout. BlueCollar Projects handles three common contract structures without manual journal entries:

  • Line-level retainage overrides on the Schedule of Values: General contractors often negotiate 0% retention on bond premiums, insurance, permits, or general conditions while holding 10% on trade construction lines. Because retention is configured per line on the Schedule of Values and AIA billing form, BlueCollar Projects calculates the exact composite retainage on the G702 and G703 automatically.
  • Mid-project retention step-downs (for example, 10% to 5% at 50% completion): When a project reaches 50% completion and the owner approves reducing future retention withholding from 10% to 5% (or reducing cumulative retention held to 5%), billing teams adjust the line-level retention rate on subsequent draws without corrupting historical applications.
  • Stored materials vs. completed work retention rates: If a contract specifies a different retention rate for stored materials (Column F on the G703) than for work in place (Columns D and E), BlueCollar Projects tracks both rates cleanly.

Billing and Releasing Retention at Substantial Completion

Closing out a construction project requires billing the owner for held AR retainage and releasing AP retainage to subcontractors once punch lists, warranties, and final lien waivers are complete:

  1. Customer (AR) partial or final retention billing: Inside BlueCollar Projects, open the contract and launch the Bill Retentions workflow. You can bill a partial percentage (such as releasing 50% of held retention at substantial completion) or 100% final retention. BlueCollar Projects generates a NetSuite invoice that moves the billed amount out of Retainage Receivable and into Trade Accounts Receivable, where it begins aging according to your contract payment terms (such as Net 30 from closeout acceptance) and prints a matching final AIA-style G702/G703 application.
  2. Subcontractor (AP) retention release: On the subcontract record in BlueCollar Projects, review total commitment value, billed to date, paid to date, and retention held per cost code. When the subcontractor submits a final retention pay application and signed lien release, trigger the AP retention release to generate a NetSuite vendor bill that moves the released balance from Retainage Payable into Trade Accounts Payable for the next payment run.
  3. Keeping Procore and NetSuite aligned: When using the Procore Connector by BlueCollar, approved subcontractor invoices flow from Procore to NetSuite as vendor bills with retention properly split, and owner retention invoices and customer payments recorded in NetSuite sync back to Procore.

BlueCollar Cloud Solutions works with 90+ construction contractors on NetSuite. BlueCollar Projects is a Built for NetSuite SuiteApp with no separate infrastructure, and our team is made up of former NetSuite employees and construction finance practitioners. If you also need hands-on accounting support to clean up historical retainage balances or reconcile your monthly WIP schedule, learn about our construction financial operations services, or review our guides on what is a WIP report in construction and why WIP reporting breaks in spreadsheets.

Frequently Asked Questions

Does NetSuite track construction retainage out of the box?

Standard NetSuite does not include dedicated construction retainage subledgers for accounts receivable or accounts payable. Contractors using uncustomized NetSuite often use negative discount items on invoices or manual journal entries, which either understate gross contract billings or leave withheld retention mixed into standard AR and AP aging reports. BlueCollar Projects adds native AR and AP retainage tracking inside NetSuite.

How does BlueCollar Projects keep retainage out of overdue AR and AP aging buckets in NetSuite?

When you post a progress invoice or a subcontractor vendor bill in BlueCollar Projects, the SuiteApp splits the current draw due from the withheld retention and posts the retention portion to dedicated Retainage Receivable (asset) and Retainage Payable (liability) general ledger accounts. Only the net collectible or payable draw appears in standard Trade AR and Trade AP aging until retention is billed or released.

How do journal entries work for AR retainage and AP subcontractor retainage in NetSuite?

On an owner progress invoice, BlueCollar Projects debits Trade Accounts Receivable for the net current payment due, debits Retainage Receivable for the withheld retention, and credits Billed Revenue (or Deferred/Contract Revenue). On a subcontractor vendor bill, it debits Job Cost by cost code for 100% of the approved work, credits Trade Accounts Payable for the net amount payable now, and credits Retainage Payable for the withheld subcontractor retention.

Can BlueCollar Projects handle variable retainage rates or retention step-downs at 50% completion?

Yes. You can set a default retainage rate on a customer contract or vendor subcontract, override the rate on specific Schedule of Values or commitment lines, and adjust the retention percentage mid-project when a job reaches 50% completion or substantial completion milestones.

How do you bill final customer retainage or release subcontractor retention at project closeout?

When a project reaches substantial completion, BlueCollar Projects lets accounting generate a partial or 100% retention billing invoice on the customer contract, moving the balance from Retainage Receivable into Trade Accounts Receivable with a matching final G702/G703 application. On the AP side, once lien waivers and closeout requirements are satisfied, accounting releases the withheld balance on the subcontract into a payable NetSuite vendor bill.

Related Reading

Ready to separate AR and AP retainage cleanly on your NetSuite balance sheet?


Talk to our team
Oracle NetSuite SuiteWorld 2024 Alliance Partner badge