NetSuite Services Blog - Integration, News, Release Notes, & Pro Tips

Migrating Data into Netsuite: Best Practices & Tips for Software Companies

Written by Wiktor Borowiec | Jul 29, 2015 8:13:14 PM

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.

Best Practice for Data Migration of Open Deferred Revenue Schedules:

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.

Straight-line Revenue Recognition Schedule

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.

Variable Revenue Recognition Schedules – Based On % Completion of Projects

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.