5.3 Trade Agreements, Price/Discount Journals, and Smart Rounding

Key Takeaways

  • Trade agreements establish contractual pricing and discount rules across five relation types: Price, Line discount, Multiline discount, and Total discount for sales and procurement.
  • Pricing evaluation follows a strict 3x3 matrix of Account code (Table, Group, All) and Item code (Table, Group, All), where Table/Table is the most specific and All/All is universal.
  • Price/discount agreement journals provide the transactional mechanism to author, validate, mass-index, and post trade agreements into the operational PriceDiscTable repository.
  • The Find next parameter enables discount chaining and compounding across multiple hierarchy tiers; if disabled, search stops immediately upon the first matching agreement.
  • Smart rounding rules enforce psychological charm pricing ($X.99, $X.95) by applying mathematical rounding increments and syntax offsets during trade agreement mass updates.
Last updated: September 2026

5.3 Trade Agreements, Price/Discount Journals, and Smart Rounding

Quick Answer: Trade agreements in Microsoft Dynamics 365 Supply Chain Management (D365 SCM) govern contractual customer and vendor pricing, volume price breaks, and multi-tier discounts. Configured via Price/discount agreement journals, trade agreements resolve prices using a strict 3x3 matrix across Account codes (Table, Group, All) and Item codes (Table, Group, All). The search engine evaluates from most specific (Table/Table) to least specific (All/All). While prices stop searching upon the first valid match, discounts utilize the Find next parameter to chain and compound multiple discounts across hierarchy levels. Smart rounding rules automate psychological pricing (such as rounding calculated prices to end in .99 or .95).


1. Trade Agreement Architecture and Relation Types

Trade agreements override standard base prices and provide flexible discount structures across sales and purchasing operations via five distinct relation types:

Navigation Paths

  • Sales Trade Agreements: Sales and marketing > Prices and discounts > Price/discount agreement journals
  • Procurement Trade Agreements: Procurement and sourcing > Prices and discounts > Price/discount agreement journals
  • Activate Price/Discount Matrix: Sales and marketing > Setup > Prices and discounts > Activate price/discount
Relation TypeDirectionFunctional PurposeOrder Application Level
Price (sales)SalesDefines base selling price or quantity tiered volume breaks.Order Line Unit Price
Price (purch.)ProcurementDefines contracted vendor purchase price by quantity break.PO Line Unit Price
Line discountSales / Purch.Percentage or monetary discount applied to a specific item line.Single Order Line
Multiline discountSales / Purch.Discount triggered when combined items in a multiline group meet quantity thresholds.Order Line (Group Aggregated)
Total discountSales / Purch.Percentage discount applied across the entire order when gross order value exceeds a threshold.Order Header Summary

2. The 3x3 Account Code and Item Code Specificity Matrix

The D365 SCM pricing engine evaluates a 3x3 matrix combining Account code and Item code, resolving rules in strict priority order:

Priority TierAccount CodeItem CodeSpecificity DescriptionCommon Business Use Case
1 (Highest)TableTableSpecific Customer + Specific ItemDedicated contract price for a strategic client.
2TableGroupSpecific Customer + Item GroupSpecial client discount on an entire product category.
3TableAllSpecific Customer + All ItemsMaster agreement giving a client 5% off everything.
4GroupTablePrice Group + Specific ItemPromotional wholesale pricing on a high-volume SKU.
5GroupGroupPrice Group + Item GroupStandard wholesale discount on replacement parts.
6GroupAllPrice Group + All ItemsFlat distributor pricing across the full catalog.
7AllTableAll Customers + Specific ItemPublic promotional sale price for a new product.
8AllGroupAll Customers + Item GroupClearance discount on discontinued inventory items.
9 (Lowest)AllAllAll Customers + All ItemsUniversal storewide baseline discount or catalog markup.

[!IMPORTANT] Under Sales and marketing > Setup > Prices and discounts > Activate price/discount, consultants must explicitly enable the matrix combinations used. Unchecked combinations are skipped by the search engine, accelerating system performance.


3. Price/Discount Agreement Journals Lifecycle

Trade agreements are authored, validated, and posted through Price/discount agreement journals:

  1. Header Creation: Create a journal selecting a configured Journal name defining default relation types and number sequences.
  2. Line Entry: Specify relation type, Account code/relation, Item code/relation, product dimensions, quantity tier breaks (From / To Quantity), currency price or discount percentage, and validity date windows (From date / To date).
  3. Mass Revision Tools: The Select tool imports existing lines into the journal; Edit selected lines applies percentage price adjustments (e.g., +4%); Apply smart rounding enforces psychological price endings.
  4. Posting: Commits lines to PriceDiscTable. Posted lines become active and cannot be directly deleted; revisions require posting supersede lines.

4. The "Find Next" Parameter and Discount Compounding

