๐Ÿ“Š Heatmap Metrics Analysis Report

Generated on {{ generated_date }} {% if project_group_name %}
Project Group: {{ project_group_name }} {% endif %} {% if analysis.available_files and analysis.available_files|length == 1 %}
Analyzing: {{ analysis.available_files[0] }} {% elif analysis.available_files and analysis.available_files|length > 1 %}
Analyzing {{ analysis.available_files|length }} files (combined data) {% endif %}
{% if analysis.available_files and analysis.available_files|length > 1 %}
{% endif %} {% if analysis.available_years %}
{% endif %} {% if analysis.available_projects %}
{% for project in analysis.available_projects %} {% endfor %}
{% endif %}
{% if analysis.available_projects %}
{% endif %}
Total Files i
{{ analysis.summary.total_files }}
Total Records i
{{ analysis.summary.total_rows | default('N/A') }}
Unique Projects i
{{ analysis.summary.unique_projects | default('N/A') }}
Total Scans i
{{ analysis.summary.total_scans | default('N/A') }}
Successful Scans i
{{ analysis.summary.successful_scans | default('N/A') }}
Failed Scans i
{{ analysis.summary.failed_scans | default('N/A') }}
Success Rate i
{% if analysis.summary.total_scans and analysis.summary.total_scans > 0 %} {{ "%.1f" | format((analysis.summary.successful_scans / analysis.summary.total_scans * 100)) }}% {% else %} N/A {% endif %}
๐Ÿ”ฅ Busiest Hours i
{% if analysis.summary.busiest_hour is not none %} {{ "%02d:00" | format(analysis.summary.busiest_hour) }}-{{ "%02d:00" | format(analysis.summary.busiest_hour_end) }} {% else %} N/A {% endif %}
{% if analysis.summary.busiest_count %} {{ analysis.summary.busiest_count }} scans ({{ "%.1f" | format(analysis.summary.busiest_percentage) }}%) {% else %} N/A {% endif %}
๐Ÿ˜ด Quietest Hours i
{% if analysis.summary.quietest_hour is not none %} {{ "%02d:00" | format(analysis.summary.quietest_hour) }}-{{ "%02d:00" | format(analysis.summary.quietest_hour_end) }} {% else %} N/A {% endif %}
{% if analysis.summary.quietest_count %} {{ analysis.summary.quietest_count }} scans ({{ "%.1f" | format(analysis.summary.quietest_percentage) }}%) {% else %} N/A {% endif %}
{% if analysis.aggregated %}

๐ŸŽฏ Black Duck Scan Overview i

{% if analysis.aggregated.scan_types %} {% set total_scans = analysis.aggregated.scan_types.values()|sum %}

๐Ÿ” Scan Types Breakdown i

{% for scan_type, count in analysis.aggregated.scan_types.items() %} {% set percentage = ((count / total_scans) * 100)|round(1) if total_scans > 0 else 0 %}
{{ scan_type }} {{ count }} ({{ percentage }}%)
{% endfor %}
{% endif %}

Top Projects i

{% if analysis.aggregated.projects_by_time_block %}

๐Ÿ• Top Projects by Time Block (3-hour intervals) i

{% endif %}
{% endif %} {% if chart_data %}

๐Ÿ“ˆ Time Series Trends i

Scan Type Evolution Over Time i

{% for scan_type in analysis.aggregated.scan_types.keys() %} {% endfor %}
{% endif %}

⏱️ Capacity Usage – Scans Per Hour (SPH) i

Loading SPH data…