Price Rounding

Appxite

Introduction

This article explains how price rounding works in the Platform and why Total Price may sometimes differ from Unit Price × Quantity on Invoices. Understanding price rounding will help you interpret Invoice line items correctly and explain discrepancies to Customers.

In this article:

Why price rounding is necessary

Vendor prices often have more than two decimal places, particularly for Usage-Based Products. When Markup is applied to prices, currency exchange rates are calculated, or multiple Markups are layered, the result frequently contains more than two decimal places.

For example:

  • A vendor price of 0.7528 EUR
  • After applying 3.472% Markup: 3.69 × (1 + 3.472/100) = 3.8181168 EUR

These extended decimal values need to be rounded for display purposes and Invoice generation.

How the Platform handles rounding

The Platform performs all internal calculations with no rounding to maintain accuracy. Rounding is applied only at the final step where prices are displayed to users or saved to Invoices.

Rounding logic:

  • Internal calculations: No rounding applied (full precision maintained)
  • User interface display: Prices rounded to 2 decimal places for readability
  • Invoice generation: Prices rounded to 2 decimal places due to space constraints and standard accounting practices

This rounding on the last step may lead to situations where an Invoice contains a Total Price that is not exactly equal to Quantity × Unit Price when calculated manually. The Platform uses this logic in exactly the same way as Microsoft calculations.

Price rounding 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).

Summary

The Platform maintains full precision for all internal price calculations without rounding, applying rounding only at the final step when displaying prices in the user interface or generating Invoices with 2 decimal places for readability and accounting standards. This may result in Invoice Total Prices that differ from manually calculated Unit Price × Quantity values. For example, a vendor price of 0.7528 EUR displays as 0.75 EUR but calculates Total Price for 7 units as 5.27 EUR (ROUND(7 × 0.7528, 2)) rather than 5.25 EUR (7 × 0.75). Similarly, with Markup applied, a Unit Price of 3.8181168 EUR displays as 3.82 EUR, but 55 Licenses calculate to 210.00 EUR Total Price (ROUND(55 × 3.8181168, 2)) rather than 210.10 EUR (55 × 3.82). The Platform uses the same rounding logic as Microsoft calculations to ensure consistency and accuracy.

Was this article helpful?

0 out of 0 found this helpful

Articles in this section

Add comment

Please sign in to leave a comment.