Price optimization with rupio

More than dynamic pricing

Costs, competition and willingness to pay: rupio calculates the price from all three perspectives. Your rules set the limits. You approve.

The model calculatesRules set the limitsYou approve
Three perspectives, one rule chain

A good price answers three questions.

What does the price have to earn at least? Where does the market stand? And what are your customers willing to pay? Conventional dynamic pricing mostly follows competitor prices. rupio answers all three questions – in a rule chain you define.

Costs

Purchase price, markups and minimum margins: rules define what a price has to earn at least.

Competition

Competitor prices feed into your rules as a condition or an action – for example: cheapest competitor minus 3%.

Willingness to pay New

From your sales weeks, rupio estimates the price elasticity of every product and calculates the price with the highest contribution margin.

The problem

More revenue is not the same as more profit.

A product sells well – and its price can still be too low. Whether a price change pays off is shown not by revenue but by contribution margin. And the two often move in opposite directions.

Lower the price to 19.99
Revenue
+40,581
Contribution margin
−25,491

More volume – but every additional unit has to be bought in.

Raise the price to 29.49
Revenue
−33,703
Contribution margin
+4,846

Less volume – but the cost of goods falls faster than revenue.

Figures per year for the fictional example product in the simulator below (current price 24.99, purchase price 18.40).

Try it yourself

Less revenue, more contribution

The curve shows the contribution margin of an example product by price – estimated from its sales weeks. Drag the slider and see what a price change does.

Contribution curve of the example productContribution per year by price, with confidence band, observed weeks, promotional weeks, purchase price, current price, rule proposal, optimum and four competitor prices.020,00040,000Contribution per yearPurchase price 18.40Current 24.99Proposal 27.49Optimum 29.40Shop A 23.49Wholesaler B 26.99Shop C 28.49Marketplace D 32.99← Revenue optimum 11.00 – below purchase price182022242628303234Observed weeksPromotional week – not in the model
29.49

Price rule: 50% toward the optimum, rounding to .49/.99 → next run proposal: 27.49

Contribution effect · per year+4,846
Revenue effect
−33,703
Goods no longer bought
+38,549
Expected sales4,145per year · −33.6% vs. current price
Expected revenue122,234per year
Expected contribution45,967per year
Margin37.6%Purchase price 18.40

Fictional example. The figures illustrate the principle and are not a forecast for your range.

How it works

The model calculates. Rules set the limits. You approve.

1 · The model calculates

From your sales weeks, rupio estimates a price-demand curve for every product – and from it the price with the highest contribution margin. Promotional weeks and seasonality are factored out.

2 · Your rules set the limits

An elasticity rule in your rule chain moves the price toward the optimum – step by step or directly, on your price grid, optionally with volume protection. You set further limits with if-then and validation rules.

3 · You approve

Every run produces a price proposal. It is checked against your validation rules and approved as a whole – triggered manually, daily or weekly, whatever fits your workflow.

Guardrails

The algorithm only goes as far as you let it.

The elasticity rule is a rule like any other in rupio: it sits at a fixed position in your rule chain. Everything that follows can bound the price further.

Further limits – such as a minimum margin or the gap to the competition – are set up as if-then rules in the same rule chain.

Elasticity rule
Price50% toward the optimumrounded to.49 / .99
Volume protection
Sales may fall by at most10%
Validation rule
Never belowpurchase price × 1.05
Transparency

No black box: you see why a price is optimal.

Every figure in the simulator above exists in rupio for each of your products – together with the data it is based on.

  • Curve with confidence band: you see where the model stands on data and where it extrapolates.
  • Model quality per product: R², forecast error (MAPE), number of weeks and price points.
  • Data basis: share of own data and the comparison group, such as category × brand.
  • Promotions kept apart: promotional weeks from your promotion management do not enter the model – nor do the weeks right after.
  • Seasonal index of the category: shifts the expected quantity, not the elasticity.
  • Traceable rule decisions: for every price, the rule details show which limit applied.
In context

What dynamic pricing usually means – and what rupio does differently

Dynamic pricing usually means repricing: prices automatically follow the competition, often by the minute. That can work on some marketplaces. For many ranges in retail and wholesale, more than the competitor price counts.

DimensionConventional dynamic pricingrupio
BasisMostly competitor prices onlyAdvantage: Costs, competition and willingness to pay
CadenceOften by the minuteAdvantage: In your rhythm: manual, daily or weekly
ApprovalPrices often go live automaticallyAdvantage: Your team approves every price proposal
TraceabilityOften a black boxAdvantage: Rule details and model quality per product
Price changesMany small jumpsAdvantage: Step-by-step approach to the optimum
FAQ

Questions pricing teams ask first.

How much sales history does rupio need?
Weekly sales data – by default from at least 26 weeks and with at least two different prices outside of promotions. Monthly data is not enough: twelve values a year cannot be cleanly separated from seasonal effects. Where no estimate is possible for a product, rupio shows which condition is missing.
What happens with new products or little history?
Products with little history of their own lean more on a group of comparable products, for example category × brand. You can see the share of own data per product. If a product does not meet the minimum requirements, the elasticity rule sets no price – it passes through your other rules unchanged, and the curve of the comparison group serves as orientation.
How often can I change prices?
As often as your workflow requires: you trigger a price proposal manually or have it generated daily or weekly. A price only goes live after your approval.
Who approves the prices?
Your team. Every run produces a price proposal that is checked against your validation rules. Conspicuous prices are flagged, individual prices can be adjusted before approval, and the proposal is approved as a whole.
What if the optimum is above the competition?
The elasticity rule knows the demand curve of your product, not your competitors’ prices. You limit the gap to the competition with an if-then rule placed after the elasticity rule in the rule chain – for example: if the price is more than 5% above the cheapest competitor, it is capped there.
Does this work for B2B and B2C?
Yes. The model needs sales quantities and prices per week – whether you sell to business customers or to consumers makes no difference. You set up the price grid, minimum margins and approval process to fit your business.
How does the elasticity rule work with my existing rules?
It is one more rule type in your rule chain. It takes the price calculated so far, moves it toward the optimum and automatically uses the price grid of the rounding rule that follows. Rules after it – such as a minimum margin or a gap to the competition – bound the result further, and validation rules check it.
Book a demo

We’ll show you dynamic pricing on your own range.

In the demo you’ll see the elasticity analysis and the price rule in rupio – and we’ll discuss which data you need for it.

  • A no-obligation first call – no sales pitch, no contract pressure.
  • A reply within one business day.
  • Your data stays in the EU. Always.

More about rupio →

No obligation – a reply within one business day. No newsletter sign-up required.