Simplifying the Tracking & Management of Royalties in NetSuite

eXtendTech Team
6 min readApr 27, 2022


This article is relevant if you need to easily manage liabilities for royalty payments to your customers and/or third-parties.

A use-case for royalties that we frequently see is when goods being sold are customer-owned items. When an item is customer-owned, it holds no value on the books but requires that the quantities are properly tracked.

In another common royalty use-case, the items being sold are licensed products. Some of the most popular categories of licensed products are:

  • Film, Television & Entertainment Entities
  • Sports, both Professional & Collegiate
  • Colleges & Universities
  • Brands and Well-known Companies
  • Clubs & Organizations
  • Tourist Attractions & Famous Places

Whether the goods are customer-owned or licensed products, tracking and managing these royalty liabilities natively in NetSuite can be quite cumbersome. While some choose to create specific segments within their general ledger to aid in tracking the liabilities, the process of generating credits or payments is often very manual. This manual process puts an undue burden on many finance & accounting teams to manage these arrangements and keep it all straight.

This article outlines a solution that we’ve developed to streamline the tracking and management of royalty liabilities. Our solution also transforms those liabilities to native NetSuite credit memo transactions on a per customer basis.

Configuring the Item Records for Royalties

Our royalty management solution starts by adding a series of custom fields onto the NetSuite item records. While some approaches we’ve seen have set forth royalty details at a customer-level, we’ve found that the greatest flexibility for managing royalties is having these details specified at an item-level. The reason we chose this approach is because a customer may purchase a combination of both royalty & non-royalty items within a single transaction. Furthermore, different items may be subject to different royalty percentages or amounts.

Using this item-based approach means that the items themselves need to be built specifically for certain customers. We find this solution works well for our clients because each of their customers each has their own distinct buying audience and/or group. Case-in-point, a customer who is interested in purchasing Ohio State Buckeyes licensed gear is probably not going to want to buy Michigan Wolverines gear. (Just sayin…)

Item Record Examples

In order to provide you with a clearer picture, below are a couple examples of NetSuite item records that are configured for royalties. The first example is an item that has been configured as customer-owned. An item defined as customer-owned means that the item is billed to a parent customer/entity when these goods are purchased and received into stock. Within the NetSuite, these items are maintained at a zero cost and only the quantities are being tracked. When a customer-owned inventory item is later sold from stock to an end-buyer, 100% of the sale of the product to the would be credited back to the parent customer/entity.

Below is an example of a customer-owned inventory item where you will notice the royalty type, rate, and recipient have all been defined.

Example of customer-owned inventory item setup for royalty

The second example of a royalty arrangement is a licensed product. In this situation, a royalty percent or dollar amount can be applied so that every time this product is sold, the corresponding royalty percent or amount per unit will be calculated.

Example of licensed good setup for royalty.

Calculating Royalties when Invoicing

Using a scheduled map/reduce script, we generate a custom transaction record (aptly named eXtendRoyalty) for each invoice containing royalty items. The script leverages the royalty rate or amount set forth on the item records contained within the sale transaction to perform the calculation. It then creates the custom transaction record to record the liability. The details of this custom transaction includes the customer, the item and its pre-determined GL account for tracking the liability. Below is an example of this custom transaction record which shows the GL impact.

As you can see in the sample transaction above, the GL impact is reducing the revenue/sales GL. This is because the revenue for this item was already realized when the customer was billed at the time of item replenishment. At this time, we need to ensure that we properly reconcile matters by shifting these dollars from this sale to the configured liability account instead. As you can see, those line-level details are also being tracked to both the customer and the item as well.

This royalty transaction that is generated from the native NetSuite invoice or cash sale also holds the transaction reference value as well.

Establishing a Royalty Credit Creation Schedule

As those liabilities accrue in the GL, periodically those monies will need to be swept-out of the liability GL account and credited back to the customer to clear the liability. So the next step in our process is to establish a schedule for each customer’s preferred royalty credit or reimbursement period. Our custom records enable companies to establish their own reporting frequencies: bi-monthly, monthly, quarterly, semi-annually. It also enables them to define a distinct schedule for each of their customers. Below is an example of a Royalty Credit Creation Schedule custom record.

Example of a royalty credit creation schedule.

Once again, we employ a scheduled map/reduce script to handle the heavy lifting involved. The script will evaluate the Royalty Credit Creation schedule and the eXtendRoyalty custom transaction records that fall within the specified period. The result is the generation of a native NetSuite credit memo that summarizes all of the royalty credits for the customer’s specified time period. The resultant GL impact reduces the liability and reduces the accounts receivable balance as well. Below is an example of the resultant customer-facing credit memo document. These credit memos can also be automatically emailed upon creation to the customer(s).

Sample of a credit memo generated from royalty liability transactions.

The (Net)Suite Summary

While NetSuite is frequently recognized as a leading ERP platform, it is also a powerful development platform as well. In my opinion, it does not get nearly enough credit in that regard. While NetSuite provides many great features and functionality out-of-the-box, being able to easily design & implement solutions to address gaps such as the one highlighted in this article is the reason why I believe so strongly in this platform.

So if you are struggling with a similar challenge in managing customer royalties and feel like we can help you with our solution, let’s have a conversation.



eXtendTech Team

eXtendTech is a NetSuite solution partner that develops applications to improve efficiency, productivity, and savings within the NetSuite platform.