Procure-to-pay · FMCG

A recall is an act. Its evidence has to be frozen.

Minimum remaining shelf life measured where goods are booked in, batch traceability through the stock ledger, and a recall or withdrawal recorded as a record — with the trace kept exactly as it stood on the day it was declared.

Shelf life on the stock, not the paperwork Batch traceability in and out The trace frozen when declared Refuses to call a partial search complete
Why a general P2P tool falls short

Three distinctions a general system flattens.

None of them are subtle once food is involved, and all three are the difference between a record that stands up afterwards and one that quietly says something else.

A date on a document is not a date on the stock

Certificates expire; so does the product. Atlas already tracked document expiry, and adding a second arithmetic for stock would have given you two answers to one question. Shelf life extends the ladder that existed rather than forking it — on shorter rungs, because sixty days of notice on a twenty-one-day chilled line is not notice.

"Where is it now" is not "what did we act on"

Re-run a trace a month after a withdrawal and the batch has been consumed and the locations have emptied. The account of what you withdrew becomes an account of what is left, and nothing on the screen says it changed. So the trace is frozen when the recall is declared, and the current position is offered separately and labelled as a different question.

"We withdrew it" and "we withdrew what we could find" are different sentences

A recall over a ledger where some movements carry no batch, or record no location, has searched the part that could be searched. Atlas carries both gaps into the recall record and will not describe the withdrawal as complete while either stands. What was not searched is not thereby clear.

Minimum remaining shelf life

Measured at the point of receipt. Judged against your policy, or not at all.

The date lives on the batch, not on the movement — the same lot is received more than once, and two independently typed dates for one physical fact would decide the issue order while both looked right. Atlas records which kind of date it was told, use-by or best-before, and decides nothing from it.

  • Days remaining, measured and shown where goods are being booked in — and compared against the minimum life your contract sets
  • No policy recorded means no judgement. Atlas reports the days and says nobody has stated a minimum, rather than inventing a fraction that sounds conventional
  • First-expired-first-out advises; it does not enforce. Enforcement needs a per-batch balance and an issue that names which batch left, and the ledger has neither — a control on data that thin refuses honest work, and the way round it is to stop recording batches, which costs you the recall too
  • Undated stock is reported separately, never sorted in. A batch with no date is not last and it is not first
  • Certificate of analysis, against the batch that arrived. Required per category and off until you switch it on. Your supplier attaches it to the delivery note they already raise, the order page states what is still outstanding, and a missing certificate never stops you writing down goods that are on the dock
.../inventory
Dated stock on a chilled line: three batches in issue order, the nearest marked take first
Dated stockWhat to issue first, and what Atlas will not claim to know.
Recall & withdrawal

From a batch to every place it reached — and the picture kept.

Declaring a recall takes the trace at that moment and stores it: what was found, who declared it, why, what was done and who closed it. Reopening it shows you what you acted on, not what has happened since.

  • The evidence is frozen at declaration, and the current position is a separate, clearly labelled question
  • A blank batch is refused. "Everything with no lot number" is the most dangerous possible reading of an empty box
  • A second open recall on one batch is refused — two records would each hold half the account of what was done
  • Closing it needs an account of what was done. A recall closed with nothing written is indistinguishable from one nobody acted on, and this is the record you will be asked for
  • It moves no stock. Withdrawing or writing off goods is a movement somebody makes with their name on it, through the screen that already exists
.../recalls
A declared recall with the movements found at declaration and a warning that the picture is not complete
Not a complete pictureAtlas says so on the record, in the words you can see here.
Wherever you operate

The mechanism travels. The duty does not, and we do not pretend it does.

Tracing a batch to every place it reached, and measuring remaining shelf life against your minimum at receipt, work the same way in all six regions Atlas serves. Two things attached to them do not, and Atlas asserts neither.

When it stops you

What this pack refuses, and what to do about it.

Atlas refuses a lot here, on purpose, and every refusal carries its reason on the screen. These are the ones this industry meets, in the words the screen actually uses — so that meeting one is a thirty-second fix rather than a support call.

