The On Time performance does not consider the tolerances mentioned in the receiving options.
The calculation is as below:
If (Receipt Date) < Need By Date - Early
If (Receipt Date) = Need By Date - On Time
If (Receipt Date) > Need By Date - Late.
When I was working with Oracle, there was a bug I remember logging which restricted the calculation to "Dates" only. Prior to this bug, even time was considered as a factor.
I am not aware, if any changes to this logic is done in 12.1.3 to include the tolerances, my information dates back to R 12.0.4.
Hope this helps.