Price Rounding
Vendor prices can have more than two digits after decimal point (almost always it is so for consumption-based offers, but it can happen to the price of nearly any offer). When any markup is applied even for a price with just 2 decimals, there is a possibility to get a value with more than two digits after point as a result. In cases with multiple markups and currency exchange rates applied, this possibility increases.
The platform always performs all internal calculations with no rounding. Rounding is applied only on the last step, where the price is shown to the customer/saved to invoice due to a more understandable user interface (UI) and limited space on the invoice itself. Rounding of digits in customer-facing UI and on invoices may lead to a situation when an invoice contains Total Price which is not equal to Quantity*Unit Price. The platform uses this logic in exactly the same way as in Microsoft calculations.
Examples:
Example 1
Vendor Price for an Offer is 0.7528. In UI user sees the following:
Quantity | Unit Price (in UI) | Total Price (in UI) | Actual unit price in database | Formula to show total price on UI | Unit Price * Quantity |
1 | 0.75 | 0.75 | 0.7528 | ROUND (1*0.7528, 2) = 0.75 | 0.75 |
When the user changes the quantity to 7:
Quantity | Unit Price (in UI) | Total Price (in UI) | Actual unit price in database | Formula to show total price on UI | Unit Price * Quantity |
7 | 0.75 | 5.27 | 0.7528 | ROUND (7*0.7528, 2) = 5.27 | 5.25 |
Total price (5.27) is different from Unit Price * Quantity (5.25).
Example 2
Vendor Price is 3.69. Account manager buys 55 licenses for the customer and sets markup for the subscription = 3.472. So, unit price for the subscription is 3.69 * (1 + 3.472/100) = 3.8181168. Invoice has column Unit Price, and it should be in money format. So, for Unit Price in invoice rounding is applied, and this results to the next record:
Charge Type | Quantity | Unit Price (in UI) | Total Price (in UI) | Formula behind Unit Price | Formula behind total price | Quantity * Unit Price |
Purchase fee | 55 | 3.82 | 210.00 | ROUND (3.818117, 2) | ROUND (55*3.818117, 2) | 55 * 3.82 = 210.10 |
Total Price (210.00) is different from Unit Price * Quantity (210.10).
Add comment
Please sign in to leave a comment.