FR EN DE ES IT

Presentation Guide — SRM Module
Supplier contracts & negotiated prices, and how they connect to the purchasing module (PMS)

Everything you need to understand and demonstrate, explained in plain language, with real examples from the demo database (supplier SHOP-PHARMACIE.FR, [MEDIC] products).

Prepared on 27 July 2026 · Demo environment: PWA gse-web-dev.xlexe.com → server demo.gse-web.online → login demo
📢 This guide is free to reuse Preparing an internal presentation of the module for your teams? Help yourself: the demo walkthrough, the worked examples and the answers to frequently asked questions in this guide are all at your disposal, with no restrictions. The demo environment (login demo) is public — you can replay every example in it.

1SRM in 2 minutes

SRM = Supplier Relationship Management. In practical terms, within GSE-Web, it is the module that stores the prices you have negotiated with your suppliers and applies them automatically when you place an order — then checks that the supplier actually honoured those prices at delivery and invoicing time.

The simple analogy Without SRM, it's like grocery shopping without a loyalty card: you pay the listed price, and nobody checks the receipt. With SRM, the application knows your negotiated price (the "loyalty card" signed with the supplier), applies it on its own when you order, and raises the alarm if the receipt (the invoice) doesn't match.

❌ Before (without SRM)

  • Negotiated prices sit dormant in a PDF or a spreadsheet nobody opens.
  • With every order, someone re-keys a price "from memory".
  • Nobody compares the invoice against the contract → price increases go unnoticed.
  • Year-end rebates (RFA) are tracked… or not.

✅ After (with SRM)

  • Contracts and price lists live in the application, dated and versioned.
  • The purchase order picks up the right price on its own (green badge).
  • Every gap between contract price and actual price is detected and logged.
  • Rebates (RFA) are tracked with a progress gauge and a year-end projection.
