I have an application that needs to determine what kind of vehicle the user can operate. We decided that capturing their license type would be the best way to do this. However, every US state and Canadian providence has a different system for classifying a person's license.

We do not want to capture their DL number, and we do not want to create a separate list for each state. Can we simplify this to a shorter list that would apply across all states and Canada? By doing so, would we be missing some important detail during special cases?

Current drop down options

  • 1
    "determine what kind of vehicle".."their license type would be the best way to do this". Is there any reason why just asking what kind of vehicles they are licensed to operate isn't easier? Seems like checkboxes with "car" "motorcycle" "taxi" "commercial truck", etc. would make it easier despite what each countries license allows. – DasBeasto Feb 25 '16 at 19:46
  • 4
    The classes A–D are somewhat standardized internationally (IDP) and are also in use in Europe. It’s basically A = motorcycle, B = car, C = truck and D = bus, all with possible suffixes 1 ‘light’ or E = ‘with trailer’ or both, e.g. C1E = light truck with trailer. Mopeds may be considered extra light motorcycles, class M, AM or A2. Tractors are often in an extra class T and there’s a variety of other licenses for snowmobiles, excavators, trams etc. – Crissov Feb 25 '16 at 21:11
  • @DasBeasto - This idea was dismissed after someone noted that if you're licensed to drive a car, you can by default drive a motorcycle or a moped. The privileges are hierarchical, and the checkboxes we thought would be confusing. – invot Feb 25 '16 at 22:28
  • @Crissov Clever! I hadn't see that since we were not thinking on an international scale. I wonder why this is not common across the US and Canada. – invot Feb 25 '16 at 22:29
  • 2
    Note that in some states, having a license to drive a car doesn't guarantee permission to drive a motorcycle. That's sometimes a separate license or endorsement. – Joshua Dwire Mar 1 '16 at 18:49

This is a mockup to capture what IDP classes A–D cover:


download bmml source – Wireframes created with Balsamiq Mockups

Drop-boxes and check-boxes are meant to be exemplary. You might want to choose different widgets on mobile apps, websites and desktop applications. It will also depend on your actual application (Uber/Lyft/BlaBlaCar competitor, car rental, job board, …) how much detail you need, e.g. because you’re only offering motorcycles and cars for rent or because you’re also interested in cab/taxi licenses.

Some pictures or symbols would probably help users to distinguish light and heavy types, e.g.: AM moped A1 light motorcycle A2 medium motorcycle A heavy motorcycle.


Just ask them:

What kind(s) of vehicles are you licensed to drive?

[ ] motorcycle
[ ] car
[ ] limousine
[ ] truck
[ ] bus
[ ] big rig

It doesn’t matter if a car license also entitles them to drive a motorcycle if they never drive a motorcycle. Just let them tell you what license privileges they specifically applied for and are confident that they hold.

If that is not enough, then ask them for their license region and classification and build a database of all U.S. state and Canadian province/territory license classes and cross-reference. But it sounds like that would be overkill for your needs.

  • I think you're heading in the right direction. My fear was bad data. If someone can drive a truck, they can also drive a car, so I'll have to add some JavaScript logic to make sure things are properly recursive and the right boxes are checked. Someone also noted that the ability to drive a motorcycle is not always part of a typical license, so there's another layer of complexity to the logic. I was hoping to keep things simple and exclude any logic from JavaScript, but it appears that might not be possible here. – invot Mar 1 '16 at 19:22


As a general rule, be humane to humans, ask the question you want answered, directly. What you're doing is inhumane, rude, insulting and condescending. Typical of how programmers treat humans because they love data about humans more than they care for actual humans. But, here's the rub, humans can sense this tacit attempt at manipulating data from them.

You're also attempting to use an abstraction to determine a range of abilities, so it's never going to work, too.

Instead of saying "here's another checkbox-multi-choice thing, please tell us about yourself and vehicles..."

Just ask, "Which vehicles do you enjoy driving/riding?"

People care if you care about their feelings.

Programmers and UI/UX do not mix. Hire someone with empathy and force yourselves to respect them, regardless of what your "logic" tells you.

  • While I can’t really disagree with your characterization of a common trap that some programmers fall into, how do you know this question was asked by a programmer? – Simon White Feb 27 '16 at 8:50
  • because it was asked. – Confused Feb 27 '16 at 9:18
  • 2
    This is a data entry app. What we care about is proper data entry, not really the human element of the interaction. I would otherwise agree with your answer, but this time I think there are other factors that trump the rule. Also, asking what they "enjoy" doing would be pretty misleading, as that is not the question we even want to ask. – invot Feb 29 '16 at 16:00
  • How are you going to otherwise motivate the respondents to enter data? – Confused Feb 29 '16 at 16:45
  • It's called "the cost of compliance"... which is a draconian fallback in this instance. I would like it to be very difficult for the user to provide us with the wrong data, but easy if they just do what we're asking. – invot Feb 29 '16 at 22:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.