Product Features Demo Pricing Resources Contact Documentation Articles Company Customers Legal Stuff

Evaluating Geocoding API Capacity and Speed

How fast is your geocoder? Some APIs hit 27 geocodes per second, others achieve 100,000+. Evaluate before committing to save time, cut costs, and improve data. subscribe

May 25, 2022 - The right geocoding API can help your business reduce costs and increase profits through accurate location data. But how do you know if a service can handle your data needs? Capacity and speed are two key topics to consider when comparing geocoding services. You can find out more about all the questions you need to ask in our eBook, 8 Questions to Ask When Selecting a Geocoding API by clicking the link here: Continue reading »

Address Data Masterclass Webinar Recap

In this webinar recap, we’re going over the ins and outs of address data. Learn about address components, ZIP9, ZIP11, non-postals, and other address hacks. subscribe

May 23, 2022 - In this webinar, our geocoding and address expert Adam Charlton went over the ins and outs of address data. He gave details about address components and how they influence the way an address is composed. He also dove into the difference between ZIP9 and ZIP11, what a non-postal is, and other address hacks you didn’t learn in primary school. Standardization and Validation What exactly is a valid address? There are lots of different definitions depending on what your goal is with the address. Continue reading »

How No-Matches & Apartment Geocodes Improve Location Data

Not all geocoding APIs offer the same levels of service and accuracy. Learn how proper no-match handling and apartment geocoding provide a competitive edge. subscribe

May 17, 2022 - If you’ve made it to this blog, you’re clearly interested in taking advantage of location data and geocodes. Welcome to the club—we’re so happy to have you! Not all geocoding APIs offer the same levels of service and accuracy. That’s why we wrote an eBook all about how to choose the right geocoding provider. In this article, we’ll summarize two points from the eBook: How are no-matches handled and are sub-address geocodes offered? Continue reading »

How to Identify the Right Level of Geocoding

In his webinar, Adam Charlton of Smarty discusses the different levels of geocoding and how to identify which will be most beneficial for you. subscribe

May 12, 2022 - Geocoding can unlock valuable business intelligence that is hiding in your address data. But how do you know what level of geocoding you would benefit from the most? Do you need rooftop data? Or maybe you just need parcel data? What about ZIP 9 geocodes? These are the questions Adam Charlton, one of Smarty’s genius geocoding developers, set out to answer in his recent webinar. What Is Geocoding? Geocoding most typically means appending a latitude and longitude to a named location like an address. Continue reading »

Why Validation & Accuracy Matter for Geocoding APIs

Ask these two questions when choosing a geocoding API: Does the API include address validation and how accurate are the geocodes? Download the full eBook free. subscribe

May 10, 2022 - Choosing the right geocoding service is the first step toward unlocking better location intelligence and helping your organization make more strategic decisions. From our eBook, we’ll cover two key questions to ask when choosing a geocoding API: Does the API include address validation How accurate are the geocodes? Question 1: Does The Geocoding API Include Address Validation? Fitness advocates are fond of saying things like “Abs are made in the kitchen” and “Fuel your body for success. Continue reading »

Women or Femme in Code: Expanding Opportunity Q&A Part 2

In part 2 of this 2 part series, the women in code at Smarty discuss initiatives for increasing opportunities in school, groups, and influencing future generations. subscribe

May 3, 2022 - This is part 2 of a 2 part series. You can read part 1 here. Anne: Several of you are involved as Diversity and Equity Mentors for the Computer Science Department at BYU (Brigham Young University), can you tell us a bit about that? Savannah: I’m the lead mentor for the Inclusion, Diversity and Equity Mentors at BYU and it’s really awesome. We used to be called the Women’s Initiative’s Mentors, so we focus primarily on women because it is the largest minority group in computer science. Continue reading »

Women or Femme in Code: Expanding Opportunity Q&A Part 1