What Atlas will not do
What the screen says
What to do
A movement with no batch, treated as clear
It is not. Blank is recorded as not known: “a recall search will say it could not check this movement, rather than treating it as clear.”
Capture the batch at receiving. Two movements nobody recorded a batch for are not thereby the same batch.
A second, different date for one batch
Refused rather than silently overwriting. “A batch has one date — Atlas will not hold two, because whichever a screen happened to read would decide which stock is issued first.”
Correct the existing record if it is wrong, or check whether this is genuinely a different batch.
Judging short-dated stock with no policy recorded
Atlas reports the days remaining and declines to judge: “no minimum remaining shelf life has been recorded for this workspace, and the figure is a term you agree with a supplier rather than one Atlas can supply.”
Record your minimum. Even then Atlas reports the shortfall and does not refuse the goods — accepting or rejecting is a commercial decision with a name on it.
A recall on a blank batch
Refused outright. “Atlas will not withdraw everything with no lot number, which is the most dangerous possible reading of an empty box.”
Name the batch. If you do not know it, the trace is not the tool — find it first.
A second recall on a batch already under one
Refused while the first is open. “Two recalls on one batch would each hold half the account of what was done.”
Add to the open one, or close it first.
Describing a partial search as complete
Atlas will not, and it names both halves of what it could not see. Of movements carrying no batch: “Those could not have matched and are not evidence of absence.” Of movements that record no location: “An empty list of locations here means nobody recorded one — it does not mean the batch is nowhere.”
Improve the coverage at receiving. The recall still runs; it tells you what it could not see, and treats the withdrawal as partial until both are clean.
Closing a recall with nothing written
Refused. “A recall closed with nothing written is indistinguishable from one nobody acted on.”
Write what was actually done. That is the record you will be asked for.
Re-running the trace and calling it the recall
Atlas keeps the two apart. The stored evidence answers what you acted on; re-running it answers where the batch is now, which a month later may be nowhere at all.
Read the frozen one for the account of the withdrawal. Both are on the screen, labelled as the different questions they are.
Underneath all of it
Shared by every pack that converts or imports anything
What to do
A conversion that was never declared
Refused, and Atlas never returns the quantity unchanged. “Until it is declared, the two quantities are not comparable and Atlas will say so rather than return a figure that looks right.”
Declare the factor for that item. A factor is per item — a case of paper and a case of wine hold different numbers of things — so it is never guessed from a unit's name.
A blank unit read as “each”
It is not. Blank is nobody having said, and it refuses.
State the unit the stock is counted in. Nothing existing is re-expressed when you do: every quantity already recorded means exactly what it meant yesterday.
Spreading import costs with no basis chosen
Refused; there is no default. By value, by weight and by quantity give three different unit costs from one invoice: “all three look equally right on the screen.”
Choose the basis the consignment was actually costed on. A house default would be Atlas deciding which of your products looks profitable.
One line with no weight, on a by-weight split
Refuses the whole split, not just that line. “That would overstate every one of them and understate these to nothing, and the total would still foot exactly.”
Record the missing figures, or choose a basis every line can carry. A figure that foots is the most convincing kind of wrong.
A charge in another currency
Refused, not converted — a customs entry settled months ago at one rate is not today's fact: “What was paid is an amount in a currency, not a rate.”
Record it in the shipment's currency, or cost the shipment in the currency the charges were settled in.

Every one of these is also written into the guidance drawer on the screen it happens on, and into the process guides your own workspace generates — so a person who meets it at four o’clock on a Friday does not need us, or you.

Said plainly

Where this pack stops, and why.

These are named so you can decide with them in view — one is where a built capability deliberately will not act on its own, and two are judgements Atlas will not make for you.

Where Atlas stops
What is true today
Posting a rebate accrual unattended
The agreement and the accrual are built: one threshold and one rate, earned on the excess over the threshold or on the whole base, against the volume received or invoiced. The accrual is computed cumulatively over the window and held for review. Posting it is built too, and guarded: off for each finance connection until an administrator switches it on; only a reviewed accrual; a standing journal, not reversed next period, to two accounts an administrator chooses; only the change since the last posting; and a line in another currency refused rather than converted. It posts to the six ledgers that take journals — QuickBooks Online, Xero, Business Central, Sage Accounting, Sage Intacct and NetSuite — and is proven live on the first four. Business Central receives it staged, for your finance team to post.
Deciding whether stock is safe
Atlas records which kind of date it was given and how many days remain. What may still be used is a food-safety judgement and a regulatory one, and this system has neither the facts nor the standing to make it.
Notifying anybody outside your organisation
No authority is contacted, no customer is emailed, and no duty is discharged by Atlas. The record has a field for what you did, and Atlas asserts nothing about whether it was enough or in time.
See it on your own lot numbers

Pick a batch. We'll trace it, then recall it.

A short demo on your own products and dates — stock booked in against a shelf-life policy you set, a batch traced to every place it went, and a recall declared, evidenced and closed.

Book a demo