Skip to main contentSkip to footer

Independent expertise

ERP Advisory & Strategy When Does an Independent IFS Consultant Really Add Value? Sometimes the most valuable person on an ERP project is the one who isn’t…

Read more
Cover illustration for an article on below-cost sales orders in IFS Cloud

Independent IFS Cloud practice · Business process optimisation

Sales orders below cost in IFS Cloud: how margin shows on the order line, why a loss-making order gets through, and how to find it

A customer order line can carry a price below the cost of the part, and the pricing documentation describes no check that stops it. This article covers what the IFS Cloud documentation says about contribution margin, how a below-cost order comes about, how to find the lines already in your data, and how to design a check that catches the next one on the day it is entered.

Key takeaways

  • The documentation defines contribution margin as the difference between the sales price and the inventory value, calculated per sales unit and shown per unit, per order line and per order.
  • The Analyze Contribution Margin page states that the analysis is done manually by the user and has no system effects. It reports a margin, and it does not stop an order.
  • The pricing documentation says a manually entered price on a customer order line has the highest priority, and I found no comparison with cost.
  • In my practice, prevention means a margin rule, a scheduled measurement and routing of exceptions to the person who can change the price.

1.What is a below-cost order in IFS Cloud, and where does margin show?

A below-cost order is a customer order line whose net amount is lower than the cost of the goods on it, so the line has a negative contribution margin. The IFS Cloud documentation describes contribution margin on the Analyze Contribution Margin page: it is the difference between the sales price and the inventory value, calculated per sales unit, and the page shows it per unit, as a total per order line and as a total per order.

Customer discounts and the order discount are part of the calculation, and an Extra Discount field lets you test a further discount. The documentation pages I fetched do not name a Cost or Margin column on the Customer Order Line page, so I cannot give its exact label in 25R2 or 26R1. An IFS Community thread mentions a COST field on the line, but it is a user post, so check which fields your release exposes.

2.Why does a below-cost order get through?

A below-cost order gets through because the documented price entry and margin analysis include no stop. The Pricing page describes a source ladder for an order line (agreements excluded from auto-pricing, campaigns, agreements, price lists, the sales part price) and states that a manually entered price on the line has the highest priority. It describes no warning or block for a price below cost or below a margin threshold. That is a statement about the page, so test your own release.

Reading the documented pricing behaviour, I see these routes to a low or negative margin.

  • Manual price - a price typed on the line wins over every automatic source, according to the Pricing page.
  • Manual or stacked discount - a manually entered discount percentage overrides automatic discount fetching. With the multiple-discounts strategy set per site, up to two sources can apply to one line.
  • Stale price source - prices are tied to valid-from dates, and the Pricing page warns that prices retrieved by order date may be out of date today. The cost moves, and the price list or agreement may not.
  • Price effective date - with the Delivery Date pricing method and automatic update enabled, changing the wanted delivery date updates the price effective date after confirmation, and discounts are updated per the price sources. In my reading, this can also re-price the line, so test it on your configuration.
  • Frozen price - the documentation says Recalculate Price/Currency reruns the price logic, including the current valid price list, and is not available when Price Freeze is enabled on the line. So a frozen line cannot be recalculated after the list or the cost has moved.

The documentation I fetched does not say whether a cost change updates base prices, price lists or open order lines. In my view, assume it does not until you have tested your configuration.

3.How do you find lines sold below cost?

You find below-cost order lines by comparing the net amount of each open line with its total cost and listing the lines where the result is below your threshold.

Route What the documentation says
Contribution Margin analysis for one order Shows margin per unit, per line and per order, including customer and order discounts, with an Extra Discount what-if field. Manual, no system effects.
Business intelligence fact for customer order lines The 26R2 documentation page for the fact lists NET_AMOUNT_BASE, TOTAL_COST ("Total Cost in Base Curr CO Line") and measures such as Profit Margin %. Its Profit Margin Goal is described as "Hard coded to 0.1", a modelling default.

My illustration extends the documentation's quotation example (price 300, part cost 150, a 50% margin). Apply a 55% total discount and the net is 135, the contribution is minus 15 and the margin is about minus 11%. This is arithmetic, not system data, and the line looks like an ordinary discounted line until net is put next to cost.

Cut the list by price source: the BI fact exposes Price Source, Price Source ID and Price List No. If a cluster of lines shares one agreement, start with that agreement. If your release also records manual prices as a price source, which I could not confirm, a cluster there points to the entry process.

The cost figure needs care. A 2023 IFS Community thread, written by users with no IFS reply, says the line cost is an average of current inventory cost buckets and can disappear for a used-up lot under cost per lot batch. I treat that as a hypothesis to test. Write the cost basis into the report definition.

