Your learning
What you are on, what is due and what you have earned.
Continue
Due
Your certificates
A certificate is issued on completion and carries a number anybody can verify without an account. It is not issued for enrolling.
Overview
Students, courses, enrolments and what needs attention.
Enrolments
6 monthsNew enrolments by month. The step in June is the compliance course going mandatory.
Attendance by day
Live class check-insNeeds attention
3 itemsNewest courses
Courses
The catalogue, from draft to archived.
Course catalogue
| Course | Instructor | Level | Price | Lessons | Enrolled | Completion | Status | |
|---|---|---|---|---|---|---|---|---|
| Infrastructure as code | Ines Duarte | Advanced | $74.99 | 16 | 84 | 41% | Published | |
| Container fundamentals | Rafael Costa | Intermediate | $69.99 | 12 | 118 | 62% | Published | |
| Machine learning foundations | Rafael Costa | Advanced | $99.99 | 18 | 96 | 38% | Published | |
| SQL for analysts | Ines Duarte | Beginner | $54.99 | 12 | 241 | 81% | Published | |
| Advanced TypeScript patterns | Ines Duarte | Advanced | $64.99 | 14 | 62 | 44% | Published | |
| Analytics for non-analysts | Nadia Kraus | Beginner | $29.99 | 8 | 0 | - | Draft | |
| Legacy reporting tools | Nadia Kraus | Intermediate | $0.00 | 9 | 184 | 94% | Archived |
Infrastructure as code
One course, where learners stop, and what that costs.
Sixteen lessons, eighty-four enrolled, forty-one per cent complete. Completion falls off a cliff at lesson nine, which is the first one with a hands-on lab rather than a video.
Where people stop
Drop at 9Structure
16 lessonsRecent enrolments
Assessment
Curriculum and lessons
The lessons that make up each course, in order.
Advanced TypeScript patterns
| Lesson | Type | Duration | Resources | Status | |
|---|---|---|---|---|---|
| 1 | Why types stop bugs | Video | 12 min | 2 files | Published |
| 2 | Generics without tears | Video | 18 min | 1 file | Published |
| 3 | Reading: the handbook chapter 4 | Reading | 25 min | 1 link | Published |
| 4 | Exercise: narrow this union | Exercise | 30 min | Repo | Published |
| 5 | Conditional types | Video | 22 min | 2 files | Published |
| 6 | Live class: patterns review | Live class | 90 min | Recording | Published |
| 7 | Exercise: build a typed client | Exercise | 45 min | Repo | Draft |
Quizzes
Practice, graded and mandatory, with pass marks and retakes.
Quizzes
| Quiz | Course | Questions | Minutes | Attempts | Average | Type | Status |
|---|---|---|---|---|---|---|---|
| ML foundations midterm | Machine learning foundations | 20 | 30 | 84 | 71% | Graded | Published |
| SQL joins check | SQL for analysts | 12 | 15 | 218 | 88% | Practice | Published |
| Container basics | Container fundamentals | 15 | 20 | 106 | 82% | Graded | Published |
| Compliance: data handling | Data handling | 10 | 10 | 388 | 94% | Mandatory | Published |
| Terraform state | Infrastructure as code | 18 | 25 | 0 | - | Graded | Draft |
Assignments
What is set, what is in and how long grading takes.
Assignments
| Assignment | Course | Due | Submitted | Graded | Average | Status |
|---|---|---|---|---|---|---|
| Build a small API | Node.js API design | 06 Sep | 38 | 31 | 84% | Open |
| Type a legacy module | Advanced TypeScript patterns | 12 Sep | 19 | 4 | 78% | Open |
| Model evaluation write-up | Machine learning foundations | 20 Sep | 6 | 0 | - | Open |
| Query optimisation exercise | SQL for analysts | 30 Aug | 188 | 188 | 86% | Closed |
| Container security review | Container fundamentals | 25 Aug | 96 | 92 | 80% | Closed |
Gradebook
Submissions, grades and the feedback that goes with them.
Submissions
| Student | Assignment | Course | Submitted | Grader | Score | Status |
|---|---|---|---|---|---|---|
| Nora Adeyemi | Build a small API | Node.js API design | 02 Sep | Ines Duarte | 92/100 | Graded |
| Otto Lindgren | Build a small API | Node.js API design | 03 Sep | - | - | Submitted |
| Greta Holm | Type a legacy module | Advanced TypeScript patterns | 01 Sep | Ines Duarte | 78/100 | Returned |
| Marek Nowak | Type a legacy module | Advanced TypeScript patterns | 05 Sep | - | - | Late |
| Sofia Almeida | Model evaluation write-up | Machine learning foundations | 31 Aug | Rafael Costa | 88/100 | Graded |
Live classes
Scheduled, attended and recorded.
Live classes
| Class | Course | Instructor | When | Booked | Capacity | Recording | Status |
|---|---|---|---|---|---|---|---|
| Model evaluation | Machine learning foundations | Rafael Costa | Tomorrow 15:00 | 62 | 80 | Will record | Scheduled |
| Patterns review | Advanced TypeScript patterns | Ines Duarte | Thu 11:00 | 41 | 60 | Will record | Scheduled |
| Query clinic | SQL for analysts | Ines Duarte | Fri 14:00 | 118 | 150 | No recording | Scheduled |
| Container security | Container fundamentals | Rafael Costa | 25 Aug | 84 | 100 | Available | Completed |
| Terraform state | Infrastructure as code | Ines Duarte | 18 Sep | - | 80 | - | Cancelled |
Certificates
Issued from completion, verifiable, and expiring where they should.
Certificates
| Certificate | Student | Course | Score | Issued | Expires | Status |
|---|---|---|---|---|---|---|
| CERT-NAD-4821 | Nora Adeyemi | Node.js API design | 92% | 05 Jul 2026 | - | Valid |
| CERT-MLF-4790 | Greta Holm | Machine learning foundations | 84% | 02 Jul 2026 | - | Valid |
| CERT-DHC-4744 | Otto Lindgren | Data handling, mandatory | 96% | 28 Jun 2026 | 28 Jun 2027 | Valid |
| CERT-DHC-4621 | Marek Nowak | Data handling, mandatory | 90% | 20 Jun 2025 | 20 Jun 2026 | Expired |
| CERT-RFB-4718 | Sofia Almeida | React for beginners | 88% | 10 Jun 2026 | - | Valid |
Users
Accounts, roles and departments.
Users
412 accounts| Person | Role | Department | Courses | Status | Last active | |
|---|---|---|---|---|---|---|
| Nadia Kraus | nadia.kraus@example.com | Owner | People | - | Active | Online |
| Helen Vartan | helen.vartan@example.com | Admin | People | - | Active | 20 minutes ago |
| Ines Duarte | ines.duarte@example.com | Instructor | Engineering | 4 | Active | 2 hours ago |
| Rafael Costa | rafael.costa@example.com | Instructor | Engineering | 3 | Active | Yesterday |
| Nora Adeyemi | nora.adeyemi@example.com | Student | Operations | 6 | Active | Today |
| Marek Nowak | marek.nowak@example.com | Student | Sales | 3 | Suspended | 2 months ago |
Roles and permissions
What each role can do, and what gets logged.
Roles
Permissions
Changing a grade after it has been returned is possible and is logged with a reason. Making it impossible would just move the conversation to email.
Enrolments
Who is on what, why, and whether they started.
Enrolments
| Student | Course | Source | Enrolled | Due | Progress | Status |
|---|---|---|---|---|---|---|
| Nora Adeyemi | Machine learning foundations | Self enrolled | 02 Jul | - | 17% | Active |
| Otto Lindgren | Data handling, mandatory | Assigned | 01 Aug | 30 Sep | 0% | Not started |
| Greta Holm | Advanced TypeScript patterns | Cohort | 01 Sep | 15 Oct | 48% | Active |
| Marek Nowak | Data handling, mandatory | Reassigned | 21 Jun | 20 Jun | 0% | Overdue |
| Sofia Almeida | SQL for analysts | Assigned | 14 Jun | 31 Jul | 100% | Completed |
Batches and cohorts
Scheduled groups, with a start, an end and a capacity.
Batches and cohorts
| Cohort | Course | Instructor | Schedule | Enrolled | Capacity | Completion | Status |
|---|---|---|---|---|---|---|---|
| DevOps cohort, September | Infrastructure as code | Ines Duarte | 05 Sep to 20 Oct | 18 | 20 | - | Upcoming |
| ML intensive, September | Machine learning foundations | Rafael Costa | 01 Sep to 30 Oct | 20 | 20 | - | Upcoming |
| TypeScript cohort, August | Advanced TypeScript patterns | Ines Duarte | 05 Aug to 20 Sep | 24 | 25 | 48% | Active |
| SQL cohort, July | SQL for analysts | Ines Duarte | 01 Jul to 15 Aug | 30 | 30 | 81% | Completed |
| Container cohort, June | Container fundamentals | Rafael Costa | 01 Jun to 15 Jul | 28 | 30 | 62% | Completed |
Cohort completion is measured at the end date. Counting a self-paced course the same way is how completion figures end up meaning nothing.
Attendance
Who came to a live class, and who watched it later.
Attendance
| Class | Date | Booked | Attended | Rate | Watched later | Instructor |
|---|---|---|---|---|---|---|
| Container security | 25 Aug | 84 | 61 | 73% | 9 | Rafael Costa |
| Query clinic | 18 Aug | 118 | 96 | 81% | 4 | Ines Duarte |
| Patterns review | 12 Aug | 41 | 28 | 68% | 6 | Ines Duarte |
| Model evaluation | 05 Aug | 62 | 44 | 71% | 3 | Rafael Costa |
| Terraform basics | 29 Jul | 38 | 31 | 82% | 2 | Ines Duarte |
Calendar
Classes, deadlines and cohort milestones in one place.
September 2026
A day with a dot has a live class, a deadline or a cohort milestone.
Thursday 3 September
3 itemsDeadlines and classes are one calendar. A student who exports it gets the deadlines too, which is the half people actually miss.
Notifications
What needs doing, with a link to do it.
Today
This week
Every notification names the thing and links to it. A deadline reminder with no link to the quiz is just anxiety.
Reports and analytics
Completion, assessment, compliance and engagement.
Completion by course
Published coursesMandatory compliance by department
Data handlingSales at 84% is 18 people. The report names them, because a percentage cannot be chased.
By course
| Course | Enrolled | Completed | Rate | Average score | Median days | Certificates |
|---|---|---|---|---|---|---|
| SQL for analysts | 241 | 195 | 81% | 86% | 14 | 195 |
| Container fundamentals | 118 | 73 | 62% | 80% | 21 | 73 |
| Advanced TypeScript patterns | 62 | 27 | 44% | 78% | 28 | 27 |
| Infrastructure as code | 84 | 34 | 41% | 81% | 31 | 34 |
| Machine learning foundations | 96 | 36 | 38% | 71% | 38 | 36 |
Settings
Branding, rules, integrations and retention.
Organisation
Rules
Integrations
Data
Completion records outlive accounts on purpose. An audit asks who was trained in 2023, and "they have left" is not an answer.
Completion
Who finishes, who stops, and where.
Where people stop
Across all coursesOne in five people who stop, stop at the same screen: the first assessment, in module three. It is the point where the course first asks for something back.
What is different about module 3
Six hundred and eighty-four people enrolled and never opened anything. That is a different problem from dropping out, it is larger than it looks, and it is invisible in a completion percentage.
Cohort, autumn intake
One group: who is keeping up and who is not.
This cohort
7 not contacted| Learner | Module | Behind by | Last active | Assessment | Contacted |
|---|---|---|---|---|---|
| Emre Yilmaz | 2 of 7 | 3 modules | 18 days ago | Not attempted | No |
| Noor Hakimi | 3 of 7 | 2 modules | 9 days ago | Failed once | Yes |
| Sam Oyelaran | 3 of 7 | 2 modules | 4 days ago | Not attempted | No |
| Ruta Kalnina | 5 of 7 | On track | Yesterday | Passed | - |
| Ivo Petrov | 2 of 7 | 3 modules | 22 days ago | Not attempted | No |
Eleven learners are two modules behind and seven have heard from nobody. A message at week four recovers about half of them; the same message at week ten recovers almost none.
Assessment review
What the marks say about the questions.
Worst performing
4 to review| Question | Module | Attempts | Correct | Discrimination | Verdict |
|---|---|---|---|---|---|
| Q7, scenario | 3 | 1,412 | 31% | Low | Ambiguous wording |
| Q12, calculation | 5 | 1,180 | 38% | High | Genuinely hard |
| Q3, definition | 3 | 1,412 | 42% | Low | Term not taught |
| Q9, multiple choice | 4 | 1,240 | 88% | Low | Too easy |
| Q15, applied | 7 | 684 | 61% | High | Working well |
Two questions in module three test something the module does not teach. That is the module where a fifth of all learners stop, and these two questions are part of why.
Reports: activity
Volume and throughput, by owner and by programme.
By tutor
This quarter| Tutor | Open | Closed | Median days | Overdue |
|---|---|---|---|---|
| Hilde Rasmussen | 88 | 71 | 81 | 4 |
| Anselm Werner | 96 | 68 | 71 | 9 |
| Beatriz Nunes | 84 | 54 | 64 | 11 |
| Karim Haddad | 92 | 48 | 52 | 18 |
| Unassigned | 684 | 0 | 0 | 684 |
Volume over time
12 weeksLearners active per week on a twelve-week course. The cliff between weeks three and four is the first assessment, and it is the same shape on every course.
By programme
This quarterReports: performance
Against target, with the gap named.
Against target by programme
100 is the targetA practice attempt before the first real assessment is worth more than every other intervention here, and it is a course setting rather than a person.
What moved
Rule-derivedReports: exceptions
What breached, what is late and what nobody owns.
Exceptions
684 open| Item | Scope | Volume | Problem | Fix |
|---|---|---|---|---|
| Module 3 assessment | All courses | 1,840 learners | No practice attempt | A course setting |
| 684 enrolments | All courses | 684 people | Never opened module 1 | One message |
| Q7 and Q3 | Module 3 | 1,412 attempts | Test untaught material | Rewrite two questions |
| 7 at-risk learners | Autumn cohort | 7 people | Nobody has contacted them | A tutor message |
| 684 enrolments | Unassigned | 684 people | No tutor at all | Assign |
A practice attempt before the first assessment moves completion from 46% to 78%. It is a setting on a course rather than an intervention by a person, and it is off on most of them.
Permissions
Every capability against every role, as enforced.
What each role can do
10 capabilities| Capability | Administrator | Learning manager | Author | Tutor | Learner |
|---|---|---|---|---|---|
| Take a course | Yes | Yes | Yes | Yes | Yes |
| Write a course | Yes | Yes | Yes | No | No |
| Publish a course | Yes | Yes | No | No | No |
| Mark an assessment | Yes | Yes | No | Own cohorts | No |
| Change a recorded mark | Yes | Yes | No | With a note | No |
| Change a mark after a certificate | No | No | No | No | No |
| See why a learner stopped | Yes | Yes | Own courses | Own cohorts | Own |
| Contact a learner | Yes | Yes | No | Own cohorts | No |
| Change a pass mark | Yes | Yes | Proposal only | No | No |
| Issue a certificate | Yes | Yes | No | Yes | No |
A mark cannot be changed after a certificate is issued, by anybody. A certificate is a statement to somebody outside this organisation and it has to mean the same thing a year later.
Integrations
Connected systems and their sync history.
Connected
4 connectedWhat breaks without them
- Without watch data the stopping point is unknown and completion is the only measure left, which hides both of the largest problems here
- Without people records a compliance course is assigned by hand
- Without calendar links a live session is an email people miss
- Courses still run; nobody can tell why anybody left one
Sync history
Last 24 hours| When | Source | Records | Result |
|---|---|---|---|
| Continuous | Identity | 8,412 learners | Live |
| Daily | People records | 412 staff | Current |
| Continuous | Video hosting | 62 courses | Live |
| Weekly | Certification body | 188 certificates | Current |
Import and export
Bulk load and extract, with per-row validation.
Import
Validated before anything is written. A file with one bad row imports the rest and tells you which line failed and why.
Export
Recent imports and exports
Last 30 days| When | What | Rows | Result | By |
|---|---|---|---|---|
| 1 Sep 07:00 | Import | 8,412 | Complete | Ottilie Vance |
| 1 Sep 18:00 | Export | 4,120 | Complete | Ottilie Vance |
| 7 Aug 10:00 | Import | 684 | Complete | Ottilie Vance |