{# Table T1-17 / T2-2 (D4 section 5.6): one criteria table, printed by T8 section 5a and T1 section 12 through this one macro (E9: "the criteria table exactly as T8 prints it"). #} {% from "_furniture.html" import manufacturer_text %} {% macro criteria_table(criteria_rows) -%}
{% for r in criteria_rows %} {{ r.operating_point }} {% endfor %}
One row per evaluated criterion, in the order the engine evaluated them (a criterion with level: * yields one row per level; rows are addressed by position, never by id, and each row's author, date and justification are those of the criteria.yaml entry it was evaluated from). Observed values print by the metric's rule of D4 section 1.2; the declared value prints with every digit run.json carries, unrounded; the compared statistic and the largest attainable lower bound, which the engine computed, print on the unit scale to three decimals. Status words are the engine's three and nothing else. The Type column is the declaration entry's type: a paired difference against the prior model version is a margin on the new-minus-prior difference, evaluated by proofpack compare, never a bound on the scope's own statistic.
#IdMetricTypeScopeOp.StatisticComp.ValueAuthor ยท dateObserved (95% CI)nMethodComparedStatusReason codeAttainable at nMax LB at nDetail
{{ r.position }} {{ r.criterion_id }} {{ r.metric }} {{ r.type }} {{ r.scope }} {{ r.statistic }} {{ r.comparator }} {{ r.value }} {{ r.authored }} {{ r.observed }} {{ r.n }} {{ r.method }} {{ r.compared_value }} {{ r.status_word }} {{ r.reason_code }} {{ r.attainable_at_n }} {{ r.max_lower_bound_at_n }} {{ r.detail }}
{{ manufacturer_text("justification", r.justification) }}
{%- endmacro %}