A 2021 StackOverflow survey shows that women account for only 5.31% of software developers worldwide. In this 2 part Q&A, 7 women in software engineering at Smarty discuss their efforts and share tips about increasing opportunities in the software development field. subscribe

April 27, 2022 - This is part 1 of a 2 part series. You can read part 2 here. This edition of our blog comes from a special guest writer, Anne Arnold, daughter of Smarty’s own Wes Arnold. Anne will soon graduate high school and as part of her career exploration, she had the opportunity to sit down with the women on Smarty’s software development team. They each shared how they discovered their love for coding, what it’s like to be the only woman in class, and how they’re helping spread the opportunities for prospective women in code like Anne. Continue reading »

5 Principles For Creating Stupidly Brilliant JavaScript Applications

The smarter an application is, the dumber its code should be. Make your code maintainable, extendable, and bug-resistant. subscribe

April 11, 2022 - Have you ever tried to add a minor feature to your application only to discover that you’ll have to re-write large blocks of code first? Or maybe you’ve spent hours deciphering hundreds, or perhaps thousands, of lines of existing code just to find out a task only required two lines of additional code. If you’re like most developers, you’ve wasted countless, frustrating hours wading through immensely complicated code trying to force it to do things it wasn’t built for. Continue reading »

Setting Up US Address Autocomplete API to Autofill Your Forms

Get clean address data from the very beginning by using this popular API to fill in address information. subscribe

March 11, 2022 - Many businesses now collect data online. One could argue that it is nearly impossible to succeed in modern business without some sort of online portal in which there is an exchange of information between the provider and the customer. But how do you ensure that the information being input by the customer (or potential customer) is accurate? While there is no way to ensure that Bobby Duncan doesn’t put “Sammy Sosa” in the name line on a form, there IS a way to ensure that he’s putting in a valid mailing address for you to mail his package to. Continue reading »

International Address Lookup: 3 Steps To Cleaner Data

Lookup international addresses with Smarty suite of international address validation APIs to keep your global physical and mailing address data clean. subscribe

December 22, 2021 - For address validation, an international address lookup is the process of matching foreign addresses against the local authoritative postal databases to ensure they are real and mailable. The process commonly corrects typos, parses the addresses into its component parts and standardizes it to match countries’ approved formats. The task of looking up and combining data sets for thousands, or even millions of international addresses is a daunting one. Just trying to keep track of each country’s valid address format alone, is a time-consuming challenge. Continue reading »

SmartyStreets Announces Rebrand to Smarty - Early 2022

The new Smarty branding is a reflection of a rapidly growing spectrum of forthcoming products related to location data intelligence. subscribe

December 14, 2021 - PROVO, UT - SmartyStreets, a leader in location data intelligence, announces today a comprehensive rebrand to Smarty. The new branding is a reflection of the rapidly growing spectrum of forthcoming products related to location data intelligence. Founded in 2011, SmartyStreets began with a simple mission to offer smart street address validation software for the United States. Focusing on street data made the name ‘SmartyStreets’ a logical fit. Subsequent product releases in the fields of geocoding, reverse geocoding and address autocomplete began to move SmartyStreets from just street data into the broader category of location data intelligence. Continue reading »

Better UX with International Address Autocomplete

Smarty announces the release of International Address Autocomplete to help companies better serve their global customers and users. subscribe

October 19, 2021 - Provo, UT - Smarty (formerly SmartyStreets), a leader in location data intelligence, is pleased to announce the release of International Address Autocomplete to help companies better serve their global customers and users. Smarty International Address Autocomplete predicts global addresses in real time while users complete forms with address fields. Whether companies use address forms for customers on a website or for employees via internal applications, International Address Autocomplete streamlines the data-entry process through predictive analytics while the user types. Continue reading »

Cass vs. NCOALink Certification Article Now Live

We get a lot of questions about USPS CASS certification and how it differs from NCOALink certification. So, we published a new article to teach all about it. subscribe

