Step 1 – Identify the contract(s) with a customer
Step 2 – Identify the performance obligations in the contract
Step 3 – Determine the transaction price
Step 4 – Allocate the transaction price to the performance obligations in the contract
Step 5 – Recognize revenue when (or as) the entity satisfies a performance obligation
Let’s look at ERP Considerations for these core principles.
Step 1: Identify Contract(s) with a Customer
A contract between the customer your organization and the customer(s) must be established. ASC does provide some guidance on how such contracts should be managed and when contracts should be treated as an obligation by both parties. From an ERP perspective, the processing of such a contract will typically begin in system via a quotation or Sales Order. Although this seems like common sense, it is important that all contracts are documented properly and within the ERP system it is important to use sales orders or quotations in this case once the contract has been established.
Step 2: Identify Performance Obligations in the Contract
Identification of performance obligations may seem obvious, but there are some considerations for this requirement. For example, an automobile dealer may sale a vehicle with a package price of $50,000. Organizations in the past you may have seen invoices for such a transaction with 1-line item on the invoice. As part of this requirement however, all elements within the contract be listed as separate line items, or line items on the quotation and sales order and ultimately the invoice.
In this vehicle sale for example, the $50k price includes the price of the vehicle, 5-year warranty and a 3-year maintenance. To help manage such bundles or packages sold within your organization, NetSuite ERP allows the creation or Kit’s or Item Groups, which group items that are part of package deal as one item. Check how you can add these line items to your transactions without manual entry in your ERP system.
Step 3: Determine Transaction Price
This may sound obvious, but it is important to understand the considerations of the transaction price has this has a large impact to Step 4.
Step 4: Allocate the Transaction Price to the Performance Obligations
This comes with some complications to the business process. In the prior example of the $50,000 transaction price of the previous example of the car sale, one may realize the invoice will show the prices broken down by line item, versus the $50,000 assigned to a single line item, example:
Vehicle Package:
Vehicle Sport - $35,000 Vehicle Price
5-year Warranty - $10,000
3-Year Maintenance- $5,000
Again, NetSuite offers the ability to group items into Groups or Kits for this purpose which will allow a user to set the default prices by item. The challenge with this in most ERP system is the considerations for discounts or free goods in a contract. Although the contract price may be fixed, as per ASC 606 the revenue associated to the contract must be allocated to the elements within the contract. You may still provide customers with an invoice that shows a $50k contract price, which has the sales price allocated to the Vehicle (Warranty and Maintenance are negotiated as free for the customer) however per the revenue standard, a revenue amount must be carved out of the $50k price to be associated to each item. Why this is required is more apparent in Step 5.
This challenge of carving out revenue can be challenging; however, the NetSuite Advanced Revenue Management bundle can be configured to automatically associate the contract price across all items on a sales order. This is very useful especially when you offer goods or services in a contract for a free sales price.
Step 5 Recognize Revenue when a Performance Obligation is Met
This can be a challenging criteria for many organization and ERP system. By default, revenue for a contract is recognized when the sales invoice is created in the ERP system. Referring to the Vehicle purchase in this article, the $35k vehicle revenue may be recognized immediately upon signing the contract however, the Warranty and Maintenance are items that cannot have revenue recognized immediately due to the terms of the contract. It is required that revenue be recognized as time has elapsed during the contract period (performance obligation, time elapsed on the term). Within your ERP system may have limitations to this process, which may result in users either creating journal entries into reverse out sales within the sales ledger or if deferral accounts are used, the manual journal entries to record revenue on all sales. Without a built-in process to manage revenue recognition, may users are left to manage revenue schedules via spreadsheets outside of the ERP system.
NetSuite offers great flexibility and optimization in with revenue recognition compliance with ASC 606. With Advanced Revenue Management by NetSuite, users can:
If you would like more information on how Advanced Revenue Management by NetSuite can help you contact Concentrus today!