I'm trying to figure out the best approach to let users specify what states they charge sales tax in (when they sell products), and then let them enter a tax percentage for each state selected. This will be part of a configuration wizard. They might select 3 states or provinces, or they may select 50, so I have to represent what they select in a usable way. Simplified steps:

Step 1: Select the jurisdiction
Step 2: Enter the tax rate for the jurisdiction
Step 3: Repeat or finish
Alternate Step: Delete an entered jurisdiction

Here are two approaches I'm considering, but while it's easy for a few jurisdictions, it could become very cumbersome for a significant number. Or maybe not. I'm only including UI mockups to demonstrate my workflow ideas.. I'd really like to consider this from a UX perspective first, and then I can create a UI based on that (but feel free to talk about either).

Most customers will be selecting one, maybe two, jurisdictions where they charge tax.

enter image description here

enter image description here


  • Some states (NY for example) have multiple tax jurisdictions. NYC has one combination of tax (state, city, MTA) and other counties only have state tax. (And there are probably other combinations.)
    – Mayo
    Dec 8, 2016 at 20:28
  • Yeah - phase one we're going to keep it simple. Phase two we'll probably be including a tax engine.
    – Chris L
    Dec 9, 2016 at 1:45

1 Answer 1


So you're correct that your two approaches would be quite laborious when the user needs to enter many sales tax values (requiring 2 or 3 clicks per state).

To help solve this you could, by default list all the states with a search filter on the top. If there is no sales tax for a state (or if you want to remove sales tax from a state) simply leave the field blank.

enter image description here

This pattern also still easily supports the majority use case where a client simply needs enter sales tax for only one or two states.

  • I like the idea.
    – Chris L
    Dec 9, 2016 at 1:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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