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.
There are two ways into the Subcontract Billing Tool:
The subtab is shown only to roles that hold the SUBCONTRACTS_BILLING_VIEW permission (VIEW or FULL). Administrators are not exempt: if the permission has not been granted to the Administrator role, the subtab does not appear. See Permissions below.
25 for 25%), or the quantity of units for unit-rate linesEach subcontract line is laid out as a progress (AIA-style) pay application, and the columns match the customer billing screen, so anyone who bills customers in BlueCollar already knows how to read it. Left to right:
A few helpful behaviors built into the grid:
When you are ready to bill retentions:
If the Billing Date falls in an accounting period that is closed, or that is locked for A/P (accounts payable) for the subcontract's subsidiary, the tool posts the bill to the next open, A/P-unlocked period for that subsidiary rather than rejecting it. This includes per-subsidiary A/P locks set through the Period Close Checklist, which do not show on the accounting period record itself. The subcontract retainage journal follows the bill into the corrected period, so the bill and its journal always land together.
If there is no open, A/P-unlocked period on or after the billing date, the bill is not created and you will see No A/P-Unlocked Accounting Period Found, which explains that every open period on or after the billing date is A/P-locked for the subsidiary. Unlock A/P for one of those periods (or open a new one) and create the bill again.
This spares the month-end shuffle where a late subcontractor invoice dated in a closed month would otherwise have to be re-dated by hand before it could be entered.
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. This is 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, balance to finish, unbilled retentions, and amount paid) with a grand-total row across all subcontracts. Balance to Finish is the current amount minus the billed amount, so a project manager can see how much is left on each sub without opening the purchase orders.
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. If a load fails, the error is shown in place of the spinner along with a Retry button, so you can re-fetch 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 (menu page and the project's Subcontract Billing subtab) | 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 |
The Subcontract Billing subtab on the project record is controlled by SUBCONTRACTS_BILLING_VIEW (VIEW or FULL). Administrators do not receive it automatically: grant it to the Administrator role explicitly, or the subtab will not appear for administrators either.