September 29, 2021 - We get a lot of questions about USPS CASS certification and how it differs from NCOALink certification. They are both methods of address validation that originate with the USPS. While they look the same and smell the same (probably), they are in fact, very different. Even still, these methods are frequently confused, conflated and equated. So, we decided to cut the confusion and answer all your burning questions about CASS and NCOALink. Continue reading »

Smarty inks deal with all BYU female student-athletes

Smarty announces entering into name, image, and likeness (NIL) agreements with all female student-athletes at BYU that could surpass $2,000,000 in benefits. subscribe

September 21, 2021 - Provo, UT - Smarty (formerly SmartyStreets), a leader in location data intelligence, is pleased to announce entering into name, image, and likeness (NIL) agreements with all female student-athletes at BYU that could surpass $2,000,000 in benefits paid to the athletes. At a special event held on Tuesday, September 21, Jonathan Oliver, Founder and CEO of Smarty, extended this opportunity to all student-athletes on BYU female sports teams. This is the first opportunity presented to all female student-athletes since the NCAA rules changes went into effect in July. Continue reading »

Mailing Address vs Physical Address: What’s the Difference

Physical addresses and mailing addresses are frequently confused. While they are sometimes the same, there are many reasons why they can be different. subscribe

August 11, 2021 - The difference between a physical address and a mailing address is that a physical address is where you are geographically located and a mailing address is where you get your mail. Often a physical address and a mailing address are the same—but not always! Whether you're trying to mail important account paperwork to thousands of customers or a single high-dollar customer appreciation gift to a key account, having the right address is important. Continue reading »

SECURITY ANNOUNCEMENT: Removing Old TLS Versions

On Tuesday, January 21, 2020, Smarty will reqsuire clients to use TLSv1.2 or greater to connect with Smarty APIs without interruption. subscribe

October 17, 2019 - TLS (and its predecessor SSL) are cryptographic protocols that provide authentication and data encryption for clients connecting with web servers. As new vulnerabilities are discovered, older cryptographic protocol versions are deprecated to maintain secure environments. On Tuesday, January 21, 2020, Smarty (formerly SmartyStreets) will require clients to use TLSv1.2 or greater to connect with Smarty APIs without interruption. Clients using TLSv1.0 or TLSv1.1 will no longer be able to connect. Please refer to our documentation for more information: https://www. Continue reading »

2018-11-13 Incident Post-Mortem Report

At approximately 3:30 PM Eastern on November 13, 2018, we observed a significant latency spike from our external monitoring tools... subscribe

November 16, 2018 - At approximately 1:30 PM Mountain Time (3:30 PM Eastern) on November 13, 2018, we observed a significant latency spike from our external monitoring tools that we configured to access our load balancing tier of our cloud-based APIs. These monitoring tools provide full, end-to-end testing and are meant to simulate a complete user experience with our application. By design our systems can easily process in excess of 25x the usual amount of traffic we receive. Continue reading »

Go Naming Conventions

The style guide tutorial you never knew you didn't need subscribe

October 18, 2018 - It’s been said that naming is one of the two hardest problems in computer science along with cache invalidation and ‘off-by-one’ errors. (See what I did there?) Do you ever find yourself wondering what policies and practices you could adopt to make your life easier when reading code you wrote months ago? Or maybe you’re up at night wishing you know how to write code in such a way as to maximize adoption and convenience for your users? Continue reading »

Cloning Private Dependencies in Docker and Go

One topic that seems to come up repeatedly on Stack Overflow or other online forums is the topic of how to GO GET private dependencies. We can help. subscribe

September 13, 2018 - One topic that seems to come up repeatedly on Stack Overflow or other online forums is the topic of how to go get private dependencies. Specifically, if I have a private Git repository on Github or Bitbucket, how do I bring that code locally via the go get tool such that automated builds can produce a clean, consistent build without interaction from a user? This problem is largely solved for public Github dependencies but continues to be a challenge for private dependencies. Continue reading »

Let's build an xUnit-style test runner for Go!

Why? What do you mean 'why'? Because we can! What's wrong with you? subscribe

