How VPA peer norms are computed
Every percentile shown on a Visual Processing Assessment (VPA) result comes from a live, transparent norming pool. This page documents exactly how those numbers are built — what's included, what's excluded, and the statistical choices behind them.
Loading reliability snapshot…
Statistical approach
VPL scores are ordinal (1–5), not continuous. Reporting means, standard deviations, or z-scores on ordinal data creates a false sense of precision that would inflate small differences and understate uncertainty. We use methods appropriate for ordinal ranking data:
- Empirical CDF with mid-rank ties. A student's percentile is the proportion of peers scoring below their VPL, plus half the proportion scoring exactly their VPL. This is the standard, unbiased treatment for tied ordinal data.
- Wilson score 95% confidence intervals on the underlying proportion. When a sample is small, we show the interval rather than a false-precision point estimate.
- No cross-protocol pooling. Norms are stratified by
protocol_version. When the assessment changes, old norms are retired — not silently mixed with new data.
Inclusion & exclusion rules
Every submission in the norming pool must meet all of the following:
- Complete per-skill VPL scoring (partial assessments are excluded).
- Age band is recorded (so peer matching is possible).
- Submitted by a non-admin account (test data from developer/admin accounts is excluded).
- At most one submission per student per protocol version — the most recent is kept, so a student reassessed six weeks later doesn't double-count.
Anonymous submissions (no linked student record) each count once. Grade and setting are used for finer peer-matching only when the finer cell independently clears the sample-size gate.
Sample-size gates
No percentile is displayed until a peer cell reaches n = 30. Below that, the results screen shows a "Building norms" progress line — the running count out of 30. Between 30 and 100, results are labeled "small sample" and the 95% CI is displayed alongside the point estimate.
This is deliberate. Reporting a "62nd percentile" based on 8 comparisons is worse than reporting nothing at all — it launders noise as authority.
Refresh cadence & reproducibility
Norms recompute nightly from the raw vpa_submissions table via a deterministic SQL aggregation function (refresh_vpa_norms). The function is idempotent — running it twice produces the same table. The refresh timestamp appears on every peer-comparison panel.
How to cite
Visual Minds Learning. (2026). Visual Processing Assessment (VPA): Live peer norms and methodology. Retrieved from https://visualmindslearning.com/research
Questions about methodology? We welcome academic collaboration and independent review — contact us through the site.