I'm writing an application where our in-house users are supposed to supply various information about companies we are involved with. Specifically, we want VAT numbers to be supplied if there is one.

In most cases, perhaps 95% of them, there is a VAT number somewhere, usually it's easy to get it, might require some searching online, in some cases brief contact with the company is enough, worst case, quite a lot of contact is required and the companies aren't always helpful.

Also, in 5% of the cases, there is no VAT number, or it's impossible to find.

Since there isn't always a number, I can't use a strict requirement, it must be possible to save without it. On the other hand, office policies or software warning dialogs are not enough to encourage the users to go through the hassle of finding the numbers.

My best idea so far is to require the user to do something time consuming, like copying a long string of letters manually, to be able to bypass the VAT number requirement. If this is hard enough, the users will prefer finding the number.

I'm not very happy with this idea, do you have a better one?

If the users were our customers, this kind of idea would be completely unthinkable of course, but they are not, we both work for the same company.

  • 4
    Not strictly UX, but VAT related; you can give your users a prepared search: encrypted.google.com/…
    – oliverpool
    Commented Apr 25, 2016 at 16:19
  • Maybe automate it so the user doesn't have to perform a search and copy paste the value in?
    – djechlin
    Commented Apr 25, 2016 at 16:38
  • 7
    This sounds like a managerial issue and not a UX one. "Get the fine VAT # or GTFO." should be somewhere in their training. If the missing VAT # percentage stays at 5% or less then management is working.
    – MonkeyZeus
    Commented Apr 25, 2016 at 18:07
  • They will certainly go and find the VAT number when the first invoice arrives including VAT! Commented Apr 26, 2016 at 5:23
  • 3
    Leave it to User Experience to attempt to solve a management problem with bad design...
    – Lilienthal
    Commented Apr 26, 2016 at 23:05

11 Answers 11


I agree that your current route is not very useful for anyone and especially not the end user.

The key here is to make sure you offer the user as much help to achieve the task as possible.

Why not offer some kind of walk through asking the user to confirm that they have tried each route before moving on. Some people may not have realised the different ways that they could try and find it.

If you go down this route, user will have to confirm they have tried each route - being responsible for doing the work - and then I guess if they don't have the VAT number in the end then they may continue.

The user would actively have to accept the checkboxes, so it will play a bit more on their conscience if they are lying and just trying to get through the work quickly, especially if this work is going to be assigned a users record.

I have quickly mocked up an example of what I mean. I think the wording could also be improved slightly and you might also have other information such as company name, phone number which you could pull through to help the users.

When you are validating the form, you would then validate the form on either the two options :

  1. the VAT Number field has the VAT length and format
  2. if checkboxes are ticked (cannot find, option1 and option2)

enter image description here

  • 25
    This is an interesting idea, I will take it into consideration. I like how it makes the user feel responsible for doing everything they can.
    – Mårten
    Commented Apr 25, 2016 at 15:15
  • 9
    Take it one step further and make them "prove" they actually tried each one. E.g. under "searched online", have a required text field for "search terms you tried", and under "contacted directly using number" have a text field for "name of person you talked to" and a paragraph field for "summary of information collected during call".
    – nhinkle
    Commented Apr 25, 2016 at 16:53
  • 7
    I like this idea. This would emphasize to me that this VAT thing must really be important and skipping it clearly seems problematic with all the subsequent check boxes.
    – leigero
    Commented Apr 25, 2016 at 19:56
  • 3
    A check-able list of guidelines is a wonderful idea -- you could make ticking those mandatory if the field itself isn't complete ... I think it's also worth putting in (from other suggestions) an automatic google search link, if only reduce the cost of doing the "right" thing. you could also add a date field to say "check for VAT again on dd/mm/yyyy" :) Commented Apr 26, 2016 at 10:17
  • 3
    I think this is an awesome answer-- as a user, I perceive "this is important; please confirm that you take it seriously and made a good faith effort"; I find the request reasonable, the language respectful, and the specific hints helpful; it encourages me to act as an ally. I'm sad that some ( @LeslieP.) still find it annoying and would be curious to know what they'd rather have instead, given that simply making the field optional isn't working.
    – Don Hatch
    Commented Apr 28, 2016 at 4:22

Give them a UI that starts the process of searching

