Standard NetSuite doesn’t know how contractors make money.
Construction accounting is project-driven. Every dollar of cost hits a job. Revenue depends on percent complete, and percent complete depends on an estimate that changes every month. Billing follows progress, not delivery. Subs need to be tracked as committed costs before they even invoice you.
Out of the box, NetSuite doesn’t handle any of that. We configure it so that it does. Job-level P&L, WIP schedules, progress invoicing, retainage, and a custom rev rec model tied to your estimate at completion.
- Job Costing
- Cost tracking by category
- Budget vs. actual by job
- Change order management
- Committed cost visibility
- Revenue Recognition
- Estimate at completion
- % complete (cost-to-cost)
- Custom rev rec schedules
- Over/under billing analysis
- Billing & Payables
- Progress billing (AIA-style)
- Retainage holdback tracking
- Sub invoice matching
- Holdback release workflow
- Reporting
- WIP schedule
- Job profitability detail
- Backlog report
- Cost-to-complete forecast
- 50+Active jobs managed in a single org
- CustomRev rec by estimate at completion
- 4hrTarget month-end construction close
- ZeroSpreadsheets required for WIP reporting
The full construction accounting stack, inside NetSuite.
We set up NetSuite to match how your project managers, field teams, and accounting department actually work. The system adapts to your operations, not the other way around.
Project-Based Cost Tracking
Every cost hits a job. Labour, materials, equipment rental, subcontractor invoices. We structure the project record, cost categories, and budget lines so your PM can see where money is going without calling accounting.
Revenue by Estimate at Completion
Custom rev rec tied to your estimate at completion. Costs incurred divided by estimated total cost gives you percent complete. That drives revenue recognition. The model updates monthly as the estimate changes. This isn't ARM. It's a purpose-built SuiteScript solution for construction contracts.
Progress Billing & Retainage
AIA-style progress invoicing, retainage holdback tracking, milestone billing, T&M billing for service work. We configure the workflow so your admin can generate a progress bill from the project record in under five minutes.
Sub Management & Committed Costs
Purchase orders to subs, committed cost tracking against job budgets, sub invoice approval workflows, lien waiver tracking. You need to know your total committed exposure on a job before you sign the next PO.
WIP Schedule & Job Profitability
The WIP schedule is the report your lender, surety, and CPA all want. We build it as a saved search with drill-down. Over/under billing by job, cost-to-complete, and projected margin. Updates automatically as costs and estimates change.
“We stopped maintaining the WIP spreadsheet. The saved search does it now. Our month-end close went from five days to one.”
Percent complete driven by your estimate, not a billing schedule.
Construction revenue follows the work, not a straight line. We build a custom rev rec engine in SuiteScript that reads your cost-to-date, compares it to the estimate at completion, and posts the revenue journal entry. Every month, as your PM revises the estimate, the model recalculates automatically.
This isn’t ARM. ARM is built for software and services contracts with performance obligations and SSP allocations. Construction needs a cost-to-cost input method tied to a project-level estimate. Different problem, different solution.
- Contract Value
- $2,400,000
- Costs Incurred to Date
- $840,000
- Est. Total Cost at Completion
- $1,680,000
- % Complete
- 50.0%
- Revenue Recognized
- $1,200,000
- Previously Recognized
- $720,000
- Current Period Revenue
- $480,000
Current Period = Revenue Recognized − Previously Recognized
Your PM shouldn’t need to call accounting to check if a job is on budget.
We structure the project record so budget, committed costs, and actuals all live in the same view. Labour hours from timesheets, material POs, equipment charges, and sub invoices post to the job automatically. When materials come in over budget, your PM sees it that week.
The cost tracking feeds directly into the WIP schedule and the estimate at completion model. One set of numbers. No reconciliation between systems.
The receipts.
“VCG configured job costing, progress billing, and WIP reporting from scratch. Our controller runs month-end close from NetSuite now, not a side spreadsheet.”
“We needed job costing that separated labour categories, tracked expenses by project phase, and gave us a clean profitability report per engagement. VCG built that.”
Start from the job. Work backward into the system.
- Job Structure ReviewWe look at how you run jobs today. Cost breakdown structure, how estimates get built, what the PM tracks versus what accounting needs at month-end. We map the gap between operations and the GL before we open NetSuite.
- System DesignProject record structure, cost categories, billing templates, rev rec model, WIP report layout. Everything designed on paper first. Your controller and PM both sign off on the architecture before we start configuration.
- Build & TestSprint-based configuration. We load real job data, run the rev rec model against your last three months, and compare output to what your accountant calculated manually. If the numbers don't tie, we figure out why before go-live.
- First CloseWe run the first month-end close with your team. Post costs, update estimates, run the rev rec engine, generate the WIP schedule, reconcile over/under billing. We stay through at least one quarter-end, then hand off with full documentation.
Your WIP schedule should come from NetSuite, not a spreadsheet.
Free 30-minute construction assessment. We’ll look at your job costing setup, identify where the gaps are between field operations and accounting, and tell you what it takes to close the books from NetSuite alone.