Skip to content

A learning platform that keeps instructors in the loop

A learning management platform that makes course delivery, progress tracking and instructor workflows simple for learners and administrators alike.

TermstoneNorthmoor CollegeSearch courses and lessonsED
Good morning, Ellis
Thu 19 Mar 2026 · Spring intake 2026 · Learner NMC-24-11873
Courses in progress5
Work this term11 7 marked
Average mark747 released
Bookkeeping & PayrollModule 5 of 6 · Month-end reconciliationResume
5.2 Bank reconciliation: finding the difference
Stopped at 06:1211:40
Digital Marketing FundamentalsModule 3 of 5 · Content that convertsResume
3.3 Writing to one audience
Stopped at 03:4808:30
Project CoordinationModule 2 of 5 · Planning and riskResume
2.4 Keeping a risk register honest
Stopped at 09:0512:15

My courses

5 in progress
Bookkeeping & Payroll80%Dana Whitcombe · Module 5 of 620 of 25 lessons
Digital Marketing Fundamentals55%Rob Asher · Module 3 of 511 of 20 lessons
Project Coordination40%Nadia Brooks · Module 2 of 58 of 20 lessons
Business Communication60%Owen Carter · Start module 412 of 20 lessons
Data & Spreadsheets90%Leah Morton · Start module 59 of 10 lessons

Every deadline this term

11 pieces · 7 marked
DueCourseWorkStatusMark
30 JanBookkeeping & PayrollDouble-entry exerciseMark released78
6 FebDigital Marketing FundamentalsAudience briefMark released80
13 FebProject CoordinationStakeholder mapMark released74
20 FebBookkeeping & PayrollTrial balanceMark released66
27 FebBusiness CommunicationReport writingMark released69
6 MarData & SpreadsheetsPivot tablesMark released80
13 MarBookkeeping & PayrollVAT returnMark released71
16 MarDigital Marketing FundamentalsCampaign planAwaiting mark—
18 MarProject CoordinationRisk registerIn peer review—
27 MarBusiness CommunicationPresentationDue in 8 days—
3 AprBookkeeping & PayrollPayroll journalDue in 15 days—

The shape of the work

Industry
Professional Services
Duration
18 weeks
Cooperation model
Fixed price, phased
Services
Product designFrontend & backend buildAnalytics
Integrations
HubSpotDocuSignXeroGoogle Workspace
Technologies
ReactNext.jsNode.jsPostgreSQLTailwind CSSWebSockets
Team
1 Project lead1 Product designer2 Frontend engineers1 Backend engineer1 QA engineer

Client name withheld under NDA. Engagement details are shown to the extent our agreement permits.

Introduction

What we were brought in to do

Course content, grading, and progress data lived across disconnected tools. We consolidated enrollment, lessons, assessments, and instructor tools into one coherent experience.

A vocational provider running eighty courses across three campuses, with completion rates that had been drifting down for four years and no way to see it happening until final assessment. Instructors were tracking at-risk students in personal spreadsheets, which meant the knowledge left when they did. The engagement was scoped around one question the provider couldn't answer: who is about to drop out?

Product Design & Build

Where the old way broke

  • Instructors couldn't see where students stood or intervene early, and learners bounced between multiple disconnected tools to find their next lesson.

    Assignments lived in one tool, peer review in another, and the gradebook in a spreadsheet reconciled at end of term, so a student's real position was never visible in one place during the term, only after it. The lesson player was a video embed on a page with a sidebar of links, and session recordings showed students leaving for the quiz screen and not coming back.

    We unified course delivery, progress tracking, and grading into a single platform, with clear dashboards for instructors and a distraction-free learning view for students.

Instructor Intervention Cockpit

Surfaces struggling students in week two, long before final assessment.

Risk is computed from behavior (session gaps, abandoned lesson players, quiz retries, time to first submission), which is why it fires in week two instead of at final assessment. Grades don't exist yet in week two. The cockpit ranks a cohort by who is drifting, not by who is currently failing, and every name opens the evidence behind its own flag, so an instructor can judge the signal instead of taking it on trust.

What shipped
  • Behavioral signals, not grades, drive the flag
  • Cohort ranked by drift, not current mark
  • Evidence behind every flag, one click away
