DERWENT / PRODUCT STUDY
14 Aug 2026
Tim’s dashboard — current state

The app is a buying workbench.

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.

Implemented now: replenishment recommendationsAPI + uploadsPilot: Tim reviews and gives feedbackHuman approval stays in the loop
Three things to keep separate

Live app, intended pilot, future redesign

The current page is useful but overloaded because it mixes the working tool, technical controls, and future product ideas. This is the clean distinction.

LIVE NOW

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.

INTENDED PILOT USE

What Tim is expected to do

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.

NOT LIVE YET

What the redesign should do

Start with “To order,” hide technical detail, show management signals in “Overview,” and make “Inventory” the place to investigate a product.

Current function set

What the app can do today

These are the current functions, translated into the job they perform for Tim.

01 / DATA

Load the product list

Use the data-center API for the MYOB item master, or upload an item export as an override or fallback.

02 / DATA

Load current stock

Bring in on-hand, on-order, committed, and available quantities from MYOB stock data.

03 / DATA

Load sales history

Use API sales data, a local cache, or uploaded sales files to estimate how quickly each product sells.

04 / SETTINGS

Set the planning rules

Choose lead time, safety stock, and the sales period used to estimate demand.

05 / DECISION

Suggest what to buy

Compare target stock with current coverage and apply MYOB reorder quantities to produce a suggested quantity.

06 / TRUST

Flag problems

Call out negative available stock, suspicious inputs, order mismatches, and items that cannot be matched safely.

07 / ACTION

Review and edit

Filter the replenishment table, inspect a product, and change the final quantity before sending anything.

08 / FOLLOW-THROUGH

Export and track

Download a supplier-ready CSV, optionally save it as an open order, then update received quantity, ETA, status, and notes.

The current UI

What Tim sees today

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.

Intended pilot workflow

How we expect Tim to use it now

The pilot asks Tim to test the proposed order.

01OPEN

Load the dashboard

The API should load items, stock, and sales. Uploads remain available when a source needs to be overridden.

02CHECK

Confirm the data

Look for source errors, missing sales, stale cache information, or an unexpected stock picture.

03FOCUS

Find the buy list

Use Need Reorder, the flagged inspector, and table filters to focus on products that need a decision.

04REVIEW

Use judgment

Check the product, available stock, incoming stock, demand, and suggested quantity. Edit Final qty when needed.

05SEND

Export the order

Download the supplier CSV. Save it to the tracker if it represents an order Tim has sent.

06REPORT

Give feedback

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.”

Feedback we need

What Tim’s use should teach us

Current UI versus intended use

Why the current page feels overwhelming

What is on the pageWhat it is forWhat Tim should do in the pilot
Planning inputs in the sidebarControl 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 uploadsMake 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 warningSummarize 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 tablePut 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, diagnosticsSupport follow-up, explanation, and troubleshooting.Use these when a decision needs investigation. They are not supposed to be read top-to-bottom every time.
JTBD analysis

What job is Tim hiring this app to do?

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.

FUNCTIONAL JOB

Make the buying decision

Turn stock, sales, reorder rules, supplier status, and Tim’s judgment into a short list of proposed buys.

EMOTIONAL JOB

Feel safe enough to send

Reduce the fear of missing a product, ordering the wrong quantity, or sending a supplier an order that cannot be explained.

OPERATIONAL JOB

Keep the business moving

Prevent avoidable stockouts while remembering what has already been ordered and what is still coming.

The job sequence and its current friction

Job stepWhat Tim needsCurrent friction
StartKnow where to begin today.The page opens with settings, data-source status, uploads, metrics, and the table competing for attention.
PrepareKnow 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.
PrioritizeSee the products that need a decision first.The full workbench exposes the whole catalogue and many table controls before Tim reaches the short list.
ExplainUnderstand why the quantity was suggested.The calculation explanation exists, but the rationale is separated from the row Tim is reviewing.
CommitChange 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 throughRemember 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.
UI / UX redesign case

Why the redesign is better

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 patternRedesign patternWhy it improves the experience
One long page with everything exposedAction-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 setupSaved defaults with a compact “Planning” controlReduces cognitive load and prevents Tim from feeling that he must understand every assumption before starting.
Full catalogue is the main tableReorder exceptions first; full products are secondaryMatches 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, CoveredUses language that describes the decision Tim must make, not the internal reason code.
Calculation explanation is distant from the rowEach line shows a compact “Why this quantity?” detailSupports trust at the moment of decision and reduces the need to search the page for an explanation.
Export and order tracking are lower sectionsTo order → prepare → track open ordersCloses the real work loop without turning one decision into several duplicated screens.
Technical diagnostics are part of the same visual weightProgressive disclosure under More / Data detailsPreserves transparency for troubleshooting without making every user navigate the machinery.
LESS COGNITIVE LOAD

Orient in seconds

A clear first answer—“17 lines ready to order” or “Nothing needs ordering”—replaces the need to interpret the whole page.

MORE TRUST

See the reason beside the action

Tim can compare available, incoming, demand, and suggested quantity without leaving the decision row.

FASTER REPEAT USE

Keep expertise, hide machinery

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 target

What should change next

