2 min read

What does the Maximum penny difference parameter do?

This post will describe the purpose of the General Ledger parameter ‘Maximum penny difference’. This is quite an important parameter, but its purpose is often not clearly understood. Hopefully this post will demystify it !

Suppose your company currency is EUR and you post the following journal


The voucher looks as follows


This is completely as could be expected and the voucher resembles the journal lines

However, now imagine we repeat the same posting, but with the difference that we specify that the posting is done in USD


Note the ‘Maximum penny difference’ parameter is set to 0.00


and the exchange rate is 117.56742


When posting the journal, AX throws the following error


As the error message indicates, there is an imbalance of 0.01 in the voucher

Now, let’s change the Maximum Penny difference parameter to 0.05


and then retry to post the journal. The journal was posted without an issue



If we go and have a look at the voucher we can now more clearly see why it was possible to post the journal after changing the Maximum penny difference parameter


The Amount in transaction currency column shows us the journal line amounts, eg. 49.50 and 99, but the ‘Amount’ column(company currency value) shows us the exchange adjusted value in the company currency.

Notice also, that the system has posted the 0.01 difference that previously caused the imbalance error on the ‘Penny difference in accounting currency’ account. (Note, the exact same principle applies for reporting currency, but for the clarity of the example it has been omitted it here)

So, this leads to the question – why is there an imbalance of 0.01 when posting the USD journal and not the EUR journal ?

The reason has to do with exchange rates difference and the rounding effects of this

Note firstly, the difference in the credit and debit columns

We have 2 credit entries of 58.20 in the account currency column- and normally if you multiply this with 2 to get the debit amount, you would expect to see 116.40EUR (58.20 x 2)


But, instead we see 116.39 (and the 0.01 added to this amount is equal to 116.40 and the voucher balances with debit and credit being equal). But, why is the debit amount to begin with 116.39 and not 116.40 ?

The reason for this can be found by looking at the exchange rate which has been applied, as displayed under the ‘Amount’ tab


The exchange rate here is displayed as 117.565656565657 which is the internal number AX uses. If we divide this rate with 100 and multiply it with 99 (117.565656565657 / 100 * 99) we get the following value, 116.39000000000043, eg. 116.39. This amount substracted from the credit totals of 116.40 gives the difference of 0.01 and hence is the reason why we need the Maximum penny difference parameter to ensure that debit and credits are equal so that we can post the journal without any problems.

If we don’t specify a ‘Maximum penny difference’ tolerance that we accept to be posted to the account specified for penny difference we can not post the journal as due to the debit amount being rounded downward, it’s sum will never be equal to the sum of the credit amounts.

The key concepts to keep in mind with regards to the Maximum penny difference parameter is hence

  1. The parameter is used in connection with foreign currency postings as these can cause rounding differences
  2. Each debit and credit line in a voucher are calculated individually line by line