Skip to content
Our work

Retail / Home Improvement

Power BI Inventory & Sales Analytics for Retail

Automated inventory and sales reporting for a retailer running warehouses and an online store, replacing manual ERP exports assembled in spreadsheets with dashboards that refresh every fifteen minutes.

Role
Data architecture, ERP extraction, Power BI development, and handover
  • Power BI
  • NetSuite
  • Automated refresh

The challenge

What the business was running into

  • Inventory reporting was assembled by hand, exporting from the ERP and stitching the result together with other spreadsheets before anyone could look at it
  • Every manual step was a chance to introduce an error nobody would catch until a decision had already been made on it
  • The ERP's API returned a thousand rows per request, which made a full refresh take hours and turned routine reporting into an overnight job
  • The infrastructure carrying the workaround cost real money every month and still could not keep up with a growing catalogue

The approach

Inventory reporting has a familiar failure mode. Someone exports data from the ERP, opens it in a spreadsheet, merges it with two other spreadsheets, and circulates the result. It works, it takes half a day, and every step is a chance to introduce a number nobody can trace later. This retailer, running physical warehouses alongside an online store for construction and furnishing products, was doing exactly that, and the catalogue was growing faster than the process could carry.

The obvious fix is to pull the data through the ERP's API, which is where the project would have stalled. That API returns a thousand rows per request, so a full inventory refresh became an exercise in pagination that took hours and needed its own database server and cloud services to sit behind it. The interesting decision was to stop using it. The ERP can already produce saved searches as files, so the pipeline consumes those instead, which removed both the bottleneck and the infrastructure that existed only to work around it.

What the business got is dashboards covering inventory, sales, and stock status across warehouses and the online store, refreshing every fifteen minutes without anyone pressing a button. Refresh time dropped by more than ninety percent, from hours to minutes. The servers behind the old approach were switched off, taking a recurring annual cost with them. And the manual export step disappeared, which mattered as much as the speed did, because the errors it introduced were the reason people argued about whose number was correct instead of deciding what to order.

Key capabilities

What the system does

  1. ERP extraction that does not fight the API

    Rather than paginating a thousand rows at a time through an API that was never built for bulk reporting, the platform's own saved-search exports feed the pipeline directly. The fastest integration is often the one that stops using the obvious endpoint.

  2. Refresh every fifteen minutes

    Data imports and refreshes on a schedule without anyone pressing a button, so the dashboard a buyer opens at eleven reflects the warehouse at a quarter to.

  3. Inventory, sales, and stock status in one view

    Interactive dashboards covering what is in stock, what is moving, and what is about to run short, across warehouse locations and the online store together rather than as separate reports.

  4. Infrastructure removed, not added

    The database server and cloud services the previous reporting setup relied on were switched off. Reporting projects usually add infrastructure. This one deleted it, and the monthly bill went with it.

  5. No manual assembly step

    Nobody exports anything, opens a spreadsheet, or merges two files before a number is trusted, which removes both the delay and the class of error that came with it.

Outcome

Report refreshes went from hours to minutes, the reporting infrastructure was retired entirely, and inventory decisions now run on data that is fifteen minutes old at worst.

Results

What changed for the business

  • Refreshes in minutes instead of hours

    Report refresh time fell by more than 90%, which turned reporting from something scheduled around into something used during the working day.

  • Thousands saved every year

    Retiring the reporting infrastructure removed a recurring annual cost while making the reporting better rather than worse.

  • Decisions on current stock

    With data no more than fifteen minutes old, buying and allocation decisions are made against what the warehouse holds now rather than against last night's export.

  • Errors removed at the source

    Taking the manual export and spreadsheet merge out of the process removed the transcription mistakes that came with them, and with them the arguments about which version of a number was right.

Work with us

Ready to build something remarkable?