{% comment %} The dry-run's answer. Rendered by inbox:rule_test, which scores the posted condition with the *same* matcher the post_persist hook runs — the only difference is which of RuleInput's two constructors built the input. It writes nothing, and that is structural rather than careful: the view never reaches apps.inbox.routing, which is where applying lives. {% endcomment %}
{{ error }}
{% elif not sample %}No inbound messages yet, so there is nothing to test against.
{% else %}Matched {{ matches|length }} of the last {{ sample }} inbound message{{ sample|pluralize }}. This scores today's contact details against older messages, so it is a preview rather than a replay of what would have happened at the time.
{{ row.preview }}