Cockpit · who is drifting
Bookkeeping & Payroll · Spring intake 2026 · Week 10 of 14 · Tue 17 Mar 2026
All 32 learners
Cohort32 Week 10 of 14
Flagged by behaviour6 read from activity, not marks
Reached module 428
Completed module 49 Payroll journals

Ranked by drift

Session gaps · abandoned players · quiz retries · first hand-in
#LearnerGapLeftRetryA4 hand-inDriftMark
1JPJordan Pike9d33Not started68
2AHAmira Haddad11d10Not started81
3CRCallum Reid6d246 days in59
4SMSofia Mendes8d21Not started62
5TATom Asante5d124 days in70
6GLGrace Liu7d01Not started77
7RMReece Morgan4d223 days in64
8HBHannah Byrne4d112 days in73
9KMKofi Mensah3d102 days in69
10LELily Evans3d011 day in84
11DPDev Patel2d101 day in72
12MHMegan Hughes2d00Same day75
Mark is shown, never ranked on: a learner on 81 can drift before any grade says so. Showing 12 of 32.
JPJordan PikeDriftingWhy this flag fired · evidence, not a scoreMessage
Course finished72% 18 of 25 lessons
Behaviour behind the flag
Session gapLast session 8 Mar9 days
Abandoned lesson players4.5, closed before 04:30 each time3
Quiz retriesCheck 4.4, passed on the third attempt3
Time to first submissionA4 Payroll journal · due 3 AprNone yet
4.5 Posting the payroll journalWatched 3×, never moved on
4 Mar, 19:12left 04:10 of 12:305 Mar, 20:40left 04:22 of 12:308 Mar, 18:55left 04:05 of 12:30
9 others stalled in this lesson too
Reached → completed, by moduleModule 4: 28 → 9
M1 32/31
M2 31/30
M3 30/28
M4 28/9
M5 9/4
M6 4/0
On screen

The instructor cockpit for the Spring intake, ranked by drift instead of mark. The open learner is 72% through the course and watched lesson 4.5 three times without moving on, where nine others also stalled, as module 4 drops from 28 reached to 9 completed.

Bookkeeping & Payroll · Module 5/5.2 Bank reconciliation: finding the differenceClose lesson
Course contents
20 of 25 lessons80%
1. Double entry4/4
2. Ledgers & trial balance5/5
3. VAT returns5/5
4. Payroll journals5/5
5. Month-end reconciliation1/3
5.1 Why the bank and the cash book disagreeWatched · 09:20
5.2 Bank reconciliation: finding the differencePaused at 06:12 of 11:40
5.3 Reconciling the payroll control account08:55
6. Year-end & reporting0/3
Picked up from your phoneStopped at 06:12 on 18 Mar, 21:40. Video, transcript and check 5.2a resumed together.
Bank reconciliation
Cash book balance£8,415.60
Bank statement balance£9,655.60
Difference to explain: £1,240.00
Paused for check 5.2aRight after 06:12The statement shows £1,240.00 more than the cash book. Which one could explain it?
A lodgement of £1,240.00 not yet credited by the bankAn unpresented cheque for £1,240.00Bank charges of £1,240.00 not in the cash book
Playback carries on once you answerCheck answer
06:12 / 11:40

One timeline

Everything below is one saved position, so any device resumes all of it at once.
PlaybackPaused by the check06:12
TranscriptLine in view, word-timed06:06
Check 5.2aOne option chosen, not sentOpen
Check 5.2bNext pause on this lesson09:58
Saved 3 s ago

Transcript

Search this lesson · click a line to seek
05:21So we start from the closing balance on the bank statement, not from the cash book.05:34Anything the bank has recorded that we haven't, we add to the cash book first.05:47Bank charges, interest, a direct debit nobody wrote down. Those are ours to catch up on.05:58Then the other way round: cheques we've written that haven't cleared yet.06:06Those are unpresented. They're real, the bank just hasn't seen them yet.06:12Before we go on, try one. Here's a statement that's £1,240.00 higher than the cash book.Check 5.2a06:25Lodgements work the same way in reverse: money paid in that the bank hasn't credited.06:39Once both lists are in, the adjusted balances should agree to the penny.

