{% extends "base.html" %} {% block title %}GovCon Requirements - ICDEV™ Dashboard{% endblock %} {% block content %}

Requirement Pattern Analysis

Phase 59 — Frequency analysis, domain heatmap, trend detection across SAM.gov RFPs

{{ total_requirements }}
Total Requirements
{{ total_patterns }}
Clustered Patterns
{{ domain_count }}
Domains
{{ top_frequency }}
Top Frequency

Domain Heatmap

{% for domain, info in domain_stats.items() %} {% set pct = (info.count / total_requirements * 100) if total_requirements > 0 else 0 %} {% set heat = '#d32f2f' if pct > 25 else '#f57c00' if pct > 15 else '#fbc02d' if pct > 8 else '#388e3c' if pct > 3 else '#90caf9' %}
{{ domain }}
{{ info.count }}
{{ pct|round(1) }}%
{% endfor %} {% if not domain_stats %}
No requirements extracted yet.
{% endif %}

Top Requirement Patterns (frequency ≥ {{ min_frequency }})

{% for p in patterns %} {% endfor %} {% if not patterns %} {% endif %}
Pattern Domain Frequency Coverage Status
{{ p.pattern_name }}
{{ p.representative_text or '' }}
{{ p.domain_category }} {{ p.frequency }} {% if p.capability_coverage is not none and p.capability_coverage != '' %} {% set cov = p.capability_coverage|float %} {% set cov_color = '#388e3c' if cov >= 0.80 else '#f57c00' if cov >= 0.40 else '#d32f2f' %} {{ (cov * 100)|round|int }}% {% else %} -- {% endif %} {% set status_colors = {'new':'#1976d2', 'mapped':'#388e3c', 'gap_identified':'#f57c00', 'addressed':'#388e3c'} %} {{ p.status or 'new' }}
No patterns found. Run Extract + Map to cluster requirements.

Statement Types

{% set max_type = type_stats.values()|max if type_stats else 1 %} {% for stype, count in type_stats.items() %} {% endfor %} {% if not type_stats %} {% endif %}
Type Count Bar
{{ stype }} {{ count }}
No data yet.
{% endblock %}