If you work or have worked for a software company that offers perpetually-licensed and term-licensed products then revenue recognition and recurring billing concepts for both On-Premise and On-Demand software licenses and entitlements are probably very familiar to you. For those a little less experienced in this field, the perpetual-licensed model is where the customer is provided with full ownership of a given software. These types of products are charged in entirety up-front and usually sold alongside a maintenance contract. Products such as your computer’s operating system would be an example that would fall under this model. The term-licensed model on the other hand is the model where the customer obtains the right to use a given software product for a specific period of time. Support is often sold to the customer as a component of such deals or offered as part of the license itself.
The maintenance of such contracts can get cumbersome for the users that are responsible for managing the life of such deals on a day-to-day basis. Now imagine the scenario if such a company decides to modernize their ERP and Contract Renewal platform(s) and move their business onto one consolidated system such as NetSuite. One of the challenging tasks that will be required during such an implementation will be to migrate all the active deals that the company currently has, which will likely require the data migration of orders that still have remaining deferred revenue balances and loading in unbilled open orders. In this blog post we will dive deep into the details of the deferred revenue piece and outline the best practices to successfully get your implementation up and running.
There are three approaches that we can take to bring in the orders that have outstanding deferred revenue balances. In the case of high transaction volumes, the CSV import tool can be leveraged to create the needed records, which in turn can help us speed up this important data migration process. For term licenses and support revenue that need to be recognized in a straight-line fashion, a Straight-Line Rev Rec template will need to be pre-configured in NetSuite before any import activity can commence. If this revenue needs to recognize based on a percent completion of a project, a Variable Revenue Recognition Schedule will need to be configured first.
Imagine if one of your on-going deals is a 12-month support contract that was originally sold on February 1st 2015 for $24,000. This contract will have an expiration date of February 31st 2016. After 6 months, let’s assume that half of it has been recognized and the remaining $12,000 balance is left as deferred revenue waiting to be amortized. Assuming that your team is ready to transition operations onto NetSuite on August 1st 2015, this outstanding amount will need to be imported into NetSuite. This can be achieved by using either the Cash Sale or Journal Entry record types.
Approach 1: Leveraging the Cash Sale Record Type
Once the Cash Sale has been successfully imported into NetSuite using the CSV Import tool or created manually via the UI, the Cash Sale will have the following attributes set:
ITEM | NAME | AMOUNT | REV REC TEMPLATE | START DATE | END DATE |
---|---|---|---|---|---|
[Item Name] | [Customer Name] | 12,000 | Straight-Line | 8/1/2015 | 2/31/2016 |
To accomplish this, a journal entry needs to be created with the following journal lines:The final step that is required in this approach is to reverse the GL impact of this Invoice. It is recommended to use a clearing bank account to avoid posting to the real bank account and bank reconciliation.
Account | Name | Debit / Credit | Amount |
---|---|---|---|
Deferred Revenue Account | [Customer Name] | Debit | 12,000 |
Bank Clearing Account | Credit | 12,000 |
Approach 2: Leveraging the Journal Entries Record Type
Prior to creating the Journal Entry, a configuration step is required to associate the appropriate Deferred Revenue account on the Revenue account in the Chart of Accounts. Once the Journal Entry has been successfully imported into NetSuite using the CSV Import tool or created manually via the UI, the Journal will have the following attributes set:
Account | Name | Rev Rec Template | Start Date | End Date | Amount | |||
---|---|---|---|---|---|---|---|---|
Debit | Deferred Revenue Account | [Customer Name] | None | None | None | 12,000 | ||
Credit | Revenue Account | [Customer Name] | Straight-Line Template | 8/1/2015 | 2/31/2016 | (12,000) |
The GL impact of the above Journal will be:
Account | Debit | Credit |
---|---|---|
Deferred Revenue Account | 12,000 | |
Deferred Revenue Account | 12,000 |
As you can see, the GL Impact of the above Journal Entry nets out to zero, while a revenue recognition schedule is then created on the credit line for the remaining deferred revenue balance of $12,000. This amount will be amortized in NetSuite going forward.
Imagine if one of your on-going support projects was originally sold for $24,000. Now, assuming that the consultants on this project have already used up 25% of the allotted hours, this would indicate that $6,000 of the service revenue has already been recognized. Based on this detail, $18,000 is left over as deferred revenue balance. Assuming that your team is ready to transition operations onto NetSuite on August 1st 2015, this outstanding amount will need to be imported into NetSuite and this can be achieved by using the Project record.
Approach 3: Leveraging the Project Record Type
The Project will be created in NetSuite with % completion for rev rec defined. To achieve this, the Rev Rec Override Percent Complete field on the Project must be set to 25%. The Project record can either be imported using the CSV Import tool or created manually via the UI.
Once the import of the Project is completed successfully, an additional Journal Entry will need to be created to account for the remaining $18,000 that has yet been recognized. Prior to creating the Journal Entry, a configuration step is required to associate the appropriate Deferred Revenue account on the Revenue account in the Chart of Accounts. This Journal will have the following attributes set:
Account | Account | Name | Rev Rec Template | Start Date | End Date | Amount | |
---|---|---|---|---|---|---|---|
Debit | Deferred Revenue Account | None | None | None | None | 18,000 | |
Debit | Revenue Account | [Project Name] | Straight-Line Template | 8/1/2015 | 8/1/2015 | 6,000 | |
Credit | Revenue Account | [Project Name] | % of Project Completion | None | None | (24,000) |
The GL impact of the above Journal will be:
Account | Debit | Credit |
---|---|---|
Deferred Revenue Account | 18,000 | |
Deferred Revenue Account | 6,000 | |
Deferred Revenue Account | 24,000 |
The above impact removes $18,000 from the overall Deferred Revenue balance, accounts for the $6,000 that has already been recognized and sets up the Revenue schedule for the remaining $18,000 that still needs to be recognized for this Project.
The final step to complete this approach is to run the Revenue Recognition engine to create the two Revenue Recognition Journal Entries from the Revenue Recognition Schedule that are associated, which in turn will bring everything up to date.