Every purchase order tracker in the world starts life as a spreadsheet, and most of them should stay one. A spreadsheet is free, everybody already knows how to use it, and for a handful of orders a week it does the job perfectly well. So here is a column layout worth copying, and an honest look at the point where the sheet stops being free and quietly starts costing you.
No download, no email address. The layout is in the page. Copy the headers into a blank sheet and you have a working tracker in five minutes.
What a PO tracker has to capture
Columns come second. First, what the thing is for. A purchase order tracker exists so that four questions can be answered without anyone having to remember anything:
- What have I got on order right now, and from whom?
- What is late?
- What arrived, and did all of it arrive?
- What have I been billed for, and have I paid it?
Every column below exists to answer one of those. If a column you are tempted to add does not serve one of them, leave it out. The fastest way to kill a tracker is to make it long enough that nobody fills it in.
A tracker also has a natural three-part spine, mirroring the three documents behind every purchase: what you ordered, what arrived, what you owe. If that framing is new, read purchase order vs invoice vs GRN first and the columns will make more sense.
A spreadsheet layout you can copy
Thirteen columns. Group them in your head as ordering (1–7), receiving (8–9) and paying (10–13).
| # | Column | What goes in it | Example |
|---|---|---|---|
| 1 | Order no. | Your own reference. Year + running number is plenty. | PO-2026-041 |
| 2 | Order date | The day you actually placed it, not the day you typed the row. | 2026-07-06 |
| 3 | Vendor | One consistent spelling per vendor — this is what makes totals work later. | Kumar Traders |
| 4 | Items | Specific enough that a second person could check the delivery. | Wall primer, 20L |
| 5 | Qty ordered | Number plus unit. Always the unit. | 12 tins |
| 6 | Unit price | The rate you agreed for this order, not the vendor’s list price. | ₹2,150 |
| 7 | Expected date | What the vendor committed to. Conditional-format this red when overdue. | 2026-07-10 |
| 8 | Qty received | Counted on arrival. Blank until goods land — never pre-fill it. | 9 tins |
| 9 | GRN / delivery note ref | The vendor’s challan number, or a link to your delivery photo. | DC-8841 / photo |
| 10 | Invoice ref | The vendor’s invoice number and date. | INV-2291, 12 Jul |
| 11 | Amount | The invoiced total. Keep it separate from qty × price so gaps show up. | ₹25,800 |
| 12 | Paid | No / Part / Yes, plus the date paid. | No |
| 13 | Notes | Short and factual. Who received it, what was wrong, what was agreed. | 3 tins short, Ravi informed 10 Jul |
Filled in, the core of it reads like this:
| Order no. | Vendor | Items | Qty ord. | Expected | Qty recd. | Paid |
|---|---|---|---|---|---|---|
| PO-2026-039 | Sharma Steel | 10mm TMT bars | 2 tonnes | 2026-07-04 | 2 tonnes | Yes, 18 Jul |
| PO-2026-040 | Kumar Traders | Emulsion, white | 20 tins | 2026-07-08 | 20 tins | No |
| PO-2026-041 | Kumar Traders | Wall primer, 20L | 12 tins | 2026-07-10 | 9 tins | No |
Four rules that keep it alive
- One row per order, never per item, right up until you hit partial deliveries. More on that below; it is the layout’s weakest joint.
- Freeze the header row and sort by expected date, so your daily view is whatever is due or overdue, sitting at the top of the sheet.
- Leave “Qty received” blank rather than zero. Blank means not yet delivered. Zero means it arrived and nothing was in it. That distinction saves arguments.
- Archive, do not delete. Move fully-received-and-paid rows to a second tab once a month. The live sheet stays short, the history stays intact.
Where spreadsheets break
None of these break on day one. They break at month four, which is why nobody warns you about them.
Status is text, and text lies
In a sheet, status is whatever someone typed. “Confirmed”, “confirmd”, “done”, “OK”, “waiting” and a blank cell all land in the same column meaning five different things. You cannot filter reliably, you cannot count reliably, and nothing forces the order through the actual sequence: placed, confirmed, dispatched, delivered, invoiced, paid. Nothing stops a row being marked paid while “qty received” is still empty, which is exactly the mistake that costs money.
Partial deliveries need rows you didn’t plan for
The layout above assumes one delivery per order. Reality does not cooperate. You ordered 12 tins, 9 arrived Monday, 3 more turned up the following Thursday on a different challan. Where does the second delivery go?
Your options are all bad. Overwrite “qty received” with 12 and lose the fact that Monday was short. Split the order into two rows and break your order numbering and your totals. Or bury it in Notes, where no formula can see it. Multiply that by five items on one order, each arriving at a different time, and the sheet stops representing reality, which is a shame, because partial deliveries are precisely what a tracker should be catching. (See what a goods receipt note is and how partial deliveries work.)
Two people editing
Cloud sheets handle simultaneous editing far better than they used to, but the failure mode was never really technical. It is that everyone can change everything. Someone sorts the sheet while a colleague is halfway through typing a row. Someone drags a formula down and overwrites forty amounts. Someone works in a downloaded copy for a week. There is no audit trail worth the name, so when a number is wrong, nobody knows when it went wrong or who did it.
Nothing links back to where the order actually happened
This is the big one, and it stays invisible until you need it. The order was placed on WhatsApp. The confirmation is a message. The delivery note is a photo on someone’s phone. The invoice is a PDF in an email. Your sheet holds a typed summary of all four and can point to none of them.
So when a vendor says “you agreed ₹2,300”, your sheet says ₹2,150 and that is the end of what your sheet can do for you. The evidence is in a chat thread, and finding it means scrolling. Meanwhile every order gets entered twice, once in the chat where it really happened and once in the sheet, and that double entry is what causes sheets to drift out of date during a busy week. The mechanics of that are covered in how to track vendor orders on WhatsApp.
Nothing reminds anyone of anything
A spreadsheet is passive. It will show you an overdue order in red, but only if someone opens it and looks. It will not tell you on Thursday that four orders promised for Tuesday never turned up, and it will not tell you that an invoice has been sitting unpaid for thirty-five days. Every one of those catches depends on a human remembering to check, which is the thing you built the tracker to avoid.
Spreadsheet vs software: honest comparison
| Spreadsheet | Order tracking software | |
|---|---|---|
| Cost | Free, and stays free. Clear win. | Free tier or a monthly fee per user. |
| Setup time | Five minutes. Copy the headers above and start. Clear win. | An hour or two — vendors and items entered once, then reused. |
| Flexibility | Total. Any column you want, any way you want it. Win. | Fixed fields. Better structure, less freedom. |
| Multi-user | Shared, but everyone can edit everything; weak audit trail. | Per-user logins, roles, a history of who changed what. |
| Statuses | Free text. Inconsistent, unfilterable in practice. | Fixed stages with dates recorded automatically at each move. |
| Partial deliveries | Awkward — extra rows or lost detail. | Multiple receipts against one order, per item, with a running balance. |
| Link to WhatsApp | None. Retyping tax on every order. | Order sent as a message from the order record itself. |
| Reminders | None. Passive by nature. | Overdue and unconfirmed orders surfaced without being asked. |
| Reporting | Whatever you can build with a pivot table — which can be a lot. | Spend by vendor and period, on-time rates, ready-made. |
| Works offline / on a phone | Offline yes; editing on a phone is genuinely painful. | Built for phones, needs a connection. |
Read that table honestly and the answer is not “software wins”. The spreadsheet takes the first three rows outright, and those three rows are the ones that decide whether a system gets used at all. A tracker nobody maintains is worth nothing, however many features it has.
The switching point
Ignore turnover, which is a bad signal for this. These four are better, and any one of them on its own is enough:
1. More than about ten orders open at once
Under ten, you hold the state in your head and the sheet is a backup. Over ten you stop holding it, and you start finding out about problems when a vendor calls rather than when you check. Ten is not a magic number. The real test is whether an overdue order surprised you this month.
2. More than one person places orders
The moment two people order, you need to know who ordered what and when, and both of them need the same live view. Sheets can technically do this. In practice, this is where the “someone was working in their own copy” problem starts.
3. You have paid a disputed invoice you couldn’t verify
Clearest signal on the list. If a vendor billed for something and you paid it because proving otherwise would have taken an hour of scrolling, then that hour and that amount are your switching cost, already spent. If it has happened twice, it will happen again.
4. You track deliveries by memory
If your answer to “did the full 12 tins arrive?” is “I think so”, what you are running is a to-do list with a tracker’s job title. Received quantities are the part of a tracker that pays for itself, and the part spreadsheets handle worst.
If none of the four apply
Then stay on the sheet, use the layout above, and spend the saved money on something else. That is a genuine recommendation, not a hedge. Most businesses reading this should be on a spreadsheet for another year, and the ones who switch too early usually abandon both systems and go back to WhatsApp.
Keep reading
- Purchase order vs invoice vs GRN. The three records your tracker’s columns are really made of.
- How to track vendor orders on WhatsApp. Where the orders actually get placed, and how to stop losing them there.
- The vendor order lifecycle: 7 stages from placed to paid. The statuses your status column should be using.
Frequently asked questions
Is there a free purchase order tracking template?
Yes. The thirteen columns in this article are it, and there is nothing to download. Open a blank sheet, type the column names from the table above into row 1, freeze that row, and you have a working purchase order tracker.
Two setup touches are worth the extra two minutes: conditional-format the Expected date column so anything past due turns red, and add a second tab called Archive for completed orders, which keeps the live sheet short enough to scan.
Can I run POs entirely on WhatsApp?
You can place them entirely on WhatsApp, and you probably should, since that is where your vendors are and where they answer. Tracking them there is the part that fails. A chat is organised by person while your work is organised by order, so five live orders with one vendor become one interleaved thread with no statuses and no way to see what is overdue.
The working split: talk on WhatsApp, keep the score somewhere else. Even a thirteen-column sheet next to the chat is a big improvement on the chat alone.
What does PO software cost?
It varies enormously by market segment. Tools aimed at small businesses, OrderBookApp included, commonly offer a free tier that covers a single user or a modest number of orders, with paid plans charged monthly per user after that. Enterprise procurement suites sit in a completely different bracket and are built for approval workflows and integrations you almost certainly do not need.
Two things to check before paying anything: whether the free tier covers the number of people who actually place orders, and whether you can export your data if you leave. A tracker you cannot get your history out of is a worse lock-in than any price.