Reporting and financeMake-to-order furniture manufacturer, multi-subsidiary

More than 80 management reports, reconciled to the cent, on Advanced Reports

Leadership gets on-time delivery, quote win rates, inventory turns, freight cost, margins and vendor performance from a set of SuiteQL reports, where every summary drills into detail rows that add back up to it.

The situation

A furniture manufacturer's leadership wanted the numbers that run the business. The list covered on-time delivery, quote win rates, inventory turns, freight cost as a share of sales, margin by model and series, labour absorption and vendor performance. Saved searches could not produce most of them. The few that existed were personal searches that nobody trusted enough to act on.

What we built

We began with the account itself. We studied how orders, fulfilments, work orders, freight and commissions are recorded, and where the data is incomplete. We then wrote 56 summary reports in SuiteQL across ten areas: cases, employees, financials, freight, inventory, KPIs, quoting, sales orders, vendors and work orders. We ran every query against production before delivery.

A second round added 27 detail reports, one for each level of detail instead of one per summary. It also added 70 drill-through links on 54 of the summaries, so a figure opens the rows behind it, filtered to that figure. Later rounds made the monthly reports switchable between month, quarter and year, added an income statement, and added a vendor performance dashboard that combines several reports on one page.

The whole set is an importable file for Advanced Reports, our SuiteQL reporting product for NetSuite.

What it does now

The reports refresh on a schedule inside the customer's own account, and each one is visible only to the audience set for it. Every report carries a stable export key, so importing a revised set updates the existing reports in place. Reports the customer built themselves stay untouched.

Two summaries have no drill-through on purpose. One compares years, so there is no single year to pass through. The other is already one row per record.

Under the hood

  • Each detail report starts from its summary's own SQL, with the same joins, filters, windows and signs, and the grouping removed. We then proved on production that it adds back up to every row of the summary, to the cent.
  • Each drill-through link maps the summary's value to the detail report's filter, with fixed values where a link needs them.
  • Every measure declares its roll-up rule (sum, ratio or none), so quarter and year totals are never averages of averages.
  • Report sets are versioned files, and the import step plans creates and updates before it writes anything.
  • The file does not carry audiences, so an import never widens who can see a report.

Need something like this in your NetSuite?

A 30-minute working session with a senior consultant. Bring the systems you run and the problem in front of you; we will sketch how we would connect them.