Receiving log template, and the spreadsheet version that does not fall apart
A printable receiving log plus the exact column set to use if you keep it in a spreadsheet, and the three habits that make one searchable a year later.
In short
- A log is an index, not a record. One row per delivery, pointing at the detail rather than containing it.
- The column that makes it useful a year later is the exception flag, because that is what somebody filters on.
- Two people keeping two copies is worse than nobody keeping one, and it is the most common way a paper log dies.
Nearly every small operation starts with a book by the door, and the book works for longer than software people like to admit. It stops working at a specific moment: the first time somebody has to answer a question about a delivery that happened four months ago, and the only way to answer it is to turn pages.

Receiving log
One line per delivery. Keep it in date order.
Site / dock
Month
| Date | Time | Supplier | PO no. | Carrier | Cartons | Short / over / damaged | Checked by |
|---|---|---|---|---|---|---|---|
If you keep it in a spreadsheet instead
Use these columns, in this order, and resist adding more. Every extra column is one more thing that stops getting filled in, and a column that is blank half the time is worse than no column because it cannot be trusted or filtered.
| Column | Format | Why |
|---|---|---|
| Received date | YYYY-MM-DD | Sorts correctly as text. Any other format eventually will not. |
| Received time | HH:MM | Matters in a dispute about who held the goods when. |
| Supplier | Pick from a list | Free text produces four spellings of the same company and breaks every filter. |
| PO number | Text, not number | Leading zeros survive. As a number they do not. |
| Carrier | Pick from a list | Same reason as supplier. |
| Cartons received | Number | The fastest check there is. |
| Exception | None / short / over / damaged / not ordered | One of five values. Never free text: this is the column people filter on. |
| Checked by | Pick from a list | A name, not initials. Initials stop meaning anything once somebody leaves. |
| Link to GRN or photos | URL or file name | The log is an index. This is what it indexes. |
Three habits that keep it usable
- 1One copy. A shared file, one row per delivery, written by whoever took it. The moment two people keep their own, neither is complete and both are believed.
- 2Fill it at the bay, not at the end of the day. A log written from memory at five o’clock is a log that says everything was fine, because that is what the end of a day feels like.
- 3Never leave the exception column blank. Blank has to mean “nothing wrong”, and it only means that if writing “none” is the habit. Otherwise blank means “nobody got to it” and the whole column stops being evidence.
Worth knowing
A spreadsheet log has one failure mode worth knowing about: it records what somebody typed, and nothing about when they typed it. A row added three weeks late looks identical to a row added at the bay. If that distinction could ever matter to you, the log needs to live somewhere that timestamps its own rows.

How long to keep the thing, and what the retention periods actually rest on: how long to keep receiving records.
DockCount does this job on a phone at the bay: count a delivery against the order it was placed on, photograph anything wrong, and the record writes itself. receiving reports you can send to purchasing.