Oxbridge Global Stock Room · directors & traders
Sales team guide →
← Back to The Stock Room
STOCK ROOM
Directors & traders edition  · 

Ask a question

Type it the way you'd say it — e.g. “how do I send an offer to WhatsApp?”. Answers come only from this guide, so nothing gets made up.
1What this edition coversand who sees what

This is the directors & traders edition. It assumes you already know the trade and covers the things the sales team doesn't see: the money columns, the nightly automation, the daily run report, and what to do when something doesn't fire.

The sales team has their own guide covering the day-to-day — finding free stock, reserving it, building and sending offers. You can read it any time via Sales team guide at the top; they cannot see this one.

Who sees what

RoleSees
director / adminEverything: cost, margin, supplier, PO, both companies, this guide.
traderThe full stock picture and this guide.
salesThe selling view. Cost, supplier and PO detail are stripped server-side before the data leaves us — not merely hidden on screen.
Check what a salesperson actually sees: use the View as dropdown on the stock page. It reloads the page as that role. It's a preview tool, not the security boundary — the real filtering happens on the server. Close the tab to return to full view.
2The daily email — how to read itone email, three jobs

Every evening the portal does three jobs on its own and reports back in one email (it used to be three — too much to read, so nobody read it):

  • SOH lists (6pm) — the customer stock-on-hand list, one workbook per company, uploaded to Dropbox.
  • Due In lists (6pm) — the same for incoming stock, into that week's STOCK DUE IN folder.
  • Offer sync (7pm) — every active offer group is rebuilt with live quantities and today's date, so the file you send is never stale.

The subject line tells you if you need to do anything

Subject startsMeaning
✅ all goodAll three ran cleanly. No action.
✓ ran — some lines droppedEverything ran, but some lines were left off a list for missing data. Worth a look, not urgent.
⚠ ACTION NEEDEDSomething errored, or a job didn't report at all.

After that you'll see each job marked (fine), (errored) or ? (never reported).

At a glance

Three lines at the top, one per job — how many files went up, how many lines they contained, how many offers were rebuilt. On a normal night this is the only bit you need to read.

The four things it can tell you

What you seeWhat it meansWhat to do
ErrorsA job hit a real problem and did not complete.Open the stock page and check. Re-run if needed. Tell Andy if it repeats.
Dropped linesLines left off a list because data was incomplete — usually no sale price, case size or CPP. The email names each one and what's missing.Fix on the stock page; they rejoin automatically on the next run. A line that's dropped is a line no customer can see — that's lost selling, so don't let these accumulate.
Skipped offersAn active group wasn't rebuilt — parked by a Drop tick, the stock arrived, or it sold out.Usually correct. Only investigate if you expected that offer to still be live.
No report receivedThat job never ran at all.Always worth chasing — it means the automation didn't fire, not that there was nothing to do.
Why "no report received" matters more than an error. An error tells you something broke and you'll go and look. Silence tells you nothing — and used to look identical to a quiet good night. The digest now names every job that didn't check in, so a scheduler that stopped firing shows up the same evening instead of being noticed a week later when a customer gets a stale list.

Sanity checks worth doing

  • Line counts should look like yesterday's. A sudden collapse usually means an upstream feed problem, not that we sold everything.
  • Rebuilt count should roughly match your active groups. If you have fourteen active groups and two rebuilt, something's parked that shouldn't be.
  • Dropped lines trending up means pricing discipline is slipping — those lines are invisible to customers until someone prices them.
3The other automated jobswhat runs without anyone pressing anything
JobWhenWhat it does
SOH + Due In exports6pm dailyCustomer lists to Dropbox. In the daily email.
Offer sync7pm dailyRebuilds active offer groups with live quantities. In the daily email. It never creates an offer — only refreshes ones already built.
New-lines watcherevery 2 hoursSpots stock that has appeared since the last check and alerts separately. This is not part of the daily digest — it's a live prompt to sell, not an end-of-day report.
Due-in foldersSundays 7pmPre-creates next week's STOCK DUE IN folders.
Barcode indexevery 6 hoursKeeps case size / CPP / languages complete from saved offers, so due-in lines aren't missing data.
All the evening times are London time and hold across BST and GMT.
4Reading the moneycost · margin · valuation

