Andrei Toma
Lead maintainer
Course Insights is a commercial analytics plugin for Moodle 4.5+ that gives administrators and managers a complete picture of course health, student engagement, and at-risk learners — without needing external tools or database access.
Every metric is calculated and cached in the background so the dashboard loads fast even on large sites with thousands of enrolments.
Dashboard overviewThe main dashboard lists every active course with a grade (A–F) based on submission rates, quiz attempts, average scores, and student login frequency. Colour-coded deltas show whether each course is trending up or down compared to a previous period you choose.
Drill into any course to see a full breakdown: a 52-week GitHub-style engagement heatmap, individual student rows with last access and completion data, assignment and quiz statistics, and a comparison of the current period against any past period you select.
At-risk detection and automated alertsConfigure an inactivity threshold (e.g. 7 days without login) and a minimum completion percentage. The plugin flags students who fall below either threshold and emails the relevant teacher and/or manager automatically. Alerts are sent by a scheduled Moodle task — no cron scripts or external services required.
A persistent at-risk snapshot table lets you compare the flagged student list week over week, so you can see whether your interventions are working.
Site OverviewA single-screen summary for administrators who manage multiple courses: total active enrolments, courses by health grade, site-wide submission rates, and a count of currently at-risk students. Loads from a pre-built snapshot for near-instant performance.
Reporting and exportOne-click CSV and Excel export for any filtered view. A printer-friendly report layout. Weekly or daily digest emails to nominated managers summarising site-wide activity — useful for leadership teams who do not log in to Moodle daily.
PostgreSQL and MariaDB compatibleFrom version 0.47.0, all date-range aggregation uses pre-built snapshot tables and PHP-side grouping, removing every MySQL-specific date function. The plugin is tested on both MariaDB/MySQL and PostgreSQL.