Skip to content

AdminEnrollment statuses & transitions

Every program cycle enrollment carries a status that shows where the user is in the cycle. Most status changes happen automatically from the cycle's dates and the user's progress; you can also change a status directly when you need to intervene. This guide explains each status and how enrollments move between them.

Open Programs → Enrollments to see every enrollment and its current status.

The Program Cycle Enrollments list under Programs → Enrollments, with total and last-30-days counts.Programs → Enrollments. Each enrollment shows its status in this list and on its detail page.

The statuses

StatusBadgeMeaningStill workable?
NewprimaryEnrolled, but the cycle hasn't started yet (before the start date).Yes
In ProgressblueThe cycle is open and the user is working through it.Yes
OverdueredPast the deadline but still inside the grace period — a last chance to finish.Yes
SubmittedgreenThe user has submitted their enrollment.No (terminal)
CompletedgreenAll required steps are done.No (terminal)
IncompleteamberThe deadline (and any grace period or extension) passed without completion.No (terminal)
ExemptamberThe user has been excused from this enrollment; it's excluded from completion totals.No (terminal)
InactivegreyThe enrollment isn't active (for example, the user's account is disabled).No (terminal)

New, In Progress, and Overdue are the working statuses — the user can still make progress. The rest are terminal: the automatic update leaves them alone, and only a deliberate admin action reopens them.

How statuses change automatically

Time- and progress-based transitions are recomputed hourly by a background job, and again whenever a user completes work or an admin changes the cycle's dates — so a status is rarely more than an hour behind reality. All date boundaries are read in your site time zone.

For a standard (deadline-based) cycle, the status is derived in this order:

  1. Before the start dateNew.
  2. All required steps completeCompleted (whatever the date).
  3. On or before the deadline day, not yet complete → In Progress.
  4. Past the deadline, within the grace periodOverdue.
  5. Past the deadline with no grace period, or past the grace periodIncomplete.

A cycle with no deadline stays In Progress until the user completes it. Submitted is set when the user submits their enrollment (or when it's auto-submitted on completion, depending on the cycle's configuration).

Extensions

An active extension replaces the deadline: the user stays In Progress through the end of the extension day, then becomes Incomplete. There is no Overdue window while an extension is in effect. Set one with Manage Date Overrides (below) or Reopen with Extension.

Rolling cycles

Rolling cycles don't lock on a single deadline. Their enrollments read as New until the user first opens them, then In Progress, with compliance tracked through milestone windows rather than an Overdue/Incomplete cutoff.

Changing a status yourself

Open an enrollment (Programs → Enrollments → a row) to intervene. The available actions depend on the enrollment's current state:

  • Re-evaluate Status — recompute the status now from the dates and progress, without waiting for the hourly job.
  • Force Complete — mark the enrollment Completed.
  • Reopen with Extension — reopen an Incomplete user by granting an extension, without discarding their completed work. This is the safe way to give someone more time.
  • Reopen — reopen the enrollment to a working status.
  • Reset Progress — clear the user's progress so they start over.
  • Manage Date Overrides — set this user's own start, deadline, or extension date (see Dates & time zones).

At the cycle level, Reopen Incomplete Users reopens every Incomplete enrollment in the cycle at once — useful after extending a cohort's deadline.

Reopening is deliberate

The hourly update never resurrects a terminal enrollment on its own — a user who lapsed to Incomplete stays there until an admin reopens them. Prefer Reopen with Extension over Reset Progress when you only want to give more time: it preserves everything the user has already done.

Related