That is not how VAT usually works. To my knowledge (IANAL, but have coded quite a few systems to handle VAT) - VAT is always to be calculated on the total sum of an invoice (if you have different rates, you have to calculate one sum for every rate) - VAT is always rounded up. Example: > **This is simple:** So let´s say you have an item that costs just 7 cent´s. That makes 1.4 cent rounded to 2 cents of VAT. > > Now you have a customer ordering 100 of these for $7. The total VAT is > $1.40 > > You give a 10% discount to $6.30, VAT is $1.26. > -> Tax per piece would be 1.26 cent > > **But this:** Customer changes his order to 103 for $7.21. Tax would be $1.45 (1.442 rounded up) > > You give discount again $6.49. VAT is $1.30. Now if you calculate > $6.49 / 103 pcs * 20% you get tax per piece of 1.26019417475728 cent > > If you calculate $1.30 tax/ 103 pcs you get tax per piece of > 1.26621359223301 cent Makes for a total difference of **0.2 cents** already for the 103 pieces. So what is correct, 20% on the individual rebated price or the 1.26621359223301 cent out of the $1.30? Answer: Neither, **VAT is a transaction fee** - it is added to the value of the transaction (the invoice) not the item. You can try to calculate back the per-item VAT then as **a statistical value**, but it may not be exactly 20% anymore. Don´t get that mixed up or you will acquire a lot of rounding errors down the road. *As per comments, example of a groceries bill taxed 7% and plastic bag taxed 19%:* [![enter image description here][1]][1] *Notice how the 0.95... cents of tax for the plastic bag are rounded up to a full cent, and this full cent is owed by the supermarket.* [1]: https://i.sstatic.net/CkZnQ.gif