Each of 24 synthetic users per mode has a working-memory capacity C ~ N(7, 1.5) chunks, echoing Miller's "seven plus or minus two" (a stricter 4-chunk Cowan-style capacity produces the same qualitative crossover, just sooner). Every visible onboarding element carries its own cognitive-load weight (a short headline ≈ 0.5 chunks, a feature callout ≈ 1.5, a permission or personalization prompt ≈ 2). Load L accumulates and continuously leaks away as a leaky integrator:
dL/dt = inflow(t) − decay·L
Progressive disclosure: inflow = chunks/screen ÷ pacing (elements fade in one at a time)
Instant dump: inflow = 0, chunks/screen added as one impulse when the screen opens
At the end of every screen, load is compared against each user's own capacity to produce a real load-vs-performance penalty (a linear-past-capacity form of the Yerkes-Dodson relationship: performance is flat below the capacity threshold and degrades in proportion to how far load exceeds it):
excess = max(0, L − C) / C
taskTime = 2200ms · (1 + 2·excess) — completion slows past capacity
errorRate = clamp(60 · excess, 0, 80)% — mistakes rise past capacity
P(abandon) = clamp(1.2 · excess, 0, 0.9) — same dropout rule as the 3D model
- Chunks per screen — total information weight introduced by each onboarding screen.
- Pacing — how long a screen stays up (and, in progressive mode, how long the reveal is spread over).
- Decay rate — how fast unused information is forgotten between elements/screens.
- Preview toggle — switches which mode's phone mockup animates the element-by-element reveal; the comparison stats below always run both modes at once.
Real-world relevance: identical total information, spread over time instead of dumped in one screen, keeps peak working-memory load under capacity — which is exactly why paced onboarding measurably beats a single feature-dump screen on completion time, error rate and activation.