What is implemented
A Streamlit page loads data, calculates suggested quantities, shows a replenishment table, lets Tim edit final quantities, exports an order CSV, and stores open-order notes.
It is trying to turn stock, sales, supplier files, and ordering rules into a short list of products Tim can review and order. It is not yet a full inventory system, customer relationship manager, or automatic purchasing system.
The current page is useful but overloaded because it mixes the working tool, technical controls, and future product ideas. This is the clean distinction.
A Streamlit page loads data, calculates suggested quantities, shows a replenishment table, lets Tim edit final quantities, exports an order CSV, and stores open-order notes.
Open the app, check the data, review the short list, change anything that looks wrong, send the order, and tell us what was confusing or inaccurate.
Start with “To order,” hide technical detail, show management signals in “Overview,” and make “Inventory” the place to investigate a product.
These are the current functions, translated into the job they perform for Tim.
Use the data-center API for the MYOB item master, or upload an item export as an override or fallback.
Bring in on-hand, on-order, committed, and available quantities from MYOB stock data.
Use API sales data, a local cache, or uploaded sales files to estimate how quickly each product sells.
Choose lead time, safety stock, and the sales period used to estimate demand.
Compare target stock with current coverage and apply MYOB reorder quantities to produce a suggested quantity.
Call out negative available stock, suspicious inputs, order mismatches, and items that cannot be matched safely.
Filter the replenishment table, inspect a product, and change the final quantity before sending anything.
Download a supplier-ready CSV, optionally save it as an open order, then update received quantity, ETA, status, and notes.
The page is one long workbench. The left sidebar contains setup and data controls. The main area contains the decision table and several technical or follow-up sections below it.
This is a structural map, not a screenshot. The exact counts and rows change with Tim’s data.
The pilot asks Tim to test the proposed order.
The API should load items, stock, and sales. Uploads remain available when a source needs to be overridden.
Look for source errors, missing sales, stale cache information, or an unexpected stock picture.
Use Need Reorder, the flagged inspector, and table filters to focus on products that need a decision.
Check the product, available stock, incoming stock, demand, and suggested quantity. Edit Final qty when needed.
Download the supplier CSV. Save it to the tracker if it represents an order Tim has sent.
Tell us what was right, wrong, missing, slow, or harder than the old process. That feedback shapes the next version.
The expected behavior is not “trust the number.”
It is “use the number as a starting proposal, then tell us whether the facts and the workflow match how Derwent actually buys.”
| What is on the page | What it is for | What Tim should do in the pilot |
|---|---|---|
| Planning inputs in the sidebar | Control lead time, safety stock, and demand assumptions. | Accept the saved defaults unless a real Derwent policy needs changing. Do not treat every control as a required setup step. |
| API status, cache details, and uploads | Make the data source visible and provide a fallback. | Confirm that the data is usable. Upload only when the source needs an override or the API is incomplete. |
| KPI row and flagged warning | Summarize the catalogue and surface possible data problems. | Use “Need reorder” and flags as the entry point. The totals are context, not the work itself. |
| Replenishment table | Put one decision row per product in front of Tim. | Review the short list, inspect why, edit Final qty, and select lines for export. |
| Reconciliation, planner, formulas, diagnostics | Support follow-up, explanation, and troubleshooting. | Use these when a decision needs investigation. They are not supposed to be read top-to-bottom every time. |
When it is time to place the next supplier order, Tim wants to know what to buy and why, so he can send an accurate order quickly without checking several reports by hand.
Turn stock, sales, reorder rules, supplier status, and Tim’s judgment into a short list of proposed buys.
Reduce the fear of missing a product, ordering the wrong quantity, or sending a supplier an order that cannot be explained.
Prevent avoidable stockouts while remembering what has already been ordered and what is still coming.
| Job step | What Tim needs | Current friction |
|---|---|---|
| Start | Know where to begin today. | The page opens with settings, data-source status, uploads, metrics, and the table competing for attention. |
| Prepare | Know whether the numbers are current enough to use. | API, cache, upload, and fallback states are visible, but they read like technical controls rather than a simple “ready to review” answer. |
| Prioritize | See the products that need a decision first. | The full workbench exposes the whole catalogue and many table controls before Tim reaches the short list. |
| Explain | Understand why the quantity was suggested. | The calculation explanation exists, but the rationale is separated from the row Tim is reviewing. |
| Commit | Change the number if business judgment says so, then send it. | Final quantity editing and export are lower in the page and share space with configuration and diagnostics. |
| Follow through | Remember what was ordered and what arrived. | The tracker and supplier reconciliation are present, but they feel like secondary expanders instead of the next part of the same job. |
The redesign is better because it organizes the interface around Tim’s job instead of around the system’s internal capabilities. It keeps the calculations and data sources, but changes what receives attention first.
| Current pattern | Redesign pattern | Why it improves the experience |
|---|---|---|
| One long page with everything exposed | Action-first home: “Your next order” | Tim can orient himself immediately. The first screen answers what needs attention instead of asking him to assemble the answer. |
| Settings look like required setup | Saved defaults with a compact “Planning” control | Reduces cognitive load and prevents Tim from feeling that he must understand every assumption before starting. |
| Full catalogue is the main table | Reorder exceptions first; full products are secondary | Matches the weekly job. Tim works the exceptions rather than scanning thousands of rows. |
| Technical flags such as `CHECK_INPUTS` | Plain-language states: Ready to order, Check before ordering, Covered | Uses language that describes the decision Tim must make, not the internal reason code. |
| Calculation explanation is distant from the row | Each line shows a compact “Why this quantity?” detail | Supports trust at the moment of decision and reduces the need to search the page for an explanation. |
| Export and order tracking are lower sections | To order → prepare → track open orders | Closes the real work loop without turning one decision into several duplicated screens. |
| Technical diagnostics are part of the same visual weight | Progressive disclosure under More / Data details | Preserves transparency for troubleshooting without making every user navigate the machinery. |
A clear first answer—“17 lines ready to order” or “Nothing needs ordering”—replaces the need to interpret the whole page.
Tim can compare available, incoming, demand, and suggested quantity without leaving the decision row.
Experienced users can still open settings and diagnostics, but the normal weekly path stays short.
The redesign is not “make it prettier.” It is “make the next correct action easier to see, while keeping Tim in control of the final order.”
The redesign should keep the current calculation and data integration while changing the first impression and the order of attention.
Open on “To order” or “Nothing needs ordering,” not on a catalogue of controls.
Keep settings, uploads, formulas, mapping, and technical logs available but out of the main path.
Give Tim an Overview for signals and trends, while keeping the buying workflow focused on the next correct action.
Bottom line: the current app is a working pilot instrument. Its job is to generate real buying decisions and learn from Tim’s corrections. The next UI should make that loop obvious without changing the underlying goal.
Effective inventory management balances customer service, money tied up in stock, and ordering discipline. Derwent can show the ordering drivers now. It should wait to show business outcome measures until the underlying events and history are reliable.
| Measure | What it tells Tim | Status | Basis |
|---|---|---|---|
| Products ready to order | How many lines can move straight to quantity review. | Now | Positive suggested quantity with no blocking issue. |
| Products to check | How many lines need a human decision before ordering. | Now | Missing, unusual, negative, unmatched, or conflicting data. |
| Units in this order | The size of the current buying run. | Now | Sum of the editable final order quantities. |
| Stock counted toward target | How much stock can cover demand after commitments and deliveries are counted. | Now | Stock on hand minus committed stock plus incoming stock, counted once. |
| Weeks left | How long the stock counted toward the target may last at the recent sales pace. | Now | Stock counted toward target divided by average units sold per week. |
| Products that may run out soon | Which products may run out before the next delivery. | Now | Derived from stock counted toward target, sales per week, and time before delivery. This is a warning, not a measured stockout rate. |
| Products with extra stock | Which products may have more stock than their current limit. | Now | Requires sales per week and a defined maximum stock horizon. Show as candidates, not confirmed waste. |
| Sales per week | Whether demand is steady, rising, falling, or absent. | Now | Units sold, average per week, last sale date, and monthly history. |
| Orders needing follow-up | What has been ordered, received, or left without a delivery date. | Partly available | Order tracker and supplier files. Not yet a complete supplier record. |
| Data age | Whether Tim can trust the current picture. | Now | Fetch time, sales date range, row counts, and where the data came from. |
| Measure | Why it matters | What is missing |
|---|---|---|
| Orders supplied from stock | Direct service measure: did customers get what was promised from available stock? | Customer orders, delivery outcomes, and approved-stock rules. |
| Stockout rate | Shows how often demand was missed because stock was unavailable. | Lost demand or backorder records. Sales history alone cannot show demand that never happened. |
| How quickly stock sells | Shows how quickly money invested in stock becomes cost of goods sold. | Cost of goods sold, item cost, and historical stock values. |
| Value of extra stock | Shows how much cash may be tied up in stock beyond a sensible limit. | Landed cost, a stock limit, and historical snapshots. |
| Supplier delivery reliability | Shows whether suppliers deliver the right quantity when promised. | Confirmed promise dates, actual receipt dates, and received quantities. |
| Reorder decision quality | Shows whether suggestions and Tim’s overrides lead to better outcomes. | Saved proposals, Tim’s changes, receipts, and later stock or service results. |
Do not show EOQ yet. Economic order quantity needs a credible ordering cost, carrying-cost rate, landed unit cost, and quantity constraints. Those inputs are not complete in the current MYOB-backed model. First measure the current policy and compare it with Tim’s decisions.
Chart placement: a visual sits above the detail it helps the user interpret. Overview puts the product-status bar above its current issues. Inventory puts stock against target above the selected product’s facts. The sales bars stay beside that product’s facts because they explain one order suggestion rather than summarise the whole business.
Customer sales should add context to an inventory decision, not turn the weekly buying page into a CRM. Start inside product detail. Add a separate customer view only when Tim has a recurring follow-up job and the data is trustworthy.
| Metric | What it tells Tim | Status | Needs |
|---|---|---|---|
| Active customers | How many customers bought during the selected period. | Needs customer data | A customer ID that stays the same across imports and a sale date. |
| Days since last order | Which customers may be overdue based on their usual buying pattern. | Needs customer data | Customer ID and separate order dates. |
| Usual order interval | How often a customer normally orders, and whether the gap is changing. | Needs customer data | Customer ID and order or invoice ID so several product lines count as one order. |
| Product demand by customer | Which customers rely on a particular product. | Needs customer data | Customer ID, product code, date, and units. |
| Customer demand at risk | Which customer-product relationships may be affected before the next delivery. | Needs customer data | Customer demand plus stock counted toward target, delivery time, and any customer priority or commitment. |
| Metric | Why it matters | What is missing |
|---|---|---|
| Dependence on large customers | Shows how much of the business depends on the largest customers. | Customer ID plus reliable sales amount; units are a weaker fallback. |
| Average order size | Shows the normal size of a customer order and unusual changes. | Order or invoice ID plus units or sales amount. |
| Sales by customer and product | Shows where revenue comes from and which products support each account. | Customer ID, product code, and line amount. |
| Gross margin by customer and product | Shows which demand is commercially valuable, not just large. | Line amount, item cost, discounts, and returns. |
| Orders supplied from stock | Shows whether important customers received what they ordered. | Customer orders, promised quantities, delivery outcomes, and backorders. |
Important: customer demand is a breakdown of total demand, not extra demand to add to the reorder formula. Use it to prioritise a review, explain a risk, or trigger outreach. Do not count the same units twice.
Data boundary: the current MYOB sales API feed keeps product, date, and units but drops customer, invoice, amount, cost, and transaction identity. The next data-model change should preserve those fields before we display customer KPIs.
The controls below switch the preview. Inside the app, Tim navigates with the left sidebar. Weekly work lives in To order and Open orders. Management review lives in Overview. Investigation lives in Inventory. Sales history and customer demand stay inside product detail, while Settings stays secondary. The counts below are illustrative; the live app will calculate them from current data.
Supplier: Michelin Australia
Review the quantities before you send the order.
Track what suppliers have sent and what has arrived.
See what needs attention across stock, orders, and sales.
Each issue leads to the products or data that need attention.
These measures show whether customer service and money tied up in stock are improving. They need more history than this prototype has.
Find a product and see what to do next.
Manage data connections and planning rules.
1,248 active products. Code, name, supplier, and reorder settings.
Updated 13 Aug 2026Stock on hand, committed stock, and quantities already on order in MYOB.
Fetched 13 Aug 2026Units sold through 31 Jul 2026. Used to estimate sales per week.
Last refreshed 13 Aug 2026Delivery files and confirmed dates are not connected yet.
The order tracker is the current recordDesign test: if Tim can buy from To order, follow the result in Open orders, understand business risk in Overview, investigate any product and its affected customers in Inventory, and check the data when needed, the information architecture is doing its job.