Relevance is the property of a variable that makes it visible in the Knackly interview – i.e., a relevant variable is one the end-user can see and interact with, while an irrelevant variable is hidden from the end-user. Knackly has two types of relevancy.



The first is automatic relevance, which is relevance as determined by the templates, formulas, and app definition. This form of relevance is the base relevancy for Knackly; it is built in automatically and you don't need to do anything for it to function.


How automatic relevance works is this: if answering a variable will change the outcome of an app in any way, then it is relevant. This means that if that variable's answer will have an impact on one of the documents being assembled by the app, OR if the variable's answer will change the interview displayed by the app, then it is relevant.


This is related to the green checkbox you sometimes see on variables; if you need to answer the variable in order to avoid an unanswered item (i.e., brackets with the variable name) in the document, then it is relevant and the green checkbox appears if the variable is answered.


Automatic relevance is currently limited in more complicated situations with formulas; the relevance does not always calculate all variations of the formula to calculate the relevance appropriately. While we are working on this, currently it can also be overcome with explicit relevance.



The second form of relevance is explicit relevance. This form of relevance is one where you actively set the relevance condition for a particular variable. In some cases, you may want to hide certain variables that the automatic relevance would otherwise ask; alternatively, you may want to make some variables relevant and visible to the users when they otherwise wouldn't be seen under automatic relevance.


Explicit relevance evaluates whether the expression in the relevance property is true. Explicit relevance can be as simple as having true or false in the relevance property; a variable with true relevance will be visible to the end-users, while a variable with false relevance will not.


Of course, the expressions in the relevance property can be much more complex than that. The relevance property functions just like other expressions; you can use other variables and conditions, combine expressions with operators, and use the same logic you use in writing expressions to write your relevance condition.


For example, if you wanted to make a variable visible to the end-user only if they were entering information for a married couple with children, you would write the expression MarriedTF && ChildrenTF in the relevance property on that variable. The variable would then only be visible if both the MarriedTF variable and the ChildrenTF variable were true.


Explicit relevance is particularly useful on object models where you may want to hide or show certain variables depending on other answers on that object model. For instance, on a party object model, you may have a selection variable called PartyType that determines whether the party is an individual or an entity. When the party is an entity, you would want the EntityName variable visible, whereas when the party is an individual, you would want the FirstName, MiddleName, and LastName variables to be visible.


To do this, on the EntityName variable, you would enter an explicit relevance condition of PartyType == "Entity", and on the variables relating to an individual's name, you would enter an explicit relevance condition of PartyType == "Individual".