The published definition has never matched any implementation
File: content/en/cloud/academy/creating-content/instructor-console-guide/index.md
(the "What Defines an 'Active Learner'?" alert, and the bullet at line 59)
What it currently tells instructors:
the tile "counts the number of registrations that are currently in the Registered status"
This has never been true. No implementation of the ACTIVE LEARNERS card has ever counted
registrations by status. An instructor comparing the tile against the Learners tab will conclude the
product is broken, when it is the documentation that is wrong.
The correct definition
As implemented on layer5io/meshery-cloud master in
server/dao/academy_active_learners.go (landed by
meshery-cloud#5889):
An active learner in an organization is a learner who, against academy content that is still
live, either
(a) created or touched a registration during the current calendar month, or
(b) submitted a quiz attempt during the current calendar month.
Points worth carrying into the prose, because each one is a question instructors actually ask:
- It is a calendar month in UTC, not a rolling 30 days. The count resets on the 1st, so a low
number early in the month is expected and is not a defect.
- (b) is not redundant with (a). A learner who registered in an earlier month and sits a quiz
this month is active this month, even though their registration row does not move. In production
this contributed learners that (a) alone missed in every month sampled across 2026-01..2026-08
(January 41 → 50, February 35 → 42).
- Status is irrelevant. A registration's
Registered / Completed status does not enter the
count at all.
- Soft-deleted registrations, curricula and users are excluded.
- At the "All Organizations" scope the card aggregates across every organization, matching the
Total Learners card beside it.
Which repo owns the fix
This one - layer5io/docs. The behaviour is correct as implemented; only the published prose is
wrong, so nothing needs to change in layer5io/meshery-cloud.
The engineering-side reference, if a writer wants the fuller picture, is
docs/reference/academy-instructor-console-metrics.md in layer5io/meshery-cloud, which records
which source each console widget reads and why this metric is derived from academy tables rather
than from the organization create_session event stream.
How it surfaced
Found while diagnosing an unrelated ACTIVE LEARNERS accuracy report
(meshery-cloud#5881). Flagged there rather
than fixed, because the correction belongs in this repository.
The published definition has never matched any implementation
File:
content/en/cloud/academy/creating-content/instructor-console-guide/index.md(the "What Defines an 'Active Learner'?" alert, and the bullet at line 59)
What it currently tells instructors:
This has never been true. No implementation of the ACTIVE LEARNERS card has ever counted
registrations by status. An instructor comparing the tile against the Learners tab will conclude the
product is broken, when it is the documentation that is wrong.
The correct definition
As implemented on
layer5io/meshery-cloudmaster inserver/dao/academy_active_learners.go(landed bymeshery-cloud#5889):
Points worth carrying into the prose, because each one is a question instructors actually ask:
number early in the month is expected and is not a defect.
this month is active this month, even though their registration row does not move. In production
this contributed learners that (a) alone missed in every month sampled across 2026-01..2026-08
(January 41 → 50, February 35 → 42).
Registered/Completedstatus does not enter thecount at all.
Total Learners card beside it.
Which repo owns the fix
This one -
layer5io/docs. The behaviour is correct as implemented; only the published prose iswrong, so nothing needs to change in
layer5io/meshery-cloud.The engineering-side reference, if a writer wants the fuller picture, is
docs/reference/academy-instructor-console-metrics.mdinlayer5io/meshery-cloud, which recordswhich source each console widget reads and why this metric is derived from academy tables rather
than from the organization
create_sessionevent stream.How it surfaced
Found while diagnosing an unrelated ACTIVE LEARNERS accuracy report
(meshery-cloud#5881). Flagged there rather
than fixed, because the correction belongs in this repository.