One up, one back has two halves, and the second half is the one farms neglect. The first half — knowing where your product came from — feels natural, because it happens at the start of the process, while the field and the harvest are still fresh in mind. The second half — knowing exactly where it went — happens at the end, after the work already feels finished, which is precisely why it is the half most often done loosely.
A sale record without a lot code is not a small omission. It is the one gap that makes an otherwise perfect trace collapse at the last step: you can show exactly what went into a lot, and exactly when it was harvested, and then arrive at the shipment record and find only a customer name, a quantity, and a price — with no way to say which lot that quantity came from.
It helps to think of the lot code on an invoice the way you would think of a serial number on a warranty card. Nobody writes the serial number down because they expect to need it; they write it down because the one time in a hundred it matters, nothing else will do. A shipment record without a lot code is a warranty card with the serial number left blank — fine for ninety-nine sales, and useless for exactly the one that triggers a recall.
The sale is not the end of the lot’s story
It is easy to treat a sale as the finish line — the product is gone, paid for, and the transaction is complete. For traceability purposes, the sale is not the end of the story; it is the last entry in it, and it is the entry a real recall depends on most. A forward trace — where did this lot go — is answered entirely by the shipment records, and a shipment record with no lot code answers the wrong question. It tells you that product moved. It does not tell you which product.
This reframing matters because it changes what “done” means at the point of sale. The invoice is not complete when the customer, quantity, and price are filled in. It is complete when the lot code travels with it, because that single field is what lets the sale be found again later by someone searching from the other direction — starting at a lot, not at a customer.
Record every lot in a mixed shipment, not just the total
A single shipment often draws from more than one lot — a restaurant order filled from two days’ harvest because one day alone did not have enough volume. The natural shortcut is to record the total quantity against the customer and skip which lot contributed what. That shortcut is exactly where a forward trace breaks: if one of the two lots is later recalled, a shipment record that only says “eighty pounds to Riverside Restaurant” cannot tell you whether any of the implicated lot reached them, or how much.
The fix costs one extra line per shipment: forty pounds from lot A, forty from lot B, rather than eighty pounds undifferentiated. It is the same discipline that applies on the input side of the ledger — see commingling and lot integrity — applied to the outgoing side instead of the incoming one.
The lot code has to be typed, not remembered
Most missing lot codes on shipment records are not missing because nobody knew them. They are missing because the person writing the invoice was thinking about price and quantity, and the lot code lived on a different piece of paper — the harvest sheet — that was not in front of them at the moment of sale. The fix is workflow, not willpower: the harvest sheet and the sales record need to be the same document, or at least consulted together, so the lot code is copied rather than reconstructed from memory an hour or a day later.
A farm that separates these two steps in time — harvest recorded in the morning, sales invoiced in the evening from memory — will eventually produce an invoice with the wrong lot code on it, and a wrong code is worse than a missing one, because a wrong code answers a trace confidently and incorrectly rather than flagging itself as a gap.
The practical remedy is almost always to shrink the gap between picking and invoicing, not to add a checking step afterward. A farm that invoices same-day, from the same sheet the harvest was recorded on, has almost no opportunity for the two to drift apart. A farm that invoices at the end of the week, from a stack of memories, has created exactly the gap a wrong lot code lives in.
An informal sale still needs a record, even an informal one
Not every sale generates a formal invoice. A cash sale to a neighbor, a verbal agreement with a small buyer, or a farmers market transaction may have no natural paper trail at all. The record obligation does not disappear because the sale was informal; it shrinks to whatever level of formality matches the transaction. A text message, a notebook line, or a scrawled note on a clipboard — buyer, date, quantity, lot — satisfies the requirement. What does not satisfy it is treating an informal sale as one that need not be recorded at all, because from a trace’s perspective an unrecorded sale and a sale that never happened look identical, and only one of those is actually true.
It is also worth keeping the record somewhere it will survive a season change — a phone that gets replaced, a notebook that gets left in a truck sold at the end of the year. Photographing a handwritten sales note and keeping the photo alongside your other records costs a few seconds and removes the single largest risk to informal records: that they exist, briefly, in exactly one place.
Where a joined record removes the retyping, not the recording
None of the above requires anything beyond a habit of writing the lot code down at the point of sale. Farm40 records a customer sale with the lot it draws from as a linked field, selected rather than retyped, which is what makes the traceability packet export able to show every customer a given lot reached in one row. The honest limit sits in the same sentence: that join is a lot-code string match, so a sale entered with a blank or mistyped code will not link to its lot, silently, and the export will understate where that lot actually went. It removes the retyping that causes most transcription errors. It does not remove the requirement to write the code down in the first place, at the moment of the sale, for every lot in every shipment. For the wider argument about why this matters, see the traceability guide.
