Learn how creative reporting tools can go beyond NetSuite limitations
What is a “4-4-5” Accounting Period?
First, a brief background: Some companies opt to divide up their quarterly and annual reporting into units that always start and end on the same day of the week. In other words, instead of using standard calendar months as accounting periods, each period consists of a set number of weeks. Typically, the 1st 2 periods of each quarter consist of 4 weeks, and the last period of each quarter is 5 weeks. This allows for better year-over-year comparisons, since each specific period will have the same number of weekdays every year.
NetSuite supports 4-4-5 periods (and any other alternate accounting period setup). For more advice and tools regarding general 4-4-5 periods in NetSuite, please see the following articles on Marty Zigman’s blog:
Effect of 4-4-5 on NetSuite transactions and reports
When an alternate accounting period setup such as 4-4-5 is used, NetSuite transaction date and period defaulting respects the non-calendric start and end dates of the periods, as can be expected. In this respect, FAM is no different, and Depreciation History Records (which are custom records that act as placeholders for past and future depreciation entries) will correspond with the 4-4-5 period end dates, as opposed to calendar month-end dates. Likewise, NetSuite’s reporting tools will reflect posting periods correctly – with one notable exception: FAM Depreciation Reports.
FAM (Fixed Asset Management) Reports
As mentioned, Depreciation History Records respect alternate Accounting Period dates (see image #1). However, the out-of-the-box NetSuite FAM reports that show monthly depreciation uses calendar dates to determine the monthly amounts to present. This results in some months showing zero depreciation, and others showing double depreciation (see image #2). Our client wanted report outputs that mirrored the native NetSuite reports but that had the monthly amounts in the correct columns based on the accounting period dates.
Solution: Prolecto Content Rendering Engine
As part of the Prolecto Team, I am privileged to work with a number of talented software developers who have the right expertise to solve this sort of challenge. In addition to a diverse set of skills, we also have the benefit of many years of collective experience in extending NetSuite beyond its natural constraints, and thus have built up an impressive toolkit which makes it easier to provide quality results to our clients at a faster turnaround. (All of our bundles are free to our clients; contact Marty Zigman to learn more.)
In this particular situation, the best tool to use was the “Content Renderer Engine (“CRE”)” application, which uses SQL Query and SuiteScript 2.0 and can bring together virtually any data points in the NetSuite database into a customizable output. First, I created 2 saved searches: 1) Financial data from the Depreciation History Records, including the date of each record and 2) The Accounting Period start and end dates. I used the saved searches to present a “proof of concept” that the data was “reachable”, and then asked my colleagues Matthew and Elena to help with the scripting to convert the saved searches into the right type of queries and to use the CRE tool to join them together and to create the desired outputs.
See below for the report output with the depreciation amounts lined up correctly (note that the larger depreciation for 2 of the assets in their final month of service is a function of a custom depreciation method with a final month set write-off amount):
Build on existing tools
Initially, the report was designed to be executed with a suitelet that would email the user a link to the report results. However, the client found that the link did not consistently take them to the right place, as it depended on the browser and the user needed to already be logged in. To get around these problems, Matthew leveraged technology used previously and created a custom record that gave visibility to the user to the report processing status, contained links to the reports generated, and captured data to allow easy auditing of when a report was generated and by whom. This is a pattern we have commonly used in the past together with “CRE” to provide helpful context and control around reporting.
Helping to solve this problem was particularly satisfying because the 4-4-5 issue with FAM reports is a known issue (there purportedly is an enhancement request filed for this, but there is no expected resolution date yet), with no obvious workaround, and by using our past experience and existing technology we were able to help our client in a very meaningful way.
If you would like to learn how the CRE Report engine can be used to meet your NetSuite needs, please reach out! We would be happy to help.