Solin Early Warning

Blocks ::: block_atrisk
Maintained by OnnoOnno Schuit
Shows teachers, inside the course, which students may be falling behind and why: no recent activity, missed assignment or quiz deadlines, grades trending down, or stalled progress.
Latest release:
1 sites
138 downloads
3 fans
Current versions available: 2

Solin Early Warning

Version: 1.0.3 — 2026-06-08


Solin Early Warning adds a block to the course page listing the students who may be falling behind, ranked by severity. Every flag states its reason in plain language ("no login for 9 days", "missed Assignment 3, due 28 April"), so the teacher can judge whether to act. The signals are simple, configurable rules over data Moodle already has: activity, deadlines, grades, completion, and (optionally) forum participation. There is no machine-learning backend to set up, no demographic data, and no automatic messages to students.

No AI, no machine-learning backend, no email blasts. Signals you can read, thresholds you can tune.

What it does

The block sits in the course-view sidebar, visible only to users with the view capability (by default editing teachers, non-editing teachers, and managers; students never see it). Each flagged student renders as a collapsible row with their severity, the per-signal reasons, the worst-percentile relative to peers, and quick action links.

Signals

Five heuristics run on every render (cached for 5 minutes):

  • Inactivity — student hasn't accessed the course in N days (configurable, default 7).
  • Assessment miss — student failed to attempt one or more assignments / quizzes whose due date has passed within the last N days (default 14).
  • Negative grade trend — student's course total has dropped relative to their own recent average, backed by a weekly grade snapshot.
  • Stalled completion — student stopped progressing through the course's completion-tracked activities.
  • Forum silence (opt-in, off by default) — student has posted nothing in N days while peers in the cohort have.

Each signal compares the student to peers in the same course (configurable to per-group), so thresholds adapt to the actual cohort rather than fixed absolutes.

Severity, calibration, cohort gating

  • Yellow / Red severity tiering based on signal count and how far the student sits below peers.
  • Calibration window during the first weeks of a course — flags appear with a Tentative badge until enough data has accumulated for a confident signal.
  • Cohort floors — the block stays silent on courses with fewer than 10 active students (hard floor) and shows a "small cohort" notice at fewer than 20 (soft floor) to avoid noise on tiny groups.

Actions per flagged student

  • Send message — link to Moodle's standard messaging.
  • View student outline — link to the per-user course profile.
  • Dismiss for one week — quiet a flag you've already addressed; undoable; auto-expires.
  • Pause — temporarily silence the block on a course (e.g. during a holiday); resumes after the configured window.

Sensitivity preset

Per-block setting Show: More / Default / Fewer — a one-click control to adjust how aggressively flags appear. Useful for teachers running a large course who want to focus on the worst cases, or a small course where they want to catch borderline disengagement early.

What it does NOT do

  • No machine learning. No core_analytics dependency. No external API calls.
  • No email or push notifications. The block surfaces information; it does not act on the student's behalf.
  • No third-party SaaS. No data leaves the Moodle instance.

Requirements

  • Moodle 4.5 LTS, 5.1, or 5.2 (separate branches per Moodle version).
  • PHP 8.1+ (Moodle 4.5), 8.2+ (5.1), 8.3+ (5.2).
  • PostgreSQL or MySQL 8 / MariaDB.
  • Course completion tracking enabled site- and course-level for the stalled-completion signal to do anything; the block degrades gracefully if it isn't.
  • Moodle cron running — the block schedules prune_dismissals (daily) and snapshot_grades (weekly).

Privacy

The block stores teacher dismissals (which student, by which teacher, until when) and weekly grade snapshots per active student. Both are covered by the plugin's Privacy API provider with full export, delete-as-subject, and delete-as-actor support. No personal data leaves the Moodle instance.

Documentation and source

Screenshots

Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4
Screenshot #5

Contributors

Onno
Onno Schuit (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments

Show comments
  • Plugins bot
    Sat, 9 May 2026, 12:00 AM
    Approval issue created: CONTRIB-10516
  • Ricardo Caiado
    Wed, 3 June 2026, 7:09 AM
    Hi,

    Requirements: Moodle 4.5 LTS, 5.1, or 5.2

    But only Moodle 5.2 version is available for download.

    Ricardo
  • Onno
    Thu, 4 June 2026, 3:07 PM
    Hi Ricardo,

    Thanks for pointing that out. It's fixed now. The 4.5, 5.1 and 5.2 packages are all up.

    Onno
Please login to post comments