BlueCollar Projects recognizes revenue using the Percent of Cost Complete (POC) method: revenue is earned in proportion to costs incurred relative to the total projected cost. This complies with ASC 606 — the standard governing revenue from contracts with customers — including its requirement to net contract assets and contract liabilities on a per-contract basis.
Revenue recognition is driven by two projection values maintained on each contract:
These are separate from Current Contract values (Original Contract + Change Orders). This is valuable because the contract value is your agreement with the owner, while the projections are your best estimate of where the job will actually land — and POC revenue should follow reality, not the original paperwork.
Under BlueCollar → Preferences → Global Preferences, configure:
| Setting | Purpose |
|---|---|
| Over Billings Account | Liability account for billings in excess of earned revenue. When billed revenue (net of retainage) exceeds earned revenue, the excess posts here. Zero at project completion. |
| Under Billings Account | Asset account for earned revenue in excess of billings. When earned revenue exceeds billings (net of retainage), the excess posts here. Zero at project completion. |
| Revenue Recognition Account | Income account credited when running rev rec journals (often a dedicated "accrued revenue" account). Its balance reflects the over/under position: negative = overbilled, positive = underbilled. |
A project will ever have a balance in the Over Billings account or the Under Billings account — never both. That's a direct consequence of the ASC 606 netting requirement, enforced automatically.
| Setting | Purpose |
|---|---|
| Set 100% Complete at $0 Projected Estimate | Some projects have revenue but no cost. By default a $0 projected estimate means 0% complete; enable this to treat it as 100% complete instead. |
| Exclude Contract Retainage from Actual Cost | For developers submitting bank draw requests — keeps subcontract retainage out of actual cost. |
| Enable Period-Locked Revenue Recognition Workflow | Ties revenue recognition to your accounting periods so journals always post to an explicit, controlled period. When enabled, the Revenue Recognition tool snaps the Through Date to the current open period, keeps the period filters in sync, and confirms the posting period before journals are created. See The Revenue Recognition Tool. |
Also: under Setup → Accounting → Accounting Preferences → Items/Transactions, associate a default account with the Contract/SOV record; and any account used as a "Cost Type" must have Available for Budgeting checked (see Chart of Accounts).
Projections drive revenue recognition, so keeping them current is critical. When a Sales Order is created as a Contract, the Initial Projection Status is Pending Approval and an Approve Initial Projections button appears. Until projections are approved, the Contract tab shows lines as read-only and Projected Contract shows zero. Review and adjust projections before approving; bulk approval is available under BlueCollar → Contracts → Contracts Center. For the full picture, see Contracts.
The percent complete is based on cost (see Budget for how Actual Cost is tracked):
Projected % Complete = Actual Cost to Date ÷ Projected Estimate (capped at 100%)
Earned Revenue = Projected % Complete × Projected Contract
Revenue to Recognize = Earned Revenue − Revenue to Date
Over/Under Billing compares what's been earned to what's been billed (see Fixed Fee Billing):
Over/Under Billing = Earned Revenue − Billed to Date − Unbilled Retentions
For a step-by-step worked example across a full project lifecycle, see Full Lifecycle Example.
Under ASC 606, contract assets and contract liabilities for a single contract must be presented on a net basis — you cannot show both for the same contract. BlueCollar enforces this automatically (only the Over or Under Billings account carries a balance per project).
The netting treats retainage as a contract-asset component:
This treatment aligns with public-company disclosure practice in the construction industry, where contract assets and liabilities are reported in a net position with retentions included in contract assets.
Definitions:
Access is controlled through NetSuite roles and BlueCollar Global Permissions. Ensure the right users can run the Revenue Recognition tool, view the WIP Report, and approve/modify Contract Projections.
The Revenue Recognition tool and the WIP Report are available in English and French, following each user's NetSuite language preference.