AmericanTax 4.1 build: 9639 released: 2013-04-04 compiled with: Java 1.8.0_131 Jet jet12.0-pro-x86/1.8.0_131

Calculates American sales taxes for all American states, counties and cities.

Copyright: (c) 1999-2017 Canadian Mind Products.

signed Java Applet (that can also be run as an application).
Download from: http://mindprod.com/products2.html#AMERICANTAX
View HTML to run this program online at: http://mindprod.com/applet/americantax.html

----

Notes:

You must install the Java JRE to use this program.
See http://mindprod.com/jgloss/jgloss/jre.html

This hybrid program is mainly designed to be used as an Applet in a
browser but is can also be used from the command prompt, e.g. under
Windows command.exe or JPSoft tcc.exe, formerly called the DOS box. Just
clicking the programs in a directory listing will not do anything useful.  
Just typing the program names at the command prompt will not either.

This program requires a manual install! See below.

I put out an avalanche of free software into the world, and submit PAD
files to hundreds of distribution sites, but I rarely hear back from
anyone.  What's happening?  Does it all just work fine?  It is so
complicated nobody can figure out how to use it and they give up on it?
It is it useful?  Since everyone has the source, do people just fix the
programs to their liking themselves?  Did you have trouble installing?  Do
I presume you know too much?  I would be happy to hear from you about your
experiences, positive or negative and your requests for improvements.  A
one-line email to roedy@mindprod.com would be great.

===> 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.
May be used freely for any purpose but military.
For more details on this restriction, see
http://mindprod.com/contact/nonmil.html
If you include any Canadian Mind Products code in your own applications,
your app too must be labelled non-military use only.
http://mindprod.com/contact/nonmil.html
All Java jars and source code are included. If you need the class files or Javadoc, you will have to build them yourself. To streamline the zip downloads, class files and Javadoc have been removed.

----

Prerequisites:

This program runs under any OS that supports Java,
(e.g.W2K/XP/W2003/Vista/W2008/W7-32/W7-64/W8-32/W8-64/Linux/LinuxARM/LinuxX86
/LinuxX64/Ubuntu/Solaris/SolarisSPARC/SolarisSPARC64/SolarisX86/SolarisX64/OSX/AIX...)
so long as you have
<><> Java version 1.8 <><> or later installed (32-bit or 64-bit Java).
See http://mindprod.com/jgloss/installingjava.html for details.

----

Installing on a PC:

Download source and compiled jar files to run on your own machine as an application or Applet
First install a recent Java JDK or JVM.
See http://mindprod.com/jgloss/installingjava.html.
To install, extract the zip download with WinZip
(or similar unzip utility) into any directory you please,
often J:\ --  ticking off the <span class="click">use folder names</span> option.
To run as an application, type:
java.exe %JAVA_OPTIONS -ea -jar J:\com\mindprod\americantax\americantax.jar {put any parms here}

adjusting as necessary to account for where the jar file is.

----

Installing on a MacIntosh:

Use Safari to download source and compiled jar files to run on your own machine as an application or Applet.
Safari will automatically unpack the zip into ~/Downloads (version 10.5)
[or on the Desktop (version 10.4 and earlier)].
First install a recent Java JDK or JVM.
See http://mindprod.com/jgloss/installingjava.html.
You may optionally move the download tree to a permanent home.
I don't have a MacIntosh, just a PC, so I can't test my Java programs for Mac compatibility.
In theory they should work without problems, but in practice that does not always happen.
If you have problems please, let me know, preferably with screenshots and complete verbatim error messages.
To run as an application, without parameters, just double click the jar file.

To run as an application with parameters, in bash shell type:
open Terminal.app
cd ~/Desktop
java.exe -ea -jar com/mindprod/americantax/americantax.jar {put any parms here}

adjusting as necessary to account for where the jar file is.

----

Rebuilding:

The zip already contains the necessary jar files, so unless you modify
the program, there is no need to recompile the source or rebuild the jar.
Configure.java basedir="E:/" in rebuild.xml to the drive where your files are.
Configure.java your certificate name with environment SET cert=mindprodcert2017rsa
Configure.java your certificate password with environment SET jarsignerpassword=sesame
Use ANT and rebuild.xml, not build.xml, to recompile and recreate the jar.

----

Use:

Calculates American sales taxes, state and district.
Java source code and sample HTML included.
This version computes by adding sales tax to a base price.  It also works
in reverse given the total paid working backwards to get the tax and
original price.  In other words it will tell you the sticker price to make
something come out even after taxes are added.  It also has a spinner that
lets get that result without typing.
Just select the buyer's state and district, enter the amount of the sale
and hit calc.  You can adjust the sale amount with a spinner.
If you are a business, you don't have to collect sales taxes from people
in other states unless you have a business presence in that state.  In
that case, you must collect just the state tax, not the local tax.
The program splits out the state and local taxes so that if you have a
business presence in his state, you can tell him the amount he must remit
to you (the state part) and the part he must remit voluntarily and
directly (the local district part).
It knows all American state, county and city level sales taxes.
Call for Sales Tax Reform
*************************
I think the current US sales tax scheme is nuts.  One massive
simplification would be to use a single sales tax per vendor, rather than
having the vendor compute the tax based on the district the buyer lives.
How can the vendor possibly remit to every possible district?
The scheme is too complex.  It necessitates tax evasion.
American sales taxes are complicated to the point of comedy.  One of the
odd features is sometimes the vendor remits the tax and sometimes the
buyer is supposed to do it.  However, in practice nearly all buyers
"forget" to.  For large ticket items, like yachts, the vendor always
collects and remits the tax.  For smaller items, the vendor only collects
the tax if the buyer is in the same district.
If you are a business, you don't have to collect sales taxes from people
in other states unless you have a business presence in that state.  In
that case, you must collect just the state tax, not the local tax.
The services associated with the goods sold were provided by vendor's
district, not the buyer's.  For example, the vendor's district provided
police, water, roads, bridges, business climate ...
What did the buyer's district contribute? nothing!
When the buyer and vendor reside in the same district, it does not matter
whom you imagine controls the rate.  There the services to provide the
goods are provided by that district.
I think the tax rate should depend on the vendor's district, rather than
the buyer's district for the following reasons:
1. Easier to compute.  Just one rate.
2. The vendor can't very well lie about his district. The
buyer can.
3. Easier to remit.  All money goes to the local district.
4. Easier to enforce.  A district only has to monitor local business.
5.  You collect sale tax on foreign sales.  Why should a district
subsidise foreigners?
If you want some sort of equalisation payments, to shift money between
districts, let that be negotiated by the districts, state or federal
government and handled with a single yearly cheque to provide the
aggregate adjustment.  There is no need to involve every interdistrict
financial transaction, every vendor and every buyer.
I suspect the reason it is as it is to preserve the principle of no
taxation without representation.  A buyer has no representation to
complain about the sales tax in a vendor's district.  Canada solved the
problem by making the "cheating" legal.  When you buy out of province, you
don't pay tax.
How AmericanTax Works Under The Hood
************************************
There is a file called taxtable.ser.  It a serialised set of objects, one
for each state, in binary form, compressed.  It also contain the
additional sales tax for each county and city in that state is tacked onto
each state.  This in embedded in the americantax.jar as a resource.
The program PrepareTaxTables is used to read the tax information about
each district from E:/com/mindprod/americantax/districttax.csv and the tax
information about each state from E:/com/mindprod/americantax/statetax.csv
and merges them into E:/com/mindprod/americantax/taxtables.ser.  ANT then
embeds the *.ser file in the jar.
Unfortunately each state presents its information in a different format,
usually designed to be computer-hostile.  For each state, I wrote a little
program to go to their website and extract district information.  I then
usually have to manually clean it up, and merge it into the
E:/com/mindprod/americantax/districttax.csv.  Sometimes I have to do it
totally manually.  I have not completely this for for all states.  You can
probably safely ignore all these little scraper programs.  They are only
used to prepare data, not when AmericanTax is running.
Periodically I have to rerun these programs, adjusting them to account for
changes in the state websites, to get the up-to-date figure.


----

Version History:

 1.0 1999-08-31 cloned from CanadianTaxCalculator.

 1.1 1999-09-01 getStateChoices - District taxes for CA,
                CO, NY

 1.2 1999-09-01 ensure DistrictItem.class is included in
                jar.

 1.3 1999-09-05 tax depends on buyer's district, not
                vendor's - add report errors line - document missing local taxes.

 1.4 2000-05-05 NM 5.0000 -&gt; allow 4 digits to right of
                decimal version

 1.5 2001-01-01

 1.6 2002-04-23 moved to package com.mindprod.americantax
                version

 1.7 2004-06-06 add about box and version check - renamed class
                to AmericanTax and AmericanTaxTable.

 1.8 2005-12-16 add Javadoc

 1.9 2006-03-04 reformat with IntelliJ. Distribute Javadoc.

 2.0 2007-06-07 convert to JDK 1.5/Swing, add
                spinner, add PAD, icon. Update and extend tax tables.

 2.1 2007-06-09 add FL and TX tables.

 2.2 2007-06-16 convert to JApplet and contentpane.

 2.3 2008-03-03 correct spelling mistakes, display build and release date.

 2.4 2008-05-18 display state and district taxes separately. Update tax tables.
                Major redesign. All reverse tax calculation to got from total payable back to sale amount.

 2.5 2008-05-22 complete tables for AK, AL, CA, CO, CT, DC, DE, FL, GA, HI, IL, IN, KY,
                MA, MD, ME, MI, MN, MS, MT, NH, NJ, NY, OH, OR, PA, RI, TX, VA, VT, WA, WV.

 2.6 2008-06-01 add TN support for counties and cities.

 2.7 2008-06-01 add WI support for counties.

 2.8 2008-06-01 add AZ support for counties and cities

 2.9 2010-05-10 update state tax tables, better rounding, massive refactoring.

 3.0 2010-12-08 update Alabama and Tennessee tax tables.

 3.1 2010-12-09 update California, Georgia, Illinois, Missouri and North Carolina tax tables.

 3.2 2010-12-11 updated Arizona, Colorado, Hawaii, Iowa, Ohio, Texas, Washington, Wisconsin tax tables.

 3.3 2010-12-12 updated Florida, Louisiana, New York, Wyoming. New streamlined PrepStateBase skeleton.

 3.4 2010-12-14 updated Arkansas, Kansas, South Carolina, Oklahoma.

 3.5 2010-12-15 updated Nebraska, Nevada, North Dakota, Utah

 3.6 2010-12-17 updated Alabama. Can look up city without needing to know county.

 3.7 2010-12-18 updated South Dakota, Minnesota, New Mexico

 3.8 2010-12-19 update Idaho, Vermont

 3.9 2013-04-01 update tables for Alabama, Arkansis and Arizona.

 4.0 2013-04-03 update tables for California, Florida, Georgia

 4.1 2013-04-04 update tables for Idaho, Illinois, Iowa.

-30-