If the user submits a form with no VAT number hit them with a modal dialog, that gives them option the perform a search.

When the user inputs a company name, append the the words "VAT Number" and have the default browser run a google search.

This method:

  • Forces the user to think about VAT numbers
  • Trains the user in the carrying out of an appropriate search
  • Starts the search process for them
  • Makes them them aware of their responsibilities

I've presented a couple of escape options.

  1. Simply click to close
  2. Have them either click that they don't want to search, or that they've already tried.


download bmml source – Wireframes created with Balsamiq Mockups

enter image description here

  • 2
    Awesome - check oliverpool's comment, as google search for site:http://ec.europa.eu/taxation_customs/vies/ "company name" vat will give you VAT for most companies :) Commented Apr 26, 2016 at 15:26
  • Those guys over at VIES also have a free API that can validate VAT numbers as well as company information, or find them.
    – simbabque
    Commented Apr 27, 2016 at 15:12
  • 1
    -1 for hitting them with a modal dialog, which, as a user, I perceive as a very hostile move. Not sure what scope of modality you have in mind, but whatever it is, it's preventing the user from interacting with the computer or program at some level that might be the level they need to be at in order to actually find the information in question in what they know to be the most direct way; that's infuriating to me as a user. The basic idea is good, but I bet it can be done effectively without holding the user hostage; e.g. see @stradled's answer.
    – Don Hatch
    Commented Apr 28, 2016 at 4:33

It is a managerial issue, but it can be enforced with software. Require a supervisory override to continue with no VAT number. The supervisory override should escalate to someone who cares if the VAT number is present and who has the authority to tell the person escalating to stop shirking, if necessary.

  • Great option - if there are really only 5% without a VAT Number, the number of escalations will be small enough :-)
    – Falco
    Commented Apr 28, 2016 at 9:58
  • Not being able to save the other info without a supervisory override is bad, as for example the supervisory may be a out. So there should be a way to save and "put on hold"..
    – Ian
    Commented Apr 28, 2016 at 15:41
  • 2
    @Ian: If the supervisor is out then they're not much of a supervisor. The entire purpose of their job is to be present to supervise. Commented Apr 28, 2016 at 19:01
  • 1
    @LightnessRacesinOrbit Depends a lot on what "supervisor" means. If there is one manager, and he is sick and takes a personal day, no employees can save any work for the day? That's not going to fly. If there is guaranteed to be a shift manager always there but it might be different people on different days, then it might be okay for the approval to be mandatory. Commented Apr 28, 2016 at 19:24

I think one problem is that "No VAT number" is too vauge, IMO it makes more sense to split it into seperate cases.

  • The company is not in the EU.
  • The company is in the EU but has confirmed they are not VAT registered.
  • The company is in the EU and is known to be VAT registered but the VAT number is unknown.
  • The company's VAT status is unknown.

I would suggest having radio buttons for each of those possibilities (along with a radio button selected by default for "company is VAT registered"). If the user leaves the default radio button selected and doesn't fill in a VAT number that would be considered an error.

Once the user makes their selects a radio button you can ask for relavent additional information. For example you might ask the user to give details of the communication where the company confirmed they were not VAT registered.

Use of the last two radio buttons should be considered exceptional. Such entries should probablly be escalated for approval by a higher level manager. You might want to put them in a warning box or something.

For the first two cases cross-checks could be implemented. In the first case against the suppliers address, in the second case against the ammount and type of buisness done with the supplier.

You might also want to implement a periodic re-check process. Just because a company was not VAT registered a year ago doesn't mean they are still not VAT registered today.


I had to design a similar form a few years back.

The way I handled it was by providing a link to further info and having a checklist appear at the bottom if the information wasn't provided. The user was unable to submit the form if the field was empty and the checklist not completed. So, to use your example:

  • the form has a compulsory VAT field
  • next to it you have a link to further information about the company's policy and how they can possibly obtain the VAT number
  • provide a checkbox which the user selects to confirm they could not obtain a VAT number
  • upon selecting the above checkbox, an additional section appears. This section contains a stem sentence such as: I confirm I have:.
  • still within the same section, the stem sentence is followed by a number of statements, each with their own checkbox next to them. The statements are along the lines of: "searched online for the VAT number", "contacted the company to ask for their VAT number" and so on. Ensure one of the statements says something like "I have read the company's policy on obtaining VAT numbers" and ensure that the word 'policy' is hyperlinked to that policy.

