Perfect Address Software Developer's Kit
Frequently Asked Questions
The Perfect Address Software Developer's Kit (SDK) consists of a mailing address database for the entire USA plus a search engine module which searches the 750-MB national address database quickly and efficiently in a standard Windows environment. The search engine is a Windows Dynamic Link Library (DLL) module which makes it easy for you to search the address database from your own custom programs or from commercial Windows applications such as MS Access or Visual Basic.
The Perfect Address SDK does all the dirty work of address matching, correcting spelling and naming mistakes for cities and streets, and adding the correct street name suffix. It even finds the proper city name from only the ZIP code, and corrects "alias" city names to the preferred city name. It also can provide additional information about an address, such as the proper county name and FIPS code, area code, time zone, and daylight saving time status.
The Perfect Address SDK works with any commercial or custom program which
can call a standard Windows DLL. This includes many commercial Windows database
applications, such as:
It can also be used with spreadsheet programs such as Excel and Quattro Pro.
Yes. You can use the Perfect Address SDK with custom programs written in any language which can pass pointer parameters (passing by reference) in the standard Pascal calling convention. The search engine module is actually written in C++. The SDK includes sample programs written in C++ which show how to call the search engine to check an address. The SDK includes the necessary C/C++ header file.
Yes. It runs under all 32-bit and 64-bit Windows operating systems. It does not run under DOS.
The Perfect Address SDK is available only for Windows platforms.
The Perfect Address SDK can be called from your custom Windows program or many commercial Windows database programs to process each individual record in your address database, under the control of the calling program. Depending upon the exact features available in your database program, you should be able to process your entire address database in this "batch" mode.
Although the Perfect Address SDK was designed to be called from virtually any commercial database program, it has no knowledge of any particular database structure.
The Perfect Address SDK is not CASS-certified by the US Postal Service (USPS), and therefore cannot be used to obtain postal discounts. As a result, there is no USPS-mandated 60-day usage restriction on your access to the Perfect Address national address database, as with CASS-certified products. For more information on getting postal discounts, see "How do I get postal discounts for my mailings?" elsewhere in this FAQ. See also "What does 'CASS' mean?" elsewhere in this FAQ.
Our customers use the Perfect Address SDK to verify and correct addresses at the point of address capture in interactive order processing or customer support applications. It is also used to standardize addresses in existing databases, so that duplicate records can be found and removed. Some customers use the SDK to add county, area code, or time zone information to their internal address databases.
If you use a mailing service bureau to prepare your mailing, your service bureau must process your address database to qualify for postal discounts, but normally does not return the updated address database to you. For that reason, you may wish to use the Perfect Address SDK to correct your address database in-house.
Yes. The Perfect Address SDK can be used with either batch or interactive applications, but it includes special functions designed just for interactive applications. These interactive functions are not permitted under the USPS's CASS rules, and therefore are not available in other products. If the search engine finds no exact match, it applies the "one component failure rule" in an attempt to find an address match. Using this rule, the search engine often finds multiple addresses which satisfy the address matching criteria. However, the USPS address matching rules prohibit the search engine from making a "guess" as to which address is correct.
For example, given this address:
and applying the "one component failure rule", the search engine might find these potential matches:
Either address could be correct, and the search engine has no way to resolve the conflict. USPS rules specify that a "no match" error message must be returned to the calling program in this case. However, instead of returning a "no match" error code, the Perfect Address SDK (which lives under no USPS restrictions) returns a special error code which indicates to the calling program that multiple matching addresses have been found. The calling program can then utilize the special "multiple match" functions provided by the SDK to analyze and further process the individual matching addresses in an attempt to further resolve the conflict.
To help the calling program resolve multiple matching address conflicts such as the example above, the search engine provides two functions which permit your program to examine the multiple matching records one at a time, and take some appropriate action. For example, you might wish to display a list of possible matching addresses to an operator who could resolve the issue by discussing the addresses with the customer who may still be on the phone.
You don't need to be a programmer in the formal sense to use the Perfect Address SDK. Users with only a little experience with the BASIC language have successfully interfaced Visual Basic and MS Access to the Perfect Address SDK. We provide a working sample program in Visual Basic to get you going. You need no knowledge of computer languages such as C or C#.
The calling program must first capture a street address from an operator
or access an address record in a database file. It then must pass the address
to the search engine for verification. The search engine searches the national address database,
looking for the best match. Upon completing its search, the search engine returns an
error code to the calling program, reporting one of the following results:
The exact error code returned by the search engine provides details to the calling program about exactly what type of address correction was required, or why the address could not be matched. At this point the original address remains unchanged.
In the case of an address correction, the calling program must make a second call to the search engine to retrieve the corrected address. Then it is up to the calling program to decide what to do with the corrected address. The corrected address might be displayed to an operator for verification, or it might be copied back into the original database by the calling program. Note that the Perfect Address search engine module has no control over the disposition of the address information retrieved by the calling program.
The SDK provides some or all of the following information about each address
which it successfully matches:
Yes. Using what we call the "reverse search" function, the SDK can find the preferred city name associated with any of the approximately 42,000 5-digit ZIP codes assigned by the US Postal Service.
Yes. Using what we call the "reverse search" function, the SDK can find the specific address or address range associated with a 9-digit (ZIP+4) ZIP code. Note that in many residential areas, a unique 9-digit ZIP code is often assigned by the US Postal Service to a range of addresses on a particular block. In those cases, the SDK returns the address range assigned to that particular 9-digit ZIP code. If a particular address or business is assigned a unique 9-digit ZIP code, the SDK will return the exact address associated with that 9-digit ZIP code.
Yes. As part of its address matching logic, the Perfect Address SDK converts all addresses to the standard address format specified by the US Postal Service. This includes reformatting the address using standard street names, abbreviations, and suffixes, elimination of extraneous punctuation, and conversion of unapproved city names to the USPS-preferred city name.
Standardization of addresses greatly improves the detection and removal of duplicate records from an address database.
We license the address database directly from the US Postal Service. Area code and time zone information comes from other sources. Our data is the most accurate and up-to-date address data currently available.
We currently update the address database every month. You can subscribe to monthly, quarterly, or semiannual updates.
No. The address database covers about 125 million mailing addresses in the USA, but it has only addresses. The primary use of this database is to verify and correct addresses. If you want the names and telephone numbers of individuals, you need a different product. The Perfect Address national address database does include the names and addresses of nearly 750 thousand businesses (those which receive a large quantity of mail).
The US Postal Service delivers mail to about 125 million addresses in the USA and its territories. The Perfect Address national address database provides address verification and correction for all 125 million addresses. However, like all other databases based on the USPS database, our database does not actually contain every exact street address to which mail can be delivered. Instead, the database contains about 45 million records, many of which define address ranges, especially in residential areas.
An address range record defines the lowest and highest street numbers which can exist for a given "block face" as well as the ZIP+4, congressional district number, and county name which apply to all addresses which may actually exist on that block face. So in most cases the exact street numbers are not actually available in the database. This, by the way, is exactly the case for all commercial products based on the USPS database, whether CASS-certified or not.
We license our address database from the US Postal Service, and we include in the Perfect Address national address database every address and address range available in the USPS database. The USPS claims that privacy laws passed by Congress prohibit it from making available an exact street address database. Our address database is the most accurate and complete address database available in this price range, because it is based solely on US Postal Service data.
Some telephone database products include the names, addresses, and telephone numbers of people with listed telephone numbers. But these databases obviously are incomplete, since they omit people with unlisted telephone numbers. What's more, since these products are based on published telephone books, the data is usually 12 to 24 months old by the time the database is published. Such data is often horribly inaccurate, making it less than useful.
Yes. The Perfect Address SDK search engine module is freely redistributable. In other words, we charge no royalty for your reproduction and distribution of the Perfect Address SDK search engine module. However, you are not permitted to reproduce the address database files. We encourage you to incorporate the SDK into your commercial applications and to sell the national address database to your customers. We offer substantial quantity discounts for the address databases.
Yes. The Perfect Address SDK is fully network aware.
No. We place no time limit on your access to the Perfect Address national address database. There are currently also no usage counts nor network usage restrictions in the Perfect Address SDK License. However, CD Light, LLC reserves the right to change the terms of the Perfect Address SDK License at any time.
A site license isn't currently required under the terms of the Perfect Address SDK License. We currently put no usage limit on a network installation of the Perfect Address search engine module. If you need multiple copies of the national address database, a quantity discount price schedule is available. However, CD Light, LLC reserves the right to change the terms of the Perfect Address SDK License at any time.
We suggest you mark such records with a special status flag or place them in an "unverified records" file. Then you can examine them later, using other software tools to help you resolve the bad addresses. One such tool is our interactive address lookup program, Perfect Address, sold separately.
No, for some very valid reasons. CASS (Coding Accuracy Support System) certification by the US Postal Service would force us (and users of our products) to update the SDK address database every 60 days. In addition, USPS CASS rules prohibit accessing the address data in certain interactive ways, and enforce certain address matching rules which most users find inconvenient and illogical. So we have chosen not to CASS-certify the Perfect Address SDK.
Under current USPS bulk mail discount rules, a mailing list must be processed by CASS-certified software every six months and meet other sorting and address-correction requirements in order to qualify for even the smallest postal discount. Such recent "postal reform" requirements have significantly raised the break-even threshold, effectively pushing bulk mail discounts beyond the reach of the small mailer. As the USPS further automates, we suspect that most postal discounts will eventually disappear altogether. Could this be the ultimate goal of "postal reform"?
When we originally brought out the SDK in 1995, we submitted it to the USPS for CASS certification, and it passed on the first try! But customer surveys showed us that postal discounts were not the primary goal of our user base, most of whom were not happy at being forced to purchase a new address database every 90 days (every 60 days under current rules). As a result, we began to sell a "non-CASS" version of the SDK with no address database time limit and more logical and user-friendly address matching logic.
Eventually we dropped the CASS-certified version altogether, concentrating our development efforts on the non-CASS version. However, to ensure the accuracy of our address matching, we periodically retest the Perfect Address SDK against the USPS CASS test database to verify that the product still meets or exceeds USPS address matching standards. As a result, the Perfect Address SDK provides the best of both worlds: a low-cost, accurate, and logical address matching system with no onerous database lifetime limits, yet perfect for interactive address capture applications, or correction and standardization of address lists.
CASS-certified products similar to the Perfect Address SDK are available from Group 1 Software, PostalSoft, and other software vendors. These CASS-certified products are much more expensive than the Perfect Address SDK. Worse, all CASS-certified address databases currently have a USPS-mandated 60-day usage lifetime. But before you decide which product you need, read "How do I get postal discounts for my mailings?" elsewhere in this FAQ.
CASS is a US Postal Service acronym for Coding Accuracy Support System. It refers to a USPS program for testing and certifying software used to prepare mailings which qualify for bulk mail discounts. Only software which has been "CASS-certified" by the USPS can be used to prepare mailings which qualify for postal discounts.
From the beginning, we designed the SDK's address matching logic to meet USPS CASS address matching requirements. To ensure the accuracy of our address matching, we retest the Perfect Address SDK periodically against the USPS CASS test database to verify that the product still meets or exceeds USPS address matching standards.
The search engine follows US Postal Service address matching rules to find a correct address match. The fundamental rule is called the "one component failure rule". In simple terms, this rule permits an address match if and only if no more than a single delivery address component mismatch exists, where a "component" is defined as a pre-directional, street name, street suffix, or a post-directional.
has all four address components. If one component can be added, changed, or deleted to achieve a unique match, the search engine is allowed to correct the address and return the ZIP+4. Under current USPS address matching rules, if more than one component is incorrect no match is allowed. If adding, changing or deleting a single component results in multiple matches, no match can be returned. The algorithm calls for adding a suffix first, before adding a directional. If there is no match, change or delete the suffix. Finally, change or delete a directional. Swapped directionals are NOT considered to be a component failure.
If there is no exact address match within the normal city, the search engine applies the "one component failure rule" within the input ZIP code. If there is still no match, the search engine applies the "one component failure rule" to all addresses within the postal finance number. If there is still no match, the address is rejected.
The search engine uses an advanced phonetic matching algorithm to match city and street names.
Under current US Postal Service bulk mail rules, your mailing must be "processed"
by software tested and certified by the US Postal Service (CASS-certified).
Your mailing must meet many stringent USPS requirements to qualify for even
the smallest discount:
There are two primary methods of preparing your mailing to meet these requirements: prepare the mailing yourself or have your mailing prepared by a mailing service bureau.
If you do the mailing preparation yourself, you must acquire the necessary USPS-certified software ($$$) with database updates every 60 days (more $$$) from one of the USPS-certified vendors. Next you must learn how to use the new software - not a trivial undertaking. Just getting up to speed on the pertinent USPS bulk mail rules can itself be a daunting task, generally requiring that you purchase and understand the USPS Domestic Mail Manual, a masterpiece of bureaucratic gobbledygook which comes in a four-inch 3-ring binder. Finally, you prepare your mailing and cross your fingers. Unfortunately, if you make even a simple mistake somewhere along the way, your friendly USPS "bulk mail acceptance unit" clerk will simply reject your mailing. What does that mean? No discount. All that work for nothing. Worse than that, your mailing is delayed while you try to straighten out the mess. Does this sound like fun?
Realistically, you have to mail thousands of pieces per month to even approach the financial break-even point where the postal discounts you get pay for the cost of the software and the time (your time) necessary to prepare the mailing. Below the break-even point it makes no sense to prepare your mailing in-house.
The alternative to this "do-it-yourself" nightmare is to "outsource" the preparation of your mailing to a mailing service bureau. These companies specialize in dealing with the USPS and its arcane bulk mail rules. They also can better afford to invest in the specialized USPS-certified software required and the frequent address database updates dictated by the USPS. They deal with the USPS bulk mail acceptance clerks on a daily basis, and they know what is needed to get your mailing through the system at the best possible discount. They are not cheap, but you may actually save money in the long run.
So what is the downside of using a mailing service bureau? Your address database doesn't get corrected. It is true that the service bureau must process your address database with USPS-certified software to qualify for the discount. But they normally won't update your database and return it to you corrected. So although you get the postal discount, your in-house database still contains old, incomplete, and non-standardized addresses. Addresses which would have been corrected by the mailing software, had you prepared the mailing in-house.
But does that really matter? After all, any incorrect addresses in your database will be corrected by the service bureau each time you send another mailing to the service bureau, so who cares? That may be true, but it also means that you cannot depend on the accuracy of addresses in your database, and you probably cannot detect duplicate records that surely exist there. Duplicate records creep into your database because of spelling mistakes, ZIP code errors, laziness of your employees and customers, etc.
Enter Perfect Address SDK! This inexpensive product helps you keep your address
database up-to-date, helps find and remove duplicate records, and provides
the following additional information about your address records, which you
may find useful in other ways:
This is information about an address which you certainly will not get from your mailing service bureau.
Under realistic office conditions, we have measured the performance of our search engine to be more than 200,000 addresses per hour.
Address processing speed is affected by a great many hardware factors, such as the speed of the CPU, the amount of RAM available, the speed of the hard drive where the address database is stored, etc. Address processing speed is also affected by how the addresses are sorted, the quality of the addresses (correct or incorrect), whether they are from the same general city/street, etc. We believe that in order to achieve such unbelievable speeds, these vendors repeatedly check the exact same correct address, over and over. Such a test is hardly a realistic measure of the performance you can expect with a "real world" address list. But if you are tempted to purchase a product based on such ridiculous performance claims, be sure you get a performance guarantee in writing! Your results will certainly vary!
Under realistic office conditions on normal office computers, we have measured the performance of our search engine to be more than 200,000 addresses per hour.
32. I need raw address data for one ZIP code, one city, one county, or one entire state. Can I use the Perfect Address SDK to extract the raw address data I need from the Perfect Address national address database?
No. You can order raw address data for the entire USA directly from CD Light, LLC, the developer of the Perfect Address SDK. For more information, contact email@example.com.
We find that dealing with postal discount issues makes CASS-certified products much more complicated, requiring significant levels of customer support, which must be reflected in the price. Our product is very simple to use and requires little support. Thus we can afford to price it below the CASS-certified products.
All of our products are backed by a 30-day, money-back guarantee. If you find that the Perfect Address SDK doesn't live up to our claims or to your expectations, you have invested only a little of your time.
Back to the Table of Contents.
More information about the Perfect Address
Copyright © 2019 CD Light, LLC