Track supplier price changes over time
最近核对 · 本页面以英文提供。
To track supplier price changes over time you need every invoice line, dated, against the price list that was in force that day. Price Double Check does this from email: you forward the supplier's invoices and price lists, it joins them by item code and sends a digest of which prices moved, when, and by how much.
One invoice tells you what you paid today. A series of invoices tells you what the supplier has been doing to you for six months, and that is a different piece of knowledge. The price that went up in March, stayed up in April, and quietly became the list price in October never appears as an error on any single document. Each invoice, taken alone, looks like the one before it. That is why a purchaser who checks invoices one at a time, and checks them well, still misses the drift.
Price drift across a series of invoices
Price drift is the movement of a unit price across successive invoices for the same item code, without a new price list to justify it. It comes in three shapes; two of the three showed up in the chain we validated on, a sports-nutrition manufacturer selling to a Baltic distributor over thirty documents, and the third is a pattern buyers describe to us.
- A step: one line goes from 1.176 to 1.26 on one invoice and stays there. On the invoice where it happens, it is a price difference against the list. On every later invoice it is the same difference again, and the eye stops seeing it.
- A ramp: small rises of a cent or two, each inside the rounding tolerance, that add up over a year to a rise nobody agreed to.
- A pack that shrank at the same price. The unit price is unchanged on the invoice, so no invoice check can see it. It is visible only between two price lists, where the pack size is printed; invoices in our set did not print it at all.
The published advice for food and drink buyers agrees on where drift hides. A guide from an invoice-extraction vendor puts it plainly: a supplier can hit the right invoice total while individual lines drift up or down, and header-total review will not catch it. The same guide describes a mid-size restaurant handling forty to sixty supplier invoices a week, each with dozens of lines. Nobody re-reads last month's lines by hand at that volume, so the drift is found at month end, in the margin, or not at all.
A one-off increase that became the new normal
The case that convinced us this needs a series and not a single check: one item, a protein bar, listed at 1.176 in the price list in force. From March the invoices billed it at 1.26. The distributor paid, month after month, because 1.26 looked like the price. In October a new price list arrived, and 1.26 was in it. At that moment the seven months of overbilling became retroactively correct in every system that only compares an invoice with the current list, because the current list now said 1.26.
The record you want is the one that says: this item was billed above list from March to September, on every invoice in between, by 7.1 percent, and the list caught up in October. That sentence is a negotiating position. It is also exactly what a spreadsheet that overwrites the old price with the new one can never produce; once the old price is overwritten, the history the comparison depends on is gone.
This is the same mechanism as a formal supplier price increase, only without the letter. The supplier announced nothing, so there was nothing to check an announcement against. The series is the announcement.
The mailbox already holds the history
The usual objection to tracking prices over time is the cold start: a tool that learns from what you send it needs months of invoices before it can say anything. For a buyer who receives documents by email, that is false. The history is not something you have to accumulate; it is sitting in the inbox, one PDF per delivery, and in Sent, one purchase order per delivery.
So the onboarding is a batch, not a wait. Select last six months of the supplier's emails, forward them in one go to your address, and the series exists within the hour. Every attachment is a document, and documents are what the plans count: a history import of sixty invoices and four price lists uses sixty-four documents of the month's quota, which is why a buyer with a real history lands on the Standard or Pro plan straight away, and a buyer with one supplier and ten documents fits in Free.
- Forward the price lists first, oldest to newest, so each invoice has a list in force to be compared with.
- Forward the invoices, in any order; each is placed by its date against the list valid on that date.
- Forward credit notes and, if you have them, order confirmations, so a price that was corrected later is not reported as still open.
Matching is by item code within a supplier, never by description. In our validation set 335 of 442 lines carried a description that did not match the price list wording, so a history keyed on descriptions would split one item into three and never see the drift. Codes with suffixes such as 5116_1 are folded back onto their base code, with the price checked to confirm the fold.
What the digest reports
To track supplier price changes over time the reply has two speeds. An invoice against the price list in force gets an immediate reply per invoice. Drift across invoices, and price list against price list, come as a digest, because the finding only exists once several documents are on file. The digest opens with what was read and the completeness declaration for the whole series, for example fourteen invoices over six months compared, three not readable, with their numbers and amounts. Each invoice had to pass the arithmetic gate first, line sums equal to the printed total to the cent, before any of its lines was compared.
| Section | What it contains |
|---|---|
| Series read | Invoices and price lists by date, which list each invoice was compared with |
| Above list | Items billed above the list in force: first and last invoice, count, percent, euros |
| New normal | Items whose billed price a later list adopted, with the months in between |
| List to list | Items that rose between two lists, by percent; packs that shrank at the same price |
| Unmatched | Lines with no code in any list, with amounts; version conflicts on one invoice number |
Two rules shape the ranking. On invoices, differences are given in euros, because the invoice carries the quantity and the euro figure is real: one line at 17.75 percent over list in our set came to 47.76 on one delivery and ate 91 percent of that delivery's margin. Between two price lists there is no quantity, so items are ranked by percent and by novelty, not by euros; a 40 percent rise on an item bought once a year and a 2 percent rise on the weekly staple are different things, and the digest does not pretend to know which matters more to you.
The digest shows and does not judge. Freight lines are totalled and shown as a share of goods, without an opinion. A line where the list says 550cc and the invoice says 600ml at the same price is reported as a description difference, not as a shrink or a gift. Three versions of one invoice number with three totals are reported as a version conflict, not as three invoices. What the supplier announced in a letter is not a finding either; the finding is the line that rose more than the letter said.
Other ways to track supplier price changes over time
A spreadsheet or a purchasing system can also track supplier price changes over time. Both are paid for in maintenance rather than in licence fees, and the maintenance is the part that stops.
| Method | Setup | Per invoice | What it misses |
|---|---|---|---|
| Spreadsheet | Item list with codes and current price | Type every line, dated; never overwrite | Pack size; a list that changed; typing errors |
| Purchasing system | Load the price book, key each PO, book receipts | Match invoice to PO in the system | Whether the PO price was right; a list nobody loaded |
| Forwarded email | None | Forward the email | Photos of paper; a supplier who sends no list |
The spreadsheet is the honest baseline and most buyers we talk to have one. Its cost is visible in the published guides. A UK hospitality software blog reports kitchen managers spending ten to twenty hours a week on organising supplier data, and recommends daily monitoring for high-volume operations, which nobody with a spreadsheet does. The extraction vendor's guide puts manual entry error at one to four percent of lines and insists on an append-only table, because the moment a price is overwritten the history is gone. Both are vendors selling the alternative, so treat the figures as their claims; the direction is not in dispute. The spreadsheet is accurate for exactly as long as someone types every line of every invoice, and it stops being accurate the first busy week.
The purchasing system, an ERP or an AP tool with three-way matching, tracks price against the purchase order, and the purchase order price was keyed by you from the list you had at the time. If the list was never loaded, or the wrong column was loaded, the system matches perfectly and drift passes through. The system also needs each PO keyed in and each receipt booked; a distributor that emails its POs to the factory has done the work once already and does not want to do it again.
Forwarding the email is the third method, and it has its own limits, stated plainly. It reads PDFs and spreadsheets, not photographs of paper. It needs the supplier to have sent a price list at some point; with invoices alone it can report drift between invoices but cannot say which price was agreed. It does not pay, approve, or post anything. It is a check of an invoice against a price list that keeps its memory, and the memory is what turns a check into tracking.
简而言之
- Tracking needs months of history before it says anything useful
- It needs the history, not the months. Forward last six months of the supplier's emails in one batch and the series is complete within the hour. The reply on each new invoice is immediate once a price list is on file.
- A history import counts against the monthly document quota
- Yes. Every attachment forwarded is a document, and the plans count documents: 10 on Free, 100 on Standard at 29 euros, 500 on Pro at 79 euros. A large history is a sign of real volume, and a buyer with one costs the plan that fits it.
- A pack that shrank at the same price is not visible on invoices
- Correct, and that is why the digest compares price lists with each other. Invoices in our validation set did not print pack size; the lists did. The shrink in our chain was found list to list, not on an invoice.
- The digest reports drift between invoices even without a price list
- It reports the movement, dated and by code, and states that no list was on file to say which price was agreed. The unmatched section names what to forward to close the gap. A difference is shown, never judged.
Forward one invoice and the price list to your address, then the last six months in one go, and the first digest comes back with the series.