Competition Engine
Competition Engine supports various options for price calculation based on competitor prices (defined through the engine's Additional Configuration PP table).
Competitor price can be selected based on one of two approaches:
Competitor Position – Select one competitor to align the price with.
Min/max – Select a minimum/maximum available competitor price.
min + X / max - Y – Select minimum/maximum competitor price position and adjust it by the given value.
10%, 50%, 70% – Select the target competitor based on the provided percentage. The formula for the calculation is:
TargetCompetitorPosition = NumberOfCompetitors * Percentage
Price Position – Select a price at the given percentage point. A value of 0% matches the lowest competition price and value of 100% matches the highest competition price. The formula for calculation is:
Price = CompetitorMinPrice + (CompetitorMaxPrice - CompetitorMinPrice) * Percentage
Note: Competitor Position and Price Position cannot be used at the same time.
After the competitor price has been selected, the engine will find the corresponding competitor name if in the “Competitor Position” mode.
Then you can additionally "reposition" the price by:
Percentage – Modifies the price by a provided percentage. To make the price 5% cheaper, you use
-5%
; the same applies for a positive adjustment.Absolute value – Modifies the price by an absolute value. To make the price 10 units cheaper, you use
-10
; the same applies for a positive adjustment.
The engine supports Force Margin Check to verify that the selected competitor price is affordable. You can set values "Yes/No" in the table to turn the functionality on or off.
If the new competitor price is affordable after applying Force Margin Check, the engine will find the corresponding competitor name again and calculate the total of skipped competitors counting from the old competitor price to the new one. Finding the corresponding competitor name is not relevant for the “Price Position” mode. In such case, the lowest affordable price will override the current price if in range of available prices.
Note: Order of operations is:
Price calculation by selected mode
Margin check
Reposition
Input Parameters
Input | Type | Description |
---|---|---|
Competitor and Prices | List | List with prices and competitor name from competitors that should used for processing. |
Minimum Margin Price | BigDecimal | Price used for affordability check, nullable. |
Additional Engine Configuration
This engine needs an additional simple configuration Price Parameter where all Configuration Options are present as keys.
Configuration Option | Expected value | Description |
---|---|---|
Competitor Position | Allowed values:
| Selects the target competitor to compare to. Case insensitive. |
Price Position | Value in range: | Directly selects the competitor price based on the percentage provided and the range of competitor prices. |
Repositioning % | Value in range: | Adjusts the selected competitor price by the given percentage. |
Repositioning Abs | Absolute value. Can be negative. | Adjusts the selected competitor price by the given absolute value. |
Force Margin Check | Allowed values:
| Checks whether the selected competitor price is affordable based on Minimum Margin Price. If it is not, the next competitor price / affordable price is selected until an affordable price is found. If no such price is found, the exception is thrown. |
Relevant Competitors Definition
You can decide if you want to use all existing competition data, or if you want to define relevant competitors. Definition of relevant competitors can be done on the Lookup Key Level. We support definition of a list of competitors. You can decide if these competitors should be used or excluded.
You can define relevant competitors in PP “RelevantCompetitionData”. It has to be filled as followed:
Configuration Option | Expected Value | Description |
---|---|---|
Lookup Keys | Values of the Lookup Key | Keys in PP are the selected Lookup keys. |
Relevant Competitors | “yes” or “no” |
|
Competitor #1 … Competitor #29 | Name of Competitor | You can define up to 29 competitors to be considered as relevant or excluded. |
Default Strategy Calculation Parameters
COMPETITOR_PRICES (or RELEVANT_COMPETITOR_PRICES), MINIMUM_MARGIN_PRICE