Case study 03 — SellWise
Forecasts and customer intelligence for small online shops.
A business-intelligence dashboard with three ML modules — sales forecasting, customer segmentation and churn prediction — served from an independent Python microservice.
- Status
- Live
- Year
- 2026
- Context
- Independent product
Anatomy
- Deterministic code
- Model output
- Guardrail
- Data
- 01 · DataOrders, customers, stockPostgreSQL · CSV import
- 02 · CodeNode.js REST APIOrders, inventory, invoices, reports
- 03 · ModelDemand forecastProphet · 7 / 14 / 30 days
- 04 · ModelSegments & churnRFM · logistic regression
- 05 · In / outDashboardForecasts, customer risk, stock alerts
The problem
Small online sellers keep their sales history in a spreadsheet or a basic shop backend, but have no way to answer the questions that decide cash flow: what will sell next month, which customers are slipping away, and what to reorder now.
What was built
- 01An operations app for the day-to-day: products, orders, quick sell, invoices, expenses, CSV import and reports.
- 02Demand forecasting with Facebook Prophet over 7, 14 and 30-day windows, alongside reorder suggestions and inventory alerts.
- 03RFM-based customer segmentation and churn prediction with logistic regression.
- 04The ML layer as an independent FastAPI microservice, called from the Node.js API and backed by the same PostgreSQL database.
Key decisions
ML as its own service.
Python where the ML ecosystem is, Node.js where the product logic is. Models can be retrained or replaced without touching the app's API.
Models a shop owner can trust.
Prophet, RFM and logistic regression are explainable and work on the small datasets small shops actually have. No deep model where a simple one is enough.
Stack
- React
- Node.js
- Express
- PostgreSQL
- FastAPI
- Prophet
- Logistic regression
Have a workflow that should run itself?
Tell me what it is, what data it touches and what “done” looks like. You'll get a straight answer on whether AI is the right tool — and what it would take.
Free 30-minute intro call. Replies within 24h.