Hajik Renaa
← All work

Case 05AutomationPilot

StockPulse

Inventory intelligence for a distributor that only has stock reports

Turns a retailer's periodic stock exports into movement, velocity and reorder signals by diffing consecutive snapshots. No sales history needed.

Client
Electronics distributor
Role
Sole engineer
Year
2026
Stack
FastAPI, pandas, openpyxl, xlrd
StockPulse: product screenshot

01The numbers

19,136SKUs tracked
₹5.16 Crinventory valued at selling price
4analytics tiers that unlock with data
2export formats auto-detected

02The problem

The client's billing software exports stock levels, not sales. Without sales history there's no velocity, no reorder point and no view of dead stock, just two spreadsheets from two different days. One of them is a 119k-row legacy .xls.

03What I built

Each upload becomes a timestamped snapshot, and the difference between consecutive snapshots is the movement: what went out and what came in. The importer detects both export formats and finds the header row by itself.

Analytics unlock as data builds up. One report gives valuation and ABC classes. Two give live movers and anomalies. A week gives trends, and two weeks give velocity, reorder points, XYZ classes and a forecast. The system learns how often the client reports and flags a report as overdue once it's twice as late as usual.

Before trusting any chart I proved what the columns mean. ‘FINAL TOTAL’, for example, is value, not quantity: 1,633 of 3,086 SKUs match exactly.

04Architecture

system sketch
STOCK EXPORT.xlsx / .xlsFORMAT DETECTheader · schemaSNAPSHOTtimestampedDIFF ENGINEin / outTIERS A → Dvalue → forecastEXPORTSExcel · PDFSTOCK EXPORT.xlsx / .xlsFORMAT DETECTheader · schemaSNAPSHOTtimestampedDIFF ENGINEin / outTIERS A → Dvalue → forecastEXPORTSExcel · PDF

05Engineering notes

  • No simulated data anywhere. Every screen runs on the client's own exports.
  • Undo for the latest snapshot, and Excel and PDF exports for the owners.
  • Every chart uses a colour-blind-safe palette.
  • About 34 endpoints over 7 routers, with arithmetic, cadence and dual-format self-tests.

06Stack

FastAPIpandasopenpyxlxlrdSQLAlchemyReportLabReactRecharts

Need something like this? Let’s talk about your version.

Book a free call ↗