A statistics classroom built on real UMPD data, updated daily. See the code

Learn: Averages and How They Measure Change

Every number below comes from the live UMPD dataset — the same one on the Activity Log. These four interactive lessons cover the statistics journalists reach for most: averages, and the honest (and dishonest) ways to use them to say something changed. Each lesson includes R code you can run yourself. Data through 2026-07-21.

Which average?

Mean, median and mode of incidents per day — and why they disagree on this dataset. Toggle the busiest days on and off and watch which average flinches.

Moving averages

Daily counts are noisy. Smooth them with a rolling average — the same tool every COVID dashboard used — and find the pandemic in campus crime data.

The cherry-picking machine

Pick your own baseline and make the same dataset say crime is up or down. Then see the guardrails this site uses so its own headlines don't lie.

Spike or noise?

A big week is not automatically a story. Use the mean and standard deviation to decide which weeks are genuinely unusual — before you write the word "surge."

For instructors

A new practice exercise is generated from fresh data every Monday on the Exercises page, with R starter code and pinned data so student answers are checkable. The Trends page shows every chart with a "Show your work" panel: the formula, the inclusion rules, and tidyverse code that reproduces the number.