Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

To save prices with or without VAT?

Tags:

entity

I am curious what the best practice is. For example we have product entity, it has two fields: Price and VAT. What to save in Price value? Base price, and then calculate result price based on base price and VAT code. Or save calculated price and save VAT just for information purposes.

like image 874
Mike Chaliy Avatar asked Aug 02 '10 14:08

Mike Chaliy


People also ask

How do you calculate price without VAT?

VAT exclusive is the price/figure that excludes VAT. To calculate the price/figure that excludes VAT simply: Divide the figure by 1.2 (1. + UK VAT Percentage)

Does VAT include in price?

Consumers usually have to pay VAT and can't generally recover it. If customers are consumers, all prices quoted in ads should include VAT in the stated price. It is not sufficient to state a VAT-exclusive price accompanied by information that VAT is payable.

How do you find the original price after VAT?

To find the total cost, add the VAT to the original amount. Divide by 10 – this gives 10% of the amount. Divide by 2 to give 5% of the amount – this is the VAT. To find the total cost, add the VAT to the original amount.

What is VAT exclusive?

A VAT exclusive price is the price of goods or services before VAT is added. The use of VAT exclusive prices should only be used when the prices are aimed at buyers who can recover any VAT charged, for example 'trade prices' for businesses.


3 Answers

Without VAT, since it can change independently from prices.

Edit: by the way, why are you storing the VAT for each product? Isn't it better to categorize your products (if you have different types of VAT) instead?

like image 108
Anax Avatar answered Oct 06 '22 00:10

Anax


Since VAT can change, I recommend storing the base price and the VAT percentage at the time of the sale. Then you can display the calculated price and the VAT percentage depending on what you need to report on.

like image 45
ice cream Avatar answered Oct 06 '22 01:10

ice cream


Aside: The standard rate of VAT in the UK is due to change at the beginning of January 2011 from 17.5% to 20%, any solution should handle this kind of change.

The solution I've used previously is to have the following:

Product:
NetPrice (MONEY, NOT NULL)
VATRateId (INT, NOT NULL, FK -> VATRate.VATRateID)

VATRate
VATRateId (INT, PK NOT NULL)
Description (TEXT NOT NULL)

VATRateValue
VATRateValueId (INT, PK NOT NULL)
VATRate (MONEY NOT NULL)
EffectiveToDate (DATETIME NULLABLE)

That way I can store that Product X has a net price of 1.00, with a VAT Rate of {1, Standard Rate VAT}, which will apply the following rates { 17.5% until 2010/12/31, 20% thereafter}

The one thing this solution doesn't cater for is you changing the price of the product to ensure that, irrespective of the current VAT rate, the price always remaining at a certain "price-point" such as 4.99. What you could do here, for maxium flexibility (with increased complexity) is move the NetPrice field from the Product entity to a ProductPrice entity:

ProductPrice
ProductPriceId (INT, PK NOT NULL)
ProductId (INT, NOT NULL, FK -> Product.ProductId)
Price (MONEY, NOT NULL)
EffectiveToDate (DATETIME NULLABLE)

like image 36
Rob Avatar answered Oct 05 '22 23:10

Rob