Recertification / CE Renewals
Who this guide is for: Admins running training that expires and must be retaken periodically (e.g. certifications valid for 12 months).
Give a course a validity period. When a learner completes it, their completion is stamped with an expiry date. As that date approaches, the recert worker automatically re-assigns the course so they renew before the credential lapses.
Set a validity period
- Open the course in Courses.
- In the editor’s Certificate panel, find Recertification.
- Set Valid for (months) — e.g.
12for an annual certification. - Leave it blank for courses that never expire.
How renewals work
- On completion, the enrollment’s expiry = completion date + validity period.
- A daily worker finds completions expiring within the lead window (default
30 days,
RECERT_LEAD_DAYS) and re-assigns the learner: the enrollment returns to active, prior progress is cleared, and the due date is set to the expiry — so they must retake the course to stay certified. - When they complete again, a fresh expiry is stamped and the cycle repeats.
Previously earned certificates remain in the learner’s wallet; each renewal cycle produces a new completion.
Recertification vs. recurring assignments
| Use | Feature |
|---|---|
| Re-assign a course to a group on a fixed cadence (annual compliance) | Recurring Assignments |
| Renew an individual’s credential before their personal expiry | Recertification (this page) |
They can be combined, but for most “valid for N months” certifications a validity period alone is enough.
Configuration reference
| Field | Where | Notes |
|---|---|---|
| Valid for (months) | Course editor → Certificate panel | 1–120; blank = never expires |
| Lead window | RECERT_LEAD_DAYS env (default 30) | How early before expiry to re-assign |
See what is about to expire (LMS-294)
Analytics → Certificate Expiry Forecast lists every certification lapsing in the next 90 days, so renewals can be scheduled before they turn into overdue training.
Reading it
Three buckets across the top: within 30 days, 31–60 days, 61–90 days. They are non-overlapping, so the three add up to the total — a credential lapsing in 20 days is counted once, in the first bucket. Click a bucket to filter the table; the counts keep describing the whole forecast so nothing looks like it disappeared.
The table is ordered soonest-first and shows the learner, the course, the learner’s manager (who is normally the person who chases the renewal), the expiry date, days remaining, and their groups. Export CSV downloads what is on screen.
What is and is not in it
| Included | Not included |
|---|---|
| Completed enrollments on a course with a validity period, expiring in the next 90 days | Credentials that have already lapsed — those are overdue training, see Analytics → Overdue Training |
| Learners with no manager (shown as “No manager”) | Deactivated learners and courses that have been deleted |
| Revoked credentials, flagged as Revoked | Courses with no validity period — nothing about them expires |
Already-expired credentials are left out on purpose. Mixing “you have a problem now” into “you will have a problem soon” makes the number useless for planning, and the overdue drill-down already covers the former.
Learners with no manager are deliberately kept: an expiring credential that nobody owns is exactly what a compliance admin needs to see.
Who sees what
The forecast follows the same scoping as every other report — a Group Admin sees
their groups, a Manager sees their report chain, and an Instructor sees their
assigned courses. It needs the report:read permission.
Do you need to act on it?
Often not. If the course has a validity period, the recertification worker already re-assigns the learner automatically as expiry approaches (see above) — the forecast is there so you can see the wave coming, plan instructor-led sessions, and chase the people who will not renew on their own.
To have it land in an inbox on a schedule, rebuild the same view in Analytics → Custom Report and use its scheduled delivery (Growth plan and above).
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Learner not re-assigned | Course has no validity period, or expiry is beyond the lead window | Set a validity period; renewals trigger within the lead window |
| Expiry not stamped | The course had no validity period when completed | Set it; new completions stamp expiry |