Year-end cutoff: open purchase orders and unpaid supplier invoices
Goods received not invoiced, stock in transit and unpaid supplier invoices at 31 December: how to list them from Restock Ops purchase orders.
The year-end stocktake answers one question: what is on the shelf at midnight on 31 December. It does not answer the three questions an accountant asks next. What had you paid for that was not yet on the shelf? What was on the shelf that you had not yet been billed for? And what did you still owe suppliers for stock that was already counted? Those are cutoff questions, and the answers live in your purchase orders, not in the count.
This post is about getting those answers out of Restock Ops in a form an accountant can use, in about an hour, in the first week of January. It assumes you already know how to run the count itself; the year-end stocktake post covers that side.
Why cutoff matters more than the count
Cost of goods sold for the year is opening stock plus purchases minus closing stock. The count gives you closing stock. Purchases come from supplier invoices. The trouble is that invoices and deliveries do not arrive on the same day, and the ones that straddle 31 December get booked in the wrong year unless someone lists them. A pallet received on 29 December and invoiced on 4 January is stock in this year's count with its cost in next year's purchases, which overstates this year's profit. A deposit paid in December for goods landing in January is the reverse.
Accountants have names for the two lists. Goods received not invoiced, usually shortened to GRNI, is stock you hold with no bill yet; it becomes an accrual. Invoiced not received, or prepayments, is money out with no stock yet; it becomes a prepayment or stock in transit. Neither is complicated. Both need a list with quantities, dates and values, and both are easy to produce if your purchase orders record when things arrived and when the invoice came.
What a Restock Ops purchase order records
Every purchase order carries the fields these lists need. The status tells you where the order is: Draft, Ordered, Partially received, Received, Closed or Canceled, as explained in the status post. Each receipt against the order has its own timestamp and lines, so a PO received in three deliveries shows three dated receipts, and the one dated 29 December is distinguishable from the one dated 3 January. The invoice fields on the order header hold the invoice number, whether it is unpaid or paid, the due date, the date it was paid and the invoice total, alongside shipping cost and discount; the invoice tracking post describes how they are meant to be used through the year.
Header fields stay editable until the order is closed or canceled, which matters here: you can still fill in the invoice number and total on a partially received order in January when the bill finally arrives, without reopening anything. Only partially or fully received orders can be closed, so an open order with nothing received is always Ordered, and an order with everything received but an invoice still missing is Received, not Closed. That distinction is what makes the lists below fall out of the status column.
The four lists
The second column is a filter, not a judgement call. Anyone on the team can produce the lists by sorting the purchase orders page by status and reading the invoice column, and the accountant decides the treatment. For the third row, the deciding fact is when ownership passes: if your supplier ships on terms where the goods are yours once they leave the factory, stock on the water on 31 December is your stock and belongs in closing inventory even though it was never counted. The PO's expected date and the supplier's shipping notice are the evidence.
| Situation at 31 December | Status in Restock Ops | Accounting treatment |
|---|---|---|
| Received in full or in part, invoice not yet received | Partially received or Received, invoice status None | Goods received not invoiced: accrue the cost of the received lines at PO cost |
| Received, invoice received, not yet paid | Partially received or Received, invoice Unpaid | Trade creditor: already in purchases, shown as owed |
| Paid or invoiced, nothing received yet | Ordered, invoice Unpaid or Paid | Prepayment or stock in transit, depending on shipping terms |
| Ordered, nothing received, no invoice | Ordered, invoice status None | Commitment only: nothing to book, but list it so nobody asks |
Pulling the lists in January
- Freeze the moment. Do nothing to purchase orders until the count is done and recorded, then work through the open orders in one sitting. Any receipt you record in January must have January's date, which the app sets automatically, so a delivery that physically arrived on 30 December but was keyed on 2 January needs a note saying so.
- Open the purchase orders page and filter to everything that is not Closed or Canceled. Drafts can be ignored; they commit nothing.
- For each Received or Partially received order, read the invoice status. None means goods received not invoiced: note the order number, supplier, what was received, the receipt dates and the value of the received lines at PO cost. Unpaid means a creditor: note the invoice number, total and due date.
- For each Ordered order with an invoice recorded or a deposit paid, note the amount and the expected date. That is your prepayment or in-transit list.
- Export the purchase orders to CSV and hand the file over with the lists. The CSV columns post explains which columns carry quantities ordered and received and how to compute outstanding values in a spreadsheet, so the accountant can check your lists against the raw data rather than take them on trust.
- When the straddling invoices arrive in January, record them on the same purchase orders with the real invoice date. The accrual reverses and the invoice is matched; the order can then be closed.
Valuing what was received
The accrual for goods received not invoiced is at the cost you expected to pay, which is the unit cost on the PO line multiplied by the quantity received, plus a share of shipping if your accountant capitalises freight. Restock Ops writes the received cost into Shopify's cost per item when a receipt is applied, following the last cost or average cost setting described in the cost history post, so the cost sitting on the variant at year end already reflects December's deliveries. If the invoice arrives at a different price, the difference is a small adjustment in January, not a restatement.
One trap: a receipt that was undone. If a delivery was received to the wrong order and reversed, both the receipt and the undo are in the write log with timestamps, and the net effect on quantities is zero. Make sure the GRNI list uses receipts that stand, not every receipt that was ever recorded; the purchase order's received quantity does this for you, but a spreadsheet built from the raw log may not.
Proving the count was not moved by receiving
Accountants also want to know that nobody received a delivery into stock between the count and the year end without it appearing in one of the lists. Shopify's inventory adjustment history shows every change to a tracked quantity for the last 180 days, with a Created by column that names the app, staff member or channel responsible, so a receipt applied by Restock Ops on 30 December is visible there with the app's name against it. For a view across many products at once, Shopify's Inventory adjustment changes report filters by SKU, location, staff member, app and reason. Export the window from the count date to 31 December and attach it. If the only app adjustments in that window are the ones on your receipt list, the count and the lists reconcile.
Setting next year up to be easier
- Record the invoice on the purchase order the day it arrives, even if payment is weeks away. The lists above are only as good as the invoice status column.
- Close orders once the invoice is matched, so the open list in December is genuinely open.
- Put the supplier's shipping terms in the supplier notes, so the in-transit question answers itself next year.
- Receive deliveries on the day they land. A receipt dated the day the box was opened, not the day someone got round to it, is the whole basis of cutoff.
FAQ
What does goods received not invoiced mean for a Shopify store?
Stock that arrived and was received into inventory before the year end, for which the supplier's invoice had not yet been received. Its cost is accrued in the year the goods arrived, at the purchase order price, and matched to the invoice when it comes in.
Which purchase order statuses should I list for my accountant at year end?
Everything that is not Closed or Canceled, excluding Drafts. Received and Partially received orders with no invoice are the accrual list; those with an unpaid invoice are creditors; Ordered orders with an invoice or deposit are prepayments or stock in transit.
Can I still add the invoice number to a purchase order after the year end?
Yes. Header fields including the invoice number, status, due date and total stay editable until the order is closed or canceled, so a December delivery invoiced in January can be recorded on the same order when the bill arrives.
Does Restock Ops produce the year-end lists automatically?
No. It records the status, receipts with dates and invoice fields that the lists are built from, and exports purchase orders to CSV. Sorting the purchase orders page by status and reading the invoice column produces the lists in a few minutes.
Try it on your store. Restock Ops adds purchase orders with partial receiving, supplier notes, cost history, barcode labels, scanner stocktakes and a reorder report on top of Shopify inventory. From $19/month, 14-day free trial.