Need someone to lead product management at your software company? I create software for people that create software and I'm looking for my next opportunity. Check out my resume and get in touch.

California State Fair

Freshness Warning
This blog post is over 20 years old. It's possible that the information you read below isn't current and the links no longer work.

The California State Fair lets you buy tickets in advance from their Web site. That’s good. But the site is a horror house of usability problems. It’s better than last year’s site, but it’s still obvious that the site is put together by amateurs with no budget. This is the largest economy in the country. The Fair is a huge production, and the Web site is a joke.

Hopefully, by studying their mistakes, you can avoid making them yourself.

Picking a product

In order to buy tickets, you enter the number of tickets you want into a form and click a link labeled “Add to Cart.”

  • The form fields are grouped too closely together making it hard to determine which field belongs with which item. Some white space or even a horizontal rule separating the items would help.
  • The form fields are too long. You can type in a dozen or so numbers, but when you submit the form, you’re told “Invalid Quantity Entered.” You’re not told what a valid quantity would be. You apparently can order 999,999,999 tickets, but not 1 billion tickets.
  • To submit the form, you have to click a link, not a button. People are used to clicking buttons to submit forms. Form submittal links also require the user to have JavaScript support in the browser and keep many browsers from accepting the Enter key instead of clicking the button.

Shopping Cart

  • The cart form only displays order quantities as 3 digits but allows 4 to be entered. So if you’ve ordered 1000 tickets, the form displays 100 but calculates the pricing based on 1000. Hitting the button to update quantities would then reset the order to 100 tickets, even though you were able to ask for 1000 on the page before.
  • You aren’t ever told how long the checkout process is. In the middle of filling it out, you don’t know if you’ve got one step more or ten.
  • When you check out, you are presented with a prominent login form. The link to register as a new user is added to the end of the form almost as an afterthought. In an application such as this, most users will probably be making a one time purchase. How often are you going to buy tickets for a single event that lasts two weeks? The registration form should have at least equal placement as the login form.
  • If you attempt to register with an email address that contains anything but commonly used characters, registration fails. The addresses and mutt& both generate errors even though each is a valid address. Yet the registration form lets you sign up with, a completely invalid address (you can’t have an underscore in a domain name).
  • Upon registering an email address that is already registered, you are told that the address already has an account but aren’t given any solutions. If someone already has an account but tries registering again, they’ve probably forgotten their password. The error message should offer to email it to them.


  • The credit card field only allows numbers, but the form doesn’t tell you that. If you use spaces in the card number (as it is printed on the card) you are told that your card number is too short. If you require a certain format to information in your form fields, let the user know. Make sure the error message makes sense to the user. My mother in law didn’t have any idea why she was being told her card number was too short. Either did I until I tested the form out in a dozen different ways. Oddly enough, if you enter a card number that really is too short, you get no error message at all.
  • The form doesn’t tell you what information is required. All but one field on the payment form is required, but it doesn’t tell you that.
  • The checkout requires information that is really not needed. Billing and shipping phone numbers are required, but there is no need to have a phone number in order to process a credit card or ship an order.
  • Allowing the shopper to automatically use their billing address as a shipping address is great, but in this case, the implementation is confusing. When you click the checkbox that says “Use my billing address,” the page is refreshed and the billing information you entered in the form is copied to the shipping address. That works fine if you fill out the form in the way the designer planned it. But if you check the box before filling out part or all of the billing form, the information never gets copied over. And if you uncheck the box, all of the shipping information is erased, even if you have modified it to be different from the billing address.
  • The field lengths aren’t appropriate for the information they are supposed to contain. The phone number field is split into three parts, but each part is as long as the user’s name. This makes the phone number wrap awkwardly and also leaves the user wondering what needs to get into each field.

Usability is important in ecommerce. It can mean the difference between a customer and a frustrated user. Frustrated users aren’t likely to give you their money.

July 29, 2003 5:47 AM

Woah. Great stuff. The second point under Picking a Product didn't get transformed to a list point. No space between the * and the text, I guess. "*The form fields are too long."

Aaron Schaap
July 29, 2003 6:01 AM

The site doesn't work in Mac IE :-( That really sucks.

July 29, 2003 6:07 AM

To say nothing about a flash intro that some people won't be able to use, and an introductory page table layout fixed at a 750px width for layout.

Adam Kalsey
July 29, 2003 7:52 AM

Before someone else mentions it, I realize it's not likely that someone will order 1 billion tickets or even 1000 tickets. The problems caused by those examples are probably never going to happen. But the problems are very easy to fix. It would take only a few minutes to set things up so that the system only accepted reasonable inputs. Something as simple as setting the maxlength of the form fields on the product page would take care of the vast majority of problems.

Trackback from A Whole Lotta Nothing
July 29, 2003 10:46 AM

The state unfair

Excerpt: Adam Kalsey takes the California State Fair webmaster to school, covering every bug, display problem, and user experience issue during the process. The level of detail is great, I often find myself stuck in similar forms and situations but can...

Trackback from
August 5, 2003 3:45 AM

Usability Review

Excerpt: Adam Kalsey takes the California State Fair web site to task over problems with usability. I’m forever amazed that web sites get put into production without, it seems, having ever been tested from the customer’s standpoint. Before I’v...

Phillip Harrington
August 5, 2003 8:19 AM

No mention of the fact that the image tags are all missing height and width tags? Why has this fallen out of vogue, even with people who get so finicky about usability? Futhermore, your "remember me" checkbox is broken, as it is on almost every single MT blog. Those who live in glass houses should not... OK I'll stop being a dick now :-)

Adam Kalsey
August 5, 2003 8:49 AM

I don't think that the lack of height and width attributes hinders basic usability. Someone will be able to use a Web site even if the height and width attributes are missing. Regarding the "Remember Me:" The MT JavaScript sets the cookie path to blank, which means the current directory. Since each entry lives in it's own directory (not really, but that's a different story), this causes the cookie to only be used in the current entry. I knew about the problem long ago, but I was too lazy to add six slashes to my cookie code. Six months ago no one commented on my entries. Now I get several comments a day, many from repeat posters. So I've fixed that. The Remember Me should now work.

Trackback from Kalsey Consulting Group :: Measure Twice
August 5, 2003 9:05 AM

Height and Width challenged

Excerpt: Could someone tell me why height and width attributes are needed for images? It's silly to require people to add metadata to HTML when it's something easily calculated.

August 21, 2003 9:58 AM

I went to the state fair site to look up the calendar and NOTHING came up, just a lavendar background. Because the Bee's Fair guide this year was not really a guide, just a few event highlights, I feel really, really helpless. Worse, I'm a fair volunteer and I've told people that for certain info, they could look it up on the website. WRONG!!

Brenda Mackey
August 29, 2003 5:54 PM

My husband and I own a state-of-the-art recording studio here in Sacramento. I could not believe it when I went to '' web site!! It won't even come up in our computers. We use the best, Macintosh. What is wrong with our state?? Not only is the site run by amateurs, but our State is too! Shame on us!!! Come visit our site!

Ron Rattie
August 8, 2006 12:11 PM

Any idea who designed the site? I cannot find any mention in the code or otherwise. I just love sites based on ASP..

November 9, 2006 5:10 AM

thanks yo all. it's cool to come to ur site.

Jim Bonfield
July 26, 2007 4:03 PM

Stop hatin' brutha'!

This discussion has been closed.

Recently Written

Too Big To Fail (Apr 9)
When a company piles resources on a new product idea, it doesn't have room to fail. That keeps it from succeeding.
Go small (Apr 4)
The strengths of a large organization are the opposite of what makes innovation work. Starting something new requires that you start with a small team.
Start with a Belief (Apr 1)
You can't use data to build products unless you start with a hypothesis.
Mastery doesn’t come from perfect planning (Dec 21)
In a ceramics class, one group focused on a single perfect dish, while another made many with no quality focus. The result? A lesson in the value of practice over perfection.
The Dark Side of Input Metrics (Nov 27)
Using input metrics in the wrong way can cause unexpected behaviors, stifled creativity, and micromanagement.
Reframe How You Think About Users of your Internal Platform (Nov 13)
Changing from "Customers" to "Partners" will give you a better perspective on internal product development.
Measuring Feature success (Oct 17)
You're building features to solve problems. If you don't know what success looks like, how did you decide on that feature at all?
How I use OKRs (Oct 13)
A description of how I use OKRs to guide a team, written so I can send to future teams.


What I'm Reading


Adam Kalsey

+1 916 600 2497


Public Key

© 1999-2024 Adam Kalsey.