Your ERP isn’t slow. It’s carrying years of customizations.
“NetSuite is slow” is one of the most common complaints we hear, and it’s almost never NetSuite. It’s everything that has been bolted onto the sales order and customer records over the years, all of it running every time someone clicks Save.
Where the time goes
Every customization on a record runs on every save. A script added five years ago to set a field, an integration that writes back to the order, a validation someone needed once, a vendor bundle installed for a feature you stopped using — each costs a fraction of a second, and none is a problem alone. Together, on the records people touch hundreds of times a day, they add up to the wait your customer service team complains about.
When we reviewed one company’s sales order, it had more than fifty server-side scripts and several client scripts deployed on it. Saves averaged over twenty seconds, and the slowest saves approached a minute. Opening a new order took several seconds before anyone could type, because client scripts loaded first.
What it costs
Do the arithmetic for your own team: orders and customer edits per day, times seconds per save, times people. Twenty seconds on every save, a few hundred saves a day, is hours of paid time every week spent watching a spinner — plus the errors that come from people re-clicking, opening a second tab, or giving up and finishing later.
Every customization is cheap on the day it’s added. The bill arrives years later, one save at a time.
What a performance review looks at
- Inventory. Every script, workflow and bundle that fires on the slow records, who owns it, and whether anyone still needs it.
- Measurement. Actual save and load times from the platform’s own performance tools, not impressions — the median and the slowest five percent.
- Logging. How much each script writes to the execution log. Scripts left at debug level can write a million log rows a week, and every row is time on the save.
- Errors. Scripts failing thousands of times a week, quietly, on every save.
- Dead weight. Vendor features installed and forgotten, still running on every order.
What we did
- Moved every non-essential script on the sales order, quote, customer and contact records to error-only logging — dozens of deployments in one pass, verified afterwards.
- Removed scripts for features the business confirmed it no longer used, after checking that nothing — saved searches, other scripts, the code repository — referenced them.
- Investigated a script throwing tens of thousands of errors a week before touching it. Half of it was broken; the other half did real work a payment process depended on. Removing it would have broken payments. We fixed the broken half instead.
- Set a baseline so the next complaint can be measured against something.
The longer-term fix
For the highest-volume entry, the bigger win is often a purpose-built entry screen that collects the order quickly and saves once, letting the platform’s own engine handle tax, pricing and downstream automation. We’ve built those for order entry, picking and receiving; one example is here. But that comes after the cleanup, not instead of it.
The technical details — how to count what’s deployed, find the noisiest scripts and change log levels safely — are in the companion piece.
Related: finding the scripts that slow every save, and SuiteScript 2.1 before the deadline.