Price list hygiene
Three years after go-live the price list grid has a few dozen rows. Nobody
remembers what aktion-herbst-2024 was for, two customer lists have no account,
and the colleague who knew which contract was renewed left in spring. No error
was ever thrown.
Price books rot in predictable ways. None of the symptoms below throws an error; they all quietly cost money or produce a price nobody can explain. This is the review loop that catches them.
The monthly pass: read the price list grid
Order Management › Prices › Price lists shows status, currency, net/gross, priority, default, account, validity and markets in one grid. Reading it across is the fastest audit in this area. You are looking for six things:
| Look for | Why it matters |
|---|---|
| A blank Net / gross | The stored amounts mean whatever a tenant setting says. State it. |
| A customer list with an empty Applies to | Every buyer in the shop is on that customer's prices right now. |
| A Validity window that closed | Either it should have been removed, or somebody's agreement silently ended. |
| Two active lists with the same scope and priority | A tie your tiebreak rule is quietly deciding. |
| More than one Default | There should be exactly one. |
| A list you cannot name the owner of | Lists with no owner never get reviewed. |
Ten minutes, once a month. It catches more than any report would.
The quarterly pass: expired and expiring
Two lists to produce, and both are commercial rather than technical:
Agreements ending in the next 90 days. Sort by validity. Each one is a renewal conversation that has to start before the date, not after, because on the day it lapses the customer pays list price and calls.
Lists that expired and were never cleaned up. Campaigns from three quarters ago, project lists for jobs that finished. They are harmless while expired, but they are noise, and noise is what makes the grid unreadable when you need it.
Entries that should not be there
Filter Order Management › Prices › Price entries and look for four patterns.
Prices of 0.00. Sort by unit price ascending. Zero is orderable. These come
from ERP exports of articles with no maintained price and they need to be deleted
or converted to On request, and the export filter needs fixing so they do not
return next month.
Entries for SKUs the catalogue no longer carries. An import never removes rows; it only adds and updates. So a discontinued article keeps its price forever. It is invisible in the shop, but it will show up in an export, in a punchout catalogue, and in the answer to "how many prices do we maintain".
Duplicate rungs. Two entries with the same SKU and the same From quantity in the same list. One of them is dead and nobody knows which.
Ladders without a rung at quantity 1. Small orders resolve to no price.
Ownership
Most price book rot is an ownership problem wearing a technical costume. Fix it in three decisions:
- Name an owner per list. Not "sales": a person. Put it in the list description field, which exists for exactly this.
- Decide where prices are made and stop editing them anywhere else. See Where your prices come from.
- Put the annual price round in a calendar, including the step where somebody decides what happens to each contract list. That step is skipped every year unless it has a name against it.
Keep the structure small
The number worth watching is how many lists you have.
Three lists is a structure you can hold in your head. Forty is an archive. Every list you add makes "why did this buyer get this price" one step longer to answer, and there is a point past which nobody attempts the answer at all: they override the price on the order, which is where margin leaves the business.
If the list count is growing, ask what each new one is for. Most of the time the requirement was segmentation, a validity window, or a priority change on a list that already existed.
A quarterly checklist
- Every list states net or gross
- Every customer list has an account and Logged-in buyers only
- Exactly one default list
- No two active lists share scope and priority
- Agreements expiring in 90 days are on someone's calendar
- Expired campaign and project lists are cleaned up or archived
- No entries priced
0.00 - No entries for discontinued SKUs
- No duplicate rungs; every ladder starts at quantity 1
- Foreign-currency lists reviewed against the EUR list
- Every list has a named owner
Next
- Check which price a buyer sees.
- Adjust a whole price list — the annual round.