In a nustshell, leaving the VAT field empty requires that the user has selected that they could not obtain the VAT number and also requires their confirmation via checkboxes that they have tried all of the listed steps. If they have not done this, then the form cannot be submitted.

  • 1
    Seems very similar to @stradled's answer, and similarly excellent. I wish all software I interacted with conveyed this level of respect and professionalism.
    – Don Hatch
    Commented Apr 28, 2016 at 4:38

A possibility is to publish stats about how well each employee is doing in finding the information. This could be displayed either as a percentage or an absolute number.

You can try getting a bit of competitive atmosphere where the employees are constantly trying to do better than their co-workers. Don't take it too far though, you do not want to encourage users simply making up numbers.

The reputation and badges used by stackexchange seem to work fairly well for this. So that's one thing you could try to mimic. It's not something I have seen often in a working environment, but one previous employer of mine had an internal website on which you could earn badges.

  • I like this, Your really talking about a training issue anyway (most of the time)
    – coteyr
    Commented Apr 27, 2016 at 14:56

There are a lot of "how to force the user to" answers - show the users some respect instead :)

  1. Make sure it's no possible way to automate the process, auto search for the VAT, add auto completion, user public VAT search sources. Whatever the system can do to help the user in the process.
  2. If no VAT is found, apologize and ask for help politely, add a phone number, who to call etc. Add as little friction as possible for users to make an effort.
  3. To get the users to do more, you need to have some kind of benefit, I like the one with a speedier process mentioned above, but there could be others, as long as the user understands why this is important and what effect not having it will have.

The only thing to avoid is making it harder to go through or you will get nonsense VATs.

It's like the old password problem, set complicated rules and monthly update and you get the least possible secure password with an added 01. Written under the keyboard on a post-it.

My guess if it gets to complicated - you will have a nonsense VAT written on a post-it somewhere close by...

  • I would guess that knowingly entering bogus information would be a far more serious offense (quite likely grounds for firing, especially if repeated) than merely leaving an "optional" field unfilled just because the information wasn't conveniently at hand. In particular, it's also a lot harder for the lazy (and dishonest) worker to talk their way out of. Commented May 2, 2016 at 6:34

I have had to something like this before as well. The most workable option that I have seen is an "administrative fee" if the purchase should have a VAT number but does not.

This assumes a purchase of course. Usually VAT Tax is enough to make consumers enter the number.

However this won't work as your end user is not a customer and isn't forking over cash. So instead apply another kind of fee. Because your users are employees, have the fee be "dealing" with a manager.

Create a queue of entries that are missing data. In that queue list then entry details and "who done it". This allows the employee the ability to go back and back fill the data, and allows management to add a metric around it. If you know 5% is the normal, then you can flag employees that have this happen more then 5% of the time. Finally allow the queue to be cleared in two ways. The first is completing the required data, the second is manager override. By requiring a manager override, you get the managers involved, and give them a chance to train the employee to find the VAT number.

  • It's for other employees of the same company, not for customers/consumers.
    – ErikE
    Commented Apr 27, 2016 at 16:07
  • Right that's why I say the money based fee won't work. Instead fall back to "deal with a manager" fee. I'll try to edit to make that more clear.
    – coteyr
    Commented Apr 27, 2016 at 17:08

Don't do this. This is very user-unfriendly.

It is much better to politely incentive the user, by writing something on the line of "Please double check that you have a VAT. This field isn't required, but if you enter it it would speed up the processing of your request. Thank you."

  • 4
    Unfortunately, this won't work. Such a notice will be ignored as soon as the users are used to seeing it. The thing is, if the user doesn't supply the VAT nr, someone else will have to do it, eventually.
    – Mårten
    Commented Apr 25, 2016 at 15:14
  • 4
    Having worked on building and using CRM and other data capture systems, I'd rather have no data than bad data. Encouraging people to put in false data (even if it's something easy to search on) isn't something that I can agree with. For some companies, their data are their business, and bad data really messes this up
    – gabe3886
    Commented Apr 27, 2016 at 10:20
  • As a programmer, bad data is very hard to filter out after the fact. Missing data is easy.
    – coteyr
    Commented Apr 27, 2016 at 14:55
  • 1
    Heh, this answer would probably be a lot more popular if the 0000000000 suggestion would be removed. The polite incentive is a really clever and simple idea that gets both of you on the same team-- I like it!
    – Don Hatch
    Commented Apr 28, 2016 at 4:42
  • @DonHatch Yes, that's probably what was granting me the downvotes -- even although I specified that was a bad idea. Removed now.
    – dr_
    Commented Apr 28, 2016 at 8:40