Focused Lesson Player

On screen

The lesson player: module contents on the left, the transcript under the stage, and an inline check that pauses playback right after the point being made, with video, transcript and check held as one saved position.

Distraction-free learning experience with auto-resume, transcript sync, and inline quiz prompts.

The player keeps playback position, transcript scroll and quiz state on one synchronized timeline, so resuming on a phone lands exactly where the laptop stopped. Transcripts are word-timed and searchable, and clicking a line seeks the video. Quizzes are inline prompts that pause playback: students had been bouncing out to a separate quiz screen and not coming back.

What shipped
  • One timeline for video, transcript and quiz state
  • Word-timed searchable transcripts that seek playback
  • Inline quiz prompts that pause playback in place

Unified Assessment Suite

Consolidates assignments, peer reviews, and automated gradebook tracking into one dashboard.

Assignments, peer review and the gradebook were three tools with three deadlines. They now share a single submission record, so a peer review is a state that record passes through, with no separate artifact to reconcile afterward. Weighting is declared once per course and the gradebook derives from it, which removed the end-of-term spreadsheet reconciliation entirely.

What shipped
  • One submission record from upload to final mark
  • Peer review as a state, not a parallel system
  • Weighting declared once; the gradebook derives from it
Marking queue · A3 VAT return
Bookkeeping & Payroll · Spring intake 2026 · Tue 17 Mar 2026
Gradebook
A1 Double-entry exercise15%32 in · 32 marked
A2 Trial balance20%31 in · 31 marked
A3 VAT return25%26 in · 13 marked
A4 Payroll journal40%6 in · 0 marked
All four assignmentsWeights 15 + 20 + 25 + 40 = 10095 hand-ins · 76 marked8 in the queue · 11 in peer review

Waiting to mark

8
EDEllis Draper13 Mar, 16:42
NCNoah Clarke13 Mar, 11:05
PNPriya Nair13 Mar, 09:58
SWSam Whitfield12 Mar, 22:14
ZAZara Ahmed12 Mar, 18:31
OPOwen Price14 Mar, 08:20Late
BLBeth Lawson12 Mar, 15:47
KTKai Turner11 Mar, 19:03
11 more still in peer review

Ellis Draper · submission

13 Mar 2026, 16:42
Uploaded13 Mar
Peer review2 of 2
MarkingDraft
ReleasedNot yet
draper-e_vat-return_q4.xlsx184 KB · Return tab
Box 1VAT due on sales£4,812.40
Box 2VAT due on acquisitions£0.00
Box 3Total VAT due£4,812.40
Box 4VAT reclaimed on purchases£2,176.85
Box 5Net VAT to pay£2,635.55
Box 6Total sales ex VAT£24,062.00
Box 7Total purchases ex VAT£10,884.25
Note to the marker“I wasn't sure whether the staff party counts as business entertainment, so I've left its input VAT out and flagged it on the workings tab.”
Peer review · a state this record passed throughPNBox 4 matches the purchase day book. Workings are easy to follow.SWCheck the staff party input VAT: the note explains why it's left out.

Rubric

5 criteria · weights 100
Output VAT30%72Sales VAT calculated at the right rates+21.6
Input VAT25%68Reclaims allowed, blocked items excluded+17.0
Return boxes 1–920%75Every box completed and agreeing+15.0
Reconciliation15%70Return ties back to the VAT account+10.5
Audit trail10%69Workings a reviewer can follow+6.9
Draft mark7121.6 + 17.0 + 15.0 + 10.5 + 6.9= 71.0, summed, not typedCohort so far 74 · 13 released
Ellis sees nothing yetRelease mark
On screen

The marking queue: weights adding to 100 across four assignments, 95 hand-ins and 76 marked, eight submissions waiting, and the open one beside its five-criterion rubric with a mark of 71 that stays a draft until it is released.

The solution

What we built together

  1. 01

    Shadowed instructors to map their real grading and intervention flow

    Shadowing a full grading cycle showed instructors tracked who had gone quiet, not who was failing, and the risk model was built on exactly that.

  2. 02

    Designed a single progress model shared by learners and staff

    Learner progress and staff reporting read one model, so a student's position is the same number wherever it appears. No two systems agreeing by luck.

  3. 03

    Built a focused lesson player and an instructor cockpit

    The player holds playback, transcript and quiz state on one timeline, and quizzes pause it inline, so a student never leaves for another page.

  4. 04

    Instrumented completion analytics from day one

    Completion analytics shipped in the first increment, so every later change could be measured against a baseline that already existed.

