Work  /  Flagship case study

Deep dive - Inventory

Millions of stock rows, read at a glance every morning.

Supplier inventory feeds change overnight in ways nobody has time to read line by line. This system watches what moved - and surfaces only the changes that matter for stock decisions.

DailyScheduled ingest of supplier feeds
MillionsRows compared in each snapshot
InstantDashboard reads a cached overview
Delta onlySurfaces day-over-day changes

The problem

Inventory truth lived across many supplier feeds, each refreshed on its own schedule and totalling millions of rows. Somewhere in that flood, items went out of stock, came back, moved sharply, or disappeared from a feed entirely - and any of those could quietly cost a sale or strand a listing. Reading the raw files was impossible; loading them naively made a dashboard crawl.

What a buyer actually needs isn't the whole snapshot - it's the difference from yesterday, ranked by consequence. So the system was built to compute that difference reliably at scale, and to make the answer appear instantly rather than recompute on every page load.

The approach

Compare snapshots once, serve the answer instantly.

Heavy comparison happens on a schedule and gets cached; the dashboard only ever reads a small, precomputed overview - so it stays fast no matter how large the underlying data grows.

01

Secure file intake

Daily inventory files from many suppliers are collected on schedule into one place - no manual gathering.

02

pandas ingest

Each feed is melted into tidy per-warehouse rows and normalized into a multi-million-row snapshot store.

03

Snapshot compare

Today's snapshot is diffed against yesterday's to find out-of-stock, back-in-stock, significant moves, and dropped items.

04

Availability rules

Explicit thresholds classify each change by stock risk, so a big drop reads differently from ordinary drift.

05

Overview cache

A compact summary is precomputed and stored, so the dashboard never has to scan millions of rows live.

06

Dashboard & exports

A lightweight dashboard shows visibility at a glance and produces cleaned, marketplace-ready upload files.

Stack: Python - APIs - data processing - SQL database - web dashboard - secure file intake - scheduled jobs.

A concrete example

What a morning's change report looks like.

A representative slice of the day-over-day overview the dashboard surfaces - the same shape a buyer would scan first thing. Everything below is synthetic sample data; no supplier or client information is shown.

Item IDWarehouseQty yesterdayQty todayChangeSignal
ALT-8890West - CA1120-112Out of stock
BRK-1042Central - TX840190-650Significant drop
RAD-5567East - NJ064+64Back in stock
WPR-1120West - CA1,204 - - Dropped from feed
SPK-3301Central - TX2,9003,010+110Steady
BAT-9004East - NJ586-52Significant drop

Only rows that crossed a threshold appear here - the millions of unchanged rows never reach the buyer's screen.

Why it holds up

The choices that keep it fast and honest.

01

Precompute, then serve

The expensive comparison runs once per cycle and is cached, so dashboard response time stays flat as the data grows.

02

Explicit thresholds

What counts as a "significant" move is a stated rule, not a hunch - so signals mean the same thing every day.

03

Dropped items are a signal

Items that vanish from a feed are surfaced, not silently ignored - a missing row is often the most important change.

04

Clean exports downstream

The same pipeline emits marketplace-ready files, so visibility and action come from one source of truth.

Next case study

A pricing pipeline that only ever changes what it's sure about.

How the nightly Pricing Update Pipeline fails safe on cost columns and ships the smallest safe change set.

Read it ->
Let's talk

Want me to walk you through the decisions behind it?

I'm happy to go deeper on the architecture, the rules, or the trade-offs. Grab a time or send a note.

Book a call Back to work