While price searches stop immediately upon locating the first valid match, discount searches can evaluate multiple matching lines based on Find next:

  • Find next = No (Cleared): Search stops immediately after the first matching discount. Lower-tier discounts are ignored.
  • Find next = Yes (Enabled): Applies the current discount and continues searching down the hierarchy for additional matching discounts.

Compounding vs. Summing Discounts

Configured in Accounts receivable parameters (Prices > Discount calculation):

  • Compound Discounts: Applied successively to the reduced net amount: Net Price=Gross Price×(1d1)×(1d2)×\text{Net Price} = \text{Gross Price} \times (1 - d_1) \times (1 - d_2) \times \dots
  • Sum (Additive) Discounts: Percentages are added together: Net Price=Gross Price×[1(d1+d2+)]\text{Net Price} = \text{Gross Price} \times [1 - (d_1 + d_2 + \dots)]

Example: For Gross Price = $200.00, Discount 1 = 10% (Find next = Yes), Discount 2 = 5% (Find next = No). Under compounding, $$200.00 \times 0.90 = $180.00$, then $$180.00 \times 0.95 = $171.00$ net unit price.


5. Smart Rounding Rules: Psychological Pricing

Retail and distribution organizations utilize psychological pricing (charm pricing) to set prices ending in .99 or .95. In D365 SCM, this is automated via Smart rounding (Sales and marketing > Setup > Prices and discounts > Smart rounding).

Configured per currency, smart rounding rules define lower/upper limits, a rounding method (Nearest, Up, Down), a rounding unit (e.g., 1.00), and addition/subtraction syntax (e.g., subtract 0.01 to force .99 endings). Running Apply smart rounding in agreement journals automatically converts adjusted prices like $24.18 into $24.99.


6. Trade Agreement Evaluation Precedence and Base Price Fallback

When a sales order line is entered, D365 SCM resolves pricing through a structured five-step lifecycle:

  1. Trade Agreement Price Search: Evaluates the 3x3 matrix from Tier 1 (Table/Table) through Tier 9 (All/All). If an active price line is found, that price becomes the Unit Price.
  2. Base Sales Price Fallback: If no matching trade agreement price exists, the system pulls the Base sales price from the Released Product Sell FastTab.
  3. Line Discount Evaluation: Searches for Line Discount trade agreements using the 3x3 hierarchy, evaluating Find next to compound or terminate discount searches.
  4. Multiline Discount Evaluation: Aggregates all items on the order sharing the same Multiline discount group to evaluate group thresholds.
  5. Total Discount Evaluation: Evaluates the order net total against Total discount agreement tiers, applying order-level percentage reductions before invoicing.

Exam Tips and Common Traps

[!TIP] Exam Tip — Specificity Precedence: Whenever multiple price agreements match an order line, the most specific combination wins: Table/Table overrides Table/Group, which overrides Group/Group, which overrides All/All.

[!IMPORTANT] Exam Tip — Find Next on Prices vs. Discounts: The Find next parameter has no effect on Prices. D365 SCM stops searching the moment it finds the first valid price agreement. Find next operates exclusively on Discounts.

[!WARNING] Exam Trap — Product Dimensions in Trade Agreements: If a trade agreement is posted for a specific color (e.g., Red) but does not apply on orders, verify the Product dimension group. If For sales prices is unchecked on Color, the pricing engine ignores color during evaluation.

Loading diagram...
3x3 Trade Agreement Specificity Matrix and Evaluation Hierarchy
Test Your Knowledge

A nationwide wholesale distributor establishes pricing for an industrial solvent (Item SOL-100). The sales director configures the following pricing structure:

  1. Standard base sales price on released product: $50.00.
  2. Trade agreement line: Customer code = Group (Wholesale), Item code = Table (SOL-100), Price = $42.00.
  3. Trade agreement line: Customer code = Table (US-001), Item code = Table (SOL-100), Price = $38.00.
  4. Trade agreement line: Customer code = All, Item code = Table (SOL-100), Price = $48.00. Customer US-001 belongs to the Wholesale customer price group. When a sales order line is entered for Customer US-001 for Item SOL-100, which price does Dynamics 365 Supply Chain Management apply?

A
B
C
D
Test Your Knowledge

A company configures two trade agreement line discounts for a premium retail customer:

  1. Line discount 1: Customer code = Table, Item code = Table, Discount percentage = 10%, Find next = Yes.
  2. Line discount 2: Customer code = Group, Item code = Table, Discount percentage = 5%, Find next = No. The Accounts receivable parameters are configured with Discount calculation set to Compound. If a sales order line is entered with a gross price of $100.00, what is the final net price per unit calculated by Dynamics 365 Supply Chain Management?

A
B
C
D
Test Your Knowledge

A retail enterprise wants to implement psychological pricing so that any calculated sales price ending in a decimal value between .01 and .99 is automatically converted to end in .99 (for example, $24.15 becomes $24.99, and $104.50 becomes $104.99) when adjusting trade agreement journal lines. Which feature in Dynamics 365 Supply Chain Management provides this capability?

A
B
C
D