dq-doctor Report: {{ report.table_name }}

{{ report.db_path }} · Generated at {{ report.generated_at }}

Quality Score
{{ report.quality_score }}/100
Rows
{{ report.row_count }}
Columns
{{ report.column_count }}
Total Rules
{{ report.total_rules }}
Passed
{{ report.passed_rules }}
Failed
{{ report.failed_rules }}
Suggested
{{ report.suggested_rules }}

Column Profile

{% for col in report.profile.columns %} {% endfor %}
Column Type Null Rate Distinct Rate Min Max Semantic
{{ col.name }} {{ col.dtype }} {{ "%.2f%%" | format(col.null_rate * 100) }} {{ "%.2f%%" | format(col.distinct_rate * 100) }} {{ col.min_value if col.min_value is not none else "-" }} {{ col.max_value if col.max_value is not none else "-" }} {{ col.inferred_semantic_type }}

Rule Suggestions

{% for rule in report.rules %} {% endfor %}
Rule Type Column Confidence Severity Reason
{{ rule.rule_type }} {{ rule.column }} {{ "%.0f%%" | format(rule.confidence * 100) }} {{ rule.severity }} {{ rule.reason }}

Validation Results

{% for result in report.results %} {% endfor %}
Status Rule Type Column Source Failed / Total Message
{% if result.total_count == 0 and result.passed %} SUGGEST {% elif result.passed %} PASS {% else %} FAIL {% endif %} {{ result.rule_type }} {{ result.column }} {% set rule = report.rules | selectattr('rule_id', 'equalto', result.rule_id) | first %} {% if rule and rule.source == 'llm' %} LLM {% else %} heuristic {% endif %} {{ result.failed_count }} / {{ result.total_count }} {{ result.message }}
{% set llm_rules = report.rules | selectattr('source', 'equalto', 'llm') | list %} {% if llm_rules %}

LLM Insights

{% for rule in llm_rules %} {% endfor %}
Rule Type Column Confidence Severity Insight
{{ rule.rule_type }} {{ rule.column }} {{ "%.0f%%" | format(rule.confidence * 100) }} {{ rule.severity }} {{ rule.reason }}
{% endif %} {% if report.pii_findings %}

PII Detection

{% for p in report.pii_findings %} {% endfor %}
ColumnPII Type
{{ p.column }} {{ p.pii_type }}
{% endif %} {% if report.referential_integrity %}

Referential Integrity

{% for ri in report.referential_integrity %} {% endfor %}
FromToOrphansTotalStatus
{{ ri.from_table }}.{{ ri.from_column }} {{ ri.to_table }}.{{ ri.to_column }} {{ ri.orphan_rows }} {{ ri.total_rows }} {% if ri.orphan_rows == 0 %} PASS {% else %} FAIL {% endif %}
{% endif %}