Where to find it in the application? In the side menu, a dedicated SRM section groups 5 entries:
📋 Supplier prices 📑 Supplier contracts 💶 Supplier rebates (RFA) ⚖️ Price discrepancies 🧮 Price simulation
It only appears if the user holds at least one of the rights SRM_TARIFS, SRM_CONTRATS or SRM_CONTROLE_ECARTS, and only on dedicated servers and the DEMO server (never on the shared www production — a sales argument: it's an ENTERPRISE-plan feature).

2Glossary for newcomers

The terms in the order you will meet them. Each definition is illustrated with a real piece of data visible in the demo database.

Framework agreement
An "umbrella" contract signed with a supplier for a given period (often the year). It sets the general rules: prices, discounts, free-shipping threshold, payment terms. Orders placed afterwards refer back to it. contract AC-SHOPPHARM-2026 "SHOP-PHARMACIE.FR 2026 framework agreement", valid from 1 January 2026 to 31 December 2026, status Active.
Express contract
A "mini-contract" created automatically by the application when prices are entered quickly with no formalities (the "Supplier prices" page). Ideal for small customers: no paperwork, just prices. It can be "promoted" to a full contract later. the Express contract "SHOP-PHARMACIE.FR prices (quick entry)" with a Doliprane price of €7.88.
Version / Amendment
Every contract has numbered versions. Version 1 is the original contract; the following ones are amendments (changes negotiated along the way). Golden rule: a signed version is never modified again — to change anything, you create an amendment. AC-SHOPPHARM-2026 has 3 versions: v1 signed on 5 January, v2 "Q2 2026 price revision" signed on 15 April, v3 still in draft.
Price list (grid)
A "bundle" of prices with a geographic scope (national, a specific store, a postcode zone, an entity) and a validity period. A contract can hold several price lists. AC-SHOPPHARM-2026 contains 3 price lists: "2026 national price list", "Store [MEDICAMENTS] P8 price list" and "Paris zone (75) price list".
Price line
ONE price line = a product + its negotiated price + its reference at the supplier + its validity dates. It is the module's basic building block. Efferalgan 1 g → supplier ref. SP-EFF-1G, gross price €2.18, from 1 January to 31 December 2026, family "Analgesics".
Volume tier
"The more I buy, the cheaper it gets." A tier says: from a given quantity upwards, apply either a reduced price or a % discount. Never both at once. Efferalgan: from 10 units → −2%, from 50 → −4%, from 100 → −6%. Spasfon: from 24 units → net price €3.60 (instead of €3.85).
Discount (order / family / logistics)
Reductions applied on top of the prices: order discount = % off the total if the order exceeds a threshold; family discount = % off every product in a catalogue family; logistics discount = a commercial gesture tied to transport/collection. AC-2026: −2% on any order ≥ €300; −1.5% on the "Analgesics" family; −1% logistics.
Free-shipping threshold (carriage paid)
The minimum order amount from which the supplier ships for free. Below it, shipping charges apply. AC-2026: free-shipping threshold at €250 — above €250 of order value, shipping is free.
RFA (year-end rebate)
A rebate the supplier pays back at the end of the period if you exceeded certain annual purchase volumes. It arrives off-invoice (usually as a credit note or bank transfer), which is why it never changes the value of your stock. "2026 framework agreement RFA": 1% rebate if annual revenue exceeds €10,000, 2% above €25,000, 3% above €50,000. The "2025 RFA" is closed: €1,250 actually received.
1-net / 2-net / 3-net (the "French cascade")
Buyers' jargon for "the price after each layer of discount": 1-net = gross price minus the line discount; 2-net = 1-net minus the volume tier; 3-net = 2-net minus the family discount. The RFA is sometimes called "the off-invoice 3-net". Full details in section 5.
Weighted average cost (French CUMP)
The accounting method that works out "how much one unit in stock is worth": on every goods receipt, the stock cost is recalculated as a weighted average of the old stock and the new receipt. The negotiated net price feeds the weighted average cost (WAC) at receiving time — this is where SRM and stock management meet.
Price discrepancy
The difference between the expected price (the contract's) and the observed price (on the delivery note or the invoice). Beyond the contract's tolerance, the application creates a discrepancy to be handled. Efferalgan expected at €2.09 (tier applied), invoiced €2.18 → discrepancy +4.31%, status "To handle": the tier discount was not applied by the supplier.
Discrepancy tolerance
The margin of error accepted before a discrepancy is raised (rounding pennies don't deserve a claim). Configured per contract. AC-2026: tolerance 2%; the emergency contract is stricter: 1.5%.
Commitment
What YOU promise the supplier in exchange for good prices: buying at least a certain quantity or amount over the period. The application tracks how much of the commitment has been consumed. AC-2026: commitment of €15,000 of purchases over the year.
Incoterm
An international 3-letter code stating who pays for and who is responsible for transport (e.g. DAP = delivered at place at the seller's expense, EXW = you collect the goods at the factory). Optional field, mostly useful for international trade.
PMS (purchasing module)
The GSE-Web module that handles purchase orders and goods receipts. SRM is its "pricing brain": PMS orders, SRM supplies the prices. Details in section 7.
DMS (document links)
The customer's document management system (SharePoint, Drive…). The module stores links to the contracts archived there — never the files themselves (a GDPR choice). Sole exception: the PDF of the signed version, which can be attached.

3How the data fits together

Everything starts from the supplier, and each level refines the one above. Remember: a contract contains versions, a version carries price lists, a price list contains price lines, and a line can have tiers.

🏢 SupplierSHOP-PHARMACIE.FR — the third-party record, enriched on the SRM side (sales contact Julie Perrin, "Preferred" segment, ordering e-mail)
📑 Contract / framework agreementAC-SHOPPHARM-2026 · type, status, dates, free-shipping threshold €250, tolerance 2%, commitment €15,000
📜 Version (immutable once signed)v1 signed 5 Jan → v2 amendment signed 15 Apr → v3 draft. Each signature freezes a "snapshot" of the prices (to compare v2 vs v1)
🗺️ Price list (scope + period)"2026 national price list" (everywhere) · "Store [MEDICAMENTS] P8 price list" (a single site) · "Paris zone (75) price list" (postcodes 75…)
💶 Price line (product × price × validity)Efferalgan 1 g · ref. SP-EFF-1G · €2.18 · Analgesics family · 1 Jan → 31 Dec 2026
📶 Volume tiers≥ 10 → −2% · ≥ 50 → −4% · ≥ 100 → −6%

And around this tree, 4 satellites:

  • Discounts (order / family / logistics) — attached to the contract or to the supplier alone;
  • RFA and its revenue tiers — attached to the contract, tracked in their own dashboard;
  • Price discrepancies — created automatically when receipts and invoices are checked;
  • Document links — the URLs pointing to the customer's DMS (signed contract, catalogue, terms of sale).

4Guided tour, screen by screen

The 5 pages of the SRM menu, in the best order to present them. For each page: what it is for, what you will see with the demo data, and the buttons that matter.

4.1 — "SRM: Supplier prices" (the simplest way in)

What it is for: entering and editing a supplier's negotiated prices in bulk, spreadsheet-style, without worrying about contracts. It's the "I just want to type in my prices" page.

How it works:

  • Pick a supplier in the Supplier drop-down → the table of its prices appears (columns: Reference, Label, Supplier ref., Gross price, Discount %, Family, Start, End, Tiers, Actions).
  • Click a cell to edit — the modified row is highlighted in amber, then a green Save (n) button.
  • Add a price: product search, supplier ref., price, dates. If no contract exists, the application automatically creates an Express contract — zero paperwork.
  • The "tiers" icon on each row opens volume tier management (minimum quantity → price OR discount, your choice, mutually exclusive).
  • The import/export icon at the top opens Excel import (XLSX): download an empty template or an export of the current prices, fill it in, re-import. Preview with a status per row (green = ready, orange = warning, red = blocking error).
Error-proofing subtlety worth mentioning Two prices for the same product cannot overlap in time: if you enter a new price starting later, the old one is automatically closed the day before (a blue message is shown — never silently). If the dates are incompatible, a blocking "Date overlap" message appears. The start date of an existing price is locked (read-only): price history is never rewritten.

With the demo data: select SHOP-PHARMACIE.FR → 15 prices appear (Efferalgan €2.18, Spasfon €3.85, Gaviscon €46.80 for the carton of 12…).

4.2 — "SRM: Supplier contracts" (the heart of the module)

What it is for: managing the full contract life cycle: creation, negotiation, signature, amendments, expiry.

The list

  • Filters by Status and by Supplier; + button to create a contract.
  • Each card shows the reference, the supplier, the type, the period, and two badges: statusDraft Negotiated Active Expired Terminated — and deadlineD-25 if ending within ≤ 30 days, orange ≤ 60 days, amber ≤ 90 days, Overdue if past. A red badge on the menu entry counts the contracts nearing expiry.

With the demo data, the list tells a complete story:

ContractTypeStatusWhat it illustrates
AC-SHOPPHARM-2026Framework agreementActiveThe living contract: 3 versions, 3 price lists, tiers, discounts, RFA, DMS links
CT-SHOPPHARM-URG-2026ContractActiveA second active contract with the same supplier (emergency products)
MN-PHARMA-2025National tenderExpiredThe history: RFA closed at €1,250, price list closed
CT-SHOPPHARM-2027ContractNegotiatedThe future: 2027 contract under negotiation, everything in draft
EXPRESS-11ExpressActiveThe contract auto-created by quick entry (can be promoted)

The contract detail: 4 tabs

  1. Info — all the terms (dates, free-shipping threshold, payment, commitment, tolerance) + contextual buttons: Edit (draft/negotiated only), Sign version n (green button), Create an amendment (if active), Promote to full contract (purple, if Express), and the "Document links" section (the DMS URLs — no files stored on our side, GDPR).
  2. Versions — the v1 → v2 → v3 timeline with statuses Signed Superseded Draft, the attachable signed PDF, and the "Compare with previous version" button which displays the table of price differences (Added / Removed / Changed).
  3. Price lists — the contract's price lists with their destination (National, Store, Zone, Entity) and status; Create a price list and Open the supplier's prices buttons.
  4. RFA — the contract's year-end rebate agreements (see 4.3), with a permanent blue banner reminding the golden rule: the RFA never affects the purchase price or the stock.
The rule to state during the demo "A signed version is immutable. Nobody games a signed contract: every change goes through an amendment, and the application keeps a snapshot of every version to compare." That is a very strong traceability/audit argument.

4.3 — "SRM: Supplier rebates (RFA)" (the rebate dashboard)

What it is for: tracking all ongoing year-end rebates at a glance: where the revenue stands, which tier has been reached, how much the rebate would pay.

  • Each RFA card shows: the period, the calculation basis ("Valued receipts" or "Delivered orders"), the cumulative revenue, the earned RFA (estimate), a gauge towards the next threshold, the current rate, and an end-of-period projection.
  • Filters: Ongoing only (default) / All.
  • Close button at the end of the period: you enter the amount actually received (pre-filled with the estimate) — comparing estimated vs actual is management control at work.

With the demo data: "2026 framework agreement RFA" Ongoing (tiers €10,000 → 1%, €25,000 → 2%, €50,000 → 3%) and "2025 RFA" Closed with €1,250 paid.

The accounting point everyone misses The RFA arrives off-invoice (credit note or transfer at year end). It therefore never reduces the purchase price of products or the stock value (weighted average cost). That is deliberate, and it is the correct accounting rule: otherwise you would value stock with a rebate you have not yet received.

4.4 — "SRM: Price discrepancies" (the invoice watchdog)

What it is for: listing every case where the supplier failed to honour the negotiated price, and logging the decision taken for each one.

  • Filters by status: To handle (default) · Accepted · Disputed · Settled · All. A red badge on the menu counts the discrepancies to handle.
  • Each card shows: the type (🚚 Receipt or 🧾 Invoice), the product, the order concerned, the expected price vs the observed price, the tolerance, and the discrepancy percentage — +4.31% in red if you overpaid, −5.00% in green if it went in your favour.
  • On a "To handle" discrepancy, 3 decision buttons (with an optional comment): Accept (let it through, e.g. a known T&Cs increase) · Dispute (claim against the supplier) · Settle (a credit note was received, case closed).
  • Header button Check an invoice: pick an order, enter the actually invoiced prices line by line, and the application compares against the contract → "n discrepancy(ies) detected" or "No discrepancy detected — the invoice honours the contract".

With the demo data: 10 discrepancies covering every case — 4 To handle (including "Tier discount not applied on the invoice"), 2 Accepted (including a negative discrepancy in our favour), 2 Disputed, 2 Settled ("Supplier credit note no. AV-2026-118 received").

4.5 — "SRM: Price simulation" (the perfect tool to OPEN your demo)

What it is for: answering the question "for this product, this quantity, this delivery site, on this date: what price would apply, and why?" — without creating anything, without risking anything.

  • You choose: product, supplier (those with a negotiated price are suggested first, with the contract mentioned), quantity, delivery store (or "None (national)"), date. Simulate button.
  • Result when a price exists: green badge ✓ Contract price or ✓ Contract price + volume tier, the price cascade (Gross price → Net price → Net price/stock unit), the traceability chips (scope applied, contract, supplier ref.), and above all the "Step-by-step explanation": a numbered list walking through every stage of the calculation in plain language.
  • Result when no price exists: orange card "No negotiated price" + the last known purchase price that would apply instead.
Why open the demo with this page It shows the ENTIRE engine of the module in a single click, in a visual and educational way, without navigating through the contracts. The "step-by-step explanation" does the talking for you.

5The price cascade, step by step

This is THE mechanism to understand. When the application looks for a price, it starts from the contract's gross price and applies the discounts in cascade, in a precise order. Buyers call it the "1-net, 2-net, 3-net".

Real example no. 1: Efferalgan 1 g, quantity 60, national delivery

Gross price (contract)
€2.18
the negotiated catalogue price
1-net: line discount
€2.18
0% on this line → unchanged
2-net: volume tier
€2.0928
60 ≥ 50 → the "−4%" tier applies
3-net: family discount
€2.0614
"Analgesics" family → −1.5%
Net price / stock unit
≈ €2.06
THIS is the price that goes on the order and feeds the stock (WAC)

Calculation: 2.18 × 0.96 (tier) × 0.985 (family) = €2.0614. At 60 units the line is worth ≈ €123.68 instead of €130.80 at gross price: €7 saved on a single line, with nobody calculating anything.

Real example no. 2: purchase units — Synthol sold by the carton

Some products are negotiated by the carton but stocked by the unit. The Synthol line says: purchase unit "Carton", coefficient 12, gross price €72.00 per carton.

The application converts on its own: €72.00 ÷ 12 = €6.00 per stock unit. That unit price is what appears on the order and values the stock. (Same logic for Gaviscon: €46.80 for the carton of 12 → €3.90 per unit, before discounts.)

Real example no. 3: a "net price" tier instead of a % discount

A tier can be expressed in two (mutually exclusive) ways: either "−x%", or "imposed net price". Spasfon (€3.85 gross) has net-price tiers: from 24 units → €3.60, from 96 → €3.40. The net price then replaces the current price (and the family discount still applies on top).

The 2 golden rules to remember (classic trick questions) 1️⃣ The order discount (e.g. −2% from €300) applies to the ORDER TOTAL, never to the unit price — so it never enters the stock value.
2️⃣ The RFA never enters the cascade or the weighted average cost: it is an off-invoice rebate, tracked separately.

6Which price wins? The specificity rule

The same product can have different prices depending on where it is delivered. When several price lists could apply, the rule is simple:

The most specific scope wins:
Store (3)  >  Postcode zone (2)  >  Entity (1)  >  National (0)

…and at equal specificity, the price with the most recent start date applies.

Illustrations with the demo data

ProductChosen deliveryPrice list selectedResult
Upsa Vitamine C 1000Store [MEDICAMENTS] P8 (Clermont-Fd)"Store [MEDICAMENTS] P8 price list"€4.80 Contract price
Upsa Vitamine C 1000Other store / nationalno price list covers itLast purchase price ⚠ Last price
Maxilase (ENT)MAIN store, Paris 75018"Paris zone (75) price list" — the postcode starts with 75€4.15 −2% line −2% ENT family ≈ €3.99
Efferalgan 1 gAnywhere"2026 national price list"€2.18 (+ tiers depending on quantity)
How to sell it in one sentence "You negotiate a national price, a special price for your biggest site, a price for the Paris region: the application picks the right price on its own based on the delivery store. Nobody needs to know the rules by heart."

7The link with the purchasing module (PMS)

SRM does not live in a vacuum: all its value shows in the purchase order page (purchasing module), then at goods receipt and invoice checking. The circuit is: PMS orders, SRM supplies the prices, receiving values the stock, checking verifies.

7.1 — In the "New purchase order" page

  • Supplier chosen line by line (multi-sourcing): a product can be ordered from any supplier. The selector shows first a green With negotiated price section (green ✓ icon) with the price and the contract reference, then the other suppliers (store icon); the usual supplier from the product record carries the "Product record" badge.
  • Price-source badge on every line — the user always sees where the price comes from:
    ✓ Contract price price from an SRM price line · ✓ Contract + tier a volume tier was applied · ⚠ Last price no negotiated price → last known purchase price (never silently!) · "manual" = price entered by hand.
  • Tapping the badge opens the detail: the full cascade (gross → net → net/stock unit) and the "step-by-step explanation" — total transparency on the calculation.
  • The quantity recalculates the price live: raise the Efferalgan quantity from 10 to 60 and the unit price drops on its own (the 50 tier kicks in). If the quantity is below the contractual minimum, a "Contract min.: n" warning appears.
  • Automatic order discount: in the totals, once the threshold is reached (e.g. €300 with SHOP-PHARMACIE.FR), the green "Order discount −2%" line is automatically deducted from the supplier total.
  • An amber 💰 icon can signal "A cheaper supplier exists for this line".

7.2 — At goods receipt, then at checking

  • Receipt: the net price of the order line is propagated to the stock entry → it feeds the weighted average cost (WAC). Stock is valued at the true negotiated price, not the catalogue price.
  • Automatic checking: after receipt, the application compares the observed price against the contract price as of the order date. Beyond the contract's tolerance → a discrepancy is created in the "Price discrepancies" page.
  • Invoice checking: when the invoice arrives, the "Check an invoice" button lets you enter the invoiced prices and detect billing discrepancies.
  • Full traceability: each order line remembers which price line was used, the gross price, the discount, and the price source. Months later, you can still justify a price.
Step in the circuitModuleWhat SRM doesDemo example
1. Order creationPMSResolves the negotiated price for each line (cascade + specificity)CF-2026-004: 4 lines, tier/contract/manual badges, order discount −2%
2. Goods receiptPMS/WMSPropagates the net price to the stock entry (WAC)CF-2026-005 Delivered: Spasfon received at €3.60
3. Receipt checkSRMCompares delivery-note price vs contract → discrepanciesGaviscon receipt discrepancy +10.16% Disputed
4. Invoice checkSRMCompares invoiced prices vs contract → discrepanciesEfferalgan invoice discrepancy +4.31% To handle

8The full workflow in 9 steps

The logical order in which the module is used, from negotiation to year end. (For a small customer in a hurry: steps 1 to 5 shrink to "type your prices into the quick grid" — the Express contract does the rest.)

  1. Create the contract — "Supplier contracts" page, + button. Supplier, reference, type (framework agreement…), dates, free-shipping threshold, tolerance, commitment. It is born as a Draft.
  2. Create the price list(s) — "Price lists" tab of the contract: scope (national / store / zone / entity) + validity period.
  3. Enter the price lines — "Supplier prices" page (spreadsheet editing) or XLSX import for large volumes. Supplier ref. is mandatory (it is the matching key against invoices).
  4. Add tiers and discounts — volume tiers per line; order / family / logistics discounts at contract level.
  5. Attach the signed PDF and sign the version — "Info" tab, green "Sign version n" button: the version becomes immutable, the contract turns Active. The prices now apply everywhere.
  6. Create the RFA agreement (optional) — "RFA" tab: revenue tiers → rebate rates. Tracking starts automatically.
  7. Order — purchasing module: prices resolve on their own (green badges), the order discount is deducted from the total.
  8. Receive — the net price values the stock (WAC); discrepancy checking runs automatically in the background.
  9. Handle discrepancies & live the contract — accept / dispute / settle discrepancies; check invoices; create amendments as prices evolve; watch the deadlines (D-30/60/90 badges); close the RFA at year end with the amount actually received.

9Suggested demo walkthrough (~15 min)

Before you start Open the PWA https://gse-web-dev.xlexe.com (it carries the latest version of the module), server demo.gse-web.online, login demo. Check that the "SRM" section shows in the side menu. All the data quoted below really exists in the demo database (inserted on 27 July 2026) — and the demo database resets every night at midnight while keeping it (it is part of the reference dump).
Step 1 · Price simulation — the hook (3 min)

Menu SRM → Price simulation. Enter: product EFFERALGAN-1G, supplier SHOP-PHARMACIE.FR, quantity 60, store "None (national)", today's date → Simulate.

Show: the green badge Contract price + volume tier, the €2.18 → ≈ €2.06 cascade, and above all unfold the "Step-by-step explanation".

Run the same simulation again with quantity 5: the tier disappears, the price goes back up. Guaranteed effect.

"Wondering what this product would cost you from this supplier, at this quantity, delivered to this site? The application answers and explains every step of the calculation. No rules to memorise."
Step 2 · Supplier contracts — the backbone (4 min)

Menu SRM → Supplier contracts. Let them read the list: an Active framework agreement, a 2025 contract Expired, a 2027 one Negotiated, an Express one — the whole life cycle visible at a glance.

Open AC-SHOPPHARM-2026 and tour the 4 tabs: Info (free-shipping threshold €250, tolerance 2%, commitment €15,000, DMS links), Versions (v1 signed → v2 amendment "Q2 price revision" → v3 draft; mention the "Sign version 3" button and the version comparison), Price lists (national + store P8 + zone 75 → a perfect transition to specificity), RFA (the 2026 agreement with its tiers).

"A signed contract becomes immutable: every change goes through an amendment, and you can compare two versions line by line. That is your audit trail in a dispute with the supplier."
Step 3 · Supplier prices — everyday data entry (2 min)

Menu SRM → Supplier prices, select SHOP-PHARMACIE.FR: the 15 prices appear like a spreadsheet. Change a discount to show the amber highlight and the "Save (1)" button (you can cancel without saving). Open the Efferalgan tiers (10/50/100). Show the XLSX Import/Export icon for large catalogues.

"For a customer who wants no formalities: they pick their supplier, type their prices, done. The application creates an 'express' contract behind the scenes, which can be promoted to a real contract later."
Step 4 · New purchase order — the magic on the purchasing side (3 min)

Go to the purchasing module, new purchase order. Search for "MEDIC" or "EFFERALGAN": the tiles already show an indicative price with a badge. Add Efferalgan to the basket, set quantity 60: Tier badge, unit price recalculated live. Tap the badge → the cascade is displayed. Add more [MEDIC] products to exceed €300: the green "Order discount −2%" line appears in the totals. Open a line's supplier selector to show the "With negotiated price" section.

You can also open the existing order CF-2026-004 (confirmed, delivery to store P8): its lines carry the traceability badges (tier / contract / manual).

"The buyer knows no contract, no rule: they pick a product and a quantity. The right price arrives on its own, and the badge always tells them where it comes from. Orange = no negotiated price, and we tell you so openly — never silently."
Step 5 · Price discrepancies — the watchdog (2 min)

Menu SRM → Price discrepancies. The "To handle" filter shows 4 discrepancies, including Efferalgan +4.31% "Tier discount not applied on the invoice". Click Dispute, add a comment, confirm: the discrepancy turns Disputed with your name and the date. Show the "Settled" filter ("Supplier credit note no. AV-2026-118 received") and the green −5% discrepancy (in our favour). Finish on the Check an invoice button.

"Every euro paid above the contract is detected, quantified and logged. Over a year, this is often the module that pays for itself."
Step 6 · RFA — the accounting cherry on top (1 min)

Menu SRM → Supplier rebates (RFA). Show the ongoing 2026 RFA (gauge towards €10,000, projection) and flip the filter to "All" for the 2025 RFA closed at €1,250 received.

"Year-end rebates are no longer a surprise: you always see where you stand, what it should pay out, and you compare the estimate against the amount actually paid. And the accounting stays clean: the RFA never touches the value of your stock."
Last-minute plan B If time runs short, do only steps 1, 4 and 5: simulation → order → discrepancies. That is the complete "the right price, applied, then verified" story in 8 minutes.

10FAQ — tricky questions and ready-made answers

"Why doesn't the RFA lower the price of my stock?"

Because it arrives off-invoice, at the end of the period, and only if the thresholds are reached. Folding a rebate you haven't yet earned into the stock would distort the valuation (weighted average cost) and the bottom line. The accounting rule is: stock is valued at the invoiced net price; the RFA is tracked separately — which is exactly what the module does (blue reminder banner on every RFA page).

"What happens if a product has no negotiated price?"

The application takes the last known purchase price and displays it with a ⚠ Last price badge. Never an invented price, never silence: the user always knows that this price is not contractual. (It's a global design rule in GSE-Web: no silent fallback.)

"Can a contract that's already signed be modified?"

No — and that's a feature, not a limitation. A signed version is immutable (audit trail). To change the prices: "Create an amendment" button → new draft version → edit the price lists → attach the PDF → sign. The application snapshots every version and can display the differences between any two versions.

"What exactly is an 'Express' contract?"

The contract auto-created when prices are entered in the quick grid without creating a contract first. It is immediately active (version 1 signed, national price list) so the prices apply straight away. When the customer grows, click "Promote to full contract" and you get all the formal structure (dates, free-shipping threshold, amendments…) without losing anything.

"On which servers / which plans is the module available?"

Dedicated servers and the DEMO server only — never the shared www production (same rule as the Training module). Plan-wise: the ENTERPRISE plan (dedicated server). Three rights govern access to the pages: SRM_TARIFS (prices + simulation), SRM_CONTRATS (contracts + RFA), SRM_CONTROLE_ECARTS (discrepancies) — plus an opt-in e-mail right for contract expiry alerts.

"How are contract deadlines handled?"

Three visual alert levels on the contract list: amber badge at D-90, orange at D-60, red at D-30 (then "Overdue"). A red badge on the menu entry counts the contracts expiring within ≤ 30 days. A daily e-mail can also notify users subscribed to the D-90 / D-60 / D-30 milestones.

"And if the supplier sells by the carton but we stock by the unit?"

The price line carries the purchase unit ("Carton"), the conversion coefficient (e.g. 12) and the price basis. The application converts automatically: €72 for the carton of 12 → €6 per stock unit. Orders and stock always speak in stock units.

"Are the contract documents stored inside GSE-Web?"

No, by GDPR/liability choice: the module stores links to the customer's DMS (SharePoint, Drive…). Sole exception: the PDF of the signed version can be attached (secure storage outside the web root, authenticated access). The pitch: "your contracts stay with you".

"What happens if two prices overlap in time?"

That is forbidden and checked at entry time: either the application automatically closes the old price the day before the new one starts (with an explicit message), or it blocks with "Date overlap". At any point in time there is only one valid price per product and per price list — and the history stays intact.

"Must a product be tied to a single supplier?"

No: that's the whole point of multi-sourcing. The supplier on the product record is just a default; on the order, each line can go to a different supplier, and the selector highlights those with a negotiated price (with the price and the contract displayed).