MastriaDocs

Progress & tracking

Reading is public; progress is personal. The moment a learner signs in, their journey through your courses is tracked — every lesson start and completion, rolled up per course. Per-account rollups and the impact reports build on this data.

What learners see

  • A course player, not bare pages. Every lesson keeps the whole course in view: an outline beside the content (a collapsible drawer on phones) with per-lesson checkmarks, the current lesson highlighted, labs marked, a progress bar on top, and "Lesson 4 of 12" in the header. The ← and → keys walk between lessons.
  • One button to finish. Complete and continue marks the lesson done and lands on the next one in a single click (and can be undone with Mark as incomplete). Lessons with labs complete themselves the moment every exercise passes; lessons with quizzes do the same once every question is answered right or its answer shown (and, with labs too, every exercise passed).
  • Resume that follows the learner. Continue course reopens the first unfinished lesson at or after the one they most recently worked in, wrapping back to the earliest gap only when nothing is left ahead — so a learner who skipped ahead is never sent backwards. Course cards carry each course's progress bar (or a check and "Completed"), and the home's Continue learning section (first, by default) jumps straight into that lesson.
  • Path progress comes free. A learning path shows "2 of 4 courses completed" on its card and page, derived live from the member courses' own progress (nothing separate to enroll in or get out of sync), and its Continue path button always targets the first not-yet-completed course in the path's order.
  • A finish line. Finishing the course lands on a completion card — whichever lesson was the last one left, so a learner who skipped ahead and goes back to complete an earlier lesson is sent there too (its button reads Complete and finish course). When a lab's passing check finishes the course instead, the lesson itself says so: its footer turns into Course complete with one button to that card — Get your certificate when the course grants a certificate of completion, Back to course otherwise — and every lesson of a finished course ends the same way. A lesson ends with one continue button, in its footer; a finished lab or quiz says it's done without adding its own, and the links at the bottom quietly walk the lessons in order. The card holds the certificate (when the course grants one; an assessed certificate still short of clean lab passes shows "X of Y exercises passed" instead) and the author's recommended next course as "Continue with …" — or the next step of the path the learner is walking. The card also asks "How useful was this course?" once; No thanks means it never asks again.
  • A say in the course. Once a lesson is done, the course page's header carries Rate this course: five stars, what got in the way on a low rating, and an optional comment, which the learner can change any time. Only your team sees ratings — see Ratings.
  • A way to say a lesson is wrong. Every lesson's footer carries Report a problem with this lesson: what's wrong, and an optional note. Reports reach your team on the Content freshness page — see Learner reports.
  • Work that survives. Code typed into a lab persists across leaving and returning to the page, and every checked attempt is saved server-side.

Note

What never counts as completion: a page merely loading or a video merely playing. A click, a passing check against real state, or a finished quiz — honest signals beat vanity metrics.

My profile

The avatar menu's My profile page gathers everything a learner has earned in one place:

  • Every certificate, so there's no remembering which course granted what.
  • A learning record of all started and completed courses, and of every learning path they've walked. Courses you've since unpublished, hidden, or deleted stay in the record, marked "no longer available" instead of vanishing from a learner's history.
  • A display name that renders on their certificates in place of their email address.
  • Share your training opens a printable Training history: courses, completion status, dates, and certificate verification URLs — for the learner who needs to hand a manager (or an auditor) the record.
  • A recovery email: a confirmed second address that signs into the same account, and can be made the primary with a two-step Make primary — so none of the above is ever lost with a work inbox. See Accounts & learners.
  • Sharing with their company: a learner at a customer account chooses whether their name appears on the account's progress report (off until they turn it on). See Sharing progress with a customer.

What's recorded

Two events per lesson, both timestamped:

  • Started — the learner opened the lesson.
  • Completed — the learner clicked Complete and continue, or every exercise of the lesson's labs passed and every question of its quizzes is done (whichever comes first).

Started-but-never-completed is a deliberate part of the model: the gap between the two is where drop-off analysis lives.

Certificates

Finishing a certificate-enabled course earns a public, verifiable certificate — a Certificate of completion, or an Assessed certificate when every lab check also had to pass. The page, the issuance email, names, LinkedIn, and the admin ledger are all on Certificates.

Anonymous readers

Visitors who never sign in can read everything but leave no trail — by design. Their lesson footer has the same single way forward (Next lesson, or Back to course after the last one) beside the sign-in prompt ("track your progress"), which is the conversion point, and because signing in is a magic link, the friction is one email — and the link brings them back to the lesson (or lab) they signed in from, not the home page. What the academy counts about visitors (page views, lab runs — never identities) is on Reach.

Where this shows up

Progress data feeds the reporting built into the admin area. The dashboard, the activity log, and every definition are on Dashboard & analytics:

  • The dashboard (Admin → Dashboard) — active and new learners, lessons completed, lab exercises passed, and certificates over the last 30 days, live, each opening the learners or events it counted.
  • Course analytics (Admin → Course analytics) — where learners drop off inside a course, lesson by lesson, plus per-exercise lab difficulty: which checks fail most, named by their authored fail messages.
  • Account views (Admin → Accounts) — each customer's progress by course ("12 started", "8 finished (67%)"), learners active in the last 30 days, their roster and private-course access: the "how is Acme's onboarding going?" screen for your customer-success motion. Admin → Learners holds everyone — Individuals included — with each person's learning record. An account's page can also make a private link that shows the customer's manager their team's progress, naming only learners who chose to share their name on My profile — see Sharing progress with a customer.
  • Impact (Admin → Impact) — send your product's own metrics (via the API or CSV, keyed by email or your own user id) and ask whether the people who finished a course started using your product more than coworkers at the same account who hadn't, 30 days before and after. How it works is in Dashboard & analytics.

Completion data also flows outward: signed webhooks push lesson.completed, course.completed, and certificate.issued events into your own stack, and learners, certificates, funnels, metric events, and course waitlists export as CSV — see Integrations & exports. The tracking has been on since day one; every learner journey is already in these reports.

Learning paths in the record

Every learning path a learner has touched — any member course started — appears in their record with the path's derived progress ("1 of 4 courses completed") and its certificate once held: on their profile with a lesson-weighted bar, in the printable training history as text, and on the admin learner page as "1 of 4 courses, 69% of lessons". Nothing is enrolled: the record is computed from the member courses' own progress, so it can't drift, and a course restricted away since still counts as walked (records are history). Admin → Course analytics shows each path's funnel: learners who started it, who finished every course, and how far the starters got at each step.