Demand assessment · Example Distributor

Udgass 0.4.0 · 2026-10-23 14:26 UTC · Each estimate below used only data available at its date.

Reading of the evidence (advisory)

The evidence supports a pilot: estimates were clearly more accurate than your current forecast, with honest ranges.

Supports a pilot: at least 30 test windows, error at least 5% lower than the comparison, and range coverage within 10 points of target. Marginal: lower error but less than 5%. No improvement: equal or higher error. Fixed before the data was seen.

This is an advisory reading of the evidence. Whether to run a pilot, and any business decision, rests with your company.

1. Your data

16products
2locations
29product-location series
156median weeks of history
8.7%weeks with no sales rows
19series with zero-stock weeks

Complete weeks from 2023-01-02 to the week starting 2025-12-22. Weeks with no sales rows are treated as zero demand.

Files checked

FileRowsRejectedDatesColumns used
sales.csv
sales
2623902023-01-02 to 2025-12-28 (daily)date = Posting Date, sku = Material, quantity = Order Qty, location = Plant, category = Category
inventory.csv
inventory
452402023-01-08 to 2025-12-28 (weekly)date = Snapshot Date, sku = Material, on_hand = Stock On Hand, location = Plant
purchase_orders.csv
purchase orders
382602023-01-06 to 2025-12-26 (weekly)po_number = PO Number, sku = Material, order_date = PO Date, quantity = Ordered Qty, expected_date = Promised Date, received_date = Goods Receipt Date, supplier = Vendor, location = Plant, unit_cost = Unit Price, line_id = Line
events.csv
events
2502023-02-13 to 2025-11-10 (irregular)event_type = Event Type, start_date = Start, end_date = End, sku = Material, location = Plant, description = Notes

No record id is mapped, so rows are added up per product, location and day, and this file is treated as the complete total for each product, location and day it contains. Re-importing a day replaces its total.

2. What this data can answer

QuestionAnswerableWhy
How accurate would demand estimates have been, against simple methods?yessales history is present
Did stock-outs hide demand?yesstock snapshots present
How long do suppliers really take, and is it changing?yes3741 receipts with order and receipt dates
How much stock would meet a service target, and what does a late supplier do to it?yesstock snapshots and lead times present

3. How accurate would estimates have been?

History was replayed at 65 dates. At each date, a 4-week total was estimated from earlier weeks only, then compared with what happened. The first 60% of dates are the earlier half; the rest are the later half, reported first because it was not used to tune anything.

Method (later half)Error (WAPE)Error barBiasInside rangeWindows
Udgass10.1%-0.1%79%242
Average of last 4 weeks11.6%+1.6%no range242
Same week last year15.0%+0.3%no range242
Last week's value18.2%-0.5%no range242

WAPE: total absolute error divided by total actual demand. Bias above zero means estimates were too high. The range is a prediction interval built from each method's own past errors; 'inside range' checks whether it was honest.

By weeks ahead

Week aheadUdgassAverage of last 4 weeks
115.6%16.2%
216.3%16.2%
317.3%17.4%
415.9%17.3%

By demand pattern

PatternWindowsUdgassAverage of last 4 weeks
intermittent6090.2%138.5%
smooth62410.0%11.2%

Smooth: steady weekly demand. Erratic: steady but variable. Intermittent and lumpy: many weeks without demand, where every method struggles and percentages are large.

4. Against your current forecasts

On 660 matched windowsError (WAPE)Bias
Your forecasts12.7%+2.1%
Udgass10.3%-1.1%
Average of last 4 weeks11.6%

Closer to the actual: Udgass in 372 windows, yours in 280. Your forecasts must be the ones actually made at the time (saved snapshots), for the same horizon. Re-created forecasts are not comparable.

5. Where estimates fail

Every series, hardest first. Shown on purpose: these are the products where any forecast needs a person's judgement.

