Skip to Content
Q&A

Automatically Calculate the Selling Price Using Cost Plus Markup

Stop manually updating prices whenever your cost price changes.

Back to all Q&A
January 15, 2026 by
Automatically Calculate the Selling Price Using Cost Plus Markup
DAADit Group, Nick

You buy in products and want a fixed margin on them — say cost price × 1.35. As long as you track that by hand, every purchase price change means a round through the sales tab of all your products. With ten items that is annoying; with a thousand it is impossible. Odoo can make the selling price move automatically with the cost price.

A pricelist based on cost price

First activate pricelists in Sales → Configuration → Settings and select Advanced price rules there. Then, under Sales → Products → Pricelists, create a pricelist with a rule:

  • Based on: cost price (cost).
  • Toeslag: 35% — ofwel kostprijs × 1,35.
  • Apply to: all products, a category or one specific product.

Link that pricelist to the customer or to a customer segment (for example 'Resellers'). If the cost price on the product changes afterwards, Odoo automatically uses the new selling price on the next quotation. No more late-night Excel sessions after a price increase from your supplier.

Different margins per product category

In practice you rarely want a single margin across your whole range: accessories carry 60%, machines 20%. Don't create fifty separate pricelists for that; use several rules within one pricelist, each applied to a product category. One 'Standard sales' pricelist with three category rules is far easier to maintain than a jungle of little lists.

Beware: which cost price does Odoo use?

The calculation uses the Cost field (standard_price) on the product. If you use the AVCO or FIFO valuation method, Odoo updates that field automatically based on your receipts. If valuation is set to 'Standard Price', you have to keep the cost price up to date yourself — otherwise your neat margin formula is working with outdated figures. Rounding is set per price rule, for example rounding to €0.05 or ending in .95.

Finally

Practical tip: after setting this up, check your actual margins via Sales → Reporting → Sales with the measure 'Margin'. That quickly shows you whether the formula does what you intended. Need help with a smart pricing structure in Odoo? Contact DAADit Group.

You buy in products and want a fixed margin on top — say cost price × 1.35. As long as you maintain that by hand, every purchase price change means a tour past the sales tab of all your products. Annoying with ten items, impossible with a thousand. Odoo can make the selling price follow the cost price automatically.

A pricelist based on cost

First enable pricelists in Sales → Configuration → Settings and select Advanced price rules. Then, under Sales → Products → Pricelists, create a pricelist with a rule:

  • Based on: cost.
  • Markup: 35% — in other words, cost × 1.35.
  • Apply on: all products, a category, or one specific product.

Link that pricelist to the customer or to a customer segment (for example 'Resellers'). When the cost price on the product changes, Odoo automatically calculates with the new selling price on the next quotation. No more late-night Excel sessions after a supplier price increase.

Different margins per product category

In practice you rarely want one margin across your whole range: accessories carry 60%, machines 20%. Do not create fifty separate pricelists for that — use multiple rules within one pricelist, each applied to a product category. A single 'Standard sales' pricelist with three category rules is far easier to maintain than a forest of lists.

Watch out: which cost does Odoo use?

The calculation uses the Cost field (standard_price) on the product. If you use AVCO or FIFO valuation, Odoo updates that field automatically based on your receipts. With 'Standard Price' valuation, you have to keep the cost up to date yourself — otherwise your neat margin formula works with stale numbers. Rounding is set per price rule, for instance rounding to € 0.05 or ending in .95.

Wrapping up

Practical tip: after setting this up, verify your actual margins via Sales → Reporting → Sales with the 'Margin' measure. That quickly shows whether the formula does what you intended. Need help building a smart pricing structure in Odoo? Contact DAADit Group.

Question not answered?

Our Odoo consultants are happy to think along with you. Book a no-obligation intro call.

Book an appointment
Set Payment Terms by Customer
30 days for one, immediate for the other — without having to adjust each invoice manually.