Gross List, Net, Net-Net: Reading a Distribution Price
A distribution price has layers - gross list, net, and net-net. Learn how each level is built and why an invoice billed at the wrong one still passes matching.
A distribution price is not a single number — it is a stack, and reading an invoice means knowing which layer you are looking at. At the top sits the gross list price (German Bruttopreisliste), the published catalog figure before anyone’s contract touches it. Come down one level and you reach the net price (Nettopreisliste), the figure after your discount group, discount scale, and any volume break. One level further is the net-net cost: the real landed cost after additional negotiated discounts, special pricing agreements, and rebates or back-margin. An invoice is wrong whenever a line is billed at the wrong level of this stack — at list when net was agreed, at net when a rebate should apply — or when earned back-margin is never credited. The arithmetic on the line still reconciles, which is why the error survives matching.
What each price level means
The three levels are built in sequence, each one subtracting something from the level above it. The standard list price on the supplier’s catalog is the starting point every contract negotiates down from. The first step off it is the discount group rate — a percentage tied to a family of articles — followed by any discount-scale step the order quantity or value earns. What remains is the net price. Beyond that, buyers negotiate further: an extra discount on a strategic line, a project price, support funded through a special pricing agreement, and a rebate or back-margin returned on aggregate volume. Strip all of those out and you have the net-net cost — what the article actually cost you once every lever is accounted for.
| Price level | What it is | What comes off to reach the next level |
|---|---|---|
| Gross list price (Bruttopreisliste) | Published catalog price, before any contract | Discount group rate and discount scale |
| Net price (Nettopreisliste) | Price after the group discount and scale / volume break | Negotiated discounts, special pricing agreements |
| Net-net cost | Landed cost after contract discounts and SPAs | Rebate / back-margin, settled periodically |
| True cost paid | Net-net once rebates are actually credited | Nothing - this is the figure that matters |
Why the price stack breaks supplier invoices
The stack breaks because each level is stored as a separate record, and any one of them can drift while the rest look valid. A gross list can be updated without the discount being re-agreed; a special pricing agreement can lapse; a rebate can be earned and never claimed. The line math reconciles in every case — quantity times the billed net always ties out — so the fault is upstream of the arithmetic and three-way matching waves it through. The error surfaces later as invoice price variance, or not at all.
| Failure mode | Which level is wrong | Why it slips through |
|---|---|---|
| Line billed at gross list when a net contract exists | Gross list applied, net skipped | A valid catalog price - just the wrong level for this customer |
| Negotiated discount or project price not applied | Billed at net, should be net-net | The net figure is itself correct; the extra lever is missing |
| Special pricing agreement lapsed or not linked | SPA support dropped silently | No line flags a missing agreement; the net still computes |
| Rebate / back-margin earned but never credited | Net-net never realised | Settled off-invoice, so nothing on the document reveals the gap |
| Stale gross-list version priced against a current rate | Mismatched list and discount | Both inputs look valid when checked in isolation |
Of these, the uncredited rebate is the quietest and the most expensive: it is spend leakage that compounds every period, because the per-line price looked right and nobody rebuilt net-net. That is the same mechanism behind margin leakage in supplier price files — small, internally consistent errors that only a level-by-level recomputation catches.
Messy vs. trusted: reading the full price stack
| Before reading the full stack | After verifying every level |
|---|---|
| Invoice net accepted because the line math reconciles | Net recomputed from gross list minus the contracted group rate and scale |
| Net-net never calculated, so true cost is unknown | Net-net rebuilt from negotiated discounts, SPAs, and rebate agreements |
| Lapsed special pricing agreements go unnoticed | Every SPA checked against the lines it should price |
| Earned back-margin left unclaimed, period after period | Rebate accruals reconciled against actual purchases and credited |
| Wrong-level billing read as a vendor overcharge | The exact level at fault named before any dispute is opened |
Which price level to check when
- 1Start from the gross list version in force
Pin the gross-list version (and its price-list version) that applied on the order date. Every level below it is meaningless if the top of the stack is the wrong edition of the catalog.
- 2Rebuild the net price
Subtract the contracted discount-group rate and the scale step the order qualified for. A margin and markup calculator confirms the expected net and the margin it leaves in one pass, so you know whether the billed net is even the right net.
- 3Apply the net-net levers
Layer on any negotiated discount, project price, and special pricing agreement that covers the line. If a line is billed at net but an SPA should have priced it, the gap is here, not in the group rate.
- 4Reconcile the rebate and back-margin
Accrue the rebate the period’s volume earns and check it against what the supplier actually credited. This is the step that never appears on an invoice and the one most worth doing.
- 5Diff successive supplier files
Run a price list diff between the previous and current supplier file to catch a gross-list move or a reclassified article before it quietly changes the net level you pay.
Related
Glossary
Discount Groups in Industrial Distribution
The first step down from gross list to net - the Rabattgruppe rate and scale that build the net price.
Glossary
SPA: Special Pricing Agreements and Claims
The negotiated support and rebate layer between net and net-net, and the claims that recover it.
Glossary
Invoice Price Variance Explained
How an ERP decides a billed price is wrong - the variance a wrong-level price ultimately surfaces as.
Tool
Price List Diff
Compare an old and new supplier file to catch a changed gross list or reclassified article before it reaches an invoice.
Free tool
Margin and Markup Calculator
Recompute a net price from a gross list and a group rate, and see the margin that net leaves.
Playbook
Map Supplier Attributes to Your Schema
Map each supplier's list, groups, and rebate terms onto one canonical model so the price stack checks reuse across every feed.
FAQ
What is the difference between gross list, net, and net-net price?
Gross list price is the supplier’s published catalog price before any discount - the German Bruttopreisliste. Net price is what remains after the discount group, discount scale, and any volume break come off that list, which is why a published net catalog is called a Nettopreisliste. Net-net cost is the true landed cost after further negotiated or contract discounts, special pricing agreements, and rebates or back-margin are applied on top of the net. Each level is a step down the same stack, and an invoice can be billed correctly at one level and wrong at the next.
What is net-net cost in distribution?
Net-net cost is the real cost of an article after every discount and rebate has been accounted for, not just the ones that print on the invoice line. It starts from the net price - gross list minus the group and scale discounts - and then subtracts additional negotiated discounts, special pricing agreement support, and rebates or back-margin that are often settled after the fact. Because back-margin is paid periodically rather than shown per line, the invoice almost never displays net-net; you have to compute it from the contract to know what you actually paid.
How is a net price calculated from a gross list price?
Net equals the gross list price minus the contracted discount-group rate, with any discount-scale step applied on top for the quantity ordered. If a fitting lists at 100 and your contract gives its discount group 40 percent off, the net is 60; a volume break that lifts the rate to 43 percent for the quantity makes it 57. The supplier invoice usually shows only the computed net line, so you confirm it by recomputing net from the gross list and the contracted rate yourself. These figures are illustrative.
What is back-margin and why does it not show on the invoice?
Back-margin, also called a rebate, is money the supplier returns after sales are booked - typically a percentage of volume over a quarter or a year, settled by a credit note rather than a line discount. Because it is earned on aggregate volume and paid in arrears, it cannot be known at the moment a single invoice is cut, so it never appears on the invoice line. That is exactly why net-net cost is invisible on the invoice and has to be reconstructed from the rebate agreement and the period’s actual purchases.
Why can an invoice be billed at the wrong level of the price stack?
Each step down the stack is a separate record - the gross list version, the discount group and scale, the negotiated discount, the special pricing agreement, the rebate - and any one of them can be stale, missing, or misapplied while the others look valid. A line can be billed at gross list when net was agreed, at net when a special pricing agreement should have applied, or at net with a rebate that is never credited. The line arithmetic reconciles in every case, so three-way matching passes it and the error only surfaces when you rebuild the expected price level by level.
How does Claro help read a distribution price and verify net-net?
Claro resolves each billed article to one trusted catalog record and carries the full price stack for it - the gross list version, the discount group and scale, any negotiated discount, special pricing agreement, and rebate. It recomputes the expected net and net-net for every invoice line and flags where the billed figure sits at the wrong level or a rebate was never credited, naming the source of the delta. Your team then disputes only genuine errors and recovers back-margin that would otherwise leak, instead of accepting internally consistent invoices at face value.
REVIEW-NOTES
- No accuracy flags. This is a commercial / industrial-distribution concept, not an ERP-error piece. Per the brief, the appendix carries no ERP message number for the gross-list / net / net-net price stack, so none is cited. The price-stack model (gross list -> net via discount group and scale -> net-net via negotiated discounts, SPAs, and rebate / back-margin) is described ERP-neutrally. No invented statistics; the 100 -> 60 -> 57 and 40%/43% worked figures are labelled illustrative in FAQ Q3.
- Vocabulary used from the brief appendix only: gross list price (Bruttopreisliste), net price (Nettopreisliste), net-net cost, standard list price, discount group, discount scale, volume break / quantity break, rebate, back-margin, SPA / special pricing agreement, spend leakage.
- Deferred intra-cluster inline links (not a content error). The sibling glossary pages
glossary/special-pricing-agreementandglossary/credit-note-vs-debit-memoare created in this same batch but do not exist yet, so they appear in<Card>form only (JSX, not audit-checked) and carry no inline markdown link. When those siblings ship, add inline cross-links in the body and link back from them (brief Workflow step 6).relatedSlugsis intentionally omitted: one Related card points at a not-yet-existing sibling, and that field is audit-checked.
Claro
See how Claro handles this in production
This concept is one piece of keeping a catalog trusted. See how Claro resolves identity, enriches missing attributes, and validates every update before it reaches your PIM or ERP.
Learn more