{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-user-portal/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown","redocly_category":"User docs","owner":"MB"},"seo":{"title":"Norce User Documentation - How best-price evaluation works","description":"How Norce evaluates multiple price lists and returns the best price for a customer.","keywords":"Pricing, price list, best price, PriceListSeed, exclusive, company discount"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"how-best-price-evaluation-works"},"children":["How best-price evaluation works"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The fundamental rule in Norce pricing is simple: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["regardless of how a price list is connected to a customer or request, the best (lowest) price is always returned."]}," This page explains how Norce determines which price lists are eligible, how they compete, and what mechanisms can change that behavior."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"which-price-lists-are-eligible"},"children":["Which price lists are eligible?"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For any given API request, Norce collects all price lists that are allowed to participate in the evaluation:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Public price lists"]}," — included automatically for all requests to the application."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Customer price lists"]}," — price lists connected directly to the logged-in customer."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Company price lists"]}," — price lists connected to the company the customer belongs to."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["PriceListSeed"]}," — a list of specific price list IDs passed in the API call to explicitly include additional price lists, or to control exactly which ones should participate."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All of these are evaluated together. The lowest valid price across all eligible price lists is the one returned. Assortment is the union: a product is available if it appears in any of the eligible price lists."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Price list source"},"children":["Price list source"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"How it enters the evaluation"},"children":["How it enters the evaluation"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Public"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Automatically included for the application"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Customer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Linked to the customer in Norce"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Company"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Linked to the company in Norce"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["PriceListSeed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Passed explicitly in the API call"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-the-competition-works"},"children":["How the competition works"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All eligible price lists produce a price for each product, and Norce selects the lowest. This happens per product, not per price list — a customer can get the price from their agreement list for one product and the campaign price for another."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Type priority"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/user-portal/pricing/settings/price-list-types"},"children":["price list types"]}," with different priorities are configured, Norce evaluates the highest-priority group first. Only if that group produces no price does it fall through to the next group. Within a group, the lowest price still wins."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-pricelistseed"},"children":["The PriceListSeed"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Passing price list IDs via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PriceListSeed"]}," in an API call adds those price lists to the evaluation alongside public and customer/company lists. This is commonly used when additional context to the price evaluation is required, like showing outlet products, that can have special prices, or when a specific requirement is met for the customer that allows access to a specific price list."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/user-portal/pricing/use-case-pricelistseed"},"children":["Using PriceListSeed"]}," for practical setup guidance."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"disregard-public-price-lists"},"children":["Disregard public price lists"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When PriceListSeed is used in Norce API, disregard public price lists"]}," client setting (shortened in this document) changes behavior when price list IDs are passed via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PriceListSeed"]},". When enabled:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Public price lists are ignored (when seed is provided instead) — only the seeded price lists compete."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Products not on any of the seeded price lists are excluded from results."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This effectively turns PriceListSeed into a controlled context instead of an additive one."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"When this setting is ignored"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If a customer or company has an ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["exclusive"]}," price list, the Disregard public price lists setting has no effect — the exclusive price list always takes precedence. See below."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"exclusive-price-lists"},"children":["Exclusive price lists"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A price list connected to a customer or company can be marked as ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["exclusive"]},". An exclusive price list overrides the normal best-price evaluation for both price and assortment."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The rules are:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If a customer or company has at least one exclusive price list, ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["only"]}," those exclusive lists are used — all other eligible price lists (public, PriceListSeed, non-exclusive customer/company lists) are ignored."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Among multiple exclusive price lists belonging to the same customer or company, normal best-price logic applies."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If both the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["customer"]}," and the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["company"]}," have exclusive price lists, the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["company's"]}," exclusive price lists win — the customer's are ignored."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["An exclusive price list always overrides Disregard public price lists as well."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use exclusive price lists when a specific agreement must always apply, with no possibility of a campaign or public list undercutting or adding assortment outside the agreement."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"api-methods-and-how-they-differ"},"children":["API methods and how they differ"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Two commonly used API methods behave differently from the standard best-price evaluation:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"listproductsbycustomer"},"children":["ListProductsByCustomer"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns products connected to the logged-in customer's or company's price lists. The price returned is still the best price across all eligible lists, but the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["assortment is limited"]}," to only those products that appear on a customer- or company-connected price list."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If a customer price list contains one product from a category of ten, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ListProductsByCustomer"]}," returns only that one product — but at the same best price that ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ListProducts"]}," would return."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This changes ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["assortment"]},", not the pricing logic."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"listproductsbypricelist"},"children":["ListProductsByPriceList"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Returns products that exist on a specific price list (passed via PriceListSeed), and returns ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["that price list's price"]}," — not the overall best price. This is the one method where the best-price rule does not apply."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If a price list has a price of 120 SEK but the best price across all lists is 100 SEK, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ListProductsByPriceList"]}," returns 120 SEK."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This changes both ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["assortment and price"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"summary"},"children":["Summary"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Mechanism"},"children":["Mechanism"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Effect on price"},"children":["Effect on price"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Effect on assortment"},"children":["Effect on assortment"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Multiple public + customer/company lists"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Best (lowest) price wins"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Union of all assortments"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["PriceListSeed added"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Seeded lists join the competition"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Seeded assortment added"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Disregard public (+ PriceListSeed active)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Only seeded lists compete"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Only seeded assortment"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Exclusive customer price list"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Exclusive lists only"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Exclusive assortment only"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Exclusive company price list"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Company exclusive wins over customer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Company exclusive assortment"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Type priority configured"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Highest-priority group evaluated first"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No change"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["ListProductsByCustomer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Normal best-price"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Customer/company lists only"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["ListProductsByPriceList"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Specific price list's price"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Specific price list's assortment"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-topics"},"children":["Related topics"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/user-portal/pricing/introduction-price-lists"},"children":["Introduction to price lists"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/user-portal/pricing/price-list-inheritance"},"children":["Price list inheritance and population"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/user-portal/pricing/use-case-pricelistseed"},"children":["Using PriceListSeed"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/user-portal/pricing/settings/price-list-types"},"children":["Price list types and priority"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/user-portal/customers-companies/company-discount"},"children":["Company discounts"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Design: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/solution-portal/detailed-design/pricing-priorities"},"children":["Pricing priorities"]}]}]}]},"headings":[{"value":"How best-price evaluation works","id":"how-best-price-evaluation-works","depth":1},{"value":"Which price lists are eligible?","id":"which-price-lists-are-eligible","depth":2},{"value":"How the competition works","id":"how-the-competition-works","depth":2},{"value":"The PriceListSeed","id":"the-pricelistseed","depth":2},{"value":"Disregard public price lists","id":"disregard-public-price-lists","depth":2},{"value":"Exclusive price lists","id":"exclusive-price-lists","depth":2},{"value":"API methods and how they differ","id":"api-methods-and-how-they-differ","depth":2},{"value":"ListProductsByCustomer","id":"listproductsbycustomer","depth":3},{"value":"ListProductsByPriceList","id":"listproductsbypricelist","depth":3},{"value":"Summary","id":"summary","depth":2},{"value":"Related topics","id":"related-topics","depth":2}],"frontmatter":{"seo":{"title":"Norce User Documentation - How best-price evaluation works","description":"How Norce evaluates multiple price lists and returns the best price for a customer.","keywords":"Pricing, price list, best price, PriceListSeed, exclusive, company discount"},"metadata":{"redocly_category":"User docs","owner":"MB"}},"lastModified":"2026-07-03T11:57:13.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/user-portal/pricing/best-price-evaluation","userData":{"isAuthenticated":false,"teams":["anonymous"]}}