A food receiving log records every delivery at the door, before anything goes on a shelf: the date, supplier and invoice number, each item and how much was invoiced, delivered and accepted, the supplier's lot and date, the temperature of anything cold, whether the packaging was sound, and who checked it. The FDA Food Code's line for refrigerated food is 41°F or below. Below are the columns, the temperatures, a week filled in, and a free Excel log that flags a warm delivery and adds up the credit you're owed.
The short version
- Check every delivery against the invoice, not the order: count it, look at it, and take the temperature of anything cold.
- Write down the supplier's lot number and use-by date as you receive it. It's the only moment it's easy.
- Reject in front of the driver, and write why. A rejection nobody wrote down is a credit nobody gets.
- Total the credits once a week and chase them.
- Or receive on a phone, where the lot, the price and your checks go straight into stock. That's how TaroStack works, and it's described further down.
The columns
| Column | What goes in it |
|---|---|
| Date | The day it arrived |
| Supplier, invoice or slip no. | So a rejection can be matched to a credit |
| Item and unit | As it's written on the invoice: "Heavy cream, qt" |
| Invoiced, delivered, accepted | Three numbers, because they're often three different numbers |
| Supplier lot | The lot or batch code on the case |
| Use-by or best-by | The date on the case |
| Kind | Dry, refrigerated, frozen, eggs or hot, which decides the temperature check |
| Temp °F | Measured at the door, for anything that isn't dry |
| Temp OK? | Worked out by the sheet |
| Packaging and condition OK? | Y or N: dents, swelling, leaks, torn bags, signs of pests or thawing |
| Short, rejected, credit to ask for | Worked out by the sheet |
| Initials and notes | Who checked it, and anything the driver said or signed |
The three quantity columns are the point of a receiving log. Invoiced minus delivered is what's short. Delivered minus accepted is what you turned away. And invoiced minus accepted, at the invoice price, is the credit to ask for, because you'll be billed for the invoice unless someone says otherwise.
The temperatures to check
These are from the FDA Food Code 2022, paragraph 3-202.11 (FDA Food Code 2022):
| Kind | Received at |
|---|---|
| Refrigerated food that needs temperature control for safety | 41°F (5°C) or below, unless a law for that food says otherwise (milk and molluscan shellfish have their own) |
| Raw shell eggs | In refrigerated equipment with air at 45°F (7°C) or below |
| Cooked food received hot | 135°F (57°C) or above |
| Food labeled and shipped frozen | Frozen |
| Any food that needs temperature control | Free of signs it was warm before (thawed and refrozen, pooled liquid) |
The Food Code also asks for packages in good condition that protect what's inside (section 3-202.15). A swollen or badly dented can is a reject.
The Food Code is a model, offered by FDA for states and local health departments to adopt (FDA), so your own inspector works from whichever version your state has, sometimes with changes. This is general information, not legal advice; your inspector has the last word.
A week of deliveries, filled in
Here's Windward Roots, the made-up taro business I use in these examples, in the week of September 21, 2026:
| Date | Item | Invoiced | Delivered | Accepted | Lot | Temp | Check | Credit |
|---|---|---|---|---|---|---|---|---|
| Sep 22 | Bread flour, 50 lb bag | 2 | 2 | 2 | 2609-114 | dry | OK | $0.00 |
| Sep 22 | Heavy cream, qt | 12 | 12 | 0 | HC-0922 | 46°F | Too warm | $39.00 |
| Sep 22 | Eggs, 15 dozen case | 1 | 1 | 1 | E-0922 | 44°F air | OK | $0.00 |
| Sep 23 | Butter, 36 lb case | 2 | 1 | 1 | B8812 | 38°F | OK | $144.00 |
| Sep 25 | Coconut milk, can | 24 | 24 | 23 | CM61507 | dry | 1 swollen | $2.25 |
Three things happened that a busy morning would have forgotten by lunch. The cream came in at 46°F and was sent back with the driver, who signed the note: $39.00. The butter was invoiced as two cases and one came: $144.00, on back order. And one can of coconut milk was swollen, so it was set aside and not used: $2.25. That's $185.25 of credits in one week, from one line each on a sheet.
At the door, in order
- Have the invoice or packing slip in hand, not the purchase order. The invoice is what you'll be billed.
- Count cases against it, and open one of each to check what's inside matches.
- Take the temperature of refrigerated and frozen food first, before anything else warms up.
- Look for dents, swelling, leaks, torn bags, thawing and pests.
- Write the lot and use-by from the case, not from memory later.
- Accept, reject, or accept part. Reject in front of the driver, get their signature, and write the reason.
- Put cold food away first, then dry.
Step 5 is the one that pays off later. If a supplier ever recalls a lot, the log tells you in seconds whether you got any, and when. That's the first step of any trace, whether it's a mock recall or the paperwork for FSMA 204's traceability records, where receiving records for listed foods have to be kept for two years (21 CFR 1.1455). FDA has proposed moving that rule's compliance date to July 20, 2028, and Congress directed it not to enforce the rule before then; FDA says it will comply. If your supplier doesn't print lot numbers, how to create lot numbers covers making your own at receiving.
Get the log
Download the food receiving log. It has this week filled in, and a blank log with the formulas ready down to row 100. Kind and Y/N are drop-downs. The Temp OK? column checks the Food Code limits above:
=IF(L2="","",IF(K2="Refrigerated",IF(L2<=41,"OK","Too warm"),IF(K2="Eggs",IF(L2<=45,"OK","Too warm"),IF(K2="Hot",IF(L2>=135,"OK","Too cold"),""))))
Frozen food doesn't have a number in the Food Code, it has to arrive frozen, so that's a Y or N in the condition column. It prints landscape, one page wide, with the header on every page, and it's an ordinary Excel file with no macros that works in Google Sheets, LibreOffice and Numbers.
Where this stops working
The log is a record of what happened at the door. It isn't connected to anything else. The 23 cans of coconut milk you accepted still have to be typed into your inventory somewhere else, the lot number copied again, and the price checked against what you were quoted. The butter that was short still shows as ordered on your purchase order, if you keep one, until somebody remembers. And the $185.25 of credits sits in a column until someone totals it and emails three suppliers, which in a busy month is nobody.
The clipboard also has a way of living by the back door in the rain.
How TaroStack does it
Receiving in TaroStack happens once, at the door, on a phone. Open the purchase order, or start a receipt without one, and count what came: the shortfall against the order is recorded there and then, so the missing case of butter doesn't depend on anyone's memory. Scan the barcode or type the item, and the supplier's lot number and best-before date become the lot in your stock, so the recall question is answered for every delivery, not only the ones someone remembered to write down.
Your own checks go on the receipt too. TaroStack has custom checklist fields (a number for the temperature, a Y or N for the packaging, initials) on receipts, lots, batches and counts, so the Food Code check and the stock record are the same record. It works in the walk-in with no signal and syncs when you're back in range. And because each delivery is received at the price you paid, with freight spread across it, your stock is costed from real invoices rather than last year's price list.
Receiving, lots and expiry are on every plan, from $49 a month, and the first 30 days are free. Your suppliers and items import from a spreadsheet. If you'd like a hand setting up, ask, and we'll do it with you.
