Do not round pre-tax amounts#901
Merged
Conversation
When rounding the pre tax amount for VAT calculations, we run into rounding errors on creating the adjustment. Example: We want the tax amount for $16.00 at 19% VAT 16.00 / 1.19 = 13.4453 ~ 13.45 --> 2.55 VAT 13.45 * 1.19 = 16.0055 ~ 16.01 --> 2.56 VAT (wrong wrong wrong) Not rounding the pre tax amount fixes this rounding error. As usual with rounding, there will still be cases where this does not work, depending on how many digits our database stores. They will be much rarer, though. There is a failing test for this, but it's pending for a different reason (in the taxation integration spec, we have the aforementioned rounding error, but it doesn't show up because shipping rates are not tax adjusted because of a missing `contains?` check.
Member
|
👍 |
2 similar comments
Contributor
|
👍 |
Contributor
|
👍 |
Contributor
|
Yea, I had a chat with @jhawthorn about this IRL and I'm cool with it too. As hawth points out it more affects euro customers than it does NA, and I definitely want to start tracking more things unrounded so I am 👍. Thanks for pulling this bit out @mamhoff This should probably make it into a changelog entry though. |
cbrunsdon
added a commit
that referenced
this pull request
Feb 24, 2016
Do not round pre-tax amounts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When rounding the pre tax amount for VAT calculations,
we run into rounding errors on creating the adjustment.
Example: We want the tax amount for $16.00 at 19% VAT
16.00 / 1.19 = 13.4453 ~ 13.45 --> 2.55 VAT
13.45 * 1.19 = 16.0055 ~ 16.01 --> 2.56 VAT (wrong wrong wrong)
Not rounding the pre tax amount fixes this rounding error.
As usual with rounding, there will still be cases where this does
not work, depending on how many digits our database stores. They
will be much rarer, though.
There is a failing test for this, but it's pending for a different
reason - in the taxation integration spec, we have the aforementioned
rounding error, but it doesn't show up because shipping rates are not
tax adjusted because of a missing
contains?check.