Leveraging NetSuite Advanced Revenue Management (ARM) module’s customizations can provide businesses with fully automated, GAAP/IFRS compliant revenue recognition.

NetSuite Advanced Revenue Management module defines event triggers for each type of item – when that item can release revenue to the P&L. Functionally in NetSuite, this is when the “Actual” Revenue Plan, as opposed to the forecast plan, creates revenue due to post. This is set per product, a field on the Item record called “Create Revenue Plans On.”

Most NetSuite Advanced Revenue Management (ARM)  users are familiar with the standard options:

  • Revenue Arrangement Creation:
    • The revenue plan creates with the Arrangement. Usually this effectively means upfront the day of the sales transaction, and is often used for revenue that should recognize straight-line over the contract term.
  • Fulfillment:
    • The revenue plan creates from the Fulfillment record. Usually this is for items that can recognize on shipping for inventory sku’s, the delivery of perpetual licenses, and any product that can recognize revenue upon the fulfillment of a performance obligation.
  • Billing:
    • The revenue plan creates from the Invoice record. The invoice will still impact deferred revenue as the Credit, and a separate revenue plan will post to the P&L. It can just follow when invoiced for when revenue can be released.
  • Project Progress:
    • The revenue plan creates from the percent complete field on a Project record. The revenue will proportionately recognize as the percent complete field on the project increases. This is commonly seen for fixed-price services.

However, use cases arise for companies that don’t neatly fall into one of these 4 categories. For these cases, we can utilize the NetSuite Advanced Revenue Management Module’s Custom Revenue Event Type feature, which requires the use of custom scripts to fully automate the revenue solution.

We’ll look at 2 common use cases in this article:

  • Revenue that should be recognized on delivery, not shipment (commonly seen in the Retail space).
  • Revenue that should be recognized on time entry (common for T&M services that don’t follow a set monthly billing schedule, so we can’t depend on following the invoice as the trigger).

Use Case 1: Delivery

Some retail and commerce companies need to release revenue when the customer receives the product, not when the product is shipped. The fulfillment record may need to be created in NetSuite for shipping notifications or an internal fulfillment process, so we can’t just wait for delivery to create the fulfillment records.

In this case, we can create a custom field on the fulfillment record that can capture if that shipment has been delivered:

NetSuite Advanced Revenue Management Custom Field

The input of that value should trigger the creation of a Revenue Recognition Event. This is the part that requires a custom script. Because the Sales Order is linked to the fulfillment, we can accurately pull the transaction line, which is needed for custom events.

NetSuite Advanced Revenue Management Revenue Rec Event

The creation of this Revenue Event will trigger the creation of the Actual Revenue Plan in NetSuite, referencing how it’s set on the Item:

NetSuite Advanced Recognition Management Actual Revenue Plan


Use Case 2: On Time Entry

Revenue for T&M services should generally be recognized as the work is done – i.e. as time is entered. If that T&M service is billed monthly, then it can just follow the invoicing. However, there are use cases where the contract specifies quarterly billing, but revenue still needs to be accrued as work is performed each month.

For this, we can populate a custom record that captures summarized time in hours and dollar value per project per month. Since the project is linked to a sales order, we can again use a script to trigger the creation of a Revenue Recognition Event based off the creation of this custom record (vs the checking of the Delivered box, in Use Case 1). How this custom record is populated depends on what system time is recorded in. If in NetSuite, then we can generate the record via a saved search. If time is entered in a 3rd party system, the record can be created via integration or CSV import.

This will now allow T&M services to be automatically recognized regardless of the invoicing frequency.

Taking advantage of NetSuite Advanced Revenue Management available customizations can provide businesses with automated, and compliant revenue solutions.

To learn more about how your business can benefit from NetSuite Advanced Revenue Management (ARM) or NetSuite Advanced Revenue Management (ARM) customizations,  PLEASE FEEL FREE TO CONTACT US!

About ABACI:

ABACI is a premier NetSuite Solution Provider that provides deep knowledge in both business process and technology architecture. Our team is passionate about NetSuite and has an exclusive commitment to NetSuite. We pride ourselves on providing the highest level of system expertise on its full suite of cloud-based business management applications.