¶ The UK has a particularly precise postcode system, where a postcode such as BN2 1NA represents just 20 individual properties. The postcode database was created by the Royal Mail and it is sold for use by anyone whose willing to stump up the cash (why we should pay for something our taxes have created is a whole other argument). The upshot is that many websites which require an address from users will provide an ajax postcode look-up as part of the process.
However the postcode look-up is fraught with danger and is rarely implemented well. As is often the case in UX design, everything is fine until an exception is reached. I’ve created an interactive wireframe to demonstrate a successful way to integrate a postcode look-up as part of an address input scenario. This is the user flow diagram:

User flow of ajax postcode look-up for address entry
The important bits are the arrows on the edges dealing with the deviations away from the successful look-up through the middle. Commonly implementations miss out at least one of these:
- allowing users to skip the lookup altogether (maybe the user doesn’t know their postcode)
- helpfully dealing with a failed lookup (edit the postcode or skip the lookup – often databases are not kept up to date and so valid postcodes are not recognised)
- allow users to type a different postcode (their work address instead of their home address)
- deal with addresses not present in the list returned
- allow users to edit the address returned from the database
All this does raise the question: who does the postcode look-up help? Probably not the person filling out their address. Regular web users will be able to input their addresses more quickly by typing directly than through use of a postcode lookup. This is particularly true if they are using the form filling functionality available in all modern browsers and many plug-ins. Postcode lookups may well get the website cleaner data, but probably not by much. Either way, more attention needs to be given to the postcode lookup experience and flow.




Comments
1
Is the situation all that bad? My own address is never returned by postcode lookups, but in my experience it’s almost always possible to choose something nearby and then edit the result.
I don’t recall ever having failed to give the right address in the end, and it doesn’t seem to take significantly longer than typing the address (bearing in mind that if I’m going to type the address, I first need to make sure I’m certain which field to put each bit of it in, so there is still some thought involved).
On that note, why “Street Address” and not just “Address”? For me that’s the most confusing part of this form. Sorry admission: the first time I encountered that form field, I took it far too literally and omitted the house number. I suppose I was thrown by the explicit request for the “street” rather than just “address” and imagined they would ask me for the rest of the address next or something. Yes, okay, duh.
But at any rate, not everyone lives on a street (nor in a town, but don’t get me started).
Chris
2
Oops, didn’t say anything about why one would like the postcode lookup rather than just tolerate it. Reassurance. You’ve entered the right postcode, “the system” likes it, the address is going to be in a format the post office will like, etc.
Chris
3
Good points, Chris. I’ve definitely seen plenty of postcode lookups done badly. True, one can almost get to give the right address in the end, but ‘in the end’ isn’t really good enough.
You have a good point about ‘Street address’. I used the word ‘street’ because there’s a field later for ‘Town/City’. And yes, not everyone lives in a town either, but everyone does have a ‘postal town’ and will be used to including that as part of their address.
In terms of reassurance that the system likes your address, I guess I was under the assumption that users will already be happy that the address they are inputting is correct. Have I assumed too much there?
4
Of course, users are likely to be happy that their address is correct, but they’re not always going to be completely confident of entering it in a way that the system likes – are they? You can never really trust what a computer will do with stuff you type in to it, and the fact that these forms do vary in layout doesn’t help.
Indeed, users do sometimes get it genuinely wrong (as I did in the example earlier). If the first form with “Street addresses” that I’d encountered had also had automatic postcode lookup, I wouldn’t have screwed it up.
Not going to argue the point about towns, but I think the thing about “Street address” is that most first-time users in the UK at least will never have encountered that particular combination of words before (or will they? where? is it just me?). Nobody talks about “street addresses”, offline forms don’t use the term, it’s not something that has any very satisfying meaning (what is the address of a street anyway?), etc. I wonder where the term first came from.
5
As someone with offices in a building with a strange postcode history, I’ve been tripped up by systems that won’t accept my address based on a postcode search. It’s frustrating, and it helps no one.
The person who knows their address best is the user/customer. A perfect system, for me, would just present the user with a textarea for the address, and then geocode that to a point on the globe behind the scenes for any further analysis or calculations.
The user knows their address, let them key it in and get out of their way.
6
Apple’s postcode lookup is a classic example of this. Each time I order something to be delivered at work I have to tell people across the road that I’m expecting a delivery and to let me know when the courier turns up so I can come and collect the goods. Definitely would prefer to be able to enter my actualy work address rather than the wrong one Apple forces me to use!
7
I remember having issues with IKEA’s website over this. My address didn’t exist, or at least the right flat number. So I chose an alternative number and hoped for the best. When contacted by IKEA over delivery I explained the issue and even their systems wouldn’t allow the address to be change. Complete and utter failure on both counts.
8
Interesting. Seems I’m in a minority here, in that I’ve never really found it much of a problem that postcode lookup didn’t work for me.
Though I have to agree that a single big text field marked “Address” would almost always be preferable.
9
The “whole other argument” about paying for postcode data is something the Guardian is campaigning on:
http://www.guardian.co.uk/technology/free-our-data
10
I’m inclined to agree on this point; think I’ll update the example accordingly.
11
The requirement to offer postcode lookups is normally, in my experience, to do with being reasonably sure your address data is canonical enough to be usable when interacting with third-party payment gateways, courier services and the like. So from the user’s point of view, you’re not necessarily hoping for a quicker or simpler experience, but hopefully it isn’t any worse, and any negative feeling towards not being entrusted to type in your own address the way you see fit is offset by the reassurance you provide that the courier company is going to know where to deliver, that you’re going to sail through any fraud checks, etc.
I think your flowchart represents an ideal flow, and I think it’s especially important to allow users to hack their own addresses. I’d argue, though, that if you are offering postcode lookups it does rather defeat the purpose to allow the full editing of addresses, and I’ve managed to get good results from allowing users to enter an optional first line, which allows them to enter in more specific information such as a flat number or the company name for their work address.
12
All I expect from postcode websites is that SAN TA1, E20, and, more seriously, FIQQ 1ZZ, all return something more than “Error”. http://www.writetothem.com/ does quite well IMHO :)
More seriously again, I suspect the postcode lookup is mostly to try and prevent mistakes in address entry. I know that many people have trouble with entering their address and postcodes, and so having a step such as this provides comfort to both the user and the site that their address is being transmitted correctly. I certainly agree with all your points regarding exceptions, handling new postcodes, etc.
13
I tend to agree that the address should be left as text input(s) as opposed to the use of postcode lookup pattern. That way, it’s being left completely in the hands of the user and it’s up to them to enter the information correctly, which I am sure that they will do far more often than not. That raises an interesting question: how many people submit a form without reviewing the information they have entered?
“Foolproofing” the address using postcode lookup seems too prone to problems as it seems that more “fringe” cases exist out there than companies implementing this pattern seem to expect. For example, users who have moved into a brand new property and whose postcode doesn’t yet exist in the database are in trouble. The other commenters on this post have also pointed out a range of cases which pose issues.
I’m working on a form at the moment which is on a site predominantly for UK residents, although it will be used by the occasional overseas resident. To allow postcode lookup for UK users, there then has to be extra functionality which enables other users to view the full fields without entering a postcode. This just all seems to clunky, like it’s trying to be too clever for its own good. It’d be clearer to give everyone the same experience by just requesting the user enter their full address.
Add your comment
Comments are now closed on this post. If you have more to say please contact me directly.