Frontend:
- Hero section states the product's purpose on the page itself
(never run out / never overstock, 3-step how-to)
- Chart draws its own reading guide: dashed divider with past vs
our-forecast labels rendered via a custom Chart.js plugin, plus a
plain-language how-to-read caption
- Custom +/- steppers replace mismatched native number spinners
- Flat editorial background (gradients and grain removed), numbered
badges redesigned into the hero steps
- Answer card shows the arithmetic visually: sell + cushion - on-shelf
Backend:
- FIFO memoization for /api/action_list (static data per process)
- Migrated deprecated @app.on_event startup to lifespan context manager
- eval/test_api.py: 18 contract tests covering every route - shapes,
quantile ordering, param validation (422s), 404s, cache consistency,
and cross-endpoint agreement between forecast and recommendation
Redesign UI for non-technical users + store-wide action list
- Plain-English, decision-first frontend: big order-N-units answer card with
traffic-light urgency, reason bullets, jargon tucked into a footnote
- New GET /api/action_list/{store}: every product ranked by suggested order
size with order_now/order_soon/ok status - answers what needs ordering
across the whole store today
- Clickable action rows jump the product into the detail view
- Backtest reframed as plain-language comparison tiles
- New visual identity: Fraunces + IBM Plex Mono, warm umber/amber ledger theme