Here is a problem I have been struggling with for a while...

Consider the following 2 input forms (don't worry, these are just mockups, not real screenshots). When the user opens the forms, all values are empty and the user is required to fill in these fields. As such:

enter image description here

In a second version of our application, we came up with a rather clever algorithm that calculates a default value for Field 3 and 4 on the second form. This is great to make a user's life easier: when he opens Form 2, instead of these fields being empty they are already filled in. The user can check these values, and accept or change the suggested values. In 99% of all cases, the default values will be spot on, in 1% of the cases, a user may want to deviate from the suggested values.

Now, the algorithm behind this is too hard to understand for a user, and too complex to explain, and also... a little bit of a secret. But here is the catch: it takes Field 1 and 2 as part of the input. So, here comes my problem: when the user accepts the default values in Form 2, but then returns to Form 1 and changes those values... what do we have to do with the values of Form 2? We don't know if the values of Field 3 and 4 are there because they where accepted as default, or entered by the user.

We came up with a few solutions ourselves, all of which I hate...

Nr1: add colors! enter image description here

If a user overrides the defaults, it will be indicated with a special color. This way the user knows (hopefully) that from that point on, he can not return to the default calculated values. In other words: once you edit, you're on your own.

Nr2: add more fields! enter image description here

The default calculations are added as read-only fields. Each time the form is opened those new default values are visible. It's up to the user to either fill in his own values, or copy-paste from the default values.

Nr3: add buttons! enter image description here

The user can click the "default" button to automatically overwrite whatever the user has manually put into those fields.

I hate all of these solutions as they all seem to add complexity for the user rather than take it away. Is there a better solution to this problem? This seems like such a trivial problem that I cannot image I am the only one facing this. However I cannot find any good solution. Any help will be appreciated.

  • Another option, that I also don’t quite like, was to split the OK button from Form 1 into something meaning Accept Only These Fields and Update All Fields.
    – Crissov
    Oct 22, 2014 at 12:29

1 Answer 1


Force a more conscious choice on between system defaults and custom values. On form 2, I would have a checkbox that says "use defaults" or "use system calculated values", selected by default, and make the values grayed out and uneditable when this is selected.

  • If this option is selected, a user will would expect the defaults to change to whatever is appropriate.

  • If the option is unselected, the user will expect the values to never be changed by the system. Ambiguity is removed from the design.

Also, if these fields are so closely related, why aren't they on the same form? It seems that grouping them together would help a lot. I would still use the design suggested above, but having everything together would make everything clearer. Maybe there are reasons for the separation that we can't see here, however.

Finally, being able to return to the default at any time is a useful feature, regardless of this particular problem. It doesn't make sense to forever take away the user's access to your clever algorithm, just because they entered their own value once. You should provide some way of returning to the default--either the checkbox design suggested, or something like your option 3 if you don't want to implement this design.

  • "If these fields are so closely related, why aren't they on the same form?" I knew somebody would say that... ;-) The truth is: from a functional point of view they are totally unrelated. The values are also entered at a totally different point in time during the process. But in order to make a good estimation for a default value of Field 3, the value of Field 1 is involved (along with many other variables). No user knows this and no user needs to know this. Bringing those 2 fields together only because the default value of 1 depends on the value of the other one is a bad idea imo. Oct 23, 2014 at 12:07

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.