APM Test
Test your Actions Per Minute (APM) speed with this real-time APM tester. Measure click speed, consistency, peak APM, and reaction intervals.
About
Actions Per Minute (APM) quantifies the rate of discrete inputs a user executes within 60 seconds. In competitive gaming (StarCraft, League of Legends, Dota 2), professional players sustain 300 - 600 APM during peak engagement. Casual users typically register 50 - 150 APM. Raw speed matters less than consistency. A player averaging 200 APM with low jitter outperforms one spiking to 400 APM then dropping to 80. This tool measures your sustained click rate, computes peak APM over a sliding window, and analyzes inter-click interval variance to produce a consistency score. Note: results approximate real gaming APM since actual gameplay involves keyboard and mouse actions simultaneously.
The test records every input timestamp at sub-millisecond resolution using performance.now(). Your consistency score is derived from the coefficient of variation (CV) of inter-click intervals. A CV below 0.15 indicates machine-like rhythm. Above 0.5 suggests erratic input. Fatigue typically manifests as declining APM in the final 30% of the test duration. Monitor your histogram to detect this pattern.
Formulas
The primary metric computed is Actions Per Minute:
where N = total number of registered actions (clicks/taps), and t = elapsed time in seconds.
Actions Per Second is the direct rate:
Peak APM uses a sliding window of width w (default 5 s). For each window position, the local APM is computed and the maximum is retained:
The consistency score is derived from the Coefficient of Variation of inter-click intervals Δti:
where σ = standard deviation of intervals, μ = mean interval. A lower CV indicates more rhythmic, consistent clicking. The consistency percentage is:
The jitter metric reports σ directly in ms, representing the standard deviation of time gaps between consecutive actions.
Reference Data
| Skill Level | APM Range | Typical Context | Consistency (CV) | Examples |
|---|---|---|---|---|
| Beginner | 30 - 80 APM | Casual browsing, simple games | > 0.50 | Solitaire, Minesweeper |
| Casual Gamer | 80 - 150 APM | MOBA basics, casual RTS | 0.35 - 0.50 | Casual League of Legends |
| Intermediate | 150 - 250 APM | Ranked MOBA, mid-tier RTS | 0.25 - 0.35 | Gold/Platinum rank players |
| Advanced | 250 - 400 APM | Competitive RTS, high-rank FPS | 0.15 - 0.25 | Diamond SC2 players |
| Professional | 400 - 600 APM | Pro StarCraft II, speed cubing | 0.10 - 0.15 | GSL-level Zerg players |
| World Class | 600+ APM | Peak burst, world records | < 0.10 | Park "DarkForce" Soo-ho |
| OSU! Casual | 100 - 200 APM | Easy/Normal difficulty maps | 0.30 - 0.45 | 4-star maps |
| OSU! Expert | 300 - 500 APM | Hard/Insane maps, streaming | 0.12 - 0.20 | 7-star+ maps |
| Typing (Average) | 120 - 200 APM | Office work, chat | 0.25 - 0.40 | 40-70 WPM typists |
| Typing (Fast) | 300 - 500 APM | Competitive typing | 0.10 - 0.20 | 100-150 WPM typists |
| Speedrunning | 200 - 450 APM | Frame-perfect inputs | 0.08 - 0.18 | Super Mario 64 runners |
| Fighting Games | 180 - 350 APM | Combo execution, neutral game | 0.20 - 0.35 | Street Fighter pros |
| Rhythm Games | 250 - 600 APM | Expert tracks, high BPM | 0.05 - 0.15 | Beat Saber Expert+ |
| Data Entry Pro | 200 - 350 APM | 10-key numeric entry | 0.12 - 0.22 | Accounting, banking |
| Mobile Tap (Casual) | 60 - 180 APM | Mobile games, single thumb | 0.30 - 0.50 | Cookie Clicker |
| Mobile Tap (Multi) | 200 - 500 APM | Multi-finger tapping | 0.15 - 0.30 | Piano tiles games |