Numeric Tolerance
This rule enables a tolerance for an absolute value difference between the field values.
For example, consider the following example:
In this case it looks like Data set 1 and Data set 2 use slightly different values for the "Rate" and "Equivalent Amount" fields. Perhaps they look-up the Rate at different times during the day.
Let's say that in this example the small discrepancy is acceptable and the records above should be considered as matching. One way to deal with this small difference in the value is to use a Numeric Tolerance rule so that Duco will match these records. In this case a value of 1 is sufficient.
The tolerance can be set to an integer or a decimal value.
For example, with a tolerance of "2" a value of 50 matches with any value between 48 and 52 (inclusive).
With a tolerance of "0.005" a value of "1.123" matches with any value between "1.118" and "1.128" (inclusive).
As you might expect, it is not possible to enter a negative value as a numeric tolerance, even in error, as Duco will alert you to the mistake.
Percentage tolerance
This rule enables you to set a tolerance for a percentage difference between the field values.
For example, consider the following example:
In this case it looks like the Data set 1 and Data set 2 use slightly different values for the "Rate" and "Equivalent Amount" fields. Perhaps they also look-up the Rate at different times during in the day.
Let's say that in this case example this small discrepancy is acceptable and that the records above should be considered as matching. One way to deal with this small differences is to use a percentage tolerance rule so that Duco will match these records. In this case a value of 0.01% is sufficient.
The tolerance can be set to an integer or a decimal value.
For example: With a tolerance of "2%" a value of "100" matches with any value between 98 and 102 (inclusive).
As per the numeric tolerance, it is not possible to enter a negative value as a tolerance.
Which side does Duco apply the percentage tolerance to?
Duco will check the values on both sides, and ensure the each side is within tolerance for the other. So say for example you had a percentage tolerance of 20% on an Amount column, the side with the larger value will have to be within 20% of the smaller value, and vice versa.
Let's imagine you have values of 40 and 50 on the left and right side, respectively. The tolerance then would have to be 25% in order to achieve a match because 20% of 40 is only 8. The same applies if 40 and 50 are flipped
For those mathematically inclined, the formula used is:
max(a,b) / min(a,b) - 1 except if either is zero
Numeric tolerance vs percentage tolerance
A Numeric Tolerance rule is similar to a Percentage Tolerance rule. Which one should you use?
Consider this example:
In the rate values for both trades there is a 1% difference, but the numeric difference is of 0.015 in the first trade (GBP-USD) and 0.901 in the second trade (GBP-INR).
Let's say we set up a numeric tolerance rule for the rate field with a tolerance of 0.95. This will cause Duco to match the first trade with trades where the rate is anywhere between 0.5421 and 2.4421
This tolerance might be fine for GBP-INR trades, but it's probably too much for GBP-USD trades. A percentage tolerance rule with a tolerance of 1% would be more appropriate in this case.
In conclusion, think carefully about the data that you are trying to match and the effect of the rules. If the results of the matching process are not what you expect, you might want to check your tolerance rules.