The options for managing the display of decimals within Dynamics 365 Finance and Supply Chain should be carefully considered. As a best practice, you should always prefer to utilize the standard functionality for decimal precision.
In reviewing your options, please consider that using standard functionality eases your ability to test and accept future updates. Additionally, all areas of the business should be involved in the decision. What may save a few keystrokes in one area may actually cause issues in another, as extending the decimal places for pricing will display in all areas of the system.
Functional Approach to Decimal Precision
By default, the decimal precision displayed within Dynamics 365 Finance is 2. There is a standard Dynamics feature intended to accommodate the need for decimal precision greater than 2. In fact, the functional approach allows for any level of decimal precision.
On the released product is the Price quantity field. This field is intended to be used to specify the quantity for a specific price. By default, the price quantity is 1, but this can be adjusted on the released product details for the Purchase order price, Sales order price, and Cost price or on the Purchase order line, Sales order line, or invoice.
For example, the price of a bulb is $0.36263 each. To accommodate the need for 5 decimals, use a Price quantity of 1000 and enter the price as $362.63. (0.36263 x 1000 = 362.63 per 1000 bulbs). On the released product details, the Purchase price set up would look like this:
Notice that the item is still inventoried in individual units for each.
When entering a Purchase order for 1000 bulbs, the system will calculate as follows: (362.63/1000) x 1000 = 362.63.
Upon receipt of the material, the journal is posted to record the material receipt to the ledger appropriately.
In addition, when this item is used to produce other items, the cost calculation will also use the digits to the left of the decimal to appropriately calculate and then round the 2 digits to the right of the decimal. For example, if you consume this item in a Bill of material for 1005 finished items, the system will calculate as follows: 1005 x 362.63 = 364,443.15/1000 = 364.44.
Using this approach, the systems costing engine can function as designed.
Per Series and Process Quantity
In production, decimal precision beyond 4 decimals can be accommodated using the per series in the Bill of materials. Again, this allows for greater precision and more accurate calculations as the values to the left of the decimal are not rounded.
On the route, the Process quantity serves the same function, to allow for decimal precision by utilizing the process quantity. Since the vast majority of production runs are for a quantity that has historically proven to be most efficient, this is an effective means of also managing decimal precision.
By default, unit amounts including prices, line discount amounts, and line charge amounts are maintained with a maximum of two decimals.
If you require the ability to enter, maintain, and view unit amounts with a maximum precision of six decimal points, you must extend the decimal point precision of the UnitAmountCur, UnitAmountMST, and CostPriceNonMonetary extended data types.
If you require a decimal point precision of more than four, you should also extend the PriceRoundOff extended data type.
It should also be noted that you may need to modify external reports such as a purchase requisition or customer invoice to show the extended decimal precision and address potential rounding issues that may arise when converting back to the currencies’ native two decimal places.
Calculations and Rounding
Even after making the technical adjustments noted, prices may still display in certain areas at two digits. Consider the Unit price (PurchPrice) and Net amount (LineAmount) fields on the Purchase order lines. Even after modifying the EDTs behind these fields, 3 decimals will display on the form for both fields. However, the Net amount field will still round to 2 decimals. For example, entering a Unit price of 3.6263 with quantity of 1, the Net amount will appear as 3.630, and this value will also be saved in the PurchLine table as well.
Other Areas of Impact
The extent of this change should be very carefully considered as all areas interact so tightly. For instance, purchase order processing impacts budgeting, sales tax, charge calculations, and inventory. Similarly, dependencies exist for the sales processes and other modules. If the display of more than 2 decimals is required for purchasing, the impact of the information flowing through inventory and sales should also be considered.
Finally, consider the impact and desired display on reporting. Financial statements typically show whole numbers or 2 decimals.
If the Price quantity is utilized, it would be beneficial to add the Price quantity to the Purchase order and Sales order documents for visibility. Another option is to calculate and display the Unit price per each unit on the forms.
If the option to extend data types is chosen, the calculation of data and rounding should be carefully tested and validated.
In conclusion, if a decision is made to adjust the display of decimals, it should be agreed and consistent throughout the system. Each business process owner impacted should carefully test transactions, validate the results in ledge postings, and analyze the financial reports.
Have any questions about decimal precision in Dynamics 365? Please contact us at any time!
co-authored by Joan Bell and Rob Dowsett