Difference between revisions of "Tax Setup"

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
m (Intermediate save - more to follow.)
 
m (Again)
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Breadcrumb|Table of Contents#System Administrator's Guide|Implementation|next=Importing Key Data}}
+
{{Breadcrumb|Table of Contents#System Administrator's Guide|Implementation|next=Establish Opening Balances}}
 
[[Category:Documentation]]
 
[[Category:Documentation]]
 
[[Category:Table of Contents]]
 
[[Category:Table of Contents]]
 
[[Category:System Admin documentation]]
 
[[Category:System Admin documentation]]
  
Before entering any documents that have tax consequences, the proper taxes must be created.
+
Before entering documents that have tax consequences, the taxes must be created.
  
Taxes can be complex, with different accounting requirements, calculations and reporting requirements.  The tax can vary by product and by the geographical location of the seller, or buyer.
+
Taxes can be complex, with different accounting requirements, calculations and reporting requirements.  The tax can vary by product and by the geographical location of the seller, or buyer. In the ADempiere tax model, the tax to use on a document is selected based on a tax category.  The tax category is assigned to products and charges and must contain at least one summary or parent tax definition.  Subordinate taxes determine the details and actual accounting consequences based on the situation and geography.  For really difficult and unruly tax situations, a software or script rule can be created to determine what tax to apply.
 +
{{Note|There is a Tax Setup workflow defined in ADempiere but since you have not setup the products yet, you can skip most of it.  Follow the window sequence below instead.}}
 +
== Examples ==
  
The ADempiere tax model uses a parent tax which is the tax selected.  The parent tax has a number of subordinate taxes that are applied to the document lines.
+
Before getting into the details, consider a few examples.
  
The Parent taxes are selected by the tax category and the rules that determine which tax to apply based on geography and time.
+
=== Canada ===
{{Note|There is a Tax Setup workflow defined in ADempiere but it has been overtaken by the development of the Global Tax Management moduleA few additional steps are required to get the tax working with this module.}}
+
 
To define the tax, use the following windows:
+
In Canada, the sales tax varies by province.  There is typically a provincial sales tax (PST), and a common national goods and services tax (GST).  Certain provinces combine these into a harmonized sales tax (HST) but there are still products where only the GST or PST portion of the HST applies.  GST/HST is a pass through tax meaning that it is tracked as a liability or receivable based on the sales or purchase transactions.  The PST is a end-user tax meaning its a liability on a sale but an expense on a purchase. 
* (More to follow - come back soon.)
+
 
 +
=== EU and VAT ===
 +
 
 +
The rules in the EU are complex.  A primer can be found on the [[VAT]] page.  The page also contains lots of examples.  Many of the countries use a graded tax scheme based on the type of product.  For example, in Sweden there are four different VAT categories on sold goods and services. These are:
 +
* '''Full Rate''' - 25%
 +
* '''Half Rate''' - 12%
 +
* '''Low Rate''' - 6%
 +
* '''No VAT''' - 0%
 +
Different products and services belong to these different categories.
 +
 
 +
== Setup Taxes ==
 +
 
 +
To setup the tax, use the following windows found in the menu under {{TreeRef|Performance Analysis|Accounting Rules}}:
 +
* {{WindowRef|TaxCategory|Tax Category}} - The Tax Category Window is used to enter and maintain Tax Categories. Each and every product or charge is associated with a tax category which determines how taxes will be applied to the product.  This is where the major differences in taxes applied to various products are defined. Set up the categories to identify the high level differences.  Regional differences will be handled in other windows.  A good selection of Tax Categories in Canada would be
 +
** '''No Tax''' - no tax applied to the document. Tax is not applicable to the transaction.
 +
** '''Exempt''' - the product or service is exempt from tax.  This has special consequences for input tax credits and the accountants will want to track it.  The Government determines which products and services are exempt.
 +
** '''Zero-Rated''' - the product of service is considered tax free without the special consequences. Again, the Government determines where this applies.
 +
** '''PST Only''' - the product only has PST applied.
 +
** '''GST only''' - the product only has GST applied.
 +
** '''PST/GST''' - the product can have both PST and GST applied.
 +
** '''HST''' - the product has HST applied.
 +
* {{WindowRef|TaxRate|Tax Rate}} - The Tax Rate Window defines the different taxes used for each tax category. For example Sales Tax must be defined for each State in which it applies.  If you have multiple taxes falling in a single category, create a summary level tax with the approximate total tax rate.  Then create the subordinate tax rates and assign the the summary level tax as their parent.
 +
{{Note|Every tax rate requires a parent or summary tax. When entering the order or invoice lines the tax is first estimated using the summary tax rate. The correct tax is calculated when the document is prepared or completed. With many possible rates for a tax category, be aware that estimation can be wrong and that the order total shouldn't be trusted until the document is prepared.}}
 +
: The tax is always calculated from the line net amount. For taxes that include another tax in the base amount, you will have to calculate the net effect and adjust the tax rate accordingly.  For example: in formula, ADempiere calculates the tax as TT = LNA*(Tax1 + Tax2) where TT is the Total Tax and LNA is the line net amount.  If you need the calculation where Tax2 is based on the Tax1 amount or TT = LNA*Tax1 + (LNA*Tax1)*Tax2, you will have to adjust the Tax2 rate to equal Tax1*Tax2. Similarly, if the equation was TT = LNA*Tax1 + LNA*(1+Tax1)*Tax2, the adjusted Tax2 rate would be (1+Tax1)*Tax2.
 +
: The tax rates are defined regionally as that is the major difference.  The billing from and shipping to  location information determines the match with the regions and the tax to apply.  In other words, if HST only applies to sales billed in Canada and shipped to customers located in Canada, the HST tax rate has the From and To countries set to Canada. HST will not be applied to sales billed in Canada and shipped to customers in the USA.  The granularity of the regional definitions can be extended from countries to regions to ZIP codes within regions. Leave the country and regions fields blank if they are not relevant.
 +
{{Note|A corollary rule is that every business partner needs to have a bill from and ship to location defined, as does every warehouse that receives goods.  If not, there will be errors.}}
 +
: You can define tax rates as "SO Exempt". If a business partner is flagged at Tax Exempt, the software will find the the first such tax rate with the lowest actual rate - not necessarily zero, just the lowest rate.  In the simplest case, define a single tax rate as SO Exempt with the rate set to 0%.
 +
: The Valid From date field will only limit new taxes which come into effect.  The date is compared to the billing date.  There is no way to define a date to stop applying a tax. For that, you have to manually mark the rate as inactive.
 +
: For special cases, a software or script rule can be defined to determine what amount of tax to apply.
 +
{{Note|There is no restriction on the number of tax rates assigned to a category.  The software will simply pick the first summary tax rate it finds that can be applied.  The sort order for the tax rate in a tax category is defined by the IDs of the countries and regions which just about makes it randomThe only useful info is that the summary tax rate with no country or region defined will be tested first.}}
 +
 
 +
Finally, don't forget to setup the accounting properly for each tax rate.
 +
 
 +
There are a few other windows that you can use to define tax related information.  The information in these windows is not used by ADempiere but is available for use by any rules or scripts you may need to develop. Find them in the menu under {{TreeRef|Performance Analysis|Accounting Rules|Global Tax Management}}:
 +
* {{WindowRef|TaxRateParent|Tax Rate Parent}} - The Tax Rate Parent Window defines the different subordinate taxes used for each tax category. It is essentially similar to the Tax Rate windows but shows the child taxes in an included tab.
 +
* {{WindowRef|TaxGroup|Tax Group}} - allows you to group the business partner with a reference tax.
 +
* {{WindowRef|TaxType|Tax Type}} - another method to group taxes together.
 +
* {{WindowRef|TaxBase|Tax Base}} - defines the tax base as the product price, quantity, cost or weight.
 +
* {{WindowRef|TaxDefinition|TaxDefinition}} - You can use the tax definition information to create the logic necessary to get the tax rate to your document.
 +
 
 +
== See Also ==
 +
 
 +
* [[Tax]]
 +
* [[VAT]]
 +
* [[Sponsored Development: Libero Global Tax Management]]
 +
 
 +
Also look into the localization projects for the various countries.  A lot of work has been done to define special tax handling procedures around the world.
 +
 
 +
== For Developers ==
 +
 
 +
The tax software is in the following files:
 +
* base/src
 +
** org.compiere.model/Tax.java
 +
** org.compiere.model/MTax.java

Latest revision as of 19:55, 2 August 2011

Table of Contents#System Administrator's Guide{{#if: Implementation| | Implementation }}{{#if: | | [[{{{3}}}]] }}{{#if: | | [[{{{4}}}]] }}{{#if: | | [[{{{5}}}]] }} | Tax Setup{{#if: Establish Opening Balances| | Establish Opening Balances }} ⇒

Before entering documents that have tax consequences, the taxes must be created.

Taxes can be complex, with different accounting requirements, calculations and reporting requirements. The tax can vary by product and by the geographical location of the seller, or buyer. In the ADempiere tax model, the tax to use on a document is selected based on a tax category. The tax category is assigned to products and charges and must contain at least one summary or parent tax definition. Subordinate taxes determine the details and actual accounting consequences based on the situation and geography. For really difficult and unruly tax situations, a software or script rule can be created to determine what tax to apply.

Note.gif Note:

There is a Tax Setup workflow defined in ADempiere but since you have not setup the products yet, you can skip most of it. Follow the window sequence below instead.

Examples

Before getting into the details, consider a few examples.

Canada

In Canada, the sales tax varies by province. There is typically a provincial sales tax (PST), and a common national goods and services tax (GST). Certain provinces combine these into a harmonized sales tax (HST) but there are still products where only the GST or PST portion of the HST applies. GST/HST is a pass through tax meaning that it is tracked as a liability or receivable based on the sales or purchase transactions. The PST is a end-user tax meaning its a liability on a sale but an expense on a purchase.

EU and VAT

The rules in the EU are complex. A primer can be found on the VAT page. The page also contains lots of examples. Many of the countries use a graded tax scheme based on the type of product. For example, in Sweden there are four different VAT categories on sold goods and services. These are:

  • Full Rate - 25%
  • Half Rate - 12%
  • Low Rate - 6%
  • No VAT - 0%

Different products and services belong to these different categories.

Setup Taxes

To setup the tax, use the following windows found in the menu under Performance Analysis{{#if: Accounting Rules |  » Accounting Rules }}{{#if: |  »  }}{{#if: |  »  }}{{#if: |  »  }}:

  • {{#if: Tax Category|Tax Category|TaxCategory }} Window - The Tax Category Window is used to enter and maintain Tax Categories. Each and every product or charge is associated with a tax category which determines how taxes will be applied to the product. This is where the major differences in taxes applied to various products are defined. Set up the categories to identify the high level differences. Regional differences will be handled in other windows. A good selection of Tax Categories in Canada would be
    • No Tax - no tax applied to the document. Tax is not applicable to the transaction.
    • Exempt - the product or service is exempt from tax. This has special consequences for input tax credits and the accountants will want to track it. The Government determines which products and services are exempt.
    • Zero-Rated - the product of service is considered tax free without the special consequences. Again, the Government determines where this applies.
    • PST Only - the product only has PST applied.
    • GST only - the product only has GST applied.
    • PST/GST - the product can have both PST and GST applied.
    • HST - the product has HST applied.
  • {{#if: Tax Rate|Tax Rate|TaxRate }} Window - The Tax Rate Window defines the different taxes used for each tax category. For example Sales Tax must be defined for each State in which it applies. If you have multiple taxes falling in a single category, create a summary level tax with the approximate total tax rate. Then create the subordinate tax rates and assign the the summary level tax as their parent.
Note.gif Note:

Every tax rate requires a parent or summary tax. When entering the order or invoice lines the tax is first estimated using the summary tax rate. The correct tax is calculated when the document is prepared or completed. With many possible rates for a tax category, be aware that estimation can be wrong and that the order total shouldn't be trusted until the document is prepared.

The tax is always calculated from the line net amount. For taxes that include another tax in the base amount, you will have to calculate the net effect and adjust the tax rate accordingly. For example: in formula, ADempiere calculates the tax as TT = LNA*(Tax1 + Tax2) where TT is the Total Tax and LNA is the line net amount. If you need the calculation where Tax2 is based on the Tax1 amount or TT = LNA*Tax1 + (LNA*Tax1)*Tax2, you will have to adjust the Tax2 rate to equal Tax1*Tax2. Similarly, if the equation was TT = LNA*Tax1 + LNA*(1+Tax1)*Tax2, the adjusted Tax2 rate would be (1+Tax1)*Tax2.
The tax rates are defined regionally as that is the major difference. The billing from and shipping to location information determines the match with the regions and the tax to apply. In other words, if HST only applies to sales billed in Canada and shipped to customers located in Canada, the HST tax rate has the From and To countries set to Canada. HST will not be applied to sales billed in Canada and shipped to customers in the USA. The granularity of the regional definitions can be extended from countries to regions to ZIP codes within regions. Leave the country and regions fields blank if they are not relevant.
Note.gif Note:

A corollary rule is that every business partner needs to have a bill from and ship to location defined, as does every warehouse that receives goods. If not, there will be errors.

You can define tax rates as "SO Exempt". If a business partner is flagged at Tax Exempt, the software will find the the first such tax rate with the lowest actual rate - not necessarily zero, just the lowest rate. In the simplest case, define a single tax rate as SO Exempt with the rate set to 0%.
The Valid From date field will only limit new taxes which come into effect. The date is compared to the billing date. There is no way to define a date to stop applying a tax. For that, you have to manually mark the rate as inactive.
For special cases, a software or script rule can be defined to determine what amount of tax to apply.
Note.gif Note:

There is no restriction on the number of tax rates assigned to a category. The software will simply pick the first summary tax rate it finds that can be applied. The sort order for the tax rate in a tax category is defined by the IDs of the countries and regions which just about makes it random. The only useful info is that the summary tax rate with no country or region defined will be tested first.

Finally, don't forget to setup the accounting properly for each tax rate.

There are a few other windows that you can use to define tax related information. The information in these windows is not used by ADempiere but is available for use by any rules or scripts you may need to develop. Find them in the menu under Performance Analysis{{#if: Accounting Rules |  » Accounting Rules }}{{#if: Global Tax Management |  » Global Tax Management }}{{#if: |  »  }}{{#if: |  »  }}:

See Also

Also look into the localization projects for the various countries. A lot of work has been done to define special tax handling procedures around the world.

For Developers

The tax software is in the following files:

  • base/src
    • org.compiere.model/Tax.java
    • org.compiere.model/MTax.java