Construction

NetSuite configured for companies that build things.

Job costing, progress billing, WIP reporting, subcontractor management, and revenue recognition by estimate at completion. Configured for how construction companies actually run their finances.

We work with general contractors, specialty trades, and project-based companies managing dozens of active jobs through a single NetSuite org.

The Problem

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
  • Custom
    Rev rec by estimate at completion
  • 4hr
    Target month-end construction close
  • Zero
    Spreadsheets required for WIP reporting
What We Configure

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.

Job Costing

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.

Budget vs. actual by cost category. Variance alerts when a category crosses threshold.
Rev Rec

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.

Cost-to-cost input method. Custom SuiteScript. Not a plug-in.
Billing

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.

Retainage release tracking with aging. Holdback reconciliation at job close.
Subcontractors

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.

Committed + incurred cost view by job. No surprises at project close.
Reporting

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.

Saved search based. No manual spreadsheet. Exports clean for your accountant.

“We stopped maintaining the WIP spreadsheet. The saved search does it now. Our month-end close went from five days to one.”

— Controller, Specialty Contractor · 40+ Active Jobs
Revenue Recognition

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.

Cost-to-cost method
% complete = costs incurred ÷ estimated total cost
Monthly recalc
Estimate revisions flow through automatically
Over/under billing
Billings vs. recognized revenue, reconciled by job
Estimate at CompletionCustom Rev Rec
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
Formula
Revenue = Contract Value × (Costs Incurred ÷ Est. Total Cost)
Current Period = Revenue Recognized − Previously Recognized
Budget vs. Actual by CategoryJob #4102
Labour92% of budget
Budget: $420KActual: $385K
Materials104% of budget
Budget: $680KActual: $710K
Equipment91% of budget
Budget: $240KActual: $218K
Subcontractors108% of budget
Budget: $340KActual: $367K
Job Cost Visibility

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.

Client Outcomes

The receipts.

Construction / Job Costing

VCG configured job costing, progress billing, and WIP reporting from scratch. Our controller runs month-end close from NetSuite now, not a side spreadsheet.

IRD
Job-level P&LWIP from saved searchCustom EAC rev rec
Project-Based Services

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.

Electronic Transaction Consultants
Phase-level cost trackingChange order managementRevenue by estimate at completion
How Construction Engagements Work

Start from the job. Work backward into the system.

  1. Job Structure Review
    We 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.
  2. System Design
    Project 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.
  3. Build & Test
    Sprint-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.
  4. First Close
    We 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.
Let’s Talk

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.