The redesign should keep the current calculation and data integration while changing the first impression and the order of attention.

Start with the decision

Open on “To order” or “Nothing needs ordering,” not on a catalogue of controls.

Use progressive disclosure

Keep settings, uploads, formulas, mapping, and technical logs available but out of the main path.

Keep management close

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.

Metric framework

What we can measure now

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.

MeasureWhat it tells TimStatusBasis
Products ready to orderHow many lines can move straight to quantity review.NowPositive suggested quantity with no blocking issue.
Products to checkHow many lines need a human decision before ordering.NowMissing, unusual, negative, unmatched, or conflicting data.
Units in this orderThe size of the current buying run.NowSum of the editable final order quantities.
Stock counted toward targetHow much stock can cover demand after commitments and deliveries are counted.NowStock on hand minus committed stock plus incoming stock, counted once.
Weeks leftHow long the stock counted toward the target may last at the recent sales pace.NowStock counted toward target divided by average units sold per week.
Products that may run out soonWhich products may run out before the next delivery.NowDerived from stock counted toward target, sales per week, and time before delivery. This is a warning, not a measured stockout rate.
Products with extra stockWhich products may have more stock than their current limit.NowRequires sales per week and a defined maximum stock horizon. Show as candidates, not confirmed waste.
Sales per weekWhether demand is steady, rising, falling, or absent.NowUnits sold, average per week, last sale date, and monthly history.
Orders needing follow-upWhat has been ordered, received, or left without a delivery date.Partly availableOrder tracker and supplier files. Not yet a complete supplier record.
Data ageWhether Tim can trust the current picture.NowFetch time, sales date range, row counts, and where the data came from.
MeasureWhy it mattersWhat is missing
Orders supplied from stockDirect service measure: did customers get what was promised from available stock?Customer orders, delivery outcomes, and approved-stock rules.
Stockout rateShows 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 sellsShows how quickly money invested in stock becomes cost of goods sold.Cost of goods sold, item cost, and historical stock values.
Value of extra stockShows how much cash may be tied up in stock beyond a sensible limit.Landed cost, a stock limit, and historical snapshots.
Supplier delivery reliabilityShows whether suppliers deliver the right quantity when promised.Confirmed promise dates, actual receipt dates, and received quantities.
Reorder decision qualityShows 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 demand layer

Use customer data to protect demand

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.

MetricWhat it tells TimStatusNeeds
Active customersHow many customers bought during the selected period.Needs customer dataA customer ID that stays the same across imports and a sale date.
Days since last orderWhich customers may be overdue based on their usual buying pattern.Needs customer dataCustomer ID and separate order dates.
Usual order intervalHow often a customer normally orders, and whether the gap is changing.Needs customer dataCustomer ID and order or invoice ID so several product lines count as one order.
Product demand by customerWhich customers rely on a particular product.Needs customer dataCustomer ID, product code, date, and units.
Customer demand at riskWhich customer-product relationships may be affected before the next delivery.Needs customer dataCustomer demand plus stock counted toward target, delivery time, and any customer priority or commitment.
MetricWhy it mattersWhat is missing
Dependence on large customersShows how much of the business depends on the largest customers.Customer ID plus reliable sales amount; units are a weaker fallback.
Average order sizeShows the normal size of a customer order and unusual changes.Order or invoice ID plus units or sales amount.
Sales by customer and productShows where revenue comes from and which products support each account.Customer ID, product code, and line amount.
Gross margin by customer and productShows which demand is commercially valuable, not just large.Line amount, item cost, discounts, and returns.
Orders supplied from stockShows 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.

High-fidelity target prototype

Four work destinations, one inventory loop

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.

Buying
MYOB connectedT
Data is up to dateStock updated 13 Aug 2026Sales through 31 Jul 2026

To order

Supplier: Michelin Australia
Review the quantities before you send the order.

17 products ready to order7 need a check312 units in this order
Ready to order 17Check before ordering 7All active products
Search product or code
ProductAvailable nowComing inWeeks leftSuggested orderOrder quantityStatus
205/55R16Michelin Primacy 4722.0 wks88Ready to order
Why suggest 8?

Stock target of 17 minus 9 units counted toward that target leaves 8 units to order. Coming-in stock is counted once.

Sales per week2.8 units
Stock target17 units
Stock counted9 units
175/65R15Michelin Energy Saver401.2 wks1212Ready to order
Why suggest 12?

Only 4 units count toward a 16-unit stock target, so the app suggests 12 units to order.

Sales per week3.1 units
Stock target16 units
Stock counted4 units
225/45R17Michelin Pilot Sport—————Check before ordering
Why review?

Sales history is missing, so the app cannot work out a safe order quantity.

Sales basisMissing
Stock targetNot calculated
Order quantityNot set
Products with enough stock are hidden. Choose All active products to see them.
17 products selected312 units in this order
To order: each row is one product decision. Prepare order creates the supplier order file from this same page.
Design decision:the dashboard has four primary work destinations plus Settings. To order and Open orders support weekly work. Overview supports management review. Inventory supports investigation. Sales history and customer context stay inside Inventory detail, and Settings stays secondary. A separate Customers page waits until customer follow-up is a validated recurring job.

Design 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.