[GNC] Invoice tax rouding issue in 2.x
Geert Janssens
geert.gnucash at kobaltwit.be
Wed May 23 04:46:15 EDT 2018
Op woensdag 23 mei 2018 03:11:26 CEST schreef Matthew Pounsett:
> I've got an off-by-a-cent error on an invoice due to the way taxes are
> calculated. GnuCash (2.6.21) is calculating the tax on each individual
> taxable item, then summing that up, and adding that value to the subtotal.
> This causes an error because each individual tax calculation is rounded
> prior to subtotalling.
>
> Given a tax rate of 13%, GnuCash is doing this:
>
> Item Tax
> 277.50 36.08
> 92.50 12.03
> Subtotal: 370.00 + 48.11 = 418.11
>
> When the real calculation should be:
>
> Item Tax
> 277.50 36.075
> 92.50 12.025
> Subtotal: 370.00 + 48.100 = 418.10
>
> This could be fixed by GnuCash not rounding tax amounts until the final
> total, but typically I believe the calculation done is to add up all the
> taxable items and apply the tax calculation to that subtotal, so that it's
> not necessary to track many decimal places to avoid a rounding error.
>
> I did some searching through the mailing lists and I see a lot of reported
> issues about rounding errors in GnuCash 2.x. I can work around this by
> putting in an extra line item to correct the taxes, but it would be nice
> not to have to do that. Is this something that's been fixed in 3.x? I've
> been avoiding the update because I haven't had time for a careful
> migration, and testing whether I'm affected by any of the various issues
> that have been reported since its release. But, this might be a reason to
> set that time aside.
The rounding issues are a known bug:
https://bugzilla.gnome.org/show_bug.cgi?id=502853
https://bugzilla.gnome.org/show_bug.cgi?id=504954
https://bugzilla.gnome.org/show_bug.cgi?id=520547
I once implemented a first fix to handle rounding as you are expecting it but
that immediately broke rounding in jurisdictions that have different rounding
rules. So that fix got reverted.
Nothing has changed in this area for gnucash 3 so until the above bugs are
fixed the only option is to add a tax correction line. What sometimes does
help is entering the amounts as tax included, though in your example it will
not work: gnucash doesn't accept 3 decimal places for currencies that normally
only have one so it would round anyway even before starting the calculation.
Regards,
Geert
More information about the gnucash-user
mailing list