4.How do you fix a below-cost line that is already on an order?

You fix a below-cost line by first finding out which of the causes in section 2 produced it, because the correction differs. These are the levers; the first, second and fourth rest on the documentation, and the third is my advice.

  1. Stale price list or agreement. Correct the source. The Pricing page advises changing price lists, current and old ones, with great care, and it lets you enable review of base price updates so that lines wait in Planned status until reviewed. For expired agreements, see customer price agreement expiry.
  2. Recalculate the open line. Recalculate Price/Currency reruns the price logic and checks the current valid price list, and it requires a saved line with Price Freeze disabled. A frozen line needs a decision on whether the price is an agreed commitment.
  3. Manual price or discount. This is a commercial decision. Ask the account owner whether the price was intended and record the answer on the order.
  4. Price already confirmed to the customer. Changing it after confirmation has its own consequences, covered in orders changed after confirmation.

5.How do you stop the next one? (author's practice)

A below-cost order is stopped by a written margin rule, a scheduled comparison of net amount with total cost, and an owner for each exception. The approach below is my own practice, not an IFS procedure.

  1. Write the rule down. Decide what counts as an exception: below cost, below a floor margin by product group, or below a floor for a customer segment. Keep the cost basis in the definition.
  2. Name the deliberate cases. Free of Charge lines, samples and approved loss leaders get a recorded reason.
  3. Measure on a schedule. Compare net amount with total cost on every open line daily, and again after any change to a price list, agreement or cost set.
  4. Route to the person who can act. A line created from a manual price goes to the sales owner. A line created from a price source goes to whoever maintains that source. The argument is in exception routing instead of reporting.
  5. Review the order types. If lines pass release without a human stop, the check takes the place of that stop; see customer order types and the order flow.

One limit applies: the check shows a line is below your threshold, and the account owner decides whether the price was wrong. Measure the share of alerts that proved true and tune the rule on it.

The primary sources are the IFS Cloud documentation pages Analyze Contribution Margin (25R2) and Pricing (25R2). Check the pages for the release you run.

Book a 30-minute fit call See the SCM Automation Pack

6.Frequently asked questions

Does IFS Cloud stop me from selling below cost?

I found no statement in the IFS Cloud documentation that blocks or warns on a customer order line priced below cost. The Pricing page says a manually entered price on the line has the highest priority and describes no cost or margin check, and the Analyze Contribution Margin page says the analysis is done manually and has no system effects. Test your own release.

How is contribution margin defined on a customer order in IFS Cloud?

The documentation defines contribution margin as the difference between the sales price and the inventory value, calculated per sales unit. The Analyze Contribution Margin page shows it per unit, per order line and per order, includes customer discounts and the order discount, and offers an Extra Discount field to test a further discount.

Why did a line become below cost after the price list was correct?

Several documented behaviours can leave a line with an old price or change it after entry. Price Freeze makes Recalculate Price/Currency unavailable, a typed price has the highest priority, and under the Delivery Date pricing method with automatic update enabled, changing the wanted delivery date after confirmation updates the price effective date and the discounts.

Can I recalculate the price on an existing order line?

Yes, with conditions. The Recalculate Price/Currency activity reruns the price logic for the line, including a check of the current valid price list. The line must be saved and Price Freeze must be disabled. A recalculated price can differ from the original if the price list has changed.

7.About the author

Dariusz Myśliwiec brings 18 years of hands-on work with IFS (Apps 7.5–10 and IFS Cloud). IFS Certified Associate Consultant. PRINCE2® 7. Based in Kraków, delivering remotely across Europe and globally as an independent practice, so you talk to the consultant who builds it.

Selected clients: Fugro · LGC · BVI Medical · Betafence (PRÆSIDIAD) · Barlinek · NGK Ceramics · Newag · Oleofarm.

IFS is a registered trademark of IFS AB; this practice is not affiliated with IFS AB.

Agree a margin rule and an owner for below-cost lines

Tell me how your prices are set today: price lists, agreements, manual entry. On a 30-minute fit call we can agree a margin rule, a cost basis and an owner for each type of exception, so a below-cost order is seen on the day it is entered.

Book a 30-minute fit call

×
Need Expert Guidance?
We've helped hundreds of businesses succeed. Get a free consultation to discuss your project requirements.
Get Free Consultation
17Years Experience
50Implementations
PRINCE2Certified
100%Success Rate

ROI Calculator

Calculate your return on investment

Input Values

€
€
€

Results

Annual Savings
€ 0
Payback Period
0 months
ROI
0%
Monthly Savings
€ 0

Get Detailed Report

Enter your details to receive a detailed ROI report.