This problem reminds me of some forms I have experienced before, particularly some internal training websites at my company. To ensure you read the training information on a given page, you may be required to

  1. Navigate through several slides. Only once you reach the end of the slideshow, can you continue on to the next page to test you on the information or continue with the training

    1. Click certain areas on the page that bring up a popup/dialogue box with further information. Only once you have opened all dialog boxes can you continue on to the next page

You could implement this into your site. Perhaps next to/under the search button, could be a button for "Cannot Provide VAT". Clicking this could open a dialogue box with steps detailing how to locate the VAT number. Perhaps make it several slides outlining the different methods of obtaining it. Only once the user has read (hopefully) this information (either by scrolling to the last slide, bottom of page (think TOS agreement), etc.), will they be able to continue without providing a VAT number. On my internal training website example above, the button to continue to the next page is disabled until you have opened all dialogue boxes or visited each slide.

Here is a very simple code example: https://jsfiddle.net/9uzm0jdm/1/


Not having a VAT number is acceptable. But effort should be taken.

Before a VAT number is left blank, evidence about what efforts where taken should be recorded. The employee who did the effort, a description of the steps, and any information recieved.

You would start with a "do you have the VAT number". If they say they don't, it walks them through the steps required to find it. It provides a way to do a google search (either in-app or externally). They are then asked to write out what they did or did not find both by-hand and via a selection of options.

They see the resulting data "at X date, employee (Name and ID) searched for the VAT number of Bob's Hardware via an internet search. Nothing was found because $information$. X minutes and Y seconds passed from starting the form to ending it."

Then they click "I affirm the above is true".

Next step walks them through getting the phone number, including helpful links to internet searched and various databases. For each search, a system similar to the above VAT thing is done.

If they have a valid phone number, they are told to call it. Again, if this fails to generate a VAT number, the reasons are entered, and whom did it, when, and how much time was spent is recorded.

In addition, the person entering the data is asked "would an attempt in the next week be likely to work" (ie, calling failed because it was after hours in the office), and if so a guess asto when a next attempt would be useful (where they can enter open hours and days).

The next time someone edits the file, if the VAT number is missing but it was tried recently, they are quickly asked if they happen to have the VAT and let on. If the previous person guessed it would be worth trying again soon, and that time is passed, the new person is asked to do some of the steps again.

If it has been a while, the new editor is asked to go through all of the above steps again.

This does a few things. First, it forces the effort to be done, or at least faked. Entering the effort you do is easier than the effort, so it isn't that inefficient. Your name and employee ID and some estimate of how long you took at it are recorded, and you are shown it, leading to some possible guilt if someone simply wants to get the form out of the way and clicks "sure, I tried and didn't find anything".

Information about when to retry is recorded, as is information for the next person who tries. Forcing a retry is only done occassionally, after what you judge to be a reasonably long time when new information might come to light (maybe a month, maybe less, maybe more).

You can have supervisor overloads that let you mark a file as "expect to never be able to find the VAT for $reasons". If you do, have each person editing look at the reasons and either record they agree with them, or mark them as "maybe we should review this" for later. (Don't punish this immediately with work, however).

The end goal is to make doing the right thing easier than the wrong thing, record doing the wrong thing attributed to the person logged in, and don't make doing the right thing way harder than it should be.

You could also allow an override option, for when things are bad. The employee somehow swears that the situation is an emergency and the data must be saved. Such a system should force either the supervisor or employee to go back and revisit the issue and approve the emergency or validate the VAT after the fact. This is tricky, because it is easy for business as usual to become emergency mode. On the other hand, it is easy for the app to be unusable because of the forced input of data, when they really really need to just update some other field and it is not practical to look for the VAT right now.

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.