@* Views/Admin/SurveyAnalysis/Dashboard.cshtml *@ @model Services.AIViewModel.QuestionnaireAnalysisOverview @{ ViewData["Title"] = $"Executive Dashboard — {Model.QuestionnaireTitle}"; } @section Styles { }
@* ===== KPIs ===== *@
@Model.TotalResponses
Total Participants
@Model.AnalyzedResponses AI ANALYZED
@GetOverallHealthScore()%
Mental Health Score
@GetOverallHealthStatus().ToUpper()
@(Model.HighRiskResponses + Model.CriticalRiskResponses)
High Risk Cases
@if (Model.CriticalRiskResponses > 0) { @Model.CriticalRiskResponses CRITICAL } else if (Model.HighRiskResponses > 0) { IMMEDIATE ATTENTION } else { NO CRITICAL CASES }
@Math.Round(Model.OverallPositiveSentiment * 100, 0)%
Positive Sentiment
EMPLOYEE SATISFACTION
@* ===== CHARTS ===== *@

Mental Health Risk Distribution

Breakdown by risk level

@Model.LowRiskResponses
Low Risk
@Model.ModerateRiskResponses
Moderate
@Model.HighRiskResponses
High Risk
@Model.CriticalRiskResponses
Critical

Sentiment Overview

Emotional health distribution

Positive
@Math.Round(Model.OverallPositiveSentiment * 100, 1)%
Neutral
@Math.Round(Model.OverallNeutralSentiment * 100, 1)%
Negative
@Math.Round(Model.OverallNegativeSentiment * 100, 1)%
@* ===== INSIGHTS + METRICS ===== *@

Strategic Workplace Interventions

AI-identified priorities

@if (Model.TopWorkplaceIssues?.Any() == true) { @foreach (var issue in Model.TopWorkplaceIssues.Take(4)) {
@issue.Category
@issue.Issue
Action: @issue.RecommendedIntervention
P@issue.Priority
@issue.IdentifiedAt.ToString("MMM dd").ToUpper()
} } else {

No Major Issues Identified

Claude AI indicates a generally healthy workplace mental health environment.

}

Key Metrics

Performance indicators

Mental Health Score@GetOverallHealthScore()%
Response Rate@Math.Round((double)Model.AnalyzedResponses / Model.TotalResponses * 100, 1)%
Cases Requiring Attention@(Model.HighRiskResponses + Model.CriticalRiskResponses)
Last Analysis@Model.LastAnalyzedAt.ToString("MMM dd, HH:mm").ToUpper()
@* ===== EXECUTIVE SUMMARY ===== *@ @if (!string.IsNullOrEmpty(Model.ExecutiveSummary)) {

Executive Summary for Leadership

C-LEVEL SUMMARY
@Html.Raw(Model.ExecutiveSummary.Replace("\n", "
"))
} @* ===== ACTIONS ===== *@

Immediate Action Items

Urgent interventions needed

@if (Model.CriticalRiskResponses > 0 || Model.HighRiskResponses > 0) {
URGENT: Mental Health Interventions Required
@(Model.CriticalRiskResponses + Model.HighRiskResponses) employees require immediate professional attention.
REVIEW HIGH RISK CASES
} @if (Model.TopWorkplaceIssues?.Any() == true) { @foreach (var issue in Model.TopWorkplaceIssues.Where(i => i.Priority >= 4).Take(3)) {
@issue.Category
@issue.RecommendedIntervention
P@issue.Priority
} } @if (Model.CriticalRiskResponses == 0 && Model.HighRiskResponses == 0 && !Model.TopWorkplaceIssues.Any(i => i.Priority >= 4)) {

No Immediate Actions Required

Mental health status is stable with no urgent interventions needed.

}

Strategic Recommendations

Long-term improvements

@{ var strategicActions = GetStrategicRecommendations(); } @foreach (var action in strategicActions) {
@action.Title
@action.Timeline
@action.Description
}
@* ===== KEY PHRASES ===== *@ @if (Model.MostCommonKeyPhrases?.Any() == true) {

Most Common Employee Concerns

Trending themes from responses

@foreach (var phrase in Model.MostCommonKeyPhrases.Take(12)) { @phrase }
} @* ===== FOOTER ===== *@
Dashboard Summary
Analysis of @Model.TotalResponses employee responses shows @GetOverallHealthStatus().ToLower() workplace mental health with @(Model.HighRiskResponses + Model.CriticalRiskResponses) cases requiring attention.
@functions { private string GetHealthGlowClass() { var score = GetOverallHealthScore(); if (score >= 75) return "green"; if (score >= 50) return "amber"; return "red"; } private string GetHealthMetricClass() { var score = GetOverallHealthScore(); if (score >= 75) return "green"; if (score >= 50) return "yellow"; return "red"; } private string GetOverallHealthIcon() { var score = GetOverallHealthScore(); if (score >= 75) return "fa-heart"; if (score >= 50) return "fa-heart-pulse"; return "fa-heart-crack"; } private int GetOverallHealthScore() { var sentimentScore = Model.OverallPositiveSentiment * 100; var riskPenalty = (Model.HighRiskResponses + Model.CriticalRiskResponses * 2) * 10; return Math.Max(0, (int)(sentimentScore - riskPenalty)); } private string GetOverallHealthStatus() { var score = GetOverallHealthScore(); if (score >= 75) return "Excellent"; if (score >= 50) return "Good"; if (score >= 25) return "Concerning"; return "Critical"; } private double GetTagSize(string phrase) { return phrase.Length > 10 ? 1.1 : 0.9; } private List GetStrategicRecommendations() { var recommendations = new List(); if (Model.HighRiskResponses + Model.CriticalRiskResponses > 0) { recommendations.Add(new { Title = "Immediate Mental Health Support", Description = "Deploy emergency mental health resources and professional counseling", Timeline = "24-48 HOURS" }); } if (Model.OverallNegativeSentiment > 0.4) { recommendations.Add(new { Title = "Workplace Culture Assessment", Description = "Conduct comprehensive review of workplace environment and management practices", Timeline = "2-4 WEEKS" }); } recommendations.Add(new { Title = "Preventive Mental Health Program", Description = "Implement ongoing mental health awareness and stress management programs", Timeline = "1-3 MONTHS" }); recommendations.Add(new { Title = "Regular Mental Health Monitoring", Description = "Establish quarterly mental health assessments and trend monitoring", Timeline = "ONGOING" }); return recommendations; } } @section Scripts { }