How unreconciled works

No unreconciled tags are present

Account templates

The template will be reconciled in the database in the following way: Account Value - Sum of values entered in the template, as long as the values are in an input field named detail.custom.value in the custom.details collection:

{% fori detail in current_account.custom.details %}
  {% input detail.custom.value as:currency %}
{% endfori %}

This way (comparing sum of text-property values with account values) is the fastest way to use this functionality and it’s how it was originally designed to be used in Silverfin. The {% unreconciled %} tag was later added for reconciliation templates and some exceptional accounts but the reality is that they are used widely across the platform.

Reconciliation templates

The reconciliation will be following the logic selected on the edit reconciliation screen:

Output
  • Reconciliation necessary and invalid without data: the red triangle will appear if no data has been entered on the template and it will become a green circle when an input field has been edited.
  • Reconciliation necessary, but also valid without data: the template will always be reconciled (green circle) since no {% unreconciled %} tags are present and data validation is not needed.
  • No reconciliation necessary : a grey square will show if the default data on the template has not been modified. A yellow square will appear if the default data has been altered.

Unreconciled tags are present

Account templates

❗️

When using the {% unreconciled %} tags inside an if statement the template will be set to reconciled (green circle) if the statement is false. If unreconciled tags are present, the template does not reconcile on the database and will follow the logic below.

If the {% unreconciled %} tags are used outside an if statement or if the statement in which the tags are is true, then the logic on those tags will be applied.

{% assign test = 100 %}

{% comment %}Template will be set to reconciled (green circle){% endcomment %}
{% if test != 100 %}
  {% unreconciled 1 %}
{% endif %}

{% comment %}Template will be set to unreconciled by 1 (red triangle){% endcomment %}
{% if test == 100 %}
  {% unreconciled 1 %}
{% endif %}

If several {% unreconciled %} tags are present, the template will add all of them up and set the template to reconciled or unreconciled depending on the sum of those values. In this case false if statements will be ignored.

{% assign test = 100 %}
{% assign test_2 = 200 %}

{% comment %}Template will be set to unreconciled by 251 (250+1){% endcomment %}
{% if test_2 != 200 %}
  {% unreconciled 1000 %}
{% endif %}

{% if test == 100 %}
  {% unreconciled 250 %}
{% endif %}

{% unreconciled 1 %}

Reconciliation templates

The reconciliation will be following the below logic depending on what has been selected on the edit reconciliation screen:

  • Reconciliation necessary and invalid without data: {% unreconciled %} tags are taking into consideration unless they are inside false if statements, in which case the validation of data will apply (green circle if data has been entered, red triangle if not).
  • Reconciliation necessary, but also valid without data: {% unreconciled %} tags are taking into consideration unless they are inside false if statements.
  • No reconciliation necessary : {% unreconciled %} tags are ignored. A grey square will show if the default data on the template has not been modified. A yellow square will appear if the default data has been altered.

Issues with unreconciled tags inside {% ic %}/{% nic %} and {% for %}

We should avoid using unreconciled tags inside {% ic %} and {% nic %} as they might not work as expected. There shouldn’t be a case where we need to use them in this context as these tags don’t show explicitly on export mode so there is no need to show/hide them this way.

❗️

The reconciled status is actually calculated in the Preview mode (not in Input mode) to make this behaviour act a lot quicker. This is why unreconciled tags cannot ever be put between IC-tags.