How-to With Woo: Custom Revenue Recognition Events in NetSuite

Recently, a colleague brought up a revenue recognition scenario for a client being implemented by Plative. The client mentioned that their revenue events were not based on a calculation that NetSuite can perform because it is based on external factors, and straight-lining the amounts over time was not appropriate. Essentially, the client was recognizing revenue based on the consumption/usage of a service on which the performance obligation is based. This involves an external event occurring, and at the end of each period, the client reviews the amount of usage and then must recognize that specific amount. This is based on actual usage in arrears, not a predetermined calculation.

In general terms, a customer purchases a service with a finite amount of consumption or monetary budget. Invoicing happens independently of the customer drawing down their consumption. In each period, an external system tracks, monitors, and calculates the amount of consumption used. Using this information, the revenue manager needs to recognize this revenue based on the drawdown.


  • A limited consumption/usage-based item is sold with a $1000 value. This amount was invoiced up-front and the entire amount was booked to deferred revenue.
  • In month one, it was determined that $45 was consumed by the customer by our external system.
  • The revenue manager will then need to reduce deferred revenue and book $45 as revenue earned in the period consumed.
  • In the next period, the amount won’t be known until our external system provides that actual information.

Together, we explored the possibilities of using a custom revenue event that NetSuite provides with the Advanced Revenue Management suite of functionality. This function allows us to create revenue plans outside the standard arrangement creation; billing, fulfillment, and project % complete events. This gives a NetSuite user the flexibility of revenue processing and assigning the amount of revenue to be recognized.

To set up Custom Revenue Events you’ll need to have;

  • Custom Revenue Event Type
  • Revenue Recognition Event

Creating a new Revenue Event Type will update your “Create Revenue Plans On” list for all your sellable items:

*Standard NetSuite list

Provide a name for the event and define whether the event will create a revenue plan per event or have a single plan for all events. By default, this will allow you to feed NetSuite a quantity of usage or a dollar amount of usage. You can indicate if this event will provide a percentage of revenue by selecting “Percent Complete.”

Your list of items will now look like this:

Now the tricky part, NetSuite requires enough information to create a revenue plan for this item when sold. NetSuite does provide a method to add one in the UI, but even NetSuite indicates:

Here at Plative, we have this solution built and ready to deploy to your NetSuite system.

We have a process that consumes the usage information in a flat file. Our application will process the file and create the revenue recognition events to generate these revenue plans for you. Whether the usage information is directly coming from an external system within your tech stack or an Excel file that calculates the amount of revenue, you can then execute all your standard revenue month-end processes without any changes. This solution does not alter the way the Advanced Revenue Management functions; rather, it provides you with another method to trigger revenue plan creation.

If you are interested in using custom revenue events or using our application, get in touch with one of our highly skilled NetSuite Consultants by completing the form below.

Written by

Larry Woo

Principal NetSuite Consultant - Team Lead

Let's Get Started