ProductLocationPatternWindowsUdgass4-week averageBiasInside range
M-3001P-BLRintermittent23171.5%172.7%-16.7%65%
M-3002P-BLRintermittent16153.1%150.0%-7.2%69%
M-3003P-BLRintermittent2179.9%135.2%-10.1%90%
M-3005P-PUNsmooth2616.2%16.4%-3.4%81%
M-2004P-PUNsmooth2614.8%17.8%-1.0%69%
M-3005P-BLRsmooth2614.4%13.5%-0.6%77%
M-1004P-PUNsmooth2613.1%12.8%-0.8%69%
M-2002P-BLRsmooth2613.0%16.4%-2.5%73%
M-2006P-BLRsmooth2612.7%12.8%-3.3%81%
M-1002P-PUNsmooth2612.4%13.3%-0.3%77%
M-1003P-BLRsmooth2612.1%12.9%-2.6%73%
M-1003P-PUNsmooth2611.8%12.4%-1.5%73%
M-3004P-PUNsmooth2611.2%14.1%-1.8%77%
M-2003P-BLRsmooth2611.1%12.6%-3.5%65%
M-3004P-BLRsmooth2610.7%11.7%-0.1%77%
M-2004P-BLRsmooth2610.6%14.9%-4.7%85%
M-2001P-BLRsmooth2610.2%10.5%-0.2%65%
M-2003P-PUNsmooth2610.0%9.4%-1.2%73%
M-1001P-BLRsmooth269.7%13.0%-1.0%81%
M-2006P-PUNsmooth269.0%8.8%-0.5%92%
M-2002P-PUNsmooth268.5%11.5%-1.3%85%
M-1004P-BLRsmooth268.3%9.3%+1.4%96%
M-2001P-PUNsmooth268.3%7.7%+1.0%77%
M-1005P-BLRsmooth268.2%8.4%-0.4%85%
M-1002P-BLRsmooth267.9%10.7%-1.8%81%
M-1001P-PUNsmooth267.9%11.1%-0.6%81%
M-1005P-PUNsmooth267.5%8.0%-0.8%77%

2 series had too little history to replay and are not scored.

6. Patterns worth a look

Observations for review, not conclusions. None of them states a cause.

KindWhereObservationPeriod
censored demandM-2001 · P-BLRM-2001: stock recorded at zero in 3 of the last 26 weeks2025-07-07 to 2025-12-28
censored demandM-2002 · P-BLRM-2002: stock recorded at zero in 5 of the last 26 weeks2025-08-18 to 2025-12-28
growth changeM-1003 · P-PUNM-1003: growth vs last year changed from +19% to +53%2024-12-30 to 2025-12-28
demand changeM-2006 · P-BLRM-2006: drop, observed 0 vs expected 1422024-05-06 to 2024-05-19
censored demandM-2001 · P-PUNM-2001: stock recorded at zero in 2 of the last 26 weeks2025-09-15 to 2025-12-28
growth changeM-1004 · P-BLRM-1004: growth vs last year changed from -21% to -50%2024-12-30 to 2025-12-28
demand changeM-2001 · P-PUNM-2001: drop, observed 72 vs expected 1752025-12-01 to 2025-12-14
censored demandM-2006 · P-BLRM-2006: stock recorded at zero in 2 of the last 26 weeks2025-06-30 to 2025-12-28
data gapM-2006 · P-BLRM-2006: 2 consecutive weeks with no sales rows, while stock was not recorded at zero2024-05-06 to 2024-05-19
censored demandM-2003 · P-BLRM-2003: stock recorded at zero in 3 of the last 26 weeks2025-07-14 to 2025-12-28
censored demandM-2003 · P-PUNM-2003: stock recorded at zero in 5 of the last 26 weeks2025-08-04 to 2025-12-28
demand changeM-2001 · P-BLRM-2001: drop, observed 111 vs expected 2362025-10-20 to 2025-10-26
lead time changeallVendor V2: median lead time 28 days in the last 26 weeks vs 16 days in the 52 weeks before2025-06-29 to 2025-12-28
censored demandM-2004 · P-PUNM-2004: stock recorded at zero in 6 of the last 26 weeks2025-08-25 to 2025-12-28
censored demandM-2005 · P-BLRM-2005: stock recorded at zero in 7 of the last 26 weeks2025-08-11 to 2025-12-28

7. Method and limits

Optional: draft summary, only if you choose to allow publication

Relative figures only: no company name, product codes or volumes. Permission to publish is separate from the assessment and entirely optional; the free assessment does not depend on it. Udgass will not publish this, or any part of this report, unless your company gives separate written approval of the exact wording.

Reproducibility

sales.csvabffae6fb0b83bbf76c38d813b9acf130f9f173f163b48b0e681ba4743721aba
inventory.csv6c398b9a17fb0bae71f4d36345fd41f6e16f012fa274887f651ed4f93718f7f3
purchase_orders.csv44cf8a03dc575585739c274090f71fb4d0e0a28aadb9bd208adee26c76caa885
events.csv935d3eae2021ef78dd6e6d6347b775e33a0c16333f7db0b64830cc263d75c099
Dataset fingerprintsha256:4370b81cb5827271be05b296b4b624b8186c6f81f2d5f3b6e915cb461a83eb80
Settings{"horizon_weeks": 4, "step_weeks": 4, "min_train_weeks": 52, "level": 0.8, "by_location": true, "skus": null, "validation_test_split_origin": "2025-04-07"}