In the construction industry, even companies that are not general contractors will leverage subcontractors to some degree. For example, an HVAC firm may win a contract that has some plumbing work to be done as part of it. While the HVAC firm can accomplish all of the heating and air-conditioning components of the contract, they may lack the skill set (or the bandwidth) to perform the plumbing parts of the contract. In that case, they would look for a plumbing subcontractor with a specialized skill set to fulfill that portion of the agreement.
Just like the contract that we must fulfill and bill our customer for, our subcontractor will have a similar subcontract for items they must fulfill and invoice us for. The line items can be lump sum or unit rate, just like the contract we may have with our customer.
In the same way our contract with our customer utilizes the Sales Order record in NetSuite, a subcontract uses a standard Purchase Order record as the basis for their billing. This makes sense because a Purchase Order at its core is an agreement to buy goods or services from a vendor. This is valuable because subcontractor pay applications, retainage, and change orders are tracked with the same rigor as your own customer billing — on the cost side of the project.
A subcontract is a Purchase Order flagged for BlueCollar. For a PO to appear in the Subcontract Billing Tool and the change-order workflow, it must have:
If a subcontract PO isn't showing up where you expect, these are the first things to verify.
Items only — never expense lines. BlueCollar does not support expense lines on subcontract POs. All subcontract scope must be entered as items on the Items tab. Lines added to the Expense tab are invisible to the Subcontract Billing Tool, the change-order workflow, and the budget validation that protects cost coding. This is the same items-only rule that applies to all project POs — see Project Budget Overview for the underlying reason.
Setup also requires (see Global Preferences):
When we receive bills from our subcontractor, it is likely that we'll have a detailed Schedule of Values that they will be billing us against, and it may very well be presented to us as a Pay Application in AIA-style format.
The BlueCollar Subcontract Billing Tool helps us provide an easy entry screen for those subcontracts where the AP user can see amounts previously billed, amounts held in retainage, and so on—just like our contract with our customer.
The Subcontract Billing Tool and the Subcontract List are available in English and French, and follow each user's NetSuite language preference automatically.
25 for 25%), or the quantity of units for unit-rate linesEach subcontract line is laid out as a progress (AIA-style) pay application. The Work Completed group splits each line into what you're billing now and what's already been billed:
Alongside those, each line shows Current Qty and Current Amount (the line's current contract values after any change orders), plus three retention columns: Retentions %, Current Retentions (the retainage withheld on this bill), and Unbilled Retentions (the cumulative retainage still being held).
A couple of helpful behaviors built into the grid:
When you are ready to bill retentions:
Subcontract retainage works like customer retainage but on the payable side. When a vendor bill is created through the Subcontract Billing Tool:
When you release retainage (the Bill Retentions flow above), the held amount is reversed back out and billed to you by the subcontractor.
The Exclude Contract Retainage from Actual Cost preference controls whether subcontract retainage counts in actual cost — useful for developers submitting loan draw packages, who don't need retainage payable treated as an expense requiring immediate cash.
The project's Subcontracts tab gives you a single, roll-up view of every subcontract on the job—original amount, approved and pending changes, current amount, billed amount, unbilled retentions, and amount paid—with a grand-total row across all subcontracts.
The list opens with all rows collapsed so you start with the summary picture; click a row's View details to expand it and see line-by-line detail. While the data loads you'll see a loading indicator, and if a load doesn't come through you can simply click Retry to refresh without leaving the tab.
Increases and decreases to a subcontract are handled through a Subcontract Change Order, created as a child of a parent Change Request. The full workflow — PO visibility prerequisites, adjusting and adding lines, approval, and a worked example — is documented on its own page:
For Administrators: If you require your subcontractors to submit their vendor bills within the tool, you'll need to provide them with appropriate access.
SUBCONTRACTS_BILLING_VIEWSUBCONTRACTS_BILLING_CREATE_BILLcustomscript_bc_subcontract_rcustomdeploy_bc_subcontract_r_formSubcontract access is controlled through BlueCollar Global Permissions:
| Feature | Application | Action | Level |
|---|---|---|---|
| View the Subcontract Billing Tool | SUBCONTRACTS_BILLING | SUBCONTRACTS_BILLING_VIEW | VIEW |
| Create subcontractor bills | SUBCONTRACTS_BILLING | SUBCONTRACTS_BILLING_CREATE_BILL | FULL |
| Create a Subcontract Change Request | SUBCONTRACT_CHANGE_REQUEST | SUBCONTRACT_CHANGE_REQUEST_CREATE | FULL |
| Approve a Subcontract Change Request | SUBCONTRACT_CHANGE_REQUEST | SUBCONTRACT_CHANGE_REQUEST_APPROVE | FULL |