Most online “controller testers” are live LED boards: a stick moves, a button lights up, and you are left to guess whether the rest position is noise or drift. CTRLCHK is built around the opposite idea. The live view is a viewer. The health check is a measurement. Those two jobs stay separate so a flick of the stick cannot be mistaken for a defect.
What the health check actually measures
A full run starts with a 3-2-1 get-ready countdown, then a five-second hands-off centre capture. Rest offset, jitter, P95, RMS and peak are retained. From there you rotate each stick for range coverage and circularity error, flick for snapback, press required buttons, pull analog triggers, and — where the browser exposes it — confirm dual-rumble. Capability-limited stages such as rumble on Firefox are reported as unsupported. They never lower the score.
The output is a versioned report: recommended deadzone percentages you can type into a game, a repair-versus-replace note, and a shareable card. JSON is still there for people who want the raw object. Guidance is labeled as guidance. If you disagree with a band, the numbers that produced it are on the same screen.
Why the numbers can be trusted
Centre validity is judged from rest-relative jitter, not from distance to the mathematical origin. A DualSense that rests 8% off centre but does not move will pass the hands-off capture and be scored as drift, which is the honest result. A still pad does not stall the countdown: sampling is keyed to a monotonic clock, not to Gamepad.timestamp, which many browsers freeze when nothing is changing.
Layout is not hardcoded to axes 0–3. Standard mapping is preferred; Sony HID and ABS orders, signed trigger axes, and hat-encoded D-pads are normalized before any statistic is computed. Mapping quality is written into the report so a heuristic layout cannot hide behind a confident score.