Retro report · 1–30 Sep 2026
10 of 11 problems would pass a schema check
Every file in sample_files was compared with that supplier's own history: row counts, typical values, dates, columns and the products it usually sends.
Data OTIF by supplier
Like delivery OTIF, for data: the share of expected files that came on time, in full and correct.
| Supplier | Files expected | On time | In full | Correct | Data OTIF | Status |
|---|---|---|---|---|---|---|
| Hollowmere | 30 | 97%29 of 30 | 93%28 of 30 | 87%26 of 30 | 83% | Needs attention |
| Brightway Prices | 30 | 97%29 of 30 | 97%29 of 30 | 97%29 of 30 | 90% | Watch |
| Larkhaul Dispatch | 30 | 100%30 of 30 | 97%29 of 30 | 93%28 of 30 | 90% | Watch |
Expected:
- Brightway Prices: one file every day by 07:00. Set in velraq_config.json.
- Hollowmere: one file every day by 06:30. Set in velraq_config.json.
- Larkhaul Dispatch: one file every day by 08:30, learned from its usual arrival time (06:25) plus 2 hours.
On time: arrived by the expected time. In full: the usual number of rows, with no usual products, warehouses or columns missing. Correct: no other problem found.
Every file, day by day
1–30 Sep 2026. Hover a square for detail.
What went wrong
In date order, each with what it can break and a note you can send the supplier.
Mark anything that's fine. Marks stay while this page is open. Export them, then run the scan again with --feedback feedback.json: those findings are left out, and where it makes sense the new level becomes normal (a new status value, a new row count).
- 9 SepHollowmere
Yesterday's file, sent again
HighResent fileIdentical, byte for byte, to Hollowmere/stock_20260908.csv.
Can break: Stock and orders look unchanged for a day, and the real changes are lost.
Hollowmere/stock_20260909.csv
Draft note to Hollowmere
Hi Hollowmere team, a quick flag on the file for 9 Sep (Hollowmere/stock_20260909.csv): yesterday's file, sent again. Identical, byte for byte, to Hollowmere/stock_20260908.csv. Could you check and send a corrected file? Thanks.
- 11 SepBrightway Prices
File arrived late
MediumLate fileArrived at 10:42. Expected by 07:00.
Can break: Stock, prices and the morning report run on old numbers until it lands.
Brightway Prices 11-09-2026.xlsx
Draft note to Brightway Prices
Hi Brightway Prices team, the file for 11 Sep (Brightway Prices 11-09-2026.xlsx) reached us late. Arrived at 10:42. Expected by 07:00. Could you check what held it up? Thanks.
- 12 SepLarkhaul Dispatch
Column 'status' looks renamed to 'delivery_status'
HighColumns changed'status' is gone and 'delivery_status' appeared in its place.
Can break: Anything still loading the old column fills it with blanks.
LARKHAUL_DISPATCH_12_09_2026.csv
Draft note to Larkhaul Dispatch
Hi Larkhaul Dispatch team, a quick flag on the file for 12 Sep (LARKHAUL_DISPATCH_12_09_2026.csv): column 'status' looks renamed to 'delivery_status'. 'status' is gone and 'delivery_status' appeared in its place. Could you check and send a corrected file? Thanks.
- 14 SepHollowmere
File never arrived
HighMissing fileNo file for 14 Sep. The last one before it came on 13 Sep.
Can break: Reports run on old data and nobody knows.
Draft note to Hollowmere
Hi Hollowmere team, we didn't receive a file for 14 Sep. Could you check the export ran and send it over? Thanks.
- 16 SepHollowmere
Blank values in qty_on_hand
MediumBlank values39% of rows have no qty_on_hand. Usually 0%.
Can break: Blanks turn into zero stock or missing statuses downstream.
Hollowmere/stock_20260916.csv
Draft note to Hollowmere
Hi Hollowmere team, a quick flag on the file for 16 Sep (Hollowmere/stock_20260916.csv): blank values in qty_on_hand. 39% of rows have no qty_on_hand. Usually 0%. Could you check and send a corrected file? Thanks.
- 18 SepBrightway Prices
Prices in pence, not pounds
HighUnit jumpTypical unit_price is 4,232. Over the last 14 files it was 42.38.
Can break: Prices go out 100 times too high, and margins and totals look wildly wrong.
Brightway Prices 18-09-2026.xlsx
Draft note to Brightway Prices
Hi Brightway Prices team, a quick flag on the file for 18 Sep (Brightway Prices 18-09-2026.xlsx): prices in pence, not pounds. Typical unit_price is 4,232. Over the last 14 files it was 42.38. Could you check and send a corrected file? Thanks.
- 20 SepLarkhaul Dispatch
New value in delivery_status
LowNew valueFirst time seen: HELD_AT_CUSTOMS.
Can break: Rules and dashboards that don't know the new value skip those rows.
LARKHAUL_DISPATCH_20_09_2026.csv
Draft note to Larkhaul Dispatch
Hi Larkhaul Dispatch team, a quick flag on the file for 20 Sep (LARKHAUL_DISPATCH_20_09_2026.csv): new value in delivery_status. First time seen: HELD_AT_CUSTOMS. Could you check and send a corrected file? Thanks.
- 22 SepHollowmere
Half a file that looks complete
HighHalf a file290 rows. This supplier usually sends about 600.
Can break: Products vanish from reports or show as out of stock.
Hollowmere/stock_20260922.csv
Draft note to Hollowmere
Hi Hollowmere team, a quick flag on the file for 22 Sep (Hollowmere/stock_20260922.csv): half a file that looks complete. 290 rows. This supplier usually sends about 600. Could you check and send a corrected file? Thanks.
- 24 SepBrightway Prices
57 products missing from the file
MediumMissing products57 of the usual 400 sku values are missing, for example BW-1001, BW-1008, BW-1015.
Can break: Those products drop out of stock and price reports.
Brightway Prices 24-09-2026.xlsx
Draft note to Brightway Prices
Hi Brightway Prices team, a quick flag on the file for 24 Sep (Brightway Prices 24-09-2026.xlsx): 57 products missing from the file. 57 of the usual 400 sku values are missing, for example BW-1001, BW-1008, BW-1015. Could you check and send a corrected file? Thanks.
- 26 SepHollowmere
Dates didn't move
MediumStale datesThe newest snapshot_date is still 25 Sep, the same as in Hollowmere/stock_20260925.csv.
Can break: Old data shows up as if it were today's.
Hollowmere/stock_20260926.csv
Draft note to Hollowmere
Hi Hollowmere team, a quick flag on the file for 26 Sep (Hollowmere/stock_20260926.csv): dates didn't move. The newest snapshot_date is still 25 Sep, the same as in Hollowmere/stock_20260925.csv. Could you check and send a corrected file? Thanks.
- 27 SepLarkhaul Dispatch
The same rows sent twice
MediumDuplicates72 of 315 rows are exact duplicates (23%).
Can break: Shipments or orders get counted twice.
LARKHAUL_DISPATCH_27_09_2026.csv
Draft note to Larkhaul Dispatch
Hi Larkhaul Dispatch team, a quick flag on the file for 27 Sep (LARKHAUL_DISPATCH_27_09_2026.csv): the same rows sent twice. 72 of 315 rows are exact duplicates (23%). Could you check and send a corrected file? Thanks.
All files checked, and where each date came from
| Supplier | File | Date | Date from | File time | Rows | Result |
|---|---|---|---|---|---|---|
| Brightway Prices | Brightway Prices 01-09-2026.xlsx | 1 Sep | file name (DD-MM-YYYY) | 01 Sep 06:33 | 400 | Clean, still learning |
| Brightway Prices | Brightway Prices 02-09-2026.xlsx | 2 Sep | file name (DD-MM-YYYY) | 02 Sep 06:40 | 400 | Clean, still learning |
| Brightway Prices | Brightway Prices 03-09-2026.xlsx | 3 Sep | file name (DD-MM-YYYY) | 03 Sep 06:34 | 400 | Clean, still learning |
| Brightway Prices | Brightway Prices 04-09-2026.xlsx | 4 Sep | file name (DD-MM-YYYY) | 04 Sep 06:37 | 400 | Clean, still learning |
| Brightway Prices | Brightway Prices 05-09-2026.xlsx | 5 Sep | file name (DD-MM-YYYY) | 05 Sep 06:42 | 400 | Clean, still learning |
| Brightway Prices | Brightway Prices 06-09-2026.xlsx | 6 Sep | file name (DD-MM-YYYY) | 06 Sep 06:16 | 400 | Clean |
| Brightway Prices | Brightway Prices 07-09-2026.xlsx | 7 Sep | file name (DD-MM-YYYY) | 07 Sep 06:37 | 400 | Clean |
| Brightway Prices | Brightway Prices 08-09-2026.xlsx | 8 Sep | file name (DD-MM-YYYY) | 08 Sep 06:45 | 400 | Clean |
| Brightway Prices | Brightway Prices 09-09-2026.xlsx | 9 Sep | file name (DD-MM-YYYY) | 09 Sep 06:16 | 400 | Clean |
| Brightway Prices | Brightway Prices 10-09-2026.xlsx | 10 Sep | file name (DD-MM-YYYY) | 10 Sep 06:33 | 400 | Clean |
| Brightway Prices | Brightway Prices 11-09-2026.xlsx | 11 Sep | file name (DD-MM-YYYY) | 11 Sep 10:42 | 400 | File arrived late |
| Brightway Prices | Brightway Prices 12-09-2026.xlsx | 12 Sep | file name (DD-MM-YYYY) | 12 Sep 06:10 | 400 | Clean |
| Brightway Prices | Brightway Prices 13-09-2026.xlsx | 13 Sep | file name (DD-MM-YYYY) | 13 Sep 06:49 | 400 | Clean |
| Brightway Prices | Brightway Prices 14-09-2026.xlsx | 14 Sep | file name (DD-MM-YYYY) | 14 Sep 06:07 | 400 | Clean |
| Brightway Prices | Brightway Prices 15-09-2026.xlsx | 15 Sep | file name (DD-MM-YYYY) | 15 Sep 06:30 | 400 | Clean |
| Brightway Prices | Brightway Prices 16-09-2026.xlsx | 16 Sep | file name (DD-MM-YYYY) | 16 Sep 06:46 | 400 | Clean |
| Brightway Prices | Brightway Prices 17-09-2026.xlsx | 17 Sep | file name (DD-MM-YYYY) | 17 Sep 06:44 | 400 | Clean |
| Brightway Prices | Brightway Prices 18-09-2026.xlsx | 18 Sep | file name (DD-MM-YYYY) | 18 Sep 06:15 | 400 | Prices in pence, not pounds |
| Brightway Prices | Brightway Prices 19-09-2026.xlsx | 19 Sep | file name (DD-MM-YYYY) | 19 Sep 06:05 | 400 | Clean |
| Brightway Prices | Brightway Prices 20-09-2026.xlsx | 20 Sep | file name (DD-MM-YYYY) | 20 Sep 06:38 | 400 | Clean |
| Brightway Prices | Brightway Prices 21-09-2026.xlsx | 21 Sep | file name (DD-MM-YYYY) | 21 Sep 06:08 | 400 | Clean |
| Brightway Prices | Brightway Prices 22-09-2026.xlsx | 22 Sep | file name (DD-MM-YYYY) | 22 Sep 06:17 | 400 | Clean |
| Brightway Prices | Brightway Prices 23-09-2026.xlsx | 23 Sep | file name (DD-MM-YYYY) | 23 Sep 06:20 | 400 | Clean |
| Brightway Prices | Brightway Prices 24-09-2026.xlsx | 24 Sep | file name (DD-MM-YYYY) | 24 Sep 06:06 | 343 | 57 products missing from the file |
| Brightway Prices | Brightway Prices 25-09-2026.xlsx | 25 Sep | file name (DD-MM-YYYY) | 25 Sep 06:34 | 400 | Clean |
| Brightway Prices | Brightway Prices 26-09-2026.xlsx | 26 Sep | file name (DD-MM-YYYY) | 26 Sep 06:33 | 400 | Clean |
| Brightway Prices | Brightway Prices 27-09-2026.xlsx | 27 Sep | file name (DD-MM-YYYY) | 27 Sep 06:17 | 400 | Clean |
| Brightway Prices | Brightway Prices 28-09-2026.xlsx | 28 Sep | file name (DD-MM-YYYY) | 28 Sep 06:19 | 400 | Clean |
| Brightway Prices | Brightway Prices 29-09-2026.xlsx | 29 Sep | file name (DD-MM-YYYY) | 29 Sep 06:23 | 400 | Clean |
| Brightway Prices | Brightway Prices 30-09-2026.xlsx | 30 Sep | file name (DD-MM-YYYY) | 30 Sep 06:05 | 400 | Clean |
| Hollowmere | Hollowmere/stock_20260901.csv | 1 Sep | file name (YYYYMMDD) | 01 Sep 05:48 | 600 | Clean, still learning |
| Hollowmere | Hollowmere/stock_20260902.csv | 2 Sep | file name (YYYYMMDD) | 02 Sep 06:02 | 600 | Clean, still learning |
| Hollowmere | Hollowmere/stock_20260903.csv | 3 Sep | file name (YYYYMMDD) | 03 Sep 05:47 | 600 | Clean, still learning |
| Hollowmere | Hollowmere/stock_20260904.csv | 4 Sep | file name (YYYYMMDD) | 04 Sep 05:42 | 600 | Clean, still learning |
| Hollowmere | Hollowmere/stock_20260905.csv | 5 Sep | file name (YYYYMMDD) | 05 Sep 06:12 | 600 | Clean, still learning |
| Hollowmere | Hollowmere/stock_20260906.csv | 6 Sep | file name (YYYYMMDD) | 06 Sep 06:12 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260907.csv | 7 Sep | file name (YYYYMMDD) | 07 Sep 06:00 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260908.csv | 8 Sep | file name (YYYYMMDD) | 08 Sep 05:41 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260909.csv | 9 Sep | file name (YYYYMMDD) | 09 Sep 05:52 | 600 | Yesterday's file, sent again |
| Hollowmere | Hollowmere/stock_20260910.csv | 10 Sep | file name (YYYYMMDD) | 10 Sep 05:42 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260911.csv | 11 Sep | file name (YYYYMMDD) | 11 Sep 06:08 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260912.csv | 12 Sep | file name (YYYYMMDD) | 12 Sep 05:50 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260913.csv | 13 Sep | file name (YYYYMMDD) | 13 Sep 06:03 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260915.csv | 15 Sep | file name (YYYYMMDD) | 15 Sep 05:43 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260916.csv | 16 Sep | file name (YYYYMMDD) | 16 Sep 05:55 | 600 | Blank values in qty_on_hand |
| Hollowmere | Hollowmere/stock_20260917.csv | 17 Sep | file name (YYYYMMDD) | 17 Sep 06:06 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260918.csv | 18 Sep | file name (YYYYMMDD) | 18 Sep 06:04 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260919.csv | 19 Sep | file name (YYYYMMDD) | 19 Sep 06:03 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260920.csv | 20 Sep | file name (YYYYMMDD) | 20 Sep 05:46 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260921.csv | 21 Sep | file name (YYYYMMDD) | 21 Sep 05:58 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260922.csv | 22 Sep | file name (YYYYMMDD) | 22 Sep 06:00 | 290 | Half a file that looks complete |
| Hollowmere | Hollowmere/stock_20260923.csv | 23 Sep | file name (YYYYMMDD) | 23 Sep 05:59 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260924.csv | 24 Sep | file name (YYYYMMDD) | 24 Sep 06:01 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260925.csv | 25 Sep | file name (YYYYMMDD) | 25 Sep 05:48 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260926.csv | 26 Sep | file name (YYYYMMDD) | 26 Sep 06:10 | 600 | Dates didn't move |
| Hollowmere | Hollowmere/stock_20260927.csv | 27 Sep | file name (YYYYMMDD) | 27 Sep 05:42 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260928.csv | 28 Sep | file name (YYYYMMDD) | 28 Sep 05:58 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260929.csv | 29 Sep | file name (YYYYMMDD) | 29 Sep 05:59 | 600 | Clean |
| Hollowmere | Hollowmere/stock_20260930.csv | 30 Sep | file name (YYYYMMDD) | 30 Sep 05:54 | 600 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_01_09_2026.csv | 1 Sep | file name (DD_MM_YYYY) | 01 Sep 06:37 | 239 | Clean, still learning |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_02_09_2026.csv | 2 Sep | file name (DD_MM_YYYY) | 02 Sep 06:36 | 239 | Clean, still learning |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_03_09_2026.csv | 3 Sep | file name (DD_MM_YYYY) | 03 Sep 06:24 | 240 | Clean, still learning |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_04_09_2026.csv | 4 Sep | file name (DD_MM_YYYY) | 04 Sep 06:40 | 243 | Clean, still learning |
| Larkhaul Dispatch | LARKHAUL_DISPATCH.csv | 5 Sep | file time | 05 Sep 06:19 | 258 | Clean, still learning |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_06_09_2026.csv | 6 Sep | file name (DD_MM_YYYY) | 06 Sep 06:14 | 245 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_07_09_2026.csv | 7 Sep | file name (DD_MM_YYYY) | 07 Sep 06:39 | 268 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_08_09_2026.csv | 8 Sep | file name (DD_MM_YYYY) | 08 Sep 06:46 | 263 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_09_09_2026.csv | 9 Sep | file name (DD_MM_YYYY) | 09 Sep 06:10 | 238 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_10_09_2026.csv | 10 Sep | file name (DD_MM_YYYY) | 10 Sep 06:40 | 255 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_11_09_2026.csv | 11 Sep | file name (DD_MM_YYYY) | 11 Sep 06:12 | 235 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_12_09_2026.csv | 12 Sep | file name (DD_MM_YYYY) | 12 Sep 06:24 | 246 | Column 'status' looks renamed to 'delivery_status' |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_13_09_2026.csv | 13 Sep | file name (DD_MM_YYYY) | 13 Sep 06:30 | 256 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_14_09_2026.csv | 14 Sep | file name (DD_MM_YYYY) | 14 Sep 06:05 | 262 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_15_09_2026.csv | 15 Sep | file name (DD_MM_YYYY) | 15 Sep 06:03 | 269 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_16_09_2026.csv | 16 Sep | file name (DD_MM_YYYY) | 16 Sep 06:06 | 262 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_17_09_2026.csv | 17 Sep | file name (DD_MM_YYYY) | 17 Sep 06:32 | 242 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_18_09_2026.csv | 18 Sep | file name (DD_MM_YYYY) | 18 Sep 06:15 | 251 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_19_09_2026.csv | 19 Sep | file name (DD_MM_YYYY) | 19 Sep 06:45 | 270 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_20_09_2026.csv | 20 Sep | file name (DD_MM_YYYY) | 20 Sep 06:16 | 260 | New value in delivery_status |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_21_09_2026.csv | 21 Sep | file name (DD_MM_YYYY) | 21 Sep 06:38 | 256 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_22_09_2026.csv | 22 Sep | file name (DD_MM_YYYY) | 22 Sep 06:18 | 234 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_23_09_2026.csv | 23 Sep | file name (DD_MM_YYYY) | 23 Sep 06:11 | 264 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_24_09_2026.csv | 24 Sep | file name (DD_MM_YYYY) | 24 Sep 06:46 | 269 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_25_09_2026.csv | 25 Sep | file name (DD_MM_YYYY) | 25 Sep 06:08 | 232 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_26_09_2026.csv | 26 Sep | file name (DD_MM_YYYY) | 26 Sep 06:30 | 265 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_27_09_2026.csv | 27 Sep | file name (DD_MM_YYYY) | 27 Sep 06:41 | 315 | The same rows sent twice |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_28_09_2026.csv | 28 Sep | file name (DD_MM_YYYY) | 28 Sep 06:39 | 250 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_29_09_2026.csv | 29 Sep | file name (DD_MM_YYYY) | 29 Sep 06:04 | 259 | Clean |
| Larkhaul Dispatch | LARKHAUL_DISPATCH_30_09_2026.csv | 30 Sep | file name (DD_MM_YYYY) | 30 Sep 06:13 | 234 | Clean |