Discount By Unit Price


I have a requirement for discount to be calculated as:

  • (unit sales price - discount) x quantity.

whereas Epicor calculates is as

  • (unit sales price * quantity) i discount

Essentially, I want to be able to quote a unit price for the discount.

I know this is possible in other ERP systems and wondered whether anyone had achieved it in Epicor, or is there a setting I have missed?



Well - after disbelief all round that it wasn’t a built in feature, you can do it in a post processing bpm on change unit quantity, but it’s messy & needs to be rolled through to quotes and price list inquiry.

It’s a feature request from me.

Do you need to store it as such? If not, it would be easy to alter the OrderAck report to display it the way you want.

The problem is the rounding causes different values with larger quantities.

For example 20 units of item A has an rrp of £1213.68 & a 40% discount applied.

Epicor calculates the price as (£1213.68 * 20) * 0.6 = £ 14,564.16.

However, I need round (1213.68 * 0.6), 2) * 20 = £ 14,564.20

The values differ due to where the rounding is applied, but I need to be able to quote the unit price with a discount applied.

Have you tried using a price list? If you have the base price already, create a price list for the base price minus the 40%. Then when you add the price to the order, it will already be discounted and the multiplication by the quantity should work.

1 Like


Yes we use price lists as well, but wanted to use the discount at customer level as it reduces the amount of price lists and general maintenance.

I am surprised it is not an option, as it is most ERP systems - e.g. Sage has the following feature:

Can you display the Discounted price with extended decimals?

Part    Description    Qty   Unit Price   Disc%  Disc Price   Ext Price
====    ===========    ===   ==========   =====  ==========   =========
WID-1   WIDGET LUBE     20      1213.58     40%     728.208   14,564.16‬

That shows the true discounted price, so when a customer does the math they see
20 x 728.208 = 14,564.16

instead of
20 x 728.21 = 14,564.16
(which is not 14,564.16)

Alas not - it needs to be to 2dp.


FYI - Enhancement Request Number PRB0223105 has been raised.




We are in the same boat. I see the absurdity of this now.

3 x 2 = 7. Trust us! It’s rounding! Yeah that’ll go over great.

So, @aclements I searched the PRB on EpicCare and cannot access it. Any updates? :crossed_fingers:

I’m afraid not - this is the last I heard on 23/04/2020

Hi Andrew
Enhancement Request Number PRB0223105 has been raised. Though I cannot provide you a Date with regards to when this might be accepted/Development would come back to us

OK thank you. I put in a ticket, asking to attach my case to your request. I hear that’s supposed to help, the more cases there are for the same thing.

Alas - it got pushed back by Epicorto quote

‘Development is not going to rewrite the rounding unless we have over whelming numbers of customers asking for it, and this has not happened.’

I didn’t think I was asking for a rewrite, just an enhancement to put Epicor in line with most other ERP systems out there - hey hum :cry:

I meant to say I have written a number of BPM’s to get around this, but they are very lengthy and fairly complicated.

I just saw this in company configuration. What are others using and does it work?
We are cloud, so we are on 10.2.600.7.

1 Like

We just tested this and it seems to work. We have not tested the last two options (rounding the discount).

Well - this was my test

  • Create Part ‘TestDisc’

  • Create a new price list and include ‘TestDisc’ part and give it a base price of £1213.88

  • Assign the price list to a test customer with a 40% discount

  • Create a sales order for the test customer with a discount of 40%

  • Create an order line for 20 * ‘TestDisc’

  • If the discount price were rounded, then the new unit price would be £728.21 and the line amount would be £ 14,564.20.

  • I tried ‘Round discount by unit price’ and got £14,564.16

  • I tried 'Round discount by extended amount and got £14,564.16

What I need is the unit price to be discounted by 40% and then rounded, so in this case the discounted unit price is 1213.68*0.6 = £728, 21 to 2dp and the overall discount is £9709.40.

If you have time, would you be able to test the above scenario in your test environment, as I would love to know how the above scenario works on 10.2.6, as this was tested on 10.2.5.



First off… Where do you get the 728.21 number from?

I get 14,566.56 regardless of the setting on Company Config.

1213.88 * 0.6 = 728.328

20 * 728.328 = 14566.56 (no rounding necessary)

Had the discounted unit price been rounded:

1213.88 * 0.6 = 728.328
Round(728.328,2) = 728.33
20 * 728.33 = 14566.60

Sorry, typo - I am using the price of 1213.68, which * 0.6 = 728.208

Just be clear- the requirement is to provide the customers with a price list to 2dp, based upon the discount.

It sounds trivial, but if the unit price and line price are different, even by a few pence, that is an issue.

At present this is done using a price list, discounted from RRP at 40%, but this becoming a maintenance headache.