Operational results after launch

+28%

Course completion

−45%

Instructor admin time

−32%

Support tickets

Completion compares the two cohorts after launch against the four preceding ones, so the pre-existing downward drift is visible in the baseline instead of flattering the result. Support tickets and instructor admin time are the provider's own figures, measured per course and not in total, because course sizes vary by a factor of six.

Client name withheld under NDA. Figures are approximate, drawn from the engagement’s own reporting.

Process

Phase by phase

  1. Phase 1: Research & Workflow Mapping

    Instructor & Student Journey Audit

    Shadowed 15 instructors and 30 students to isolate workflow disconnects, grading bottlenecks, and drop-off causes.

    • Instructor Workflow Map
    • Student Friction Analysis
    • EdTech UI Benchmark
  2. Phase 2: Platform UX Architecture

    Unified Interface & Design System

    Designed a distraction-free student lesson player and a comprehensive instructor cockpit for real-time progress tracking.

    • Figma Design System
    • Interactive Lesson Player Prototype
    • Usability Audit
  3. Phase 3: Full-Stack Engineering

    Real-Time Platform & Assessment Engine

    Built the web application with Next.js and WebSockets for real-time progress syncing, automated grading, and instant messaging.

    • Platform Application Engine
    • Gradebook API
    • WebSocket Event Service
  4. Phase 4: Pilot Rollout & Analytics

    Course Pilot & Performance Verification

    Launched first on 12 of the provider's eighty courses, monitoring completion rates and instructor time savings to validate business impact.

    • Completion Analytics Dashboard
    • Instructor Feedback Report
    • Full Production Release
Course builder · Payroll Year-End
PYE-L3 · Draft · opens for the Autumn intake 2026
Add moduleImport lessons
Modules6
Lessons22
Length3 hr 39 min added up from the lessons
StatusDraft 1 rule failing

Outline

Drag to reorder · lengths come from each lesson
1. The payroll year4 · 40 min
1.1What year-end actually closes8 min
1.2Deadlines that cannot move11 min
1.3The year-end checklist9 min
1.4Check: the payroll calendar12 min
2. Final submissions4 · 39 min
2.1The last full payment submission10 min
2.2Marking the final period7 min
2.3Correcting an earlier period13 min
2.4Check: submissions9 min
3. Employee statements3 · 31 min
3.1Issuing year-end certificates12 min
3.2Leavers during the year8 min
3.3Check: statements11 min
4. Benefits and expenses4 · 41 min
4.1Reporting benefits in kind9 min
4.2Payrolling benefits instead14 min
4.3Class 1A contributions10 min
4.4Check: benefits8 min
5. Pensions at year-end4 · 37 min
5.1Re-enrolment dates11 min
5.2Declarations of compliance9 min
5.3Scheme reconciliations7 min
5.4Check: pensions10 min
6. Starting the new year3 · 31 min
6.1New tax codes and thresholds12 min
6.2Rolling the payroll forward6 min
6.3Check: the new year13 min
40 + 39 + 31 + 41 + 37 + 31 = 219 min3 hr 39 min

Before it can publish

4 of 5 met
Every module has lessons6 modules, none empty
Every lesson has a length22 of 22 timed
Every module ends with a check6 of 6
Assessment weights add to 10030 + 30 + 40
Every video lesson has a transcript1 missing
What fails it6.2 Rolling the payroll forwardModule 6 · Starting the new year · video · 6 minNo transcript yet. Learners search and seek by transcript, so this video can’t go live.Upload transcriptOpen lesson
Publishing opens enrolmentPublish course
On screen

The course builder: six modules and twenty-two lessons totaling 3 hr 39 min, added up from the lessons, never typed, and the one publish rule the course still fails.

About our collaboration

A cross-functional team of 5 worked on a fixed price, phased basis over 18 weeks, covering Product design, Frontend & backend build, Analytics. We ran a standing mid-week checkpoint and written decisions in place of status meetings. Nothing shipped without a live demo first.

