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.

published pricingdistributors
Gross list price is the supplier’s published catalog price; net price is what you pay after the discount group, scale, and volume break come off that list; net-net cost is the true landed cost once further negotiated discounts, special pricing agreements, and rebates or back-margin are applied.

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

  1. 1
    Start 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.

  2. 2
    Rebuild 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.

  3. 3
    Apply 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.

  4. 4
    Reconcile 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.

  5. 5
    Diff 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.

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-agreement and glossary/credit-note-vs-debit-memo are 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). relatedSlugs is 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