ALDER LEARNING / PLOTSRV DEMO

A reporting pipeline.
A browser full of useful evidence.

A fictional education provider reviews participation, course outcomes and delivery economics across four campuses and six courses.

Start with the term review

Open Review → Term performance for the matplotlib figure, then Analysis report for findings calculated from the same extract.

Ask your own question

  1. Open Explore → Course cohorts. In the table's plot controls, compare enrolled with contribution_gbp and group by schedule.
  2. Use Weekly attendance to investigate the dip around week seven. Filter to a campus or course before comparing weeks.
  3. Open Operations → Portal access → Suggested views. Try Errors, Busiest endpoints and Traffic by status over time. Allow about 30 seconds for traffic to accumulate.

Observe a large pipeline result

Activity pipeline processes 500,000 synthetic learning events every 30 seconds. Open Activity extract or Validated activity to explore bounded observations from observe=True. Batch metrics are full-data computations. Every fifth batch models a rise in missing assessment scores. This workload is separate from the fixed term review.

Look under the hood

The How it works section watches this HTML guide, pipeline.py and plotsrv.yml using --watch. The reporting script uses ordinary pandas and matplotlib, then publishes its results with a handful of plotsrv calls.

The portal is a tiny local ASGI application. Scripted requests produce real Uvicorn access logs, including deliberate expired-session and unavailable-service responses. Default Uvicorn logs do not include durations, so latency suggestions are intentionally absent.

All business data are synthetic and fixed for repeatable screenshots. Counts refer to enrolments, not unique people. Direct contribution excludes central overheads. No real learner information is used.