Software sales commonly include professional services such as consulting, integration, implementation and customization in their deals. Under ASC 606, services that have value as standalone items are considered separate performance obligations. Integration, implementation, and customization have little value without the software in question, so in most cases, these services won’t be a separate performance obligation.
As a result, SAAS companies with a PS component often have to use Fair Value Pricing (FVP) to carve-out or re-allocate revenue between different SAAS and PS components, especially when their products and services are sold in a bundle. This 606 revenue requirement presents several challenges for our clients who use NetSuite for revenue recognition and manage their projects in a solution other than NetSuite PSA.
Today will explore the options available to our clients who use NetSuite Sales Orders to record their software sales and OpenAir to manage and their projects.
Luckily, OpenAir integrates revenue recognition rules and recognition transactions to NetSuite for use in Advanced Revenue Management. The following OpenAir Revenue Recognition Rules are currently supported by NetSuite’s Advanced Revenue Management:
- As Billed
- Fixed Amount on Date or Milestone
- Fixed Amount % Complete
- % Complete
- Incurred vs. Forecast
- Time Project
The first step in sending OpenAir Revenue Recognition Transactions to NetSuite is to configure the OpenAir Advanced Revenue Management plugin in NetSuite. This process must only be completed once and is valid for all Revenue Recognition Rules supported by Advanced Revenue Management.
Next, configure a Revenue Recognition Rule in OpenAir which is supported by Advanced Revenue Management. Set up the mappings for the rule on the Mappings page in NS Connector. Mappings can be configured in either the old or new NS Connector UI.
When you run the standard NetSuite – OpenAir integration, the NetSuite Connector sends instructions for processing your Revenue Recognition Rules to a custom record in NetSuite and creates Revenue Recognition Transactions for each line in the rule. Advanced Revenue Management is triggered in NetSuite and the Connector creates a Revenue Event and a custom record in NetSuite from the Transaction. The custom record says which rule created the Revenue Transaction, and also tells Advanced Revenue Management how to account for the Revenue Event.
Advanced Revenue Management then uses the Revenue Events to create NetSuite Revenue Elements. A Revenue Element is created for each Revenue Recognition Transaction which are then used by Advanced Revenue Management.
The standard NetSuite – OpenAir integration does a great job of setting the foundation for recognizing revenue for projects using NetSuite ARM. At White Glove Consulting Group, we have found that the standard process does not meet the minimum requirements needed by our SAAS clients, specifically when revenue needs to be re-allocated across software and professional services on the same performance obligation. The problem that presents itself is as follows:
- Sofware subscriptions are sold and recorded on the sales order line item (typically these sales orders are integrated from Salesforce.com).
- The sales order creates a revenue element for each line item and a revenue arrangement for the entire sales order. However, this sales order does NOT contain the information needed to recognize revenue for the associated professional services.
- The NetSuite – OpenAir integration creates revenue elements and a revenue arrangement for professional services.
- Because the software and professional services are on two separate revenue arrangements, you are not able to re-allocate the revenue based on FVP.
In order to re-allocate revenue between software and professional services, NetSuite users can use one of the following approaches:
- Manually merge the two revenue arrangements and trigger the re-allocation. This is a fairly easy process, but may not be a viable approach depending on your volume.
- Automate the merge of the revenue arrangements based on pre-defined logic.
- Scripting is required for this approach.
- Full automation will require a very detailed analysis of the business requirements and logic needed to automate this merging. The more complex the requirements, the riskier the implementation.