Help Center
Home
Get started
FullClarity
Home
Get started
FullClarity
  • Get started
  • Construction for NetSuite
  • Project Financials
    • Project Financials quick start
    • Install & configure Project Financials
    • How to

      • Preparing your data for migration
      • Creating a project
      • Customise terminology (rename records)
        • Estimate columns
        • Budget columns
        • Forecast columns
        • Revenue recognition columns
      • Managing cost centres
      • Estimating

        • Creating an estimate
        • Adding lines to an estimate
        • Importing an estimate from a spreadsheet
        • Requesting vendor bids
        • Creating purchase orders from the estimate
    • Contracts & billing

      • Contracts & billing
      • Set up billing schedules
      • Issue a progress claim
      • Create a variation
    • Revenue recognition

      • Revenue recognition
      • Set up revrec rules
      • Run a monthly batch
      • Adjust a revrec entry
      • Capital project revrec
    • Reference

      • Reference
      • Configuration record fields
      • Permissions
      • Custom records
      • Column glossary
  • Subcontracts
    • For head contractors

      • For head contractors
      • Create a subcontract
      • Approve a subcontract variation
      • Raise a back-charge
      • Assess a subcontractor claim
    • For subcontractors — web

      • For subcontractors — web
      • View your subcontracts
      • Submit a progress claim
      • Manage variations
    • For subcontractors — mobile

      • For subcontractors — mobile
      • Sign in
      • View your work orders
      • Submit a claim with photos
    • Reference

      • Subcontract states
  • Retainage
    • Quick start
    • Install & configure
    • How to

      • Set up retainage on a contract
      • Issue a retainage claim
      • Release retainage at handover
    • Reference

      • Permissions
  • Timeline
    • Quick start
    • Install & configure
    • How to

      • Create a Gantt from a template
      • Add tasks and dependencies
      • Allocate resources
    • Reference

      • Task fields reference
      • Permissions reference
  • Certified Documents
    • Quick start
    • Install & configure
    • How to

      • Set up a document type
      • Request a document from a vendor
      • Approve or reject a submission
    • Reference

      • Permissions reference
  • File Storage
    • Install & configure
    • How to

      • Enable File Storage on a record type
      • Migrate files from the NetSuite File Cabinet
      • Connect your Microsoft 365 / SharePoint
    • Reference

      • Permissions reference
  • Project Storage
    • Install & configure
    • How to

      • Enable the project files subtab
      • Browse files on a project
  • Project Tracker
    • Quick start
    • Install & configure
    • How to

      • Log an issue
      • Add notes to an issue
      • Run UAT
    • Reference

      • Issue fields
      • UAT results & issue states
      • Permissions
  • Portal
    • Install & configure
    • How to

      • Register a NetSuite account with the FullClarity Portal
      • Refresh API credentials
  • Code Library
    • Install & configure
  • AI Integration
    • How to

      • Set up an MCP role for AI access
      • Connect an AI assistant to FullClarity
    • Reference

      • Available MCP tools

Revenue recognition

Project Financials includes a configurable month-end revenue recognition process built for project-based businesses. It calculates how much revenue (and how much cost) to recognise on each project at period-end, posts a single recognition transaction, and reclassifies the underlying invoices and bills to deferred GL accounts until they're covered by a recognition entry.

  • What this covers
  • How it fits together
  • In this section
  • Requires

What this covers

Revenue recognition turns the raw flow of customer invoices and vendor bills into accurate, period-aligned revenue and cost-of-sales numbers in your GL. Without it, project businesses end up booking revenue when invoices happen to be raised — which rarely matches the work actually performed.

Project Financials uses a percentage-of-completion model. The recognised amount for each project in a period is driven by your choice of basis:

  • Cost-incurred basis — recognise revenue in proportion to cost incurred against the budget cost. The standard cost-to-cost approach: each period's recognition is the calculated % complete amount minus what's already been recognised.
  • Billing-driven basis — recognise revenue against billings. Each period's recognition is the calculated % complete amount minus what's already been billed. Useful as a catch-up method to true-up against actual billings.

Pick one basis per project. Most commercial-construction clients run on the cost-incurred basis.

How it fits together

  1. Throughout the month, normal NetSuite invoices and bills post to standard AR / COGS accounts.
  2. A pair of custom GL plug-ins reclassifies those postings to deferred-revenue and deferred-expense accounts for projects flagged for revenue recognition.
  3. At month-end you run the revrec batch — it calculates each project's recognised revenue and recognised cost and posts a Revenue Recognition transaction that clears the deferred amount and books it to actual revenue / cost of sales.
  4. The deferred GL accounts always net to "work invoiced or billed but not yet recognised."

Capital projects (build-to-hold) use a separate Capitalisation flow rather than revenue recognition. See Capital project revrec.

In this section

  • Set up revrec rules — turn on revrec for a project, pick the basis, set the deferred accounts
  • Run a monthly batch — the end-of-month workflow
  • Adjust a revrec entry — override a calculated line before posting
  • Capital project revrec — capitalisation for build-to-hold projects

Requires

  • Project Financials installed and configured — see Install & configure
  • Deferred revenue and deferred expense GL accounts set up in your NetSuite chart of accounts
  • Subsidiaries configured with a Configuration record — see Configuration record fields
Last Updated: 6/7/26, 1:58 AM
Next
Set up revrec rules