The columns the sales team never sees:

  • Cost/u — unit cost in the line's own currency, from the PO that delivered it.
  • Margin and Margin cash — the percentage, and units × (sale − cost) in cash.
  • Stock value — what we're holding at cost. Sale value — what it's worth if it all sells at the set price.
  • Days — days on the floor. The single most useful number on the page.

On the Group view

BV costs show in EUR with GBP in brackets, at the rate shown top-right. Don't mix a EUR cost with a GBP sale by eye — check which currency the line is in before quoting a margin.

Where the value sits

The Overview tab totals floor value by company and due-in by month. Read together with Days, that's the working-capital picture: what we own, how old it is, and what's about to land on top of it.

Margin only appears where the line has both a cost and a sale price. Blank margin is nearly always a missing sale price, not a zero-margin deal — and those same lines are the ones being dropped from the customer lists.
5Offer groups & the syncdraft vs active

An offer group is a saved set of stock lines with its own MOQ, lead time and Incoterms. It has two states:

  • draft — created, but no offer has been built from it yet. The nightly sync ignores drafts.
  • active — an offer has been built and uploaded. From then on the 7pm sync rebuilds it nightly with live quantities and a fresh date.

A group flips to active when a built offer's barcodes match the group. If a card is stuck on draft after a build, press Reload on the stock page — that's where the state refreshes.

Why an offer gets skipped

  • Parked — someone ticked Drop on its lines.
  • Delivered / sold out — there's nothing left to offer.
  • Incomplete data — the lines lack the case size, CPP or price the workbook needs.

The first two are the system doing its job. The third is a data problem worth fixing.

Sort the group cards by total stock value to see which offers actually matter, or by latest due date to see what isn't imminent.
6Reservations — managing the team's holdswhat to watch

Sales can hold stock before the sales order exists. A hold takes units off Free units immediately, self-consumes as the real SO lands, and expires after 72 hours so nothing stays locked away by accident.

What to watch as a manager:

  • Holds with no name in the note. A hold nobody can chase is stock taken off the market for free. The note should always carry customer and salesperson.
  • Holds that keep being renewed. That's a deal that isn't happening, or an SO that should have been raised days ago.
  • Holds on your best-margin lines. Worth a conversation before they expire.
Sort by the Reserved column to see everything currently held in one view.
7Data quality — the jobs only you can dowhat keeps the machine fed

Almost every automation failure traces back to one of four missing fields. Keeping these complete is what keeps the nightly jobs quiet:

MissingConsequence
Sale priceNo margin, line dropped from customer lists, can't be ticked for Drop.
Case sizeOffers can't work out cases or pallets.
CPP (cases per pallet)No pallet count, and pallet/truck pricing modes can't compute.
LanguagesSales can't tell which market a pack can go to.

Fastest ways to fix in bulk: Bulk import (paste barcode + price), Seed from offers (pull prices from offers already built), and the AI assistant for pattern edits across many lines — every change previewed before it saves.

The daily email names every dropped line and what it's missing. Treat that list as your data-quality to-do and it stays short.
8Commercial safetywhat must never leave the building

Three downloads exist and only two are safe to send:

DownloadContainsSend out?
Full internal MASTERCost, sale and marginNever.
Customer price listPrices onlyYes.
Customer due-in listIncoming, prices onlyYes.
The internal master shows a customer exactly what we paid and what we make on every line. One mis-attached file can cost a supplier relationship and a year of margin on that account. It's worth saying this out loud to the team rather than assuming it's obvious — it's covered in the sales guide too.
9When something goes wrongtriage
SymptomFirst move
No daily email at allThe 7pm sync sends it. If nothing arrived, that job didn't fire — check the site is up and tell Andy.
Email says no report received for a jobThat job didn't run. One night is worth watching; two nights needs chasing.
Offers rebuilt but quantities look wrongCheck the underlying lines on the stock page — the sync uses live figures, so it's usually the source data.
Lots of newly dropped linesSomething upstream stopped supplying case size / CPP. Check whether new stock arrived without an offer behind it.
A group stuck on draftPress Reload. If it stays draft, the built offer's barcodes didn't match the group.
“The offer never finished building”Build from inside the Offer Builder instead. Report it if it recurs — it's a known area under investigation.
Sales says they can't see somethingUse View as to reproduce it before assuming it's a bug — it's often the role filter working as designed.
Every page has ⚑ Report issue. It captures the build number, what was on screen and any errors — far more useful than a description, and it's what makes a fix possible on the first attempt.
Oxbridge Global Group · The Stock Room · internal use only