13.2 Sales Prices, Purchase Prices & Price Lists
Key Takeaways
- Dynamics 365 Business Central features a modern price calculation engine (Tables 7000/7001) that unifies sales prices, purchase prices, and line discounts into a structured document model.
- Price Lists operate under a three-state lifecycle: Draft (editable, non-operational), Active (operational and locked from casual edits), and Inactive (archived).
- Price List Headers establish commercial scope using Source Types: All Customers, Customer, Customer Price Group, and Campaign on sales; All Vendors and Vendor on purchases.
- Price List Lines define prices across multiple product asset types (Item, Resource, Resource Group, G/L Account) with volume-tiered Minimum Quantities.
- The Best Price calculation algorithm resolves candidate prices by evaluating validity dates, currency matches, quantity thresholds, and assigning the lowest unit price to the customer.
13.2 Sales Prices, Purchase Prices & Price Lists
Quick Summary: Dynamics 365 Business Central utilizes a unified Price Calculation Experience that consolidates sales prices, purchase prices, and line discounts into Sales Price Lists (Page 7000) and Purchase Price Lists (Page 7001). Governed by a three-phase lifecycle (Draft, Active, Inactive), price lists define prices and discounts across four product asset types: Items, Resources, Resource Groups, and G/L Accounts. When transactions are entered, the Best Price Calculation Engine evaluates dates, currencies, customer price groups, and quantity tiers to automatically deliver the most favorable price to the document line.
Evolution of Business Central Pricing: Legacy vs. Modern Architecture
Historically, Dynamics NAV and early Business Central versions managed pricing through separate, isolated tables:
- Legacy Pricing Tables:
Table 7002 Sales Price,Table 7004 Sales Line Discount,Table 7012 Purchase Price,Table 7014 Purchase Line Discount. - Limitations: Record-per-line maintenance with no header-level metadata, no approval or draft state, inability to manage prices and discounts in a unified view, and difficult developer extensibility.
Modern Pricing Architecture:
Feature Management -> "Feature Update: New sales pricing experience"
├── Page 7000: Sales Price Lists (Table 7000 Price List Header / Table 7001 Price List Line)
└── Page 7001: Purchase Price Lists (Table 7000 Price List Header / Table 7001 Price List Line)
The modern pricing experience replaces these legacy tables with a standardized document pattern. In Sales & Receivables Setup (Page 459) and Purchases & Payables Setup (Page 460), the Price Calculation Method field determines the active calculation engine (defaulting to Lowest Price, with support for custom AL extensions via the Price Calculation interface).
The Price List Lifecycle
To ensure pricing integrity, every Price List Header enforces strict operational status controls:
- Draft: The price list is under development. Pricing lines can be inserted, edited, imported via Excel, or deleted. The pricing calculation engine completely ignores draft price lists.
- Active: The price list is verified and operational. Business Central includes these lines in real-time document price resolution. To prevent accidental mid-day price changes, lines cannot be modified while Active; the status must first be reverted to Draft.
- Inactive: The price list is expired, cancelled, or archived. It is excluded from price lookup calculations.
Price List Headers: Scopes, Assignments & Control Flags
The Price List Header (Table 7000) specifies the commercial parameters and qualifying boundaries for a group of prices:
UI Navigation Path:
Tell Me (Alt+Q) -> Sales Price Lists (Page 7000) -> New
Tell Me (Alt+Q) -> Purchase Price Lists (Page 7001) -> New
Key Price List Header Attributes
| Header Attribute | Supported Values | Operational Role & Business Rules |
|---|---|---|
| Source Group | Customer, Vendor | Establishes whether the document is a sales or purchasing price list. |
| Source Type (Assign-to Type) | Sales: All Customers, Customer, Customer Price Group, Campaign<br/>Purchase: All Vendors, Vendor | Dictates which entities qualify for the price list. All Customers establishes a global baseline; Customer Price Group groups accounts sharing commercial agreements. |
| Source No. (Assign-to No.) | Code (links to Customer, Vendor, Price Group, or Campaign) | Identifies the specific entity or group code. Locked to blank when Source Type is All Customers or All Vendors. |
| Currency Code | Code (linked to Currency table) or Blank | Blank represents Local Currency (LCY). If a foreign currency is specified (e.g., EUR), the price list applies only to transactions in that specific currency. |
| Starting / Ending Date | Date Range | Establishes the exact promotional or contractual validity period evaluated against the document line's date. |
| Allow Line Disc. | Boolean (Yes / No) | Controls whether sales or purchase line discounts can be combined with the prices in this price list. If No, line discounts are suppressed. |
| Allow Invoice Disc. | Boolean (Yes / No) | Controls whether lines using this price list contribute toward invoice discount subtotal calculations. |
Price List Lines: Product Asset Types & Quantity Tiers
The lines of a Price List (Table 7001 Price List Line) define the specific commercial terms for individual products.
Supported Product Asset Types
Unlike legacy pricing which focused heavily on inventory items, modern price list lines support four distinct Asset Types:
- Item: Physical inventory and non-inventory goods.
- Resource: Individual labor, machinery, or consultant capacity billing.
- Resource Group: Broad labor categories (e.g.,
SENIOR CONSULTING,JUNIOR TECHNICIAN). - G/L Account: Direct financial charges, pass-through services, or disposal fees.
Line Qualification & Value Fields
- Asset No.: The specific item, resource, or G/L account code.
- Variant Code: Defines variant-specific pricing (e.g., color, packaging). Leaving this field blank applies the price to all variants.
- Unit of Measure Code: Specifies unit-specific pricing (e.g.,
PCSvs.BOXvs.PALLET). - Minimum Quantity: Establishes volume-tiered pricing. For example:
- Min Qty
1= Unit Price$100.00 - Min Qty
10= Unit Price$90.00 - Min Qty
50= Unit Price$75.00
- Min Qty
- Unit Price / Direct Unit Cost: The selling price or vendor cost per unit.
- Cost Factor / Markup %: Enables dynamic cost-plus pricing calculations.
- Price Type: Lines can define
Price,Discount, orBothwithin the same price list.
The Best Price Determination Algorithm & Priority Hierarchy
When an order processor enters an item on a sales order line, Business Central executes the Best Price Calculation Engine to identify and apply the correct price.
Best Price Calculation Engine Flow:
Step 1: Filter Active Price Lists (Status = Active, Starting Date <= Doc Date <= Ending Date)
│
▼
Step 2: Filter by Entity (Document Customer No. OR Customer Price Group OR All Customers)
│
▼
Step 3: Filter by Currency (Exact Document Currency match takes priority over LCY)
│
▼
Step 4: Filter by Product & Variant (Exact Variant Code match beats blank Variant)
│
▼
Step 5: Filter by Quantity Tier (Document Line Qty >= Price List Line Minimum Quantity)
│
▼
Step 6: Resolve Best Price -> Select the LOWEST Unit Price among all qualifying lines
The Lowest Price Rule & Specificity
Under the default Lowest Price calculation method, Business Central does not simply take the most specific customer price if a broader promotional price is cheaper. Instead:
- It filters all candidate lines that the customer is eligible to receive.
- Among all qualifying lines meeting the date, currency, variant, UOM, and minimum quantity criteria, the system selects the lowest unit price.
- If an organization requires that a contracted individual customer price strictly override a lower general promotional price, a custom price calculation algorithm can be implemented via AL extensions.
Step-by-Step UI Configuration Workflows
Workflow A: Enabling Modern Pricing and Setting the Calculation Method
- Press
Alt+Q, typeFeature Management, and verify that Feature Update: New sales pricing experience is enabled for all users. - Press
Alt+Q, typeSales & Receivables Setup, and expand the General FastTab. - Verify that Price Calculation Method is set to
Lowest Price. - Repeat in Purchases & Payables Setup to confirm procurement pricing behavior.
Workflow B: Creating a Tiered Customer Price Group Sales Price List
- Press
Alt+Q, typeCustomer Price Groups, and ensure groupDISTRIBexists. - Press
Alt+Q, typeSales Price Lists, and click New. - On the General FastTab, enter Description
Wholesale Tiered Pricing 2026. - Set Source Type to
Customer Price Group, and Source No. toDISTRIB. - Leave Currency Code blank for Local Currency, and set Starting Date to
2026-01-01. - On the Lines FastTab:
- Line 1: Asset Type
Item, Asset No.1000, Min Qty1, Unit Price100.00. - Line 2: Asset Type
Item, Asset No.1000, Min Qty25, Unit Price85.00. - Line 3: Asset Type
Item, Asset No.1000, Min Qty100, Unit Price70.00.
- Line 1: Asset Type
- Change the Status field on the header from
DrafttoActive.
Workflow C: Setting Up Promotional Campaign Pricing
- Press
Alt+Q, typeSales Price Lists, and click New. - Set Source Type to
Campaign, and Source No. toSUMMER2026. - Set Starting Date to
2026-06-01and Ending Date to2026-08-31. - Set Allow Line Disc. to
No(blocking additional line discounts during the campaign). - Add promotional items, unit prices, and set Status to
Active.
Common Pitfalls & Exam Traps
- Pitfall 1: Leaving Price Lists in Draft Status. The single most common implementation error is creating a price list and forgetting to change the Status to Active. Business Central silently ignores Draft price lists on sales and purchase orders.
- Pitfall 2: Currency Mismatch Causing Unexpected LCY Conversion. If a customer is invoiced in
EURbut the Price List is configured with a blank Currency Code (LCY), Business Central will take the LCY price and convert it using current Currency Exchange Rates, leading to floating foreign prices rather than fixed contractual amounts. - Pitfall 3: Assuming Minimum Quantity Aggregates Across Document Lines. Minimum quantity tiers evaluate per document line, not across the entire order. If an order has two separate lines of 15 units of Item 1000, neither line qualifies for a 25-unit minimum quantity discount tier.
- Pitfall 4: Neglecting the Allow Line Disc. Flag. If an enterprise sets up generous special net prices on a price list but forgets to set Allow Line Disc. to
No, customers may receive both the special net unit price and an additional customer discount group percentage, severely eroding profit margins.
A pricing specialist creates a new Sales Price List in Business Central using the modern price calculation experience. The price list includes promotional pricing for several retail items assigned to Customer Price Group 'RETAIL'. When sales representatives enter sales orders for retail customers, the items continue to pull standard unit prices rather than the new promotional prices. What is the most likely cause of this issue?
Customer 10000 belongs to Customer Price Group 'WHOLESALE'. Item 1000 has a base Unit Price of $100 on the Item Card. An active Sales Price List assigned to Customer Price Group 'WHOLESALE' defines a Unit Price of $85 for Item 1000. Another active Sales Price List assigned to 'All Customers' defines a promotional Unit Price of $75 for Item 1000 with no minimum quantity restrictions. Under the default 'Lowest Price' calculation method, which unit price does Business Central apply on a sales order line for Customer 10000?
A functional consultant is configuring price list lines in the modern Price Calculation Experience. Which product asset types can be added directly to Price List Lines to define commercial selling rates or purchasing costs?