July 2, 2018 - Writing test functions in Go is easy: package stuff import "testing" func TestStuff(t *testing.T) { t.Log("Hello, World!") } Running test functions is also easy: $ go test -v === RUN TestStuff --- PASS: TestStuff (0.00s) stuff_test.go:6: Hello, World! PASS ok github.com/smartystreets/stuff 0.006s Preparing shared state for multiple test functions is problematic. The usual recommendation is to use table-drive tests. But this approach has its limits. For us, xUnit is the ideal solution. Continue reading »

A History of Testing in Go at Smarty

A response to the question: Should I follow Smarty and leave GoConvey for gunit? subscribe

March 28, 2018 - I was recently asked two interesting questions: Why did you move from GoConvey to gunit? Are you recommending folks do the same? These are great questions, and since I’m a co-creator of GoConvey and principle author of gunit I feel responsible to give a thorough answer. For the impatient, here’s the TL;DR: Question 1: Why did you move to gunit? After using GoConvey and feeling consistent friction with that approach, we came up with an alternate approach that was more aligned with what we value in a testing library and which eliminated said friction. Continue reading »

Scanning CSV in Go

Wouldn't it be nice if csv.Reader was more like bufio.Scanner? subscribe

January 5, 2018 - For the purpose of this article, consider the following CSV data, slightly modified from the docs for encoding/csv: csvData := strings.NewReader(strings.Join([]string{ `first_name,last_name,username`, `"Rob","Pike",rob`, `Ken,Thompson,ken`, `"Robert","Griesemer","gri"`, }, "\n")) Here’s how you read the data, line by line, using the Reader provided in that package: reader := csv.NewReader(csvData) for { record, err := reader.Read() if err == io.EOF { break } if err != nil { // handle the error... // break? Continue reading »

Our Testing Tools

We care about testing our software and we create tools and libraries that help us. subscribe

November 3, 2016 - Introduction TL;DR: Choose an approach to software testing that helps your organization create the best possible end results. That might mean using and/or creating a few tools and/or libraries along the way. Or, maybe not. What follows is a description of what we do at SmartyStreets, couched as a response to Dan Mullineux’s equally valid way of doing things. The cost A favourite test helper library, with some simple test assertion functions clearly has some value… They [testing libraries] are not so bad, but they come at a cost, defer to avoid them. Continue reading »

How To Setup A Tinc VPN

A quick and dirty reference guide on how to setup a Tinc VPN. subscribe

October 23, 2015 - I was given the task of setting up a tinc VPN so that we could test performance for comparison against other VPN systems. This task took much longer than it should have. For that reason I am making this post to help myself and others remember how to do it again in the future. Installing tinc is straightforward enough. You can download the latest release and build it, or install from your favorite package manager. Continue reading »

Performance Testing With Phoronix

A quick how-to guide for using the Phoronix Test Suite to measure server effectiveness. subscribe

October 5, 2015 - Not every server is made equally. On dedicated servers the hardware varies widely. On virtual and cloud servers the resource allocations also vary widely. Some servers are CPU optimized for maximum computing power. Others focus on having a lot of memory. Some servers are built to have a good balance of all system resources. Hardware aside, we require many differing tasks of our servers. Some applications are processor hungry, some need large amounts of disk space, while others take up a lot of memory. Continue reading »

Testing in Go by example: Part 5

An elegant and effective strategy for dealing with time in unit tests subscribe

September 15, 2015 - For this installment of the Testing in Go series I’ll share a really nifty way to deal with time in your unit tests. When the behavior you are testing depends on the current time it can be tricky to assert on the results because the current time is a moving target. So, usually we end up resorting to approximations in our assertions that, while functional, always bother me a bit. Continue reading »

Testing in Go by example: Part 4

Our approach to assertions in Go code subscribe

August 11, 2015 - I think it’s time for a slight detour. In part 1 we covered the basics of testing in go. In part 2 we covered a few slick ways to execute tests. In part 3 we covered some of our recent endeavors at Smarty to build on the basics. Toward the end of that post we went into some detail regarding our approach to assertions. The assertions referenced in the GoConvey project are actually their own separate project that are imported into GoConvey. Continue reading »

America's Sex Offender Registries

State sex offender registries were created to keep families safe, but bad addresses cause them to fall far short of their purpose. subscribe

May 26, 2015 - A Deceitfully Comforting Illusion In the US today, there are nearly 800,000 registered sex offenders. As part of the registration process, each sex offender is required to report their physical address to a local police department (the exact process varies from state to state). This is intended to empower the public to be able to identify where these offenders live and if one of them lives near you. Having this information, you are supposed to be able to better protect your loved ones and yourself. Continue reading »

Appendix: America's Sex Offender Registries

Records excluded from our statistical analysis and percent of bad addresses in each state’s sex offender registry. subscribe

May 26, 2015 -

This post contains additional data referenced from the original sex offender registry post.

Continue reading »

When the Stars of Geekdom Align

May 25th can become a special day for geeks everywhere. Lets celebrate our collective geekiness. subscribe

May 23, 2015 - A Convergence of Holidays It’s almost Memorial Day, a time when most of us take a little extra time to relax. For a lot of us, it signals the start of summer; it comes around the time most school years end, and in warmer places, pools start to open after Memorial day. It’s a day of barbeques and soda and chips and lots of other things. But this year is special. Continue reading »

Code as Art

Artists put effort into their work that they don't have to. As coders, so do we. This is important, because it's actually what separates Art from work. subscribe

May 21, 2015 - Here at Smarty, we’re mostly programmers and developers. There are a few needles in the haystack here that don’t know “Unix” from “eunuchs”, which is unfortunate, but we’re working on that. And because we’re all tech geeks over here, we like to talk about code, and tech, and why all that stuff is important. In that spirit, we decided to talk about code in a way that maybe all of us should have considered a long time ago. Continue reading »

Testing in Go by example: Part 3

Conveying behavior with our approach to BDD in Go subscribe

May 11, 2015 - Review: Welcome to part 3 of our “Testing in Go” series. If you’re new here, feel free to catch up before reading on. In part 1 of this series I eluded to our perceptions of the standard testing tools provided by the Go tool and the standard library and what was missing for us. We all have different expectations of a testing tool and so it’s no wonder that so many have been created. Continue reading »

Will Disney's ownership of Star Wars cause fans to "Let it Go"?

At Smarty May 4th is a pretty crucial holiday for us, and we're cautiously optimistic about what the Disney future holds. subscribe

May 4, 2015 - Here at Smarty, we enjoy our geekery. All of us indulge in pop culture to some degree, and while we all enjoy different flavors of said pop culture, there’s at least one we all agree on without question: Star Wars. And that means that May 4th is a pretty crucial holiday for us. Hopefully all of you are celebrating in some way. We celebrated by buying tickets to go see Avengers: Age of Ultron together as an office. Continue reading »

Testing in Go by example: Part 1

How to use the built-in 'testing' package. subscribe

February 27, 2015 - Here’s part 1 of our “Testing in Go” series. Introduction Thinking about trying Go? You won’t regret it! It’s great that testing is baked into the "testing" package from the standard library and the corresponding go test command (which has all sorts of useful and interesting flags). We’d like to show you how easy it is to get started using the built-in testing tools and introduce you to some tools we’ve created. Continue reading »

Testing in Go by example: Part 2

Tests that aren't easy to execute will be ignored. subscribe

February 27, 2015 - Here’s part 2 of our “Testing in Go” series. If you’re new, feel free to catch up before reading on. Basics You’ve already learned how to execute tests in Go for a single package. $ go test There’s a bit more to it, though. You can run any package from anywhere if you provide the import path. For example, this command runs the actual tests for the “testing” package from the standard library: Continue reading »

Using USPS Address Verification to Prevent Fraud

How to use USPS Address Verification to Prevent Fraud. subscribe

November 10, 2014 - While it’s an unfortunate truth of of today’s e-commerce world, it is one that cannot be ignored: Fraud is ever-present in online transactions. The expense of unnecessary shipping costs and human resources, disgruntled customers, and the time it takes to investigate disputes adds up. And the damage to a company’s brand may result in untold amounts of lost sales. Using an address verification service (or AVS) as one of the tools in your fraud management toolbox is a smart and cost-effective move. Continue reading »

Google Retracts Physical Address Requirement for Play Store Developers

Google has decided jump into the Big Brother arena with their latest project, Google Strands: a DNA-based developer identification system. subscribe

September 23, 2014 - Posted by Rob G. Must Have Address to Play Every month, tens of billions of apps are downloaded from the Google Play store. Users of those apps have historically had limited contact with the app developers for asking questions or lodging a complaint. And getting a response from some developers has proved to be a very difficult experience. Google briefly considered requiring app developers to provide their physical address or have their app removed from Google’s play store. Continue reading »

Celebrating the Death of Comcast

We love our movies and our television. After a hard day at work, many Americans like to enjoy some downtime with a good TV show or movie. subscribe

September 11, 2014 - Written by Jonathan Oliver Comcast’s Evil Twin We love our movies and our television. After a hard day at work, many Americans like to enjoy some downtime with a good TV show or movie. When technology advanced in the 1980s in the form of video cassette tapes, this gave us a new choice for how and when we consumed media. From this innovation came a natural outgrowth: the video store. Continue reading »

Constrained & Disloyal

If there are 1.333 trillion barrels of oil left on the planet, and we use 6.89 billion barrels of oil each year, how long will it take for us to run out of oil? subscribe

September 9, 2014 - Why Do Some Businesses Fail, and Others Succeed Against All Odds? On the last day of my microeconomics class, my professor asked us a question: “If there are 1.333 trillion barrels of oil left on the planet and we use 6.89 billion barrels of oil each year, how long will it take for us to run out of oil?” Pencils and calculators came out to solve what seemed like a math problem. Continue reading »

HTML Coverage Reports with GoConvey

For packages that pass all tests, coverage reports are generated and made available by clicking the package name. subscribe

February 18, 2014 - You asked for it and now you’ve got it. For packages that pass all tests, coverage reports are generated and made available by clicking the package name, which in that case becomes a link (provided you’ve cleared your browser’s cache!). Right now the coverage command that is run is something like this: $ go test -covermode=set -coverprofile=<package_name>.txt That command generates a plain text profile used in the following command: Continue reading »

Your Convey needs more Focus

One of the great benefits of TDD/BDD is that you usually don't have to spend much, if any time at all in a debugger... subscribe

February 7, 2014 - One of the great benefits of TDD/BDD is that you usually don’t have to spend much, if any time at all in a debugger. To enter a debugger is to admit a loss of control over the system under test. Even so, there are times when you do need to debug something, even if you’re maintaining the discipline. Lately, most of my coding is in GoLang. Coming from using an IDE almost exclusively to write Python (using PyCharm) and C# (using VS and ReSharper), and knowing how great the visual debugging tools are it’s hard to fathom using a console-based debugger for GoLang code. Continue reading »

GoConvey - (yet) another testing tool for GoLang

GoConvey features a clean DSL, comprehensive set of built-in assertions, an auto-reloading web UI and fully integrates with GoTest. subscribe

December 26, 2013 - It’s now been a few months since I decided that the kind of testing tools I wanted for Go programming hadn’t yet been created (or I just hadn’t found them yet…). So, about 4 months ago I started work on GoConvey and a month later came the first release. The coolest thing about GoConvey (other than the clean DSL, comprehensive set of built-in assertions, and the fact that it integrates fully with go test) is the built-in auto-reloading web UI that reports your test results to your web browser whenever a relevant file is saved (HTML5 notifications included). Continue reading »