This article is relevant if you are looking for a way to modify NetSuite’s accounting behavior for sales returns and similar situations.
Background
Subject to a different article, a client came to our firm and asked us to help with his inventory trade-in program. The client wanted to offer a way up to produce a credit memo against future sales if a previously sold, used item is returned. Naturally, let’s use the Return Authorization record with its built-in Item Receipt and Credit Memo child constructs to help us achieve the goal.
However, when the client’s accountants reviewed the built-in accounting, they were very disappointed. The credit memo produced a debit to sales and a credit to accounts receivable. They were not at all satisfied with the debit to sales. They needed a solution.
NetSuite’s Debit to Sales GL Impact on Returns
NetSuite’s default behavior for accounting for returns via credit memos is to use the income account specified on the item definition. There is no specific account definition to indicate which account to use for a sales return situation.
Most accountants would rather see returns with the following accounting:
Debit Sales Returns Credit Accounts Receivable
The logic is that we see our true sales independently from our returns work. Note, in 2016, I wrote an article, Automate Allowance Programs using NetSuite SuiteGL, which illustrates how to use allowance accounting to anticipate sales returns (or any other matter, such as warranties or bad debts). In allowance accounting, we also need to get control over NetSuite’s GL Routing and is relevant in this context.
Using SuiteGL to Achieve Desired Accounting
In 2014, NetSuite opened the platform to allow API access to the GL posting algorithm. Under its approach, NetSuite is going to post to the GL what it always does — but SuiteGL allows you to add more GL lines giving you more control over the final accounting.
The challenge is that it requires programming. That’s not fun when you want to do something simple. My firm created a tool called the Prolecto GL Reclasser that has made it very easy to solve most transactional accounting reclass concerns in NetSuite. Like all the intellectual property we have built since 2008, the tool is available to all of our clients without a license charge.
Prolecto GL Reclasser Approach
The Prolecto GL Reclasser uses a technique where an accounting administrator can build a pattern of what transactional accounts it wants to reclass. The pattern is simple:
- Source (From) GL Account: look for the GL account NetSuite is posting to in its normal routine.
- Target (To) GL Account: take the amount from the source and instead move the balance to this GL account.
- Substituted GL Account (optional): if we define this optional GL account, we use it to offset the amounts from the Source account. However, if it is not defined, then use the Source GL account as the offset. This definition allows us to use contra accounting approaches in our reclass work.
Thus, in our work to reclass sales returns, without defining the Substituted account, this is how it may look:
NetSuite’s Accounting (no control here)
Debit Sales Credit Accounts Receivable
Prolecto GL Reclasser Additional Lines
Debit Sales Returns [the Target (To) GL Account] Credit Sales [Source (From) GL Account]
Thus, with this accounting, we wash out NetSuite’s impact on sales. The problem is solved.
However, if we used the Substituted method, the enhancement might have looked like this:
Debit Sales Returns [the Target (To) GL Account] Credit Sales Returns Contra [Substituted GL Account]
Admittedly, this last accounting entry is strange; yet there are many times that we want to leave the Source GL account alone but we want to hit a contra GL account because it informs the situation.
Click on the image to see how we modified both the sales and the cost of goods sold accounting on a stand-alone (non-return authorization originated) credit memo record.
Reference the GL Reclass Definition
You have control over which transaction will receive this enhanced GL treatment. On the target transaction that requires your custom GL routing, simply reference the GL Reclass Definition record. This can be done manually. However, most of our clients ask us to programmatically select the right record depending on the specific anticipated situation. Click on the image to see an example reference.
Note, while NetSuite finally has created a SuiteBundle specifically for Sales Returns that follows a similar technique, its method is narrow to this class of problem. It also only works in OneWorld accounts. The reality is that there are all kinds of situations that demand GL reclassification — hence, we think our model is easier to understand and gives you more control and freedom.
Get the Prolecto GL Reclasser SuiteBundle
We are different from other NetSuite partners. We are very strong in accounting, software architecture, and NetSuite. In the hands of highly competent talent, the NetSuite platform is an expression of liberty and freedom. Our clients tell us that they love that they can finally realize their business goals and excel in their complex business systems endeavors. Designed to jumpstart solutions to NetSuite puzzles, all of our tools are templates that can be refined to fit specific concerns.
If you found this article helpful, feel free to receive notifications of new articles as I post them. Should you desire more control over your NetSuite GL account routing requirements and would like to use the tool, let’s have a conversation.