VAT rates change in the last 4 years the UK standard rate of VAT has changed 3 times. How does the module handle this?

The standard rate of VAT was temporarily reduced to 15 per cent on 1 December 2008 and returned to 17.5 per cent on 1 January 2010. On 4 January 2011 the standard rate increased to 20 per cent. HMRC

It is possible to exclude VAT rates from the admin display using 'admin_list' => FALSE in hook_commerce_tax_rate_info().

All three rates are to be created using the suggested naming convention

eu_vat_gb_standard_15
eu_vat_gb_standard_175
eu_vat_gb_standard_20

other rates for the UK are

eu_vat_gb_reduced_05
eu_vat_gb_zero_00

Rules for each need to include date conditions for each.

Comments

dwkitchen’s picture

Just to add that this is useful for me as I am importing orders from Ubercart since May 2008 so all rates need to be covered - and as Ubercart did not cope with VAT rate changes well I might recalculate them as I import.

dwkitchen’s picture

I have added the rates and used hook_default_rules_configuration_alter() to edit the auto created rules.

However I am not sure how to a OR and AND groups.

  // Add date conditions to 17.5% VAT rate
  // @todo add OR condition for return to 17.5% before 20%
  $configs['commerce_tax_rate_eu_vat_gb_standard_175']->condition(
    'data_is',
    array(
      'data:select' => 'commerce-line-item:order:created',
      'op' => '<',
      'value' => time('2008-12-01'),
    )
  );

This covers the time before Dec 2008 but the rule needs to be:

(date < 2008-12-01) OR ((date > 2010-01-01) AND (date < 2011-01-04))

dwkitchen’s picture

Status: Active » Needs review
joachim’s picture

Version: » 7.x-1.x-dev
Component: VAT Logic » Documentation

I can see why you need historic tax rates for something like an import.

But are there any other circumstances in which the site needs them?

dwkitchen’s picture

Going forward current rates will become historic as they are changed, but import is probable the only reason for current-historic rates.

joachim’s picture

> Going forward current rates will become historic as they are changed

I'm not sure about the need to have those either.

What I'm concerned about is this: suppose in 2013 the UK VAT rate changes. Say for sake of argument this is to 25%. We then have a migration issue on our hands, as every single product needs to add an extra VAT rate to its reference field. Newer products will have the gb_25 rate in the field, products that exist today will have gb_20 and gb_25, which also creates a bit of a UX unpleasantness.

So I wonder: what is the purpose of keeping these values in the reference fields?

If instead we call vat rates by functional names, eg gb_top_rate, then the numeric value can be changed and everything happens automatically.

joachim’s picture

I've just had a chat with my client's head of finance, who tells me there's no need for old tax rates to be kept.

What she said is: 'At midnight when the tax rate changes, everything should change, and there's no need to know what the tax rate on a product used to be'.

Interestingly, if a customer buys a product at 20% on December 31 and brings it back for a refund on January 1, the *new* VAT rate is applied on the refund price and the retailer takes a hit.

Hence I think we need to look at a way to make imports of old orders work with old vat rates, but not encumber new sites with them.

dwkitchen’s picture

Either method is possible but using a new rate is HMRCs prefered option. Check out the pros and cons of each method on page 3 of this guidance: Quickbooks VAT rate change advice.

It is true that you do not need to know what the tax rate on a product was before the change, but you do need to know what the tax rate was on all line items on orders before the change.

According to the HMRC Rate Change Guidance, a refund for a sale made before the rate change is made at the historic rate change, NOT the new rate as your client's head of finance suggests.

In hook_commerce_tax_rate_info() it is possible to set admin_list = TRUE/FALSE, this set if a rate should be listed in the admin page, perhaps the tax rate reference field needs to have a option to use this data as well.

dwkitchen’s picture

Status: Needs review » Fixed

For the UK I have included the rates and other countries will be done on a case by case basis

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

Anonymous’s picture

Issue summary: View changes

15% twice