The Work-in-Progress (WIP) Report brings contract values, costs, billings, revenue recognition, and the over/under billing position together in one report. It's the single place to see where every active job stands financially — useful for month-end review, surety/bonding reporting, and spotting jobs that are drifting over- or under-billed. For the concepts behind the numbers, see Revenue Recognition and WIP.
Navigation: BlueCollar → Project Control Center → WIP Report
Results respect NetSuite role-level segment restrictions: a role limited to specific Location, Class, or Department values sees only the projects within those segments (see Global Permissions).
Identifying & segment columns
| Column | Meaning |
|---|---|
| Contract # / Project Name / Customer Name / Project Manager | Identifying details |
| Subsidiary / Department / Class / Location | Accounting segment values for the project |
Contract, estimate & gross profit
| Column | Meaning |
|---|---|
| Original Contract | Original Sales Order value |
| Current Contract | Original Contract + approved change orders |
| Projected Contract | Revenue projection (drives rev rec) |
| Original Estimate | Original cost estimate |
| Current Estimate | Current cost estimate |
| Projected Estimate | Cost projection (drives % complete) |
| Projected GP % | Projected gross profit ÷ Projected Contract |
| Current GP | Current Contract − Current Estimate |
| Current GP % | Current GP ÷ Current Contract |
| GP to Date | Revenue to Date − Actual Cost |
| GP % to Date | GP to Date ÷ Revenue to Date |
If the selected Accounting Period End falls before the Sales Order date, Original Contract, Current Contract, and Projected Contract all show 0 for that project, because the contract did not exist yet as of that date.
Cost, completion, billing & revenue
| Column | Meaning |
|---|---|
| Total Cost | Actual Cost + Committed Cost |
| Actual Cost | Total costs incurred to date |
| Committed Cost | Open commitments (open POs / subcontracts not yet billed) |
| Current % Complete | Actual Cost ÷ Current Estimate |
| Projected % Complete | Actual Cost ÷ Projected Estimate (capped at 100%) |
| Current Cost to Complete | Current Estimate − Total Cost |
| Projected Cost to Complete | Projected Estimate − Total Cost |
| Billed to Date | Total invoiced to the customer. Invoices that are Pending Approval or Approved are included; Rejected invoices are not. |
| Current Bill Remaining | Current Contract − Billed to Date |
| Open AR | The open invoice balance minus any unapplied credits (never below zero) |
| Unbilled Retentions | Retention withheld and not yet billed |
| Earned Revenue | Projected % Complete × Projected Contract |
| Revenue to Date | Cumulative revenue recognized |
| (Over) Billing Balance | Billings in excess of earned revenue (contract liability) |
| Under Billing Balance | Earned revenue in excess of billings (contract asset) |
| (Over)/Under Billing | The net over/under billing position: Earned Revenue − (Billed to Date − Unbilled Retentions). Billings count net of unbilled retainage, so the position matches the ASC 606 contract asset/liability view. |
| Totals (This Page) / Totals (All Pages) | The summary row totaling the numeric columns. It reads Totals (This Page) while it covers the page on screen and Totals (All Pages) once every page has been totaled (see Pages and Totals) |
Check the approval status of rejected invoices. Billed to Date counts every Pending Approval and Approved invoice. If a rejected invoice is approved later, after a replacement invoice has already been issued, both invoices are counted.
When you set an accounting-period filter, the report can also surface figures scoped to the selected period, so you can isolate a single period's activity:
| Column | Meaning |
|---|---|
| This Period Cost | Costs incurred within the selected period |
| This Period Actual Revenue | Billed (actual) revenue within the selected period |
| This Period Earned Revenue | Earned revenue attributable to the selected period |
| Revenue to Recognize | Earned Revenue to Date − Revenue to Date — the amount the Revenue Recognition tool would post |
The report loads projects in pages of 1,000. On accounts with more than one page, a pager below the grid shows the page you are on and the page count (for example, Page 2 of 5). Loading one page at a time keeps the report quick to open even on a large portfolio.
The totals row at the bottom of the grid is labeled Totals (This Page) and sums the projects on the page you are viewing. On a multi-page report, BlueCollar keeps loading the remaining pages in the background; when that finishes, the row switches to Totals (All Pages) and the percentage columns are recalculated from the account-wide totals. The all-pages totals are refreshed each time you click Update or change a filter, date, accounting period, the Include Inactive Projects toggle, or the Active Status filter.
When the report opens, the Subsidiary, Project Name, Customer Name, Project Manager, Department, Class, and Location dropdowns list every value in your account (within your subsidiary and segment access) rather than only the values on the current page, so you can go straight to a project that sits on a later page. After you click Update, each dropdown narrows to the values present in the filtered results. The Contract ID filter lists the contracts on the current page.
Save your preferred column layout as a custom View so the report opens the way you like it every time. A view can be set as your default, kept private to you, or shared publicly with the team.
An Include Inactive Projects toggle brings closed or inactive projects into the report alongside active jobs — handy for historical analysis, year-end reporting, and reviewing completed work.
An Active Status column labels each row Active (green) or Inactive (red) at a glance, and a matching Active Status filter narrows the grid to just active or just inactive projects — so you can review completed work on its own, or spot an inactive project that should be reactivated before its next rev rec run.
Export the report to Excel with one click. The spreadsheet mirrors the on-screen columns, ready for offline review, surety/bonding packages, or further analysis.
The export includes every page of the report, even when only one page is on screen. On a multi-page report a banner shows the progress (Loading page 2 of 5 for export…, with a percentage) and a Cancel button; once every page is loaded, a single workbook is produced with the Totals (All Pages) row at the bottom. Click Cancel to stop the export, and the report shows Export canceled. The date pickers are unavailable while the export is loading.
The WIP Report offers Accounting Period Start and Accounting Period End filters. They apply to the underlying budget, transaction, and invoice datasets, so you can see the WIP position as of a specific period or period range — exactly what you need for a clean month-end or year-end snapshot.
A credit memo created from a contract invoice with the Credit button always reduces Billed to Date, Unbilled Retentions and Open AR. A credit memo entered directly against the project (no Created From) follows the Enable Standalone Credit Memo Contract and Billings preference: off (the default), the report ignores it; on, it also reduces Current Contract and Projected Contract, so Earned Revenue and (Over)/Under Billing move with it. Turning the preference on changes past as-of dates as well, so plan the switch at a period boundary. See Correcting Invoices with Credit Memos for what qualifies and a worked example.
The WIP Report is available in English and French, following your NetSuite language preference.