Global Integration Services
Overview
testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttest |
test |
test | test |
Model N Price Protection is a mechanism used by manufacturers to provide compensation to channel partners when the DBC and MPP prices shift for parts they already have in stock or in backlog. The Model N Price Protection feature automates the process of analyzing the impact on the business as a result of DBC / MPP price changes. The Pricing Protection function analyzes price changes on inventory and backlog. After analysis, changes can be published for distributor notification and review. Model N Price Protection is a mechanism used by manufacturers to provide compensation to channel partners when the DBC and MPP prices shift for parts they already have in stock or in backlog.
When distributors or other channel partners have inventory on hand (or backlog) of parts on which the manufacturer lowers the DBC (Disti Book Cost) or MPP (Market Price Program) price, "Price Protection" ensures that the channel partners are compensated for the price reduction. This implies that the distributor’s inventory is re-priced by the manufacturer and they receive a credit for the delta between the original price that the distributor paid and the new price.
Similarly, when a distributor is enabled for “Reverse Price Protection”, a price increase of the book cost or MPP price results in the distributor’s inventory (plus backlog) being adjusted up to the new price – in this case, the manufacturer is protected.
When a distributor is “Price Protected” or “Reverse Price Protected”, then the distributors’ inventories (inventory buckets) are updated with the new prices – that is, the Current Price on each relevant inventory bucket is adjusted and a history record is added. (If the inventory bucket has already been partially consumed, then a new linked bucket is created with the new Price for the remaining available quantity – this is done to preserve the original price on what has already been sold to end customers.)
Process Flow
The following diagram captures how PPID is generated and the roles of a manufacturer/distributor/system in the process.
Notes:
- Nightly job is set up as part of the initial set up by the admin or implementation team. It runs daily irrespective of price change events on a day.
- The Price Protection nightly thread automatically creates a price protection record for any change in the price (DBC or MPP).
- If there are any price change events for a part, Model N application looks for any inventory for the part > extracts parts with Price Protection (PP) flag set to Yes > gets the distributor information from inventory bucket > validates if the distributor is eligible for PP or not > generates PPID records.
- If there already is a price protection record for the same effective date, the nightly thread updates the price protection record. Price analysis is run for all the parts whose CalcQOH>0 or ReqQOH>0.
- The price protection effective date will be DBC Effective Date-1. The date on which the price is effective is called Price Effective Date.
- PPIDs will not be created for DBC changes which satisfy any of the following conditions:
• The new DBC is null/0
• The effective date of the new DBC is before the price updated date
Prerequisites and Setup
Ensure you have the appropriate Properties and Capabilities enabled.
The following table lists the required Properties for Price Protection.
The following table lists the required Capabilities for Price Protection.
Capability Name | Capability Description | Release Version | User Types | User Roles |
---|---|---|---|---|
ManagePriceProtect |
This capability provides the ability to approve the price protection. Approved records will update the transactions (debits, backlogs and MPP) upon price protection nightly thread on the effective date. |
5.0 |
Mfr, Rep, Stocking Rep |
Marketing, Marketing Management, Finance |
OverridePPCreditQty | This capability enables the user to edit Credit Quantity even if system calculated eligible quantity is zero. Also, the value of Credit Quantity must be less than the maximum of either Calculated QOH or Reported QOH. | Spring 17 | Mfr, Rep, Stocking Rep | |
UpdatePriceProtect |
This capability allows you to edit Distributor Partner Setup for Price Protection and approve price protection. |
5.0 |
Mfr, Rep, Stocking Rep |
Finance, Marketing |
UpdatePriceProtectDetailInfo |
This capability allows you to edit Credit Quantity and Delta Price on Price Protection Detail page if the Price Protection is in between "Pending Inventory Update" and "Closed" status. |
8.3.1.1 |
Mfr, Rep, Stocking Rep |
Finance |
ViewPriceProtect |
This capability allows you to view all price protection screens. You can also respond to queries from ManagePriceProtect and UpdatePriceProtect users. This capability is appropriate for Distributor users. |
5.0 |
Distributors, Mfr, Rep, Stocking Rep |
Distributor Marketing, Distributor Sales, Distributor Opps, Finance, Marketing Management |
OverridePPCreditQty | This capability enables you to edit Credit Quantity even if system calculated eligible quantity is zero. Also, the value of Credit Quantity must be less than the maximum of either Calculated QOH or Reported QOH. | Spring 17 |
The Price Protection Setup page allows you to specify the price protection rules for distributors. You must have the UpdatePriceProtect or ManagePriceProtect capability to select the distributors eligible for price protection / reverse price protection and define a review cycle. The Price Protection Analysis is run against the inventory buckets which have Price Protect flag = True. The bucket price will be updated irrespective of the Price Protection option on the bucket. You can also search for a distributor on the page and specify the price protection rule.
Navigation: Chanel > Price Protection > Selected View > Setup
Columns and Description
Column Name | Description |
---|---|
Distributor | Name of the distributor. |
Price Protection Enabled | Whether the price protection is enabled for the distributor. |
Reverse Price Protection Enabled |
Whether the reverse price protection is enabled to the distributor. This field is only available when the “PriceProtectUp” property is set to true. |
Enable Price Protection At Root |
If selected the price protection will be triggered only for price changes at the root part. Only if the property EnableRootPartTransaction is set to true, the column Enable Price Protection At Root is available. For more information, see Price Protection for Root Parts. |
Review Period |
The review period is the window during which the Distributor can review a price protection adjustment after the new effective date. Please ensure that the Review Period is set. This is important as the Price Protection record's status changes to "Expired" only after the review period ends. |
Currency | The currency in which the PPID should be generated. |
Scenarios
PPID creation is triggered by the following scenarios:
1. Update in DBC or MPP
2. Price Protection for Regular Parts, Root Parts, or kits and bundles
3. PPID creation based on Property
Impact of the AutoApprovePriceProtection Property
DBC Changes
The following table describes the DBC changes due to the AutoApprovePriceProtection property:
AutoApprovePriceProtection=True | AutoApprovePriceProtection=False |
---|---|
PPIDs are created for DBC changes that have occurred after the previous run of Run Price Protection Analysis & Processing job irrespective of the price effective date of the DBC changes. |
PPIDs are created for DBC changes that have occurred after the previous run of Price Protection Analysis and Processing job and the price effective date of the DBC change is greater than or equal to job run date (current date) + 2. |
The PPIDs are automatically approved. | The PPIDs are created in Preparing status and they have to be manually approved. |
For the PPIDs created the price effective date is always equal to the price effective date of the DBC change. | For the PPIDs created the price effective date is always equal to the price effective date of the DBC change. |
MPP Changes
The following table describes the MPP changes due to the AutoApprovePriceProtection property:
AutoApprovePriceProtection=True | AutoApprovePriceProtection=False |
---|---|
PPIDs are created for MPP changes that have occurred after the previous run of Run Price Protection Analysis & Processing job irrespective of when the MPP is expiring. If MPP is modified after it is expired, then PPIDs will be not created for those changes. |
PPIDs are created for MPP changes that have occurred after the previous run of Price Protection Analysis and Processing job and the expiry date of the MPP is greater than job run date (current date) +2. |
The PPIDs are automatically approved. | The PPIDs are created in Preparing status and they have to be manually approved. |
For the PPIDs created the price effective date is always equal to greater between the following two dates:
The changes to the following fields are considered for PPIDs creation:
|
For the PPIDs created the price effective date is always equal to greater between the following two dates:
The changes to the following fields are considered for PPIDs creation:
|
Example 1: (When AutoApprovePriceProtection=False)
Let us consider a scenario where you have scheduled a nightly job prior to the midnight of GMT timings. Say, today is 2nd and you have made price change for three parts:
- Part 1 with Effective date as 3rd of the current month
- Part 2 with Effective date as 4th of the current month
- Part 3 with Effective date as 5th of the current month
Then the nightly job automatically picks Part 2 and Part 3 changes for price protection, as they are modified on 2nd and Effective date is > = (today + 2). However, Part 1 is not considered as its Effective date is less than (today + 2).
Example 2:
Lets us consider that DBC for part1 has changed today (5th Dec) with price effective date as 15th Dec. Price has changed from $10 to $9.
Now Price protection process is triggered on 5th Dec Night and price protection record is created with the effective date as 15th Dec 2017. (In DB its stored as 14th Dec).
On 14th Dec 2017, Transaction Update nightly process is executed and updates all the prices in transactions to $9 (i.e MPP, Debits and Backlog orders).
Impact of the RestrictCreationofPPIDsBasedOn Property
The PPIDs are created only for distributors associated with the pricing region on the updated price table. If the global price table is updated, the PPIDs are created for all distributors who are associated with the global pricing region. When an MPP is created with a distributor then the PPID is created/updated only for the distributor associated with the MPP.
The RestrictCreationofPPIDsBasedOn property determines whether the creation of PPIDs should be restricted based on the pricing region.
RestrictCreationofPPIDsBasedOn=None | RestrictCreationofPPIDsBasedOn=PricingRegion |
---|---|
If none is provided, the PPIDs are created for all distributors for a price effective date.
|
If PricingRegion is provided in the property, the creation of unnecessary PPIDs is restricted based on the Pricing Region. |
Price Protection for Root Parts
On the Price Protection Setup page, if you select Enable Price Protection At Root for specific distributors, the system runs price protection only for root parts in their inventory.
NOTE: Only if the property EnableRootPartTransaction is set to true, the column Enable Price Protection At Root is available.
If Enable Price Protection at Root is selected for a distributor, the price protection record (PPID) is created at the root part level. Any change in the DBC of a regular part does not generate a PPID.
NOTE: For price protection at root to execute effectively, DBC prices must not be in price tables for the linked parts.
On the Price Protection Summary page, when you click the PPID, the Price Protection Detail page opens. On this page, in the Root column, you can view the root part for which the PPID is created. You can click the icon to view the parts linked to the root.
For root parts, when Enable Price Protection At Root is selected, the Min of MPP or DBC is considered.
The difference in inventory amount=Difference in DBC/MPP * Total Inventory Quantity at Root
For regular parts, when Enable Price Protection At Root is not selected, the minimum value of MPP or DBC is considered as follows:
- For DBC, the Min of DBC of Part or DBC of Root
- For MPP, the Min of MPP of Part or MPP of Root
Irrespective of whether Enable Price Protection At Root is selected or not, price protection records are created for kits.
NOTE: Kits cannot contain root parts, but linked parts can derive prices from the root part they are associated with.
Reporting Inventory for Root Parts
If Enable Price Protection At Root is selected, distributors upload inventory at the root and linked parts. The inventory is then aggregated at the root part level.
The reported inventory of the root part is the sum of linked parts and the root part.
Calculated inventory is the sum of linked parts.
NOTE: If the inventory is reported at the part level and also at the root part level, the inventory is counted twice.
Price Protection for Kits and Bundles
For kits, when the price (DBC/MPP) for a component part changes, the nightly thread runs and the system checks if the part is associated with a kit. If the part is associated with a kit, the nightly thread creates a price protection record. If a record exists for the same effective date, the kit DBC is updated. For kits, the new effective date is the latest date on which the new DBC for the component part was updated.
NOTE: The nightly thread does not run on bundles.
Example
In this example, when DBC/MPP for part P1 changes, the system searches for kits made of part P1 and identifies Kit_123. Price protection runs for Kit_123.
The following table lists the component parts of Kit_123 and the quantity of each component part defined for this kit.
MPN | Quality |
---|---|
Kit_123 | N/A |
P1 | 1 |
P2 | 1 |
P3 | 1 |
In the Catalog module, on the Kitting Detail page, you can view the details of Kit_123 such as the kit component parts, quantity, product family, and so on.
On the 1st of January 2015, the manufacturer shipped three buckets for Kit_123 to the distributor ‘Disti’.
The following table lists the eligible quantity, DBC for Kit_123, and its component parts as on 1st January, 2015.
MPN | Eligible Quantity | DBC |
---|---|---|
Kit_123 | 100 | 12 |
P1 | 200 | 5 |
P2 | 50 | 4 |
P3 | 40 | 3 |
Where DBC of Kit_123=Sum of (DBC of a component part*Quantity of a component part defined for the kit)
DBC of Kit_123=5*1+4*1+3*1=12
On the 1st of March 2015, the DBC for P1 was updated from $5 to $4.
The following table lists the eligible quantity, DBC for Kit_123, and its component parts as on 1st of March, 2015.
MPN | Eligible Quantity | DBC |
---|---|---|
Kit_123 | 100 | 11 |
P1 | 200 | 4 |
P2 | 50 | 4 |
P3 | 40 | 3 |
New DBC of Kit_123=4*1+4*1+3*1=11
Updating Kit Price for Component Part Prices in Different Currencies
When kit components parts are in different currencies, the kit price is updated as follows:
- On the effective date, the kit component part price is converted to the base currency.
- On the maximum effective date, the total kit price is converted to the transaction currency of the distributor.
Example
In this example, the price of Kit_123 is recalculated when the exchange rates are modified.
The following table lists the component parts of Kit_123, the price table definitions for the parts, current and updated exchange rates, and the dates on which the exchange rate changes.
MPN | Price Table Definition | MPN Price | Current Exchange Rate | Effective Date for Exchange Rate | Updated New Exchange Rate |
---|---|---|---|---|---|
P1 | Vietnam | 100 Vietnamese Dongs | 12.00000000 | 10/5/2015 | 13.00000000 |
P2 | Yen | 50 Yens | 120.00000000 | 10/10/2015 | 130.00000000 |
P3 | GBP | 120 British Pounds | 1.20000000 | 10/15/2015 | 1.30000000 |
The exchange rates for Vietnamese Dong, Japanese Yens, and British Pounds change on 5th, 10th, and 15th October respectively.
The component part price is converted to the base currency (in dollars) on these dates as follows:
- On 5th of October 2015, P1 price=100*13.00000000=1300$
- On 10th of October 2015, P2 price=50*130.00000000=6500$
- On 15th of October 2015, P3 price=120*1.30000000=156$
As the transaction currency of the distributor is in Euros, on 15th of October, 2015 the price of Kit_123 is updated as follows:
Updated kit price=(1300+6500+156)*0.87460000=6958.3176 Euros
Where the exchange rate for Euro is 0.87460000.
PPID Detail Page
By clicking on the Price Protection ID, the distributor user can review the details (Price Protection Detail screen) and can either “Accept” the credit calculation (which sets the Price Protection process to “Accepted”) or can drill into the details of and request a review on one or more parts (which sets the Price Protection process to request marketing review and the red exclamation mark is displayed and an alert sent).
Search Filters
- Search by - search the price protection records using the search by filters:
- Product Family
- MPN
- Part Class
- Reported Date
- MPN -
- All - search all parts
- Impacted Parts - search parts which are impacted because of the price protection process.
Fields/Column Description
Column Name | Column Description |
---|---|
Price Effective Date | The date on which the price is effective |
Status | Status of the price protection |
Finalize Date | Date on which finalize action was performed on the price protection |
Credit Memo Invoice Number | Credit memo invoice number that was used in the ERP for making the payments. |
Credit Memo Amount |
Total payment amount for that Price Protection. |
Credit Memo Invoice Date | Date when the credit memo was invoiced. |
Click the icon to review part eligibility. For more information, see Distributor Review of the Price Protection. | |
The red exclamation mark means a Request Review was made for that item; a black checkmark means that the user has reviewed the request and made any adjustments. | |
Comments | Add/View comments for any MPN. You can view all the comments and comments can be only added/viewed when the status on PPID is "Pending Inventory Update" and "Closed". |
MPN | Manufacturer part number |
Class | The class name of the part |
Calculated QOH | Calculated QOH amount. |
Reported QOH | Reported QOH amount |
Reported Date | Date the distributor reported their inventory |
Adjusted QOD | Net Calc QOH after taking into account In-Transit inventory |
Prior Price | Price prior to the price change |
Average Price | The weighted average of eligible buckets based on current cost and available quantity. |
Current Price | The new effective price. |
Prior Price Source | Price Price based on MPP or effective DBC. |
Current Price Source | The agreement type (MPP or DBC) from the new effective price. |
Delta Price | Change in price calculated as Average Price- New price |
Freeze Delta Price? | Select to freeze the user entered delta price. |
Credit Quantity | Eligible Quantity for Price Protection. |
Freeze Credit Quantity? | Select to freeze the user entered credit quantity. |
Credit Adjustment | Credit adjustment amount |
NOTE: The “Freeze Delta Price?”, “Credit Quantity”, “Freeze Credit Quantity?”, and “Comments” fields become visible on the Price Protection Detail page when a record is in ‘Pending Inventory Update’ or ‘Closed’ status, and the user has the “UpdatePriceProtectDetailInfo” capability. It is recommended not to change the location of the Comments column.
Click the History Log link to view the status changes of a price protection record and modifications made to the items in the Price Protection Detail page. For more information, see Price Protection History Log.
Header Actions
Action Name | Description |
---|---|
Save | Save the modified details. |
Accept | Accept this entire price protection transaction. |
Review | Approve the price protection details. This icon is displayed only for the records in Expire or Open status. |
Return | Return the Price Protection Summary page. |
PPID Summary Page
The Price Protection Summary screen displays a record for each distributor involved and displays total price impact plus past price protection reviews.
Search Filters
- Search By - search the price protection record using the following search by filters:
- P.P.ID# - view price protection record of the specified price protection id number
- Distributor - view price protection records for the specified distributor
- Price Effective Date - view records of the specified price effective date
- Review End - view records of the specified review end date
- Credit Memo Invoice Number - view records of the specified credit memo invoice number
- Status - view records according to the selected status:
For more information about statuses, see Price Protection Statuses.
- Time - view price protection created within specific days such as 5, 15, 30, 180, 365 days.
- Distributor - view price protection records of the specified distributor.
Column Description
Column Name | Description |
---|---|
P.P.ID# | Price protection id number. |
Distributor | Name of the distributor |
Status | Status of the price protection |
Price Effective Date | The date on which the price is effective is called as Price Effective Date. |
Review End | The date by when the distributor should review the price protection. |
Finalize Date | Date on which finalize action was performed on the price protection |
Last Modified | Date on which the price protection record was last modified. |
Elig Inventory | Eligible inventory amount |
Adjustment | Adjustment amount |
Credit Memo # |
Credit memo number that was used in the ERP for making the payments. |
Credit Memo Invoice Date | Date when the credit memo was invoiced. |
Credit Memo Amount |
Total payment amount for that Price Protection Record. The currency of the credit memo amount is the same as the distributor currency. |
Click the History Log link to view the modifications made to the price protection record.
Price Protection Summary History page
A history record for the following actions are captured on the Price Protection Summary History page:
- Created
- Deleted
However, a user can view only the history records belonging to the PPIDs of assigned distributors (Primary and Assigned).
The following is a sample of the history log:
P.P.ID # |
When |
Who |
Text |
---|---|---|---|
PPID number |
Date and time |
User Name/Nightly Job |
Price Protection'[PPID]' for distributor '[distributor name]' effective on '[Date]' with review end date '[Date]' was [created/deleted] |
Navigation: Click Channel > Price Protection > click History Log link
Search Filters
- Search By...:
- P.P. ID #: Search the price protection record according to the specified PPID number.
- When: Search the price protection record by the specified date or time
- Who: Search the price protection record by the specified user name
- Text: Search the price protection record by the specified history text
Header Actions 
Action Name | Description |
---|---|
Open | Allows the ManagePriceProtect user to re-open any Price Protection that has expired and sets the Price Protection back to "Open" status. |
Close | Allows the ManagePriceProtect user to set any Price Protection that has expired to "Closed". |
Approve | Allows the ManagePriceProtect user to approve PPID records which are in preparing status. The price protection nightly thread will pick up approved records to update backlogs, debit, and MPP's. This button is only available when property AutoApprovePriceProtection is set to false. However, you cannot approve the PPI records earlier than the current date. |
Delete | Allows a ManagePriceProtect user to delete selected Price Protection transactions that are in Approved, Preparing, Expired or Closed status. |
Refresh | Refreshes the inventory and update the quantity in the Price Protect Record Detail page. This action button applies the price protection changes to the inventory buckets. |
Finalize | This action button applies the price protection changes to the inventory buckets. |
PPID Status
The following flow diagram depicts the chronological order in which PPID is initiated until it expires.
Status |
Description |
Action |
Preparing |
Status when the distributor user accepts the credit calculations. |
To approve, perform the following steps: Approving Pricing Protection Process:
|
Approved |
Status that occurs when you use the Approved button to approve the Price Protection records. Note that Price Protection nightly task will create the records only if the |
The price effective night-1 nightly job runs and picks the approved PPIDs. No user action is required in this step. |
Pending Inventory Update |
Status when the nightly task selects all approved records on a date prior to the effective date and before selecting the Finalize button. |
Manufacturer finalizes the PPID. |
Open | Status when the Finalized button is clicked for Price Protection records in PendingInventoryUpdate status to be opened. | By clicking on the Price Protection ID, the distributor user can review the details (Price Protection Detail screen) and can either “Accept” the credit calculation (which sets the Price Protection process to “Accepted”) or can drill into the details of and request a review on one or more parts (which sets the Price Protection process to request review and the red exclamation mark is displayed and an alert sent). |
Review Requested | The status when the Distributor user send the Price Protection records in "Open" status for review. | Manufacturer has to review and update the PPID. The manufacturer marks it reviewed. |
Reviewed | Status when the UpdatePriceProtect or ManagePriceProtect user has reviewed the requests. | Distributor has to take action and accept the calculations. |
Accepted | Status when the distributor user accepts the credit calculations. | Accepted PPIDS cannot be expired. System/Manufacturer closes the PPID once the payments are made. |
Closed | The status when the expired PP records can be closed using the Close button, leading to the Closed status for these records. |
A user must have UpdatePriceProtect or ManagePriceProtect to close, delete, or export price protection.
|
Expired | The status when the Price Protection records review period has ended. Once a PPID is Accepted by a Distributor, the status of the PPID will remain as Accepted. It will not change to Expired even after the Review End Date. |
No action required After the review period has ended, the status for a Price Protection record is “Expired”.
Credit information can be exported back to the back office systems for processing. Users can use ProLink for this function. Please see the related ProLink guide for additional information. |
Troubleshooting
1. PPID didn't pick MPP price change lower than DBC (RECHT-49500)
Resolution:
Check if custom hooks are stopping the PPID creation. Please check the following and make sure this returns null.
public PriceProtectionUtil.PriceTypeInfo setNewPriceTypeWhenNewPP(DbConnection dbConnection, PriceProtectionItem priceProtectionItem, PriceProtectionUtil.PriceTypeInfo priceTypeInfo, PriceProtectionUtil.PriceTypeInfo priceTypeInfo1){ inheritCOO(priceProtectionItem); return priceTypeInfo; }
You can also try this solution:
Change the value of the property PriceProtectionHook as pc.asset.EmptyPriceProtectionHook.
2. PPID was not created for DBC change (RECHT-45706)
Check if the DBC change happened at the root part level or MPN. Price change on MPN will not lead to PPID creation if in the disti setup, "at root" flag is set to yes.
3. Debit Price does not match the resale ship date after Price protection was updated to a new MPP (RECHT-45242)
Claim was rejected with an old ship date which had a valid MPP. This MPP was active until the new effective date of MPP. The Debit was linked to old MPP and new MPP debit did not match.
Resolution:
- Mandate receiving Claims prior to Price Effective Date to continue to use cost assignment Rule = DBC
- Change Cost Assignment Rule != DBC (Blended, Highest or Lowest) and then mandate receiving Claims between Price Effective Date and PPID Finalize Date