ZIPsales Database
Database Overview
ZIPsales™ Database provides detailed sales & use tax information for every location throughout the U.S., its territories, and Canada. The tax information is mapped to ZIP code. State, county, city, and all local taxing jurisdictions are covered in separate detail, facilitating collection of the correct tax amounts as well as the proper reporting and filing of sales & use tax returns.
Ready-made integration modules are available for most major systems. If no module is available for your system you can still use our database by developing a module of your own or by importing the data into a spreadsheet. The database is logically structured, so that it is very simple and straightforward to gain access to all the information with minimal programming.
Following is a brief outline of the database’s information:
Sales & Use Tax Rates for the U.S., Territories, & Canada
State, county, city, and all local taxing jurisdictions are covered. Local jurisdictions include school and water districts, rapid transit areas, police jurisdictions, etc.
ZIP Codes
Tax information is mapped to ZIP code. All U.S. Postal Service ZIP codes, with their associated states, counties, and cities are included.
Rate Overrides
In many instances counties, cities, or localities override the state rate, or each other's rate.
Maximum Taxes
Some jurisdictions tax only a limited dollar amount. Others allow only a maximum tax amount.
Split Rates
Some jurisdictions split their tax rates, imposing different rates below and above a given dollar amount.
Effective Dates
The dates on which current and prior rates became effective.
Prior Rates
All prior rates -- through January 1, 1994 -- are supplied.
Filing Codes
The codes required by each taxing authority when filing sales & use tax returns.
Freight Taxability
The status of whether freight is taxable or exempt, and the stipulations and conditions.
Defaults
Several default indicators for ZIP codes that cross cities and/or counties.
FIPS Codes
Federal Information Processing Codes that uniquely identify each county and city.
Tax Administration
County, city, and local taxes can be administered at their own government level, or at a higher level, i.e. county taxes can be administered by the county, or by the state.
Geocodes
Each location has a unique geographic code. This facilitates the encoding of accounts as to state, county, city, and local taxing district.
ASCII Format
The database is provided in ASCII format. This format is usable on any platform, and facilitates importing the data into any system or spreadsheet.
ZIP + 4 to County Cross Reference (Optional)
The first 2 digits of the ZIP + 4 extension are cross referenced to county. These 2 digits never cross county, and can therefore be used to determine county, in the case of ZIP codes crossing counties. This information is in a separate optional file sold as ZIPsales™ ZIP + 4.
Bracket Schedules (Optional)
Each state uses a unique rounding method when calculating taxes that involve fractions of a dollar, creating the need for bracket schedules. This information is in a separate optional file sold as ZIPsales™ Schedule.
Specialized Industry Coverage
In addition to general retail rates, we offer specialized databases for specific industries, including Food, Fuel, Hotel, Leasing, Telecom, Utilities, etc.
Updates
With each update you receive a fresh full blown copy of all the files that comprise the database, as well as a set of files that contain only the changes.
System Requirements
Since the files are shipped in ASCII format, they can be used on almost any platform. The only requirement is 8 MB of free disk space. The Flat, Plus4, and Schedule files require approximately 11, 4, and .5 MB free, respectively.
Future Enhancements
We continually enhance the database with new information and additional fields. To insure backward compatibility, we never modify or rearrange existing fields. We always append the new fields to the bottom of the record.
Installation
The files are distributed in zipped format.
Alternate Flat File
As its name implies, this file is an alternative to the other files. It contains the bulk of the data required by most. In order to arrive at the combined tax rates, using the main files that comprise ZIPsales™ Database, you have to link multiple files, as described in the following pages. For those who find that too cumbersome, this file offers a good alternative. While breaking out the rates at all levels, it still supplies the data in a single file, albeit with somewhat less data. You can use this file in combination with the other files to simply pluck data from any of the other files as necessary.
For a more detailed explanation of the fields in this file, please refer to the detailed files described in the following pages. As far as ZIP code data is concerned, this file contains exactly the same data and number of records as the ZIP file. Note: This file does not contain historical information.
Record Layout
Name | Type | Length | Decimal | Explanation | Position |
---|---|---|---|---|---|
ZIP | Character | 5 | 5 | digit ZIP code | 1-5 |
City | Character | 28 | City name | 6-33 | |
County | Character | 25 | County name | 34-58 | |
State | Character | 2 | State abbreviation | 59-60 | |
Cntydef | Character | 1 | County default | 61 | |
Default | Character | 1 | General default | 62 | |
Cntyfips | Character | 5 | County FIPS code | 63-67 | |
Statestax | Numeric | 8 | 6 | State sales tax | 68-75 |
Cntstax | Numeric | 8 | 6 | County sales tax | 76-83 |
Cntlclstax | Numeric | 8 | 6 | County local sales tax | 84-91 |
Ctystax | Numeric | 8 | 6 | City sales tax | 92-99 |
Ctylclstax | Numeric | 8 | 6 | City local sales tax | 100-107 |
Combstax | Numeric | 8 | 6 | Combined sales tax | 108-115 |
Stateutax | Numeric | 8 | 6 | State use tax | 116-123 |
Cntutax | Numeric | 8 | 6 | County use tax | 124-131 |
Cntlclutax | Numeric | 8 | 6 | County local use tax | 132-139 |
Ctyutax | Numeric | 8 | 6 | City use tax | 140-147 |
Ctylclutax | Numeric | 8 | 6 | City local use tax | 148-155 |
Combutax | Numeric | 8 | 6 | Combined use tax | 156-163 |
Effdate | Character | 8 | Effective date | 164-171 | |
Geocode | Character | 10 | Geographic location code | 172-181 | |
Inout | Character | 1 | Inside/outside cityflag | 182 | |
CR/LF | Character | 2 | 183-184 |
Sort Order:
- ZIP - Ascending.
- City - Ascending.
- County - Ascending.
Key:
- ZIP.
Because ZIP code can cross multiple cities and counties, ZIP is not unique. Using some of the fields described above as part of the key, will help narrow down the choices. Otherwise, resort to the defaults.
Files
ZIPsales™ Database is composed of a number of files. The files are shipped in fixed length ASCII format. Each record ends in carriage return and line feed characters.
Following is a list of the files:
- ZIP ZIP code and related information
- State State rates
- County County rates
- City City rates
- Local County and city local rates
- Rules Freight rules
- Schedule Rounding bracket schedules (optional)
- Plus4 ZIP + 4 to county cross reference (optional)
- Miltryzip APO and FPO Zipcode information
- DetailG Tax breakdown for some tax records
.DBF Structures
While the files are shipped in ASCII format, they can easily be ported to .dbf structures. .dbf skeletons are provided for each file. The .dbf skeletons have the same name as their ASCII counterparts.
To load the data into .dbf files, using native xBase dialect, repeat the following statements -- written for the State file -- for each of the files:
USE STATE
APPEND FROM STATE.TXT SDF
Zip
Record Layout
Name | Type | Length | Position |
---|---|---|---|
ZIP | Character | 5 | 1-5 |
City | Character | 28 | 6-33 |
County | Character | 25 | 34-58 |
State | Character | 2 | 59-60 |
Uspscity | Character | 28 | 61-88 |
Cntyfips | Character | 5 | 89-93 |
Cntydef | Character | 1 | 94 |
Default | Character | 1 | 95 |
Geocode | Character | 10 | 96-105 |
Inout | Character | 1 | 106 |
CR/LF | Character | 2 | 107-108 |
File Contents
This file contains all United States Postal Service (USPS) ZIP codes, and related information, except for APO/FPO ZIP codes. Each ZIP code is repeated as many times as necessary to cover all the cities and counties it crosses into. ZIP code is not repeated if it crosses into a city that is classified as ineligible for mail delivery by the USPS, except if the city imposes a tax of its own.
Note! All character information in this file, as well as throughout the database, is in caps.
Canadian postal codes are handled differently. In Canada, the first digit of each postal code corresponds to a province. Therefore, only the first digit of each Canadian postal code is included, with its corresponding province name, specified in the County field.
This file can also be used as a ZIP code verification tool.
ZIP
The 5 digit ZIP code.
Some cities imposing a tax of their own have unpublished ZIP codes. These cities will appear in the file with ZIP codes of 99999.
City
The place name that the ZIP code serves. This is the city to be used as part of the key when going against the tax rate files. For Canadian records, this field is blank.
County
The name of the county that the ZIP code is in. All states are sub-divided into counties, referred to as Parish in Louisiana, and Borough in Alaska. For Canadian records, this field contains province name.
State
The 2-byte state abbreviation code. For Canadian records, this field contains “CN”. Note! The state code for Canada is “CN” throughout the database.
Uspscity
The city name that the USPS prefers as the one used when addressing mail, since the ZIP code place name from the City field is sometimes a very small city.
Cntyfips
Federal Information Processing Code (FIPS) that uniquely identifies each county in the U.S. If you maintain FIPS code in your files, use this field to determine the county when a ZIP code crosses counties.
Cntydef
The default record for when there are multiple counties for a given ZIP code and city combination. Use this default when you know the city, but not the county. The default record contains a ‘Y’ in this field. The other records with the same ZIP code and city as this one contain a blank in this field. This default is based on the most populous county per ZIP code and city combination.
Default
The default record for when a ZIP code spans multiple cities and counties. Use this default when you only know the ZIP code. The default record contains a ‘Y’ in this field. The other records with the same ZIP code as this one contain a blank in this field. This default is based on the most populous city and county combination per ZIP code.
Geocode
This is a unique code representing each geographic combination of state, county, and city. The code is made up of the Federal Information Processing Code (FIPS) that uniquely identifies each state, county, and city in the U.S. The first 2 bytes contain the 2 digit state FIPS code, followed by the 3 digit county FIPS code, and the 5 digit city FIPS code.
The City field sometimes refers to ZIP code place names that are not cities in their own right, but are rather embedded within another city. This can occur for neighborhood names, buildings with unique ZIP codes, etc. Because of this, there can be duplicate Geo codes. Unique Geo codes are only assigned on a true city basis. For tax purposes however, all of the places with the same Geo code result in the same tax.
When you encode your own accounts with Geocode, you have to determine two additional facts. 1) If the account is inside or outside legal city boundaries, resulting in the inclusion or exclusion of city imposed taxes. 2) If the account is inside or outside local taxing entity boundaries, such as school district, water district, etc.
Once the inside/outside status of an account is determined, the account has to be encoded as such. These codes will come into play when keying in to the detail tax files.
Inout
This indicates whether this ZIP code lies completely within legal incorporated city limits, completely outside of legal incorporated city limits, or both inside and outside. This flag is only populated for legally incorporated cities.
Possible values are:
- I - Inside.
- O - Outside.
- B - Both inside and outside.
- Blank - Both inside and outside.
Sort Order:
- ZIP - Ascending.
- City - Ascending.
- County - Ascending.
Key:
- ZIP.
Because ZIP code can cross multiple cities and counties, ZIP is not unique. Using some of the fields described above as part of the key, will help narrow down the choices. Otherwise, resort to the defaults.**
State
Record Layout
Name | Type | Length | Decimals | Position |
---|---|---|---|---|
State | Character | 2 | 1-2 | |
Name | Character | 20 | 3-22 | |
Salestax | Numeric | 8 | 6 | 23-30 |
Usetax | Numeric | 8 | 6 | 31-38 |
Effdate | Character | 8 | 39-46 | |
Geocode | Character | 2 | 47-48 | |
CR/LF | Character | 2 | 49-50 |
File Contents
This file contains the state portion sales & use tax information, for all the states. Backward information is kept through January 1, 1994. Therefore, states may be repeated, with different effective dates. For Canada, the records with a state code of “CN” contain the GST tax.
State
The 2-byte state abbreviation code.
Name
The full state name.
Salestax
The state sales tax rate.
Note! All Rates throughout the database are expressed in decimals, i.e. 10% appears as 0.100000.
Usetax
The state use tax rate.
Effdate
The date when the tax information on this record became effective.
Note! All dates throughout the database date appear as yyyymmdd, i.e. January 1, 1994 appears as 19940101. Where the true effective date was unknown, the date was defaulted to 19940101.
Geocode
The first 2 bytes of the Geocode. These 2 bytes pertain to state only.
Sort Order:
- State - Ascending.
- Effdate - Descending.
Key:
- State or Geocode.
Because records are repeated for backward rates, the key is not unique. However, the first record you hit will contain the current tax information, because of the descending order of Effdate.
County
Record Layout
Name | Type | Length | Decimals | Position |
---|---|---|---|---|
County | Character | 25 | 1-25 | |
State | Character | 2 | 26-27 | |
Salestax | Numeric | 8 | 6 | 28-35 |
Usetax | Numeric | 8 | 6 | 36-43 |
Sovrride | Numeric | 8 | 6 | 44-51 |
Uovrride | Numeric | 8 | 6 | 52-59 |
Location | Character | 8 | 60-67 | |
Split | Numeric | 5 | 68-72 | |
Maxtax | Numeric | 8 | 2 | 73-80 |
Single | Character | 1 | 81 | |
Effdate | Character | 8 | 82-89 | |
Soverride | Character | 1 | 90 | |
Admin | Character | 1 | 91 | |
Geocode | Character | 5 | 92-96 | |
CR/LF | Character | 2 | 97-98 |
File Contents
This file contains the county portion sales & use tax information, for those counties that impose a sales & use tax of their own, or have to be reported separately. Backward information is kept through January 1, 1994. Therefore, counties may be repeated, with different effective dates. For Canada, this file contains the provincial taxes.
County
The county name.
State
The 2-byte state abbreviation code for this county.
Salestax
The county sales tax rate.
Usetax
The county use tax rate.
Sovrride
Counties may override the sales & use tax imposed by the state, either by eliminating the state portion completely, or by reducing it. The fact that a county overrides the state tax rates, is indicated by a ‘Y’ in the Soverride field. If overridden, Sovrride and Uovrride contain the state portion of the tax for this county.
This field then, contains the state sales tax rate for this county.
Uovrride
The state use tax rate for this county, in case the county overrides the state tax rate.
Location
The county location code as required when filing sales & use tax returns.
Split
Some counties cap their taxes at a given maximum sales amount. This field contains the maximum sales amount that sales & use tax is collected upon.
Maxtax
The maximum sales or use tax amount that can be collected. Similar to Split, some counties place a cap on the amount collected, rather than the sales amount upon which to collect.
Maxtax and Split are mutually exclusive. You will never find both fields populated on the same record.
Single
Sometimes, counties allow a split or a maxtax to apply to each item on an invoice individually, and, sometimes, the split or maxtax can only apply to the invoice as a whole. If the former is true, this field contains a 'Y.' Otherwise, it is blank.
If, for example, an invoice represents an aggregate purchase of several line items, and the flag contains a 'Y,' then the split or maxtax would apply to each line item of the invoice. If the flag was blank, then the split or maxtax would only be able to be applied once to the aggregate total of the invoice.
In a case where, for example, the tax rate would be 5% up to $1000 and zero percent thereafter, a person purchasing several line items, each totalling $2000, could apply the split to each item and pay tax on only $1000 of each line item. If the flag was blank, then the $1000 limit would apply to the entire invoice and not to each line item.
Some Canadian provinces impose their portion of the tax on top of the GST, after the calculation. For example, on a sales amount of $100, the GST is $7.00. The province of Quebec charges 7.5% on $107 as opposed to the province of Manitoba which charges 7% on $100. Those provinces that impose their portion of the tax after the GST is calculated, are denoted by a “G” in this field.
Effdate
The date when the tax information on this record became effective.
Soverride
A ‘Y’ in this field indicates that the county overrides the state rates. The actual state rates for this county are in Sovrride and Uovrride.
Admin
Specifies the tax authority that administers the taxes for this county. Possible values are: S - Administered by the state.
N - Administered by the county.
This indicator applies only to the county rates, and not the overrides.
Geocode
The first 5 bytes of the Geocode. These 5 bytes pertain to state and county only.
Sort Order:
- State - Ascending.
- County - Ascending.
- Effdate - Descending.
Key:
- County.
- State.
Because records are repeated for backward rates, the key is not unique. However, the first record you hit will contain the current tax information, because of the descending order of Effdate.
City
Record Layout
Name | Type | Length | Decimals | Position |
---|---|---|---|---|
City | Character | 28 | 1-28 | |
County | Character | 25 | 29-53 | |
State | Character | 2 | 54-55 | |
Salestax | Numeric | 8 | 6 | 56-63 |
Usetax | Numeric | 8 | 6 | 64-71 |
Csovrride | Numeric | 8 | 6 | 72-79 |
Cuovrride | Numeric | 8 | 6 | 80-87 |
Coverride | Character | 1 | 88 | |
Ssovrride | Numeric | 8 | 6 | 89-96 |
Suovrride | Numeric | 8 | 6 | 97-104 |
Soverride | Character | 1 | 105 | |
Location | Character | 8 | 106-113 | |
Split | Numeric | 5 | 114-118 | |
Splitstax | Numeric | 8 | 6 | 119-126 |
Splitutax | Numeric | 8 | 6 | 127-134 |
Cntysplit | Numeric | 5 | 135-139 | |
Single | Character | 1 | 140 | |
Effdate | Character | 8 | 141-148 | |
Admin | Character | 1 | 149 | |
Geocode | Character | 10 | 150-159 | |
CR/LF | Character | 2 | 160-161 |
File Contents
This file contains the city portion sales & use tax information, for those cities that impose a sales & use tax of their own, or have to be reported separately. Backward information is kept through January 1, 1994. Therefore, cities may be repeated, with different effective dates.
Legal city limits are defined by city governments. City names however, can stretch far beyond legal city limits for the purposes of identifying addresses for mail delivery, or how people define where they live. Any city imposed rates, overrides, etc. do not apply beyond legal city limits.
City
The city name. This name is the ZIP code place name as it appears in the City field of the ZIP file.
County
The county name for this city.
State
The 2-byte state abbreviation code for this city.
Salestax
The city sales tax rate.
Usetax
The city use tax rate.
Csovrride
Cities may override the sales & use tax imposed by the state or the county, either by eliminating them completely, or by reducing them. The fact that a city overrides the state tax rates, is indicated by a ‘Y’ in the Soverride field. The fact that a city overrides the county tax rates, is indicated by a ‘Y’ in the Coverride field. If the state taxes are overridden, Ssovrride and Suovrride contain the state portion of the tax for this city. If the county taxes are overridden, Csovrride and Cuovrride contain the county portion of the tax for this city.
This field then, contains the county sales tax rate for this city.
Cuovrride
The county use tax rate for this city, in case the city overrides the county rate.
Coverride
A ‘Y’ in this field indicates that the city overrides the county rates. The actual county rates for this city are in Csovrride and Cuovrride.
Ssovrride
The state sales tax rate for this city, in case the city overrides the state rate.
Suovrride
The state use tax rate for this city, in case the city overrides the state rate.
Soverride
A ‘Y’ in this field indicates that the city overrides the state rates. The actual state rates for this city are in Ssovrride and Suovrride.
Location
The city location code as required when filing sales & use tax returns.
Split
Some cities cap their taxes at a given maximum sales amount. If so, this field contains the maximum sales amount that sales & use tax is collected upon.
Other cities impose different tax rates below and above a given sales amount. If so, this field contains the sales amount at which the sales & use tax rates split, with the rates that apply above this split amount spelled out in Splitstax and Splitutax.
These splits apply only to the city level rates, and not to the overridden county and state rates.
Splitstax
The sales tax rate for the part of the sales amount that is higher than the split amount.
Splitutax
The use tax rate for the part of the sales amount that is higher than the split amount.
Cntysplit
Cities may override the sales amount at which counties cap their sales tax collection, as indicated in the Split field on the county record, or the maximum tax amount that the county allows to collect, as indicated by the Maxtax field on the county record. This override is independent of any other override flags and fields, and is indicated merely by the fact that there is a value in this field.
This field then, if populated, contains the county Split, which always overrides either Split or Maxtax on the county record, whichever is populated.
Single
Sometimes, cities allow a split to apply to each item on an invoice individually, and, sometimes, the split can only apply to the invoice as a whole. If the former is true, this field contains a 'Y.' Otherwise, it is blank.
If, for example, an invoice represents an aggregate purchase of several line items, and the flag contains a 'Y,' then the split would apply to each line item of the invoice. If the flag was blank, then the split would only be able to be applied once to the aggregate total of the invoice.
In a case where, for example, the tax rate would be 5% up to $1000 and zero percent thereafter, a person purchasing several line items, each totalling $2000, could apply the split to each item and pay tax on only $1000 of each line item. If the flag was blank, then the $1000 limit would apply to the entire invoice and not to each line item.
This indicator applies only to the city level splits, and not the county.
Effdate
The date when the tax information on this record became effective.
Admin
Specifies the tax authority that administers the taxes for this city. Possible values are: S - Administered by the state.
N - Administered by the county. T - Administered by the city.
This indicator applies only to the city rates, and not the overrides.
Geocode
The 10 byte Geocode representing the geographic combination of state, county, and city.
Sort Order:
- State - Ascending.
- County - Ascending.
- City - Ascending.
- Effdate - Descending.
Key:
- City, County, State. or
- Geocode.
Because records are repeated for backward rates, the key is not unique. However, the first record you hit will contain the current tax information, because of the descending order of Effdate.
Local
Record Layout
Name | Type | Length | Decimals | Position |
---|---|---|---|---|
City | Character | 28 | 1-28 | |
County | Character | 25 | 29-53 | |
State | Character | 2 | 54-55 | |
Salestax | Numeric | 8 | 6 | 56-63 |
Usetax | Numeric | 8 | 6 | 64-71 |
Csovrride | Numeric | 8 | 6 | 72-79 |
Cuovrride | Numeric | 8 | 6 | 80-87 |
Coverride | Character | 1 | 88 | |
Location | Character | 8 | 89-96 | |
Effdate | Character | 8 | 97-104 | |
Id | Character | 1 | 105 | |
Desc | Character | 30 | 106-135 | |
Inout | Character | 1 | 136 | |
Ssovrride | Numeric | 8 | 6 | 137-144 |
Suovrride | Numeric | 8 | 6 | 145-152 |
Soverride | Character | 1 | 53 | |
Admin | Character | 1 | 154 | |
Geocode | Character | 10 | 155-164 | |
CR/LF | Character | 2 | 165-166 |
File Contents
This file contains sales & use tax information for localities, such as rapid transit areas, school districts, etc. that impose sales & use taxes of their own, in addition to those imposed by counties and cities. Local taxes can apply to whole counties, or just to specific cities. Certain cities may have a local tax of their own, while still falling under the jurisdiction of a county-wide local tax.
For city locals we make every effort to determine which cities they apply to. It is impossible though not to miss some, since the boundaries of some local taxing districts do not coincide with cities and are not published as such. Therefore, those local taxing districts that are not clearly defined are also represented in records of their own, to be used as catch-all records. You only need to concern yourself with the catch-all record if you are directly aware of a local tax that is not represented by a city local record.
This file contains three types of records; County locals, city locals, and district locals. County locals apply county-wide, and city and district locals apply only to specific cities. The records are differentiated by the City field and the Geo code. County locals have a blank City field and the city Geo portion is blank . City locals contain the city name in the City field and the city Geo portion. District locals contain the words “TAX DISTRICT x’ in the City field, where “x” represents a number, and Geo portions of state, county, and the “x” number. This is a number we assign. The Description of the tax district can be viewed in the Desc field. City and district locals are mutually exclusive, and picking up one precludes picking up the other.
Backward information is kept through January 1, 1994. Therefore, records may be repeated, with different effective dates.
City
The city name where this local tax applies. This name is the ZIP code place name as it appears in the City field of the ZIP file.
If the local tax applies county-wide, the City field is blank.
County
The county name.
State
The 2-byte state abbreviation code for this city.
Salestax
The local sales tax rate.
Usetax
The local use tax rate.
Csovrride
Localities may override the sales & use tax imposed by the state or the county, either by eliminating them completely, or by reducing them. The fact that a locality overrides the state tax rates, is indicated by a ‘Y’ in the Soverride field. The fact that a locality overrides the county tax rates, is indicated by a ‘Y’ in the Coverride field. If the state taxes are overridden, Ssovrride and Suovrride contain the state portion of the tax for this locality. If the county taxes are overridden, Csovrride and Cuovrride contain the county portion of the tax for this locality.
If both a city in the City file and a city local in this file override taxes at a level above them, the local overrides take precedence over the city overrides. If both a county in the county file and a city local in this file override the state rate, the city local would take precedence. If both a county local and a city local record apply and both override the state rate, the city local would override the county local as it is at the lower level. County locals never override the county rate.
This field then, contains the county sales tax rate for this locality.
Cuovrride
The county use tax rate for this locality, in case the locality overrides the county rate.
Coverride
A ‘Y’ in this field indicates that the locality overrides the county rates. The actual county rates for this locality are in Csovrride and Cuovrride.
Location
The local location code as required when filing sales & use tax returns.
Effdate
The date when the tax information on this record became effective.
Id
This field is not used. It is only kept for backward compatibility.
Desc
A description of the local taxing authority, i.e. “REGIONAL TRANSPORTATION DISTRICT”.
Inout
City locals can apply either only inside legal city limits, only outside legal city limits, or both inside and outside legal city limits. County locals however, always apply county-wide. This field indicates the scope of where a city local applies.
Possible values are:
- I - Inside city only.
- O - Outside city only.
- B - Both, inside and outside city.
- Blank - Both, inside and outside city.
Ssovrride
The state sales tax rate for this locality, in case the locality overrides the state rate.
Suovrride
The state use tax rate for this locality, in case the locality overrides the state rate.
Soverride
A ‘Y’ in this field indicates that the locality overrides the state rates. The actual state rates for this locality are in Ssovrride and Suovrride.
Admin
Specifies the tax authority that administers the taxes for this locality.
Possible values are:
- S - Administered by the state.
- N - Administered by the county.
- T - Administered by the city.
This indicator applies only to the local rates, and not the overrides.
Geocode
The 10 byte Geocode representing the geographic combination of state, county, and city.
Sort Order:
- State - Ascending.
- County - Ascending.
- City - Ascending.
- Effdate - Descending.
Key:
- City, County, State. or
- Geocode.
Since there are multiple record types in this file, you need to key in more than once to pick up each local tax.
Because records are repeated for backward rates, the key is not unique. However, the first record you hit will contain the current tax information, because of the descending order of Effdate.
Rules
Record Layout
Name | Type | Length | Position |
---|---|---|---|
State | Character | 2 | 1-2 |
County | Character | 25 | 3-27 |
City | Character | 28 | 28-55 |
Id | Character | 3 | 56-58 |
Taxable | Character | 1 | 59 |
Condition | Character | 254 | 60-313 |
Effdate | Character | 8 | 314-321 |
CR/LF | Character | 2 | 322-323 |
File Contents
This file contains freight rules. Only those states that impose sales & use tax are included in this file. In most instances, these rules do not differ between taxing authorities lower than state, in which case the county and city fields will be blank. Sometimes however, they do. If a rule applies state-wide, the county and city fields are blank. If a rule applies county-wide, the city field is blank.
At the inception of this file, all rules were entered without effective dates. As the rules change, the new rules will have effective dates. Therefore, records may be repeated, with different effective dates.
State
The 2-byte state abbreviation code.
County
The county name. This field is only populated when the rule applies to this county only, and not to the entire state.
City
The city name. This field is only populated when the rule applies to this city only, and not to the entire county and state.
Id
Identifies the rule. This field has different contents for Condition records and different contents for Rule records.
Condition records. For the sake of clarity and brevity, there are a number of records at the beginning of the file that describe all the possible conditions imposed by any taxing authority. The rules are described as concisely as possible, while maintaining comprehensibility. These records are called Condition records, and they have all fields blank, except for Id and Condition. The first position of the Id field contains “F” for freight. The second position of the Id field contains a letter such as “A”, or “B”, etc. which names the condition. The Condition field describes the actual exemption condition.
Each individual taxing entities’ Condition field then, contains only the codes that are applicable to it. For example, the first freight Condition record contains “FA” in its Id field, and “SHIPPING CHARGES SEPARATELY STATED ON INVOICE” in its Condition field. Any taxing authority requiring this condition for freight or labor to be exempt from tax, will contain “A” in its Condition field, in addition to any other condition.
Rule records. In the individual taxing authority records, the first position of this field contains an “F” for freight rules. The second and third positions contain “S” for those rules applicable to sales tax only, “U” for those rules applicable to use tax only, or “SU” for those rules applicable to both.
This approach simplifies the implementation of rules. Use the Condition records at the top of the file to pose a Y/N question for each rule. Based on the answer, you will come up with a set of conditions, which will look somewhat like “ABDF”, having every rule code to which the answer was “Y”. Then, browse through all the records for each taxing authority. If all codes in any one record for a given taxing authority exist within this string, the transaction is exempt from tax for that authority.
Taxable
Identifies the taxability status.
Contains "T" if taxable, "E" if exempt. “T” never carries any conditions. It signifies unconditional taxability. “E” almost always has stipulations described in the Condition field.
Condition
Contains the exemption conditions.
The contents of this field refer back to the Condition records using codes such as “A”, or “B”, etc. All the required rules are listed next to each other, so that one taxing authority might have “ABD”, while another has “AEF”, etc.
If there is an “or” condition, it will be on a separate record. For example, if a taxing authority exempts freight from tax if “SHIPPED VIA COMMON CARRIER” (Condition F), or if “SHIPPED VIA CONTRACT CARRIER” (Condition G), there will be two records. One with “F” in its condition field, and the other one with “G”.
Another reason for the existence of multiple records for a single taxing authority is “effective date”. If a taxing authority changes a rule, all the rule records for that authority are repeated with
the latest rule’s effective date. What constitutes a set of rules for a taxing authority, is a set of records with the same “effective date” in each record.
Effdate
The effective date for the rules.
This field is blank for the first set of rule records per taxing authority, since we make no representation as to when these rules became effective. When any rule changes however, additional records are added with the new rule’s effective date.
Sort Order:
- State - Ascending.
- County - Ascending.
- City - Ascending.
- Id - Ascending.
- Effdate - Descending.
Key:
- State.
- County.
- City.
- Id.
After keying in, traverse all the records with this key, to find all the rules applicable to this authority, since there might be additional records for “or” conditions as explained above.
Schedule
(This is an add-on file and must be purchased separately)
Record Layout
Name | Type | Length | Decimals | Position | |
---|---|---|---|---|---|
State | Character | 2 | 1-2 | ||
County | Character | 25 | 3-27 | ||
City | Character | 28 | 28-55 | ||
Local | Character | 1 | 56 | ||
Rate | Numeric | 8 | 6 | 57-64 | |
From | Numeric | 6 | 2 | 65-70 | |
To | Numeric | 7 | 2 | 71-77 | |
Tax | Numeric | 5 | 2 | 78-82 | |
Increment | Numeric | 4 | 2 | 83-86 | |
Type | Character | 1 | 87 | ||
Reground | Character | 1 | 88 | ||
Geocode | Character | 10 | 89-98 | ||
CR/LF | Character | 2 | 99-100 |
File Contents
Each state uses unique rounding methods when calculating taxes, creating the need for unique bracket schedules. This is especially true in point of sale systems involving fractions of a dollar. The bracket schedules are used as guidelines for calculating the applicable tax amount. For example, under common rounding methods, a sale of $1.10 in a 10% tax jurisdiction would be .11. Using specific bracket schedules however, might dictate that the tax collected on such a transaction be only .10.
State
The 2-byte state abbreviation code.
County
The county name. This field is only populated when the bracket schedule applies to this county only, and not to the entire state.
City
The city name. This field is only populated when the bracket schedule applies to this city only, and not to the entire state.
Local
A ‘Y’ in this field indicates that the bracket schedule applies only to local level taxes. This field will only contain a ‘Y’ when the City and/or County fields are populated. Local level is determined by whether the city field is populated. If it is blank, this record applies to county local. If it is populated, this record applies to city local.
Rate
The tax rate for which the bracket schedule applies. Different brackets are used for different rates.
From
The sales amount from where the tax applies.
To
The sales amount through which the tax applies.
Tax
The actual tax amount to collect when the sales amount falls between the From and To amounts, inclusive.
Increment
The increment between the prior and the current brackets. For example, if the prior bracket covers amounts from .01 through .10 and the current bracket covers amounts from .11 to .17, the increment would be .07.
Type
Possible values are:
- I - Initial.
- R - Repetitive.
In some jurisdictions, there are two different bracket schedules involving the same From and To amounts. Choose the bracket schedule based on the total sales amount. If the total sales amount is within the highest To amount in the “I” type bracket schedule, the “I” type is to be used. Otherwise use the “R” type.
If the sales amount exceeds the To amount, divide the integer amount of the sale by the highest integer portion of the To amount of schedule type “R”, and apply the tax amount from the Tax field, as many times. Then calculate the tax on the fractional amount , if any, directly from the bracket schedule, and add the two tax results.
Reground
Indicates if the bracket is based on regular rounding or uses a special method. A ‘Y’ means it uses regular rounding. Otherwise it’s blank.
Geocode
The 10 byte Geocode representing the geographic combination of state, county, and city. The Geocode fields contents depend on whether only state, state and county, or state and county and city are populated. The Geocode portion will be left out for the blank entity.
Sort Order:
- State - Ascending.
- County - Ascending.
- City - Ascending.
- Rate - Ascending.
- Type - Ascending.
- From - Ascending.
Key:
- State.
- County.
- City.
- Rate.
Plus4
(This is an add-on file and must be purchased separately)
Record Layout
Name | Type | Length | Position |
---|---|---|---|
ZIP | Character | 5 | 1-5 |
Plus4lo | Character | 4 | 6-9 |
Plus4hi | Character | 4 | 10-13 |
Cntyfips | Character | 5 | 14-18 |
CR/LF | Character | 2 | 19-20 |
File Contents
This cross reference file determines the county for any ZIP + 4. Only those ZIP codes that cross counties are included in the file. This way, the file is reduced from 1,000,000 records to 120,000 records, conserving space and speeding up the look-up process.
ZIP
The 5 digit ZIP code.
Plus4lo
The first ZIP + 4 extension in this range.
Plus4hi
The last ZIP + 4 extension in this range.
Cntyfips
Federal Information Processing Code (FIPS). Use this field as part of the key when looking up the ZIP file.
Sort Order:
- ZIP - Ascending.
- Plus4lo - Ascending.
Key:
- ZIP.
- Plus4lo.
Each combination of ZIP + 4 is unique.
Please Note:
In some ZIP+4 records, the last two places of the Plus4lo or Plus4hi fields may be filled with the letters 'ND'. This is a U.S. Postal Service designation for addresses considered presently 'Non- Deliverable.' Non-deliverable areas include vacant lots, land that borders railroad tracks, and areas to which the postal service does not deliver mail. The purpose of the USPS in providing this designation is to allow for the addition of future addresses without having to go to a ZipPlus5 system. The value of 'ND' is higher than '99'; therefore, a range of '00-ND' includes all values from '00' to 'ND.'
Mltryzip
Record Layout
Name | Type | Length | Position |
---|---|---|---|
Zip | Character | 5 | 1-5 |
City | Character | 28 | 6-33 |
County | Character | 25 | 34-58 |
State | Character | 2 | 59-60 |
Uspscity | Character | 28 | 61-88 |
CR/LF | Character | 2 | 89-90 |
File Contents
This file contains APO and FPO zip code information.
Zip
The 5 digit ZIP code.
City
The place name that the ZIP code serves.
County
The name of the county that the ZIP code is in.
State
The 2-byte military state abbreviation code.
Possible values are:
- AE
- Armed Forces Africa
- Armed Forces Canada
- Armed Forces Europe
- Armed Forces Middle East
- AA
- Armed Forces Americas(except Canada)
- AP
- Armed Forces Pacific
Uspscity*
The city name that the UPSO prefers as the one used when addressing mail.
Possible values are:
- APO - Army/Airforce Post Office
- FPO - Fleet Post Office (Navy/Marines)
Sort Order:
- Zip - Ascending.
Key:
- Zip
Detailg
Record Layout
Name | Type | Length | Decimals | Position |
---|---|---|---|---|
State | Character | 2 | 1-2 | |
County | Character | 25 | 3-27 | |
City | Character | 28 | 28-55 | |
Salestax | Numeric | 8 | 6 | 56-63 |
Usetax | Numeric | 8 | 6 | 64-71 |
Location | Character | 8 | 72-79 | |
Effdate | Character | 8 | 80-87 | |
Description | Character | 30 | 88-117 | |
ID | Character | 1 | 118 | |
Geocode | Character | 10 | 119-128 | |
CR/LF | Character | 2 | 129-130 |
File Contents
This file contains the breakdown of the state, county or city portion of the sales & use tax information, for those entities that break their taxes down in portions that are then distributed internally for various purposes. Backward information is kept through January 1, 1994. Therefore, entries may be repeated, with different effective dates. The use of this file is optional and need not be used to determine tax charged.
For an example of the application of use of this file, at the time of this writing, the County of Appling in Georgia charges a 2% county sales and use tax. Keying on this file will reveal that 1% of this tax is for Local Option(LO) and 1% is for Special Purpose
State
The 2-byte state abbreviation code.
County
The county name.
City
The city name.
Salestax
The portion of the entity’s sales tax rate applicable to the description below.
Usetax
The portion of the entity’s use tax rate applicable to the description below.
Location
The city location code as required when filing sales & use tax returns.
Effdate
The date when the tax information on this record became effective.
Description
A description of the local taxing authority, i.e. “REGIONAL TRANSPORTATION DISTRICT”.
ID
The location of the file where the tax to be broken down resides** Possible values are:
- L - Local
- N - County
- T - City
- S - State
Geocode
The 10 byte Geocode representing the geographic combination of state, county, and city. The Geocode fields contents depend on whether only state, state and county, or state and county and city are populated. The Geocode portion will be left out for the blank entity.
Sort Order:
- Id - Ascending.
- State - Ascending.
- County - Ascending.
- City - Ascending.
- Location- Ascending.
- Effdate - Descending.
Key:
- ID, Geocode, Location, Effdate
Building the File Links
Note! If you have the Plus4 file, please refer first to the Special Preliminary Step for ZIP + 4 outlined below.
Step 1
The ZIP file is the central file of the system. You key in to the ZIP file first. You then use the State, County, and City fields from the ZIP file or the Geo code to key in to the individual tax rate files. However, if you maintain state, county, and city or Geo code information in your own files, you can skip this file entirely, and use your own fields to key in to the tax rate files directly. Please note however that if you do use state, county, and city, the fields used as keys must conform exactly to the spelling, capitalization, and abbreviation used by the USPS. Otherwise, you will not find an exact match.
You can key in to the ZIP file in several ways.
- If you have only ZIP code, use that to key in to the ZIP file. If there are multiple ZIP code records matching your ZIP code, position yourself to the default record, using the Default field.
- If you maintain ZIP code and city in your files, use both to key in to the ZIP file, thereby eliminating any doubt when ZIP code crosses cities. If you still find multiple records matching that combination, because the ZIP code crosses into multiple counties, position yourself to the county default record, using the Cntydef field.
- If you maintain FIPS code in your files, or you picked up the FIPS code from our Plus4 file, append that to the key to determine county, in case the ZIP code crosses counties.
Step 2
Use state from the ZIP file or the state portion of the Geo code to key in to the State file. This will give you the state portion of the tax rate. You will always find a match, regardless of whether the state imposes sales and use tax.
Step 3
Use county and state from the ZIP file or the state and county portions of the Geo code to key in to the County file. This will give you the county portion of the tax rate. Add it to the state portion. If you do not find a match, it indicates that this county does not have a sales and use tax of its own.
You might find that the county overrides the state rates. In that case, use the overrides to replace the state portion picked up from the State file.
Step 4
Use city, county, and state from the ZIP file or the Geo code to key in to the City file. This will give you the city portion of the tax rate. Add it to the state and county portions. If you do not find a match, it indicates that this city does not have a sales and use tax of its own.
You might find that the city overrides the state and/or county rates. In that case, use the overrides to replace the state and/or county portion picked up from the State and/or County file.
Before applying the city portion, you have to ascertain that you are dealing with a location that falls within city limits. Sometimes, an address uses a city name for mail delivery purposes, while legally remaining outside city limits. In that case, the city portion does not apply. In the majority of cases, addresses are located inside city limits. You should therefore default to that, if in doubt.
Step 5
Use 28 spaces, county, and state from the ZIP file or the state and county portions from the Geo code to key in to the Local file. This will give you the local portion of the tax rate that applies county-wide. Add it to the state, county, and city portions. If you do not find a match, it indicates that there is no local tax applying to this county.
You might find that the locality overrides the state rates. In that case, use the overrides to replace the state portion picked up from the State, County, or City file.
Step 6
Use the city, county, and state from the ZIP file or the Geo code to key in to the Local file yet again. This will give you the local portion of the tax rate that applies just to this city. Be careful to apply this local only if its Inout indicator matches the inside/outside city status of your account. If so, add it to the state, county, city, and county local portions. If you do not find a match, it indicates that there is no local tax applying to this city.
You might find that the locality overrides the state and/or county rates. In that case, use the overrides to replace the state and/or county portion picked up from the State, County, or City files.
Step 7
If you are aware of a district local tax that applies to a given account, but no city local record was found, key in to the local file yet again using the words “TAX DISTRICT x” -- where “x” represents the proper number --, county, and state from the ZIP file or the state, county, and “x” portions from the Geo code. Add the rate to the state, county, city, and county local portions.
Step 8
Use the state, county, and city from the ZIP file or the Geo code to key in to the Rules file. Id is also part of the key. Since in most cases, rules apply state-wide, and do not differ at lower taxing levels, you will find that the County and City fields are mostly blank. You should then try to match again using just state and county, followed by just state if you still did not get a hit.
Step 9
If the transaction involves cents use the state, county, and city from the ZIP file or the Geo code to key in to the Schedule file.
Special Preliminary Step for Plus4
- Key in to the Plus4 file using the 5 digit ZIP code.
- Scan through the file to find a record where the +4 portion of the ZIP code falls within the Plus4lo and Plus4hi.
- If you do not find a match, the ZIP code does not cross counties. Key in to the ZIP file using just the 5-digit ZIP code.
- If you do find a match, key in to the ZIP file, using the 5 digit ZIP code plus the county FIPS code picked up from the Plus4 record.
Postal vs. Municipal Boundaries
Although ZIP code boundaries may be closely approximate to municipal boundaries for sales tax purposes, this is not always the case. Very often, we get calls from customers claiming that a particular ZIP code/city/county combination is not valid. They claim that the ZIP code and city is not located in the county referenced. The following is an explanation of this phenomenon:
Oftentimes, a rural region will be too sparsely populated to warrant a postal service center of its own. The nearest postal service center to the region may well be in a county different than that of the region itself. In these cases, the ZIP code of the servicing postal service center will reference a city and county combination which is different than that of the rural region.
For example, Mt. Juliet, TN, is mainly located in Wilson county. There are sections of Rutherford County, TN, which are too distant to be serviced by any other postal service centers located in Rutherford County. They are therefore serviced by the postal service center in Mt. Juliet, TN, with a ZIP code of 37122, located in Wilson County. Although a person living in this rural region will not be subject to Mt. Juliet city tax, that person WILL have an address of Mt. Juliet, TN 37122. That person also will not be subject to Wilson County taxes but rather to Rutherford County taxes.
This is a classic example of a case where postal code jurisdictions do not match municipal tax jurisdictions. WK has tried to avoid confusion to our customers by not providing information for areas where the total number of addresses within such rural area is five or less, even though there may be deliveries made there. We apologize for any confusion this may cause, but it will cause less confusion than if we would include them.
Updates
Updates to the database are supplied in two formats. Firstly, we provide the entire database with updated information in all the files. You can therefore replace your entire current database with any update. Secondly, we also provide you transaction files which contain only changes. There is one transaction file for each file in the database. The transaction files have the same name as the data files, except that they end in T, i.e. FLATT, ZIPT, etc.
The layout of the transaction file is the same as that of the data file, with the addition of a single- character field named “Flag”, at the end of each record. The Flag field denotes whether a record was inserted or deleted. When a field is changed in a non-historical file, the change is represented by a “delete” of the record with the old values, and an “insert” of the record with the new values. Thus, each change affects two records, one with an flag of “D”, and one with an flag of “I”.
PLEASE NOTE: Since most of our files contain historical records, the concept of updating records will not always conform to a Delete and Insert records. Historical files will only have Insert records if new rate structures have changed thus maintaining the history of each record. The flat.txt file does not contain historical data. The following files contain historical information: state.txt, county.txt, city.txt, local.txt
Quarterly subscribers should not use the transaction change files, as they reflect only monthly, not quarterly, changes. These files are meant for monthly subscribers only.
Possible values are:
- D - Deleted record.
- I - Inserted record.
Downloads
Updates can be downloaded from here
Our Products
ZIPsales™ Lookup
PC-based sales tax look-up and calculation system.
ZIPsales™ Lookup Pro
Transaction maintenance and liability reporting (add-on to ZIPsales™ Lookup). ZIPsales™ Database Jr.
Condensed file providing ZIP, city, county, state, and the combined sales & use tax rates.
ZIPsales™ Database
Detailed sales & use tax data, broken down by state, county, city, and local jurisdictions, with a wealth of tax information for each jurisdiction, for seamless integration into any system.
ZIPsales™ ZIP Codes
ZIP code information only.
ZIPsales™ ZIP + 4
ZIP + 4 to county cross reference (add-on to ZIPsales™ Database). ZIPsales™ Schedule
Bracket schedules for rounding taxes on sales involving fractions of a dollar.
ZIPcomm™ Products
Specialized telecom products providing detailed sales, use, excise, and utility tax rates and additional information specific to the telecommunications industry throughout the U.S. and its territories.
ZIPutil™ Products
Specialized public utility products providing detailed sales, use, excise and utility tax rates and additional information specific to the public utility industry throughout the U.S. and its territories.