Build 2 · Stock ledger · Elabeh case study

How many units left your warehouse without an order behind them?

Most operators have never run that subtraction. I hadn't either, until I built something that counted. Built for a 5-partner supplements brand selling on TikTok Shop, Shopify and Amazon.

The bottleneck

The stock that funds your TikTok Shop growth never appears as a cost. Samples, content, gifting, the bottles nobody can explain. They leave the warehouse without a sale, and nothing counts them. It shows up later as inventory that quietly isn't there.

The result

118
bottles seeded to creators on one 1,230-bottle batch. Machine-recorded from order data, not estimated
£1,413.64
of stock out the door at landed cost, before a penny of commission or ad spend was counted
22
bottles nobody can attribute to anything at all est. Before the ledger, that number was unknowable
44.6
days of cover left against a 59-day supplier lead time. The reorder date had already passed, and nobody knew

Before → after

Before
After
Sample stock left the warehouse with no cost line anywhere. The spend was invisible.
118 bottles, £1,413.64, recorded automatically from order data.
Draws, gifts and content stock: counted nowhere, by anyone.
53 bottles logged by category (est.), including a 22-bottle residual nobody can name.
Reorder timing was a feeling, checked against nothing.
Run-out forecast and supplier lead time on the same page. It said: already late.
The platform's warehouse count was taken on trust.
Ledger vs platform drift, surfaced daily. Four bottles apart today; three explained.

Straight about the 22: it's a residual from a physical count of the 114-bottle local pool, so it's 19% of that pool but 1.8% of the batch, and it is exactly as reliable as the count. And most of the batch, 1,116 bottles, sits in the platform's own warehouse, where anything leaving without an order is invisible to us and assumed zero. I'd rather name both than have you find them.

That's the whole value of the build in one line. Not hours saved. Decisions made on time instead of late.

Stock split card: where one batch of 1,230 bottles went, broken into sold, free samples, partner draws by category, and what remains in each location. Partner names are redacted.
Where one batch of 1,230 bottles actually went. Partner names redacted; the categories are left visible, because the categories are the point. Captured 2026-07-20.

Work out your own number

You don't need me for this one

Take your last purchase order:

  units received on that PO
    - units sold per your platform reports
    - units physically on hand today
    = units that left without an order behind them

    x your landed unit cost = the number

Then divide your current stock by your daily sales rate, and hold it against how long your supplier actually took last time. Not the quote. The last time.

If either answer surprises you, that's the conversation worth having.

Run-out forecast card: bottles left, sell-through rate per day, days of cover and projected run-out date, split by TikTok warehouse and local stock.
The run-out forecast, live. The dashboard's rolling 30-day window includes samples, so it reads 6.2/day against the sales-only 5.83 in the text, and carries the platform's live count of 213 against the ledger's 209. Every reading is short of the 59-day lead time. Captured 2026-07-20.

What's automated, and what isn't

FeedStatusWhy
Orders, statements, finance Live API, nightly 672 of 672 orders matched the old manual statement to the penny before the switch
Stock draws Hand-entered Deliberate. A bottle leaving a warehouse has no digital source. Automating that is inferring, not recording

And when a feed goes stale, the page says so, rather than quietly serving a wrong number. That's the failure mode that actually costs you.

In their words

“If you’d asked me, I’d have said maybe forty or fifty. And I’m supposed to be the one who knows. I was off by nearly eighty bottles. That’s how far out I was.”

“Ask any TikTok Shop seller how much they’re losing to samples and they’ll lowball it.”

Co-founder, TikTok Shop lead

“I saw it and my first reaction was, how long has this been like this? We’d already blown past the reorder point. Nobody flagged it. I didn’t catch it. It was just something I carried around in my head and hoped I’d remember.”

Co-founder, finance

If you want to go further

See the instrument. I'll show you the live stock page from this business, leak line and all, names redacted and nothing else.

Bring your own number. Run the subtraction, keep your spreadsheet, and if the answer bothers you, we can talk through what's behind it. You don't have to send me anything.