Constraints belong to each rule. There are no constraints shared by several rules yet: the Constraint matrix page
shows sample data only; see The Constraint matrix page.
Set a rule’s constraints
You need the Create rules or Edit rules permission.1
Open the rule
Open Pricing Intelligence > Repricer > Rules and click Edit rule on the rule, or create a new one.
2
Go to the Constraints step
Click Next until you reach Constraints, or pick it in the list of steps on the left.
3
Set the limits
Fill in the fields described below. Leave MIN PRICE, MAX PRICE and MAP empty to skip them, and set
MARGIN FLOOR to 0 for no margin floor.
4
Save the rule
Go to the review step and click Deploy rule →, or click Save rule. See
Review and deploy.
The fields
MIN PRICE, MAX PRICE and MAP are amounts in the currency of the rule’s output price level, including VAT.
The fields always show
PLN next to the amount, whatever that currency is. MIN PRICE cannot be higher than
MAX PRICE. One value applies to every product in the rule’s scope, so for a
scope with very different products, use several rules.
The order of the checks
For every price the strategy proposes, the repricer:- Blocks it if its margin is below MARGIN FLOOR.
- Blocks it if it is below MAP.
- Raises it to MIN PRICE if it is lower.
- Lowers it to MAX PRICE if it is higher.
- Rounds it down with PRICE ROUNDING, then down to the currency’s smallest unit.
- Checks again: blocks it if rounding took it below the margin floor or the MAP, and raises it back to MIN PRICE if rounding took it below.
Margin floor
The margin floor is margin on the selling price, net of VAT: “Minimum margin (net price vs net purchase price) — the rule blocks prices whose margin, (price − purchase price) ÷ price, falls below this threshold”. For example, with a purchase price of 80.00 net and a margin floor of 20%, the lowest net price the rule accepts is 80.00 ÷ (1 − 0.20) = 100.00. With 23% VAT, that is 123.00 gross; a proposed price of 119.99 gross is blocked.- Set it with the slider, from 0% to 50% in steps of 0.5. 0 means no margin floor.
- The floor must be below 100%: a 100% margin would need a purchase price of zero.
- To compare it with a gross price, Omnilinker uses the VAT rate of the product’s price at the output level. If that rate is unknown, the product is skipped.
MAP
The MAP constraint blocks any price below the amount you enter. Unlike MIN PRICE, it does not raise the price: a manufacturer’s minimum advertised price is a line the rule must not cross, so a price under it is held back for you to see. If both are set, put MIN PRICE at or above the MAP, so that prices raised to the minimum are not blocked.Min price, max price and rounding
MIN PRICE and MAX PRICE clamp the price: a price outside them is moved to the nearest limit. If no price can be stored between them in the currency’s smallest unit, the product is skipped. PRICE ROUNDING always rounds down:
The editor has no “no rounding” choice: a rule saved without rounding through the API opens with ×.99 endings
selected, and saving it in the editor keeps that choice. ×.99 endings does nothing in a currency without
fractions, and rounding never turns a price into zero.
Auto-apply guardrails
Two settings check every price an Auto-apply rule is about to write. A price that fails is rejected: it appears in the recommendation queue as rejected, with its reason, and is not written. When someone approves a recommendation by hand, the same checks only log a warning.
To change them, open Administration > Settings, choose Repricer > Guardrails and the Auto-apply guardrails
block, and click Save settings. You need the Repricer Settings permission.
These are the only automatic stops. There is no limit on how many prices a rule may change per hour, and a rule is
never paused automatically. Before you switch a rule to Auto-apply, try it with a
dry run and run it in Suggest mode for a while.
The Constraint matrix page
Pricing Intelligence > Repricer > Constraint matrix is a preview of constraints shared across brands, categories and products. Everything on it, including the brands, categories, contracts and coverage figures, is sample data, and its buttons do not save anything. It does not show or change your rules’ constraints. Set constraints in each rule, as described above.Troubleshooting
“Min price (…) cannot exceed max price (…).”
“Min price (…) cannot exceed max price (…).”
MIN PRICE is higher than MAX PRICE. Lower one or raise the other.
“Margin floor must be at least 0% and below 100% (got …)”
“Margin floor must be at least 0% and below 100% (got …)”
Set the margin floor below 100% with the slider.
“This rule's margin floor is …%, which no price can meet”
“This rule's margin floor is …%, which no price can meet”
The rule was saved with a margin floor of 100% or more. Move the slider to set a new floor, then save the rule.
Every recommendation is blocked by the margin floor
Every recommendation is blocked by the margin floor
Check that the products have purchase prices, in the same currency as the output price level. If you do not need a
margin floor, set it to 0. Open a blocked recommendation and use Show me why to see the reason; see
Recommendation queue.
Prices end lower than the strategy proposed
Prices end lower than the strategy proposed
Rounding always goes down, and MAX PRICE lowers prices above it. Check PRICE ROUNDING and MAX PRICE.
An Auto-apply rule leaves prices in the queue
An Auto-apply rule leaves prices in the queue
The change was larger than Auto-apply max delta percent, the price was below Auto-apply min absolute
price, or the margin floor failed when the price was about to be written. The recommendation shows the reason.
Rules and strategy templates
Build the rule these constraints belong to.
How repricing works
Where constraints fit in a rule run.
Purchase prices
The costs a margin floor is measured against.
Dry runs
See which prices a rule’s constraints would block.