NetSuite as a Platform – Customized Sales Rebate module

NetSuite is a robust cloud-based system that has many amazingly useful features and processes that streamline everything from financial needs to human resource needs. However, it is nearly impossible to predict every single scenario that is out there in the world. Part of this is due to the vast number of companies and the uniqueness of how each company does business.

NetSuite does have a Rebate Management solution available and most companies will probably find the NetSuite solution adequate enough for their business process.

But one of our clients had a very complicated rebate structure.

Business background

Semiconductor chip manufacturers have complex rebate arrangements with their Distributors, ODMs and OEMs. In many cases, these are negotiated well into the quarter and can even apply for shipments already made. Sometimes the rebates are provided to more than one party in the sales cycle. To complicate further, a single order could be eligible for multiple types of rebates.

Many teams are involved in this process including Sales, Sales Operations, Accounts Payable, Accounts Receivable and general accounting team.

Before this automation was performed the client had to maintain all rebates in complex spreadsheets and were also not able to accurately calculate tier rebates, project profitability. Given how the sales operations had full knowledge (through their own stock knowledge and patched spreadsheets) over this process, the finance team were not able to enforce adequate internal control oversight over this process.


They have three main rebate types and two rebate subtypes. The types are Tier Rebate, Masking Rebate, and SP Rebate. Under Tier Rebate, there are the two subtypes, incremental and cumulative. There is a contract with each Customer who receives the rebates based on the quantities shipped. Their process included manually calculating each rebate in an Excel spreadsheet based on a shipping report and the individual customer contract for specific part numbers. At the end of each month, the Sales Team would send the spreadsheets and other supporting documents to the Finance Team. The Finance Team would review the documents and generate a Journal Entry to record the accrued amount in the Accrued Customer Rebates account. Then the Sales Team would receive a request from the Customer for the rebate amount to be either paid out to them or used as a credit against their next order. This request would come in the form of a Vendor Bill that would be validated by the Sales Team and manually entered as a Vendor Bill in the system.

The issues that have come up with the process is that the accrued amount used in the manual Journal Entry would not match a recently run shipping report in NetSuite. The transactions that generated the rebate amount would also not match the Journal Entry amount. The manual process relied on the sales operations team for all the calculations with very little internal control.


After several meetings, we finally had a solution to their problem of tracking the different types of rebates and the accrued amounts. We created custom records, saved searches, workflows, and suitescripts to handle their entire rebate process. There needed to be a formula that would calculate the weighted average and also the ability to move from one tier to another. The following workflow is a high-level overview of the solution and how it fits into their current procedure. The profitability projection was handled using a sales order based tier calculation while the actual accrual was leveraging the shipped/invoiced quantity.

The Sales Team is responsible for Rebate Setup based on their negotiations with Customers. After the Rebate Setup is approved, the rebate will now show on the Sales Orders (based on ODM, OEM, SP combination) and Invoices for the item the rebate is set up for. A separate record tracks the customer rebate and also creates an automated journal entry to accrue the rebate. When a customer submits a claim for the rebate, the Sales Team can submit the claim and based on the preference a Vendor Bill or Credit Memo can be generated. The transaction that is created is dependent on whether or not the Customer wants a check or a credit on their open AR. We also created some scripts to automatically update the rebate amounts on the transactions whenever a change to the rate was made. The Journal Entry that was manually created to track the accrued amount was also automated.


Our Customer is a public company with SOX Compliance and can benefit from automated controls in this process. One of control required approval of the setup so that both sales and finance can review the rate. Another control that was put in place was making sure that only the rebates that they have received a ‘claim for’ was submitted and the correct transaction was created. We then had to ensure that the Vendor Bill or Credit Memos being created followed existing approval workflows. We needed to have it follow the approval workflow due to an existing policy that stated any Vendor Bill or Credit Memo had to be approved by certain people based on a dollar threshold.


For 606 purposes, a projected rate that is calculated annually was used to calculate potential unclaimed rebates. This is also available to be tracked in the solution. Once the Breakage Amount is calculated for the period specified, a “flush” of this amount needs to happen when the customer provides a letter stating that according to their records, there is no rebate amount to be claimed. A Flush Report is run and all of the accrued rebate amounts are totaled, a Journal entry is created, and the Rebate Data is flagged as being “flushed”. These flushed amounts will not show on the report once the Rebate Data is indicated as being “flushed”.


By creating a custom solution, the Sales team is able to provide more accurate amounts to the Finance Team. It allowed for automating the accrual process and eliminated the need to create spreadsheets and manually calculate how much to accrue. In order to track the accrual in NetSuite, they had to create a Journal Entry from an excel file. Another issue was the last minute changes to the rates that resulted in the Sales Order and Invoices showing different amounts when reconciled to the Shipping Report. By putting approvals in place for the Rebate Setup, these manual changes to an excel file are now tracked in NetSuite. Allowing for an audit trail to be created. The customer was able to create a detailed subledger level break up for one of the largest liability account in their balance sheet.


NetSuite is a great ERP but the standard functionality is only half its strength. The system, unlike many ERP, is an extendable tool that allows for seamlessly building add-ons, enhancements, and tools right within the ERP. With its strong suitescript library, extendible objects, NetSuite is well suited to take on any size customizations – from a simple custom fields to a full built add-on module.

NetSuite is complicated – We make it simple

Leverage our knowledge base and decades of experience to maximize NetSuite’s functionality for your business. We know what NetSuite does well and what it doesn’t. Schedule your 1-hour optimization call with our expert NetSuite team today, our gift to you.