Student Engagement Dashboard
Key Engagement Indicators
Engagement Insights
No insights generated yet. Please configure your data.
Data Configuration
Define your student engagement metrics, targets, and actuals. Click 'Add Metric' to add more rows.
Student Engagement Dashboard Report
Key Engagement Indicators
Engagement Insights
No KPI data available.
'; } else { let kpiTableHtml = `| Metric Name | Target Value | Actual Value | Unit | Progress (%) |
|---|---|---|---|---|
| ${metric.name || 'N/A'} | ${formatValue(metric.target, metric.unit)} | ${formatValue(metric.actual, metric.unit)} | ${metric.unit || 'N/A'} | ${progress.toFixed(2)}% |
No insights generated. Please configure your data.
'; } else { let overallProgress = 0; let metricsBelowTarget = []; let metricsAboveTarget = []; studentMetrics.forEach(metric => { const progress = calculateProgress(metric.actual, metric.target); overallProgress += progress; if (progress < 100 && metric.actual < metric.target) { metricsBelowTarget.push({ name: metric.name, progress: progress.toFixed(2) }); } else if (progress >= 100 && metric.actual >= metric.target) { metricsAboveTarget.push({ name: metric.name, progress: progress.toFixed(2) }); } }); const avgProgress = studentMetrics.length > 0 ? (overallProgress / studentMetrics.length).toFixed(2) : 0; insightsForPdf += `Overall Engagement: The average progress across all defined engagement metrics is ${avgProgress}%.
`; if (metricsAboveTarget.length > 0) { insightsForPdf += `Strengths: Excellent engagement observed in: ${metricsAboveTarget.map(m => `${m.name} (${m.progress}%)`).join(', ')}. These areas demonstrate strong student participation.
`; } if (metricsBelowTarget.length > 0) { insightsForPdf += `Areas for Improvement: Metrics currently below target include: ${metricsBelowTarget.map(m => `${m.name} (${m.progress}%)`).join(', ')}. Consider targeted interventions to boost engagement in these areas.
`; } insightsForPdf += `