{% extends "base.html" %} {% block title %}Fairness Report - {{ data.model_name }}{% endblock %} {% block content %}

Overview

Fairness Score

{{ data.metrics.fairness_score | format_number(3) }}

Worst Group

{{ data.metrics.worst_group }}

Best Group

{{ data.metrics.best_group }}

Group Count

{{ data.group_results | length if data.group_results else 'N/A' }}

Interpretation: {% if data.metrics.fairness_score >= 0.8 %} Excellent fairness! The model provides equitable performance across demographic groups. {% elif data.metrics.fairness_score >= 0.6 %} Good fairness. The model shows reasonable fairness across groups with some disparities. {% else %} Low fairness. The model exhibits significant disparities across demographic groups and requires improvement. {% endif %}

{% if data.protected_attributes and data.protected_attributes | length > 0 %}

Protected Attributes

{% for attr in data.protected_attributes %} {{ attr }} {% endfor %}
{% endif %} {% if include_charts %}

Group Performance Comparison

Analysis

Fairness Metrics Comparison

Metrics Overview

{% endif %}

Group Performance Results

{% if data.group_results and data.group_results | length > 0 %}
{% if data.group_results[0].get('demographic_parity') %} {% endif %} {% if data.group_results[0].get('equalized_odds') %} {% endif %} {% for group in data.group_results %} {% if data.group_results[0].get('demographic_parity') %} {% endif %} {% if data.group_results[0].get('equalized_odds') %} {% endif %} {% endfor %}
Group Size Accuracy Precision Recall F1 ScoreDemographic ParityEqualized Odds
{{ group.group_name }} {{ group.size if group.get('size') else 'N/A' }} {{ group.accuracy | format_percentage(2) if group.get('accuracy') else 'N/A' }} {{ group.precision | format_percentage(2) if group.get('precision') else 'N/A' }} {{ group.recall | format_percentage(2) if group.get('recall') else 'N/A' }} {{ group.f1_score | format_percentage(2) if group.get('f1_score') else 'N/A' }} {{ group.demographic_parity | format_number(3) if group.get('demographic_parity') is not none else 'N/A' }} {{ group.equalized_odds | format_number(3) if group.get('equalized_odds') is not none else 'N/A' }}
{% else %}

No group results available.

{% endif %}
{% if data.fairness_metrics and data.fairness_metrics | length > 0 %}

Fairness Metrics Details

{% for metric in data.fairness_metrics %} {% endfor %}
Metric Name Value Status Description
{{ metric.name | replace('_', ' ') | title }} {{ metric.value | format_number(4) if metric.value is number else metric.value }} {% if metric.get('status') %} {{ metric.status }} {% elif metric.value is number %} {{ 'Pass' if metric.value | abs <= 0.1 else 'Fail' }} {% else %} N/A {% endif %} {{ metric.description if metric.get('description') else 'N/A' }}
{% endif %} {% if data.test_config %}

Test Configuration

{% for key, value in data.test_config.items() %} {% endfor %}
{{ key | replace('_', ' ') | title }} {{ value }}
{% endif %} {% endblock %} {% block extra_js %} {% if include_charts %} {% endif %} {% endblock %}