Research
Methodology, limitations, and what's not measured yet
The record, corrected up front
Earlier drafts of this project reported accuracy figures derived from synthetic test data. Those figures described the data generator, not reading behaviour, and have been withdrawn pending real-participant validation.
What the classifier was trained on
Synthetic data. plainly, and why that's a real limitation
The classifier that runs on the optional camera path was trained on rows generated from hand-written rules, then duplicated with Gaussian noise and split randomly into train and test sets. That means a row's noisy near-duplicate could sit in the test set while the original sits in training. a form of leakage that inflates any accuracy figure computed from it. No real-participant reading study has been run against this classifier, or against the browser-telemetry detection that runs by default. Until one has, no accuracy number for alcoia belongs on this site or anywhere else.
That classifier is also not on the critical path for most readers: it only runs when the camera is on, and the camera is off by default. The primary detection path. pace against difficulty and your own baseline, re-reading, tab focus. doesn't depend on it.
Planned validation
Against WebQAmGaze and OneStop
Real-participant validation is planned against two published eye-tracking-and-reading datasets. WebQAmGaze and OneStop. rather than against data alcoia generated itself. Results will be published here, however modest the numbers turn out to be. A small honest figure, published openly, is worth more than a large one nobody can check.
Grounded in prior work
The mechanism isn't new. the packaging is
Reading-speed and comprehension research going back to Rayner (1998) and Just & Carpenter (1980) establishes that pace and regressions carry real signal about reading difficulty. D'Mello et al. (2016) ran a randomised trial showing that interrupting a drifting reader with just-in-time questions recovered comprehension losses (d = 0.47). alcoia's interruption policy is built directly on that finding, not on an internal metric.
Check it yourself
Dataset, notebooks and classifier are all in the repository
Nothing above is asking to be taken on faith. The synthetic dataset, the training
notebooks and the classifier itself are in the repository under
tldr classifier/: github.com/alcoia-group/alcoia.