We shadowed instructors through a full grading cycle before designing anything, and that's where the intervention cockpit's ranking came from: the spreadsheets they kept were sorted by who had gone quiet, not by who was failing. Every increment went to two courses before the eighty, and the analytics shipped in the first increment, not the last.

What we'd carry into the next one

03
  1. 01

    Early instructor intervention indicators boosted course completion rates by 28%.

    Week two is early enough to act and week ten isn't. That's the entire argument for reading behavior over grades: grades don't exist yet in week two.

  2. 02

    A distraction-free lesson player reduced platform support tickets by 32%.

    The tickets that vanished were navigation questions, not technical ones. A player with nothing else on screen removed the thing people were asking about.

  3. 03

    Consolidating course tools into one interface reduced administrative overhead by 45%.

    One submission record from upload to final mark removed the end-of-term reconciliation entirely, which is where most of the reclaimed admin time actually came from.

One hand-in, marked and released

The mark adds up from the rubric, and the learner sees none of it until it is released.

A VAT return handed in on a bookkeeping course, followed through the four states of its one submission record, with the marker’s screen and the learner’s side by side. Switch tabs, or use the arrow keys once one is focused.

The hand-in arrives already past peer review, because peer review is a state this record passed through, not a separate tool. The learner handed it in against the same five criteria, at the same weights, that the marker is about to use.

Marker · Dana WhitcombeA3 VAT return · Ellis Draper
  1. Uploaded
  2. Peer review
  3. Marking
  4. Released
draper-e_vat-return_q4.xlsx184 KB · handed in 13 Mar 2026, 16:42 · 2 of 2 peer reviews in
Note to the marker“I wasn't sure whether the staff party counts as business entertainment, so I've left its input VAT out and flagged it on the workings tab.”
What Ellis seesA3 VAT returnHanded in 13 Mar 2026, 16:42Awaiting mark
  • Output VAT30%
  • Input VAT25%
  • Return boxes 1–920%
  • Reconciliation15%
  • Audit trail10%
Nothing here changes while the mark is being scored or sits as a draft.

Why nothing leaks early: the learner’s view reads the submission record’s released state, not the score. Scoring pace in this replay is illustrative.

Architecture

From a paused lesson to the instructor who needs to know about it

Built on Next.js and Node.js with a WebSocket event service. Learners and staff read one progress model, so the learner’s screen and the cockpit never have to agree by luck.

  1. 01 · Source
    Lesson player and hand-insPlayback position, transcript scroll and quiz state sit on one timeline, so a pause, a seek and an inline answer are a single position.
  2. 02 · Transport
    WebSocket event serviceProgress syncs in real time, which is why resuming on a phone lands exactly where the laptop stopped.
  3. 03 · Engine
    Progress model and risk signalsRisk is read from behavior: session gaps, abandoned players, quiz retries and time to first submission. It can fire in week two, before any grade exists.
  4. 04 · State
    Submission record in PostgreSQLOne record from upload through peer review to final mark. Weighting is declared once per course and the gradebook derives from it.
  5. 05 · Delivery
    Learner view and instructor cockpitBoth read the one progress model through the Gradebook API, so a learner's position is the same number wherever it appears.

What a term can no longer hide

Marks released right, learners seen early, admin kept out of teaching

A mark is a draft until someone releases it

The mark is summed from the rubric's weighted criteria, never typed, and it stays a draft the learner can't see. Their screen shows nothing at all until release, then the whole mark at once.

Stalling shows up in week two, with its evidence

Risk is read from session gaps, abandoned lesson players, quiz retries and time to first submission, not grades. The cohort is ranked by drift, and every flag opens the behaviour behind it.

No end-of-term reconciliation to do

Assignments, peer review and the gradebook share one submission record, and weighting is declared once per course. The end-of-term spreadsheet reconciliation isn't faster. It's gone.

Finding out who dropped out only at final assessment? Scope your build in 3 minutes.

Scope your build
Have a project?

Let's talk

Running a large platform, shaping a first MVP, or getting a product ready for a funding round? Tell us where you are. We'll shape the process around it, and stay with you after launch.