To view this page, you should have the most recent Java installed
32-bit JRE (Java Runtime Environment) 1.8.0_20.
This Applet will run online in your browser, but it is a hybrid you
can also download, install and run it on your own machine as standalone
application. It will start and run faster if you do that. It will also
work safely even if you have disabled Java in your browser.
This Applet will calculate all three types of Canadian sales tax,
GST (Goods and Services Tax),
HST (Harmonised Sales Tax) and
PST (Provincial Sales Tax).
sometimes knows as the GST (Gouge and Screw Tax). In Québec, the GST
is called the TPS (Taxe sure let Produits en Services)
literally: tax on products and services.
combines federal and provincial sales takes in one tax.
In Québec, PST
is called TVQ (Taxe de Vente du Québec)
literally: tax of selling of Québec
or QST (Québec Sales Tax)
The calculator is also available with Java source to download and run off-net. It is designed to be
cannibalised, so that you can use whatever parts of the calculator source code you want
in your own code, e.g. a shopping cart. There are notes in the source on precisely how
the taxes are calculated. You can also configure your copy of the downloaded program to
start up with whatever province you like.
Prince Edward Island uses a dishonest ploy to make the provincial sales tax sound lower
than it really is. Unlike all the other provinces, provincial sales tax is computed not
only on the original sale amount, but also on the GST.
Prince Edward’s nominal 10% tax is effectively
10.5%. It is taxing tax! This Applet shows the posted crooked
nominal rate, not the honest, effective one
This Applet computes either GST
or HST. The rules about
which goods need to pay GST/PST/HST are complex and vary from province to province.
Unfortunately, this Applet won’t help you sort that out. It just computes the tax
if it is payable. Book vendors will be familiar with the rules for books, for example, or
you can check with the provincial taxation agencies listed at the bottom of the page.
Leave the date as today or select any date in the range 1991-01-01 to
2015-12-31 for which you wish to calculate taxes.
Select buyer’s province.
Do one or more of the following:
Click the up/down Amount of Sale spinner arrows.
Key the Amount of Sale, then click Calc ⇓ to find the Total
Key the Total Payable, then click Calc ⇑ to find the original
Amount of Sale.
Out of province vendors must now collect the same tax as vendors in the buyer’s
When the vendor lives in province A and the buyer lives in province B, what do you
do? To be safe, you must consult the laws of province B. In general if you, as vendor,
have a business presence in province B, you must collect the tax for province B and
remit it to province B. If you don’t have a presence, it is the responsibility of
the buyer to submit the tax to province B, but in practice very few people conform with
When the vendor lives in province A, and the buyer’s ship-to address in is
province B, and the buyer’s bill-to address is in province C, what do you do? You
would have to consult the websites for provinces B and C. Unless you read otherwise,
calculate the tax by rules of province C and remit to province C.
Java Requirements and Troubleshooting
is a signed Java Applet (that can also be run as an application)
to Canadian Sales Tax Calculator.
You are welcome to install it on your own website.
If it does not work…
For this Applet hybrid to work, you must click grant/accept/always run on this site/I accept the risk
to give it permission to let you copy/paste.
If you refuse to grant permission, the program may crash with an inscrutable stack dump
on the console complaining about AccessController.checkPermission.
In the Java Control Panel security tab,
click Start ⇒ Control Panel ⇒
Programs ⇒ Java ⇒ Security, configure medium security
to allow self-signed and vanilla unsigned applets to run.
If medium is not available, or if Java security is blocking you from running the program,
configure high security
and add http://mindprod.com
to the Exception Site List at the bottom of the security tab.
Often problems can be fixed simply by clicking the reload button on your browser.
Make sure the Java in your browser is enabled in the security tab of the Java Control panel.
Click Start ⇒ Control Panel ⇒
Programs ⇒ Java ⇒ Security ⇒
Enable Java Content in the browser.
This signed Java Applet (that can also be run as an application)
needs 32-bit or 64-bit Java 1.7 or later.
For best results use the latest 1.8.0_20 Java.
It works under any operating system that supports Java
e.g. W2K XP W2003 Vista W2008 W7-32 W7-64 W8-32 W8-64 W2012 Linux LinuxARM LinuxX86 LinuxX64 Ubuntu Solaris SolarisSPARC SolarisSPARC64 SolarisX86 SolarisX64 OSX
You should see the Applet hybrid above looking much like this
If you don’t, the following hints should help you get it working:
If the above Applet hybrid appears to freeze-up, click
Alt-Esc repeatedly to check for any buried permission dialog box.
If you have certificate troubles,
check the installed certificates
and remove or update any obsolete or suspected defective certificates.
The only certificate used by this program is mindprodcert2014dsa.cer.
Especially if this Applet hybrid has worked before, try clearing the browser cache and rebooting.
To ensure your Java is up to date, check with Wassup.
First, download it and run it as an application independent of your browser,
then run it online as an Applet to add the complication of your browser.
If the above Applet hybrid does not work,
check the Java console for error messages.
If the above Applet hybrid does not work, you might have better luck with the downloadable version available below.
If you are using Mac OS X and would like an improved Look and Feel,
download the QuaQua look & feel
UnZip the contained quaqua.jar
and install it in ~/Library/Java/Extensions
or one of the other ext dirs.
Click the Information bar, and then click Allow blocked content. Unfortunately, this also allows dangerous ActiveX code to run. However, you must do this in order to get access to perfectly-safe Java Applets running in a sandbox. This is part of Microsoft’s war on Java.
Try upgrading to a more recent version of your browser,
or try a different browser e.g. Chrome, Firefox, SeaMonkey, Opera, Safari or Avant.
If you still can’t get the program working
click the red HELP button below for more detail.
If you can’t get the above Applet hybrid working
after trying the advice above and from the red HELP button below,
have bugs to report or ideas to improve the program or its documentation,
please send me an email at.
On 2013-02-04 Canada discontinued the penny. It is still
used for credit card and debit card transactions, but for cash sales, amounts including
tax are rounded to the nearest nickel. The program above shows the total payable both
penny-rounded and nickel-rounded as the government suggests, but does not require.
Final amounts ending in .01 or .02 will be rounded down to nearest .00
Final amounts ending in .03 or .04 will be rounded up to nearest .05
Final amounts ending in .06 or .07 will be rounded down to nearest .05
Final amounts ending in .08 or .09 will be rounded up to nearest .10
Canadian Tax Calculator now has a Time Travel feature, where you can input a date, and
have the taxes calculated using the rates the way they were or will be on that date. To
do this, I need an accurate history of what sales taxes have been since 1991. Much of the material on the Internet in contradictory or incomplete.
Please let me know of any errors or omissions in the following table of changes to
Canadian sales taxes ( GST, HST
and PST/TVQ/QST) since 1991.
I am in favour
of consolidating the GST
into the HST
for the following reasons:
It is easier for a consumer to compute the final cost in his head.
A business has to compute and remit only one tax instead of two.
A business has to track the picayune rules for only one tax instead of two.
Taxpayers support one bureaucracy instead of two.
is well designed to fairly tax businesses like the custom computer manufacturing
business I used to run. We would pay GST
on the all the materials we purchased, just the way ordinary consumers do and we
on all the computers we sold. We would remit the difference. The interlocking records
of all the businesses discourages fraud. With HST,
is handled this same way.
Many people oppose the HST, not because there is something inherently wrong with
harmonisation, but for other unrelated reasons such as:
The effective rate was increased as part of the switchover.
There were many fewer exceptions. This is
the core of the revolt.
A particularly corrupt political party introduced the HST.
BC is proposing something really stupid — making the sales tax different for
businesses and individuals. This means a bookkeeping nightmare if you buy something for
your business with your own money and then get reimbursed. Liberals claim to be the party
of business but these donkeys have no clue about avoiding pointless paperwork. On
2012-04-01 they are going back from HST
+ PST with no net tax rate change. The exemptions change, but surely it was not necessary
to go to PST just to change the exemptions. The arguments pro and con have been
exceedingly emotional and irrational. HST
is clearly superior since there is less bookkeeping and less calculation. The public was
mainly outraged when all manner of formerly-tax free items were taxed under
HST. They demanded to
go back to the old system. The dishonest BC Liberals changed the calculation back to PST
(which was a extra cost to the taxpayers) but made more items taxable, such as used cars.
Talk about a lose-lose situation.
To help the tax medicine go down, governments across Canada sometimes offer a cash
back scheme billed as a GST/HST rebate. It actually has nothing to do with the tax since
you need not provide any receipts for purchases or taxes paid. Its main function is to
encourage people to file income tax promptly since you don’t get the cheque unless
you have filed.
Both the USA and Canada have the idiotic rule that the vendor must remit tax to the
buyer’s province. It would have made much more sense for the vendor to collect the
tax based on his own province and to remit the tax to his province. After all that is the
province that provided the services to create the good or service. It would have made
sales tax an order of magnitude simpler for businesses. The vendor would not need to know
anything about the buyer’s location, would have a single tax rate to consider, and
a single place to remit taxes collected. Any difference in the total amounts calculated
could have been corrected by a handful of cheques exchanged between the provinces or
Download information for Canadian Sales Tax Calculator
Canadian Sales Tax Calculator is free. Full source included.
You may even include the source code, modified or unmodified
in free/commercial open source/proprietary programs that you write and distribute. Non-military use only.
Sales taxes are flat taxes. Unlike progressive income taxes, everyone rich or poor pays the same rate.
However, income taxes are full of loop holes the very rich can use to avoid income tax
altogether. Conservative economists want to get rid of income taxes and raise sales taxes
to remove tax burden from the upper middle class and put it on the lower middle. It is
more difficult for them to avoid sales taxes. Sales taxes discourage consumption. So they
can be looked on as a pro-environmental, anti-business tax. I would prefer a more
pointedly pro-environmental tax, and more friendly to business, that heavily taxed
wasteful use of energy and resources but did not tax prudent use of them. I would want to
tax polluters at double the cost of cleanup. There are other ways of collecting revenue,
by taxing income, wealth, luxury, sin (sex, alcohol, marijuana, gambling), lotteries,
transportation or fees for government services.