The Drync.com Wine Blog
The Killer Wine App Interface – “Typeahead” vs. Barcodes
December 2, 2009
In a recent blog post, I touched on some killer use-cases for mobile wine apps. Namely, finding specific wines at local retail stores, and wine search based on barcode or image recognition technology. Given the “barcode buzz” of late, I thought I’d revisit barcodes and do a bit more of a deep dive. This post will focus on the barcode use-case and compare it to a more traditional type-ahead text entry scenario.
If you’re not into reading the detail, the conclusion is that using an “intelligent”, well-tuned type-ahead interface where you type a few letters from each of the words on the wine label and let the app fill in the correct words, gets you a more accurate result more often and *much* more quickly.
Wine Search Using Barcode Recognition
Barcodes are pervasive in consumer products because they work and make identifying the contents of a package fast and accurate. The reasons they work include, on the technology side – dedicated hardware, good lighting conditions, generally flat packaging, and an easily adapted environment to improve reading conditions ie. you can move the product around until you get a good “read”. And on the data side, there is a standards body that manages the database of UPC codes (barcodes), ensuring “clean data” (ie no duplication or re-use of codes) and that all product codes are accessible centrally.
No doubt the world of wine could benefit from a similar structure and technology. Scanning a wine barcode and receiving detailed information, including market prices for a given wine is compelling. The problems, as I outlined in my previous post, are the following:
- We don’t have dedicated hardware with a little red light that creates a specific, readable reflection. Nor do we have flat packaging or good lighting conditions. We have a digital, low-ish resolution camera with no flash, curved bottles, and are typically in a store or restaurant with low light. That said, some of the new technology, like Red Laser by Occipital, is excellent and does its best to correct for the inherent shortcomings of using a phone for barcode recognition.
- There is no single central database of unique wine UPC codes.
- Only 30% of wineries use UPC codes at all today, and of them, *very* few boutique producers use them and their use is sparse outside the US
- Wines found in restaurants do not typically have barcodes on them
- Because there is a cost associated with generating new UPC codes for each SKU, wineries re-use UPC codes. This ambiguity requires that the user visually guide the barcode recognition system when there are multiple matches for a given barcode.
- Oftentimes, wineries will use a single barcode for all of their wines. That’s right – one code for all years of all wines. Oops.
That said, let’s get to some empirical data…
Now that there are some barcode-based systems for smartphones on the market, we took one to a retail store and started doing barcode lookups. Here are the results:
Overall accuracy (meaning that it found the wine on first “snap”): 48%
But that data needs qualification. First of all, the system basically only worked on US wines, and our data was skewed towards US wines. Here is a more granular breakdown:
US Wines – 11 out of 12 wines were recognized correctly (92%)
International Wines – 3 out of 17 were recognized correctly (18%)
Digging deeper, we found:
- NO vintages were available through the barcode recognition system. In other words, the user always has to identify the year if the system comes back with the right wine.
- 3 out of 29 wines were from producers that used the same barcode for every wine they produced.
- For 8 out of 29 wines, the barcode was read correctly but they were not found in the database.
The time it takes to use one of these systems to look up and identify the correct wine, assuming it is available in the UPC database, is about 20-30 seconds.
So, while the technology is undoubtedly amazing, factors outside of our control limit the usability and usefulness of using barcode recognition for wine search. But what are the alternatives, given that no one wants to sit in store or restaurant tapping at their phone for 5 minutes while people stare at them?
Text Based Wine Search Using Typeahead
Text based search on a phone is pain in the ass by any measure. We tap tap tap and then wait for a result to come back. At Drync, we’ve heard from our users that they don’t enjoy that process, and we ourselves have gotten fed up with having to do it.
So Rob, one of our engineers who is into solving really hard problems, gave himself a Thanksgiving puzzle to solve: could we analyze our 600,000+ historical wine searches done by users, and the 100,000 unique words they used in describing those searches, and implement a type-ahead system that pro-actively tries to figure out what you’re typing and fill in the words?
(For those of you who aren’t familiar with the phrase “type-ahead”, it’s a technique commonly in desktop applications – like Outlook/Mac Mail and web browsers – and on the web when a user is being asked to type something, like a search query. The Google app for the iPhone does this beautifully, if you want to see an effective example.
To cut to the chase, Rob was successful on his typeahead journey and was able to reduce the number of “keystrokes” (tapstrokes actually) by ~50% on average when searching for a wine using Drync Wine. We were impressed.
As an example:
Before, if you were searching for “chateau de Beaucastel Chateauneuf-du-Pape 2004″, you’d probably type “2004 chateau beaucastel chateauneuf du pape”. That’s 43 tapstrokes.
With Rob’s typeahead system, here’s what you’d type:
ch <select chateau from the typeahead list>
beauc <select beaucastel from list>
chat <select chateauneuf-du-pape from list>
That’s 14 taps, or a 67% reduction in tapstrokes. Also, it only took ~10 seconds to enter, and another 2 seconds for Drync Wine to look up the wine. Pretty good in my book.
You draw your own conclusion, but ours is that a typeahead interface is quite a bit better for users than a barcode recognizer, despite the sexiness of using your phone as a barcode scanner. Does that mean we’ll never implement a barcode recongition system for wine search? ABSOLUTELY NOT. We are just going to wait until the data side of the equation becomes more reliable and comprehensive.
* The Drync Wine typeahead interface will submitted to Apple shortly and hopefully will be available before Christmas 2009.
JN0-332 , HP0-S41 , 70-488 , M70-101 , 70-981 , IIA-CIA-PART3 , 101-400 , JN0-633 , NSE4 , PEGACSA71V1 , JK0-022 , 350-080 , 000-017 , HP0-S42 , 70-246 , 200-310 , API-571 , 000-105 , 1Z0-808 , 070-483 , IIA-CIA-PART1 , 9L0-066 , C_TFIN52_66 , 300-320 , 070-487 , 640-916 , ITILFND , 642-997 , 350-018 , 810-403 , M2090-732 , 700-037 , VCP550D , 101 , NS0-506 , MB2-707 , 100-101 , 070-461 , 300-070 , 300-206 , 350-030 , 1Z0-470 , 1z0-808 , 300-075 , 70-412 , 220-901 , 70-494 , C_TSCM52_66 , 1Z0-067 , CQA , 350-001 , 210-260 , c2010-652 , C_TAW12_731 , 70-413 , 1Z0-068 , 70-533 , 1Z0-144 , 3002 , 70-243 , 300-135 , 2V0-621 , 220-802 , 2V0-621D , 210-060 , 70-980 , M2090-744 , MB2-708 , 70-486 , AWS-SYSOPS , 2V0-620 , AND-401 , 070-346 , 1z0-434 , AX0-100 , C_HANAIMP151 , 300-208 , MB6-702 , CAP , 1Z0-051 , 070-466 , NSE7 , 9A0-385 , 70-347 , 640-911 , 1Z0-809 , PMI-RMP , 1Y0-201 , EX200 , ICBB , 70-270 , JN0-343 , 600-460 , 642-999 , 9L0-012 , 700-501 , 70-534 , 1V0-601 , 1Z0-803 , N10-006 , 1Z0-062 , CISA , 400-101 , PR000041 , CISM , OG0-093 , CRISC , C_TERP10_66 , 74-678 , NS0-157 , ADM-201 , 117-202 , 500-260 , 300-115 , 1V0-603 , CQE , 599-01 , 300-209 , OG0-091 , LX0-104 , 400-201 , SY0-401 , 350-050 , CCA-500 , MB6-703 , PK0-003 , 70-463 , 1Z0-804 , C_TADM51_731 , 98-365 , PMI-001 , 102-400 , 000-089 , API-580 , 640-692 , PMP , 1Z0-061 , 600-455 , 1Z0-060 , PMI-100 , JN0-360 , 70-410 , 070-462 , 156-215-77 , 400-051 , 000-106 , 000-080 , 220-801 , 352-001 , CAS-002 , C2010-595 , 70-411 , 300-101 , 070-410 , CBAP , 70-346 , 70-680 , MB2-704 , 70-462 , 350-060 , 200-120 , 300-085 , 1Z0-434 , SSCP , EX300 , 70-417 , LX0-103 , 350-029 , CISSP , VCP550 , C_HANATEC151 , ICGB , CGEIT , 70-466 , 1K0-001 , 210-065 , 200-125 , 70-480 , JN0-102 , 70-483 , E05-001 , 70-461 , IIA-CIA-PART2 , 70-178 , 70-697 , 000-104 , PEGACPBA71V1 , MB5-705 , 640-875 , 712-50 , 70-177 , 70-532 , 642-732 , 70-487 , C_HANATEC_10 , 70-332 , 74-343 , c2010-657 , 700-260 , 700-037 , 200-310 , 1V0-603 , 1Z0-809 , CISSP , NS0-506 , 600-455 , VCP550 , VCP550D , 70-347 , IIA-CIA-PART3 , NS0-157 , 1Z0-804 , 500-260 , CQA , NS0-506 , 300-206 , 300-085 , 210-060 , CCA-500 , 642-732 , 9A0-385 , JN0-102 , 74-343 , SY0-401 , PEGACPBA71V1 , C_TAW12_731 , LX0-104 , 70-346 , 400-201 , 000-089 , c2010-652 , 101-400 , 70-532 , C_TAW12_731 , 1Z0-067 , NSE7 , 1Z0-808 , 70-486 , N10-006 , 1V0-601 , 642-732 , 70-466 , NS0-506 , 220-802 , 1Z0-067 ,