NeuroReach: ERD features and calibration contract
ERD formula + calibration timings here so I stop hunting around. near-zero baseline? check trial split BEFORE generating overlapping windows, sneaky leakage possibility
Feature definitions recorded: ERD% = (Pbaseline - Ptask) / Pbaseline * 100; laterality index LI = (ERD_C3 - ERD_C4) / (ERD_C3 + ERD_C4). The spec uses mu 8–12 Hz and beta 13–30 Hz in the feature section, with a 1-second power window and 250 ms step. An earlier introductory paragraph uses a different beta boundary; retain the feature-section setting until the actual implementation is checked.

Sample report: sensorimotor rhythms and electrode bars.
Calibration outline: 60 seconds eyes-open rest; approximately 20 trials per class; 2 s fixation, 1.25 s cue, 4 s imagery and 2–3 s randomized rest. Version the resulting CSP filters/classifier against the session and processing configuration. The table later shortens the trial description, so confirm the actual count from the orchestrator before estimating duration.
Classifier route: CSP plus LDA, with 2–4 spatial-filter pairs suggested for the eight-channel setting. The draft gate is around 60% cross-validated accuracy for a two-class task before relying on an EEG-led mode. This is a proposed decision threshold, not achieved accuracy.
Code pointers: signal-engine/features/, calibration/, classifiers/; ERDCalculator and OnlineClassifier in the scoring path.
Review questions: how are near-zero baseline/LI denominators handled? Are train/validation partitions separated by trial before overlapping windows are generated? How are invalid/camera-flagged trials excluded? Retain confidence and class balance, not only one accuracy number.