Open EEG evaluation

EEG results you can check.

8 fixed protocols on 7 public datasets carry the core matrix’s 9 decoding methods and, beside them, 14 foundation encoders as frozen probes. Questions beyond the matrix cover transfer, calibration and model adaptation, reliability, clinical groups and data quality, signals other than scalp EEG, and small pilot studies. The open register lists every EEG dataset and model we know of, with how far each has been checked.

Core benchmark matrix

9 methods × 8 protocols

The original snapshot: balanced accuracy in percent, and command detection on idle.

Each method’s score on each protocol; each column heading gives the cohort size and chance level.
MethodMotor imagery & restn=10 · chance 50%Idle & commandn=4 · detectionSSVEP · 8 channelsn=70 · chance 2.5%SSVEP · 4 channelsn=70 · chance 2.5%Arithmetic & restn=36 · chance 50%P300 target ERPn=21 · chance 50%Semantic target ERPn=30 · chance 50%Sleep stagingn=20 · chance 20%
CBraModFoundation model · 8 of 862.918.333.727.662.355.055.871.3
EEGNetCompact model · 8 of 871.01.755.844.167.653.361.456.5
LaBraMFoundation model · 8 of 853.518.310.812.964.649.4≤ chance53.271.1
Spectral ridgeClassical method · 7 of 854.9·Not evaluated50.748.256.851.051.072.2
CSP+LDAClassical method · 2 of 847.1≤ chance23.3·Not evaluated·Not evaluated·Not evaluated·Not evaluated·Not evaluated·Not evaluated
Standard CCAClassical method · 2 of 8·Not evaluated·Not evaluated63.157.6·Not evaluated·Not evaluated·Not evaluated·Not evaluated
Temporal ridgeClassical method · 2 of 8·Not evaluated·Not evaluated·Not evaluated·Not evaluated·Not evaluated53.856.3·Not evaluated
Deep4NetCompact model · 1 of 8·Not evaluated3.3·Not evaluated·Not evaluated·Not evaluated·Not evaluated·Not evaluated·Not evaluated
ShallowFBCSPNetCompact model · 1 of 8·Not evaluated43.3·Not evaluated·Not evaluated·Not evaluated·Not evaluated·Not evaluated·Not evaluated

Highest score in this snapshotBar = position between that protocol's chance level and 100%Not evaluatedCore matrix · JSON ↓

Bars are comparable down a column and not across one: chance level is 50% for the two-class tasks, 20% for sleep staging and 2.5% for 40-class SSVEP, and every protocol uses a different cohort and electrode layout. There is no overall score. Read the idle column with the false-activation rate in its protocol.

13 further foundation encoders, run as frozen probes on the same eight protocols (BrainOmni Base on six of them). They are checkpoints of 11 models; 3 more checkpoints of one of them form a masking ablation, 16 in all. They sit outside this snapshot. The foundation-encoder rows on the first protocol → Beside them sits EEGPT, from the same runs as the published LaBraM rows and, except on idle, the CBraMod rows, with only the encoder swapped. EEGPT’s row on the first protocol →

Decision researchJev-style questions on EEG: the evidence“Jev-style” here means the interface of a decision model like TypeSafe’s Jev, applied to EEG: encode the recording once, then answer several explicit, typed questions about it, each with a probability. Three routes, each answered by this site’s own runs on public EEG data.Read the evidence →

One protocol at a time

The evidence behind each score

Rest versus right-hand imagery

ds003810 · 10 subjects · 1,200 epochs · 5 participant-disjoint folds · 15 channels · 2-second windows

Measured here

Results at a glance

CSV ↓
Model / configurationBalanced accuracyMacro F1Compute time
Supervised fit · 15 ch54.9%Descriptive 95% interval: 53.2–56.7%0.544Mean across held-out participants0.2s
Supervised fit · 15 ch47.1%Descriptive 95% interval: 43.8–50.2%At or below the 50% chance level0.406Mean across held-out participants8.8s
Frozen encoder + ridge head · 15 ch53.5%Descriptive 95% interval: 51.4–55.4%0.509Mean across held-out participants2.2s
Frozen encoder + ridge head · 15 ch62.9%Descriptive 95% interval: 59.6–66.5%0.617Mean across held-out participants5.0s
Scratch · 20 epochs · 15 ch71.0%Descriptive 95% interval: 65.0–76.3%Single seed — the highest of 3 runs (68.17–71.00%, mean 69.47%)0.680Mean across held-out participants55.5s
13 further foundation encoders, frozen Every row with its footnote →
Frozen encoder + ridge head · 15 ch58.8%Descriptive 95% interval: 57.0–60.8%0.582Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 ch58.8%Descriptive 95% interval: 54.5–62.6%0.573Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 ch68.1%Descriptive 95% interval: 64.3–72.3%0.677Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 ch67.3%Descriptive 95% interval: 63.6–70.6%0.669Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 ch54.8%Descriptive 95% interval: 51.8–57.8%0.524Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 ch52.6%Descriptive 95% interval: 50.2–54.9%0.503Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 ch49.9%Descriptive 95% interval: 46.6–53.5%At or below the 50% chance level0.486Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 ch66.2%Descriptive 95% interval: 61.8–70.6%0.640Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 ch70.2%Descriptive 95% interval: 64.0–76.1%0.673Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 ch72.0%Descriptive 95% interval: 66.6–76.6%0.715Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 ch58.1%Descriptive 95% interval: 53.7–63.3%0.541Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 ch62.4%Descriptive 95% interval: 57.4–67.8%0.586Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 chModel card: research use only, not for diagnosis or clinical use.50.7%Descriptive 95% interval: 49.2–52.1%Interval reaches the 50% chance levelExposure unknown0.499Mean across held-out participantsnot published
EEGPT, frozen · the same runs as the published LaBraM and CBraMod rows Its row with its footnotes →
Frozen encoder + ridge head · 15 ch58.3%Descriptive 95% interval: 54.9–61.8%0.555Mean across held-out participantsnot published

Scroll the table sideways for the remaining columns.

Foundation-encoder rows · CSV ↓ · EEGPT’s cells · JSON ↓

Weights terms: REVE under the REVE Responsible Use License v1.0 (model versions: REVE Base @ dc2a075c · REVE Large @ 317531c7); LUNA under CC BY-ND 4.0, with no modified weights shared; BrainOmni, EEGMamba, ST-EEGFormer and SingLEM under MIT; CodeBrain and ZUNA under Apache-2.0; eeg-fm-masking under CC-BY-4.0; ERP-FM under CC BY-NC-SA 4.0, non-commercial. No model’s authors endorse these results. Every weights licence and its terms →

EEGPT: the checkpoint’s licence is unresolved, and no original or converted weights are distributed; Apache-2.0 covers the repository’s code only. Its licence and terms →

Masking ablation: three sibling checkpoints of eeg-fm-masking

Read against the paper-recommended checkpoint, the matrix row above: the same architecture, corpus and recipe, with another masking framework or geometry.

Frozen encoder + ridge head · 15 chmatrix row above68.1%Descriptive 95% interval: 64.3–72.3%0.677Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 ch63.2%Descriptive 95% interval: 58.2–67.9%0.620Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 ch63.3%Descriptive 95% interval: 59.0–67.4%0.628Mean across held-out participantsnot published
Frozen encoder + ridge head · 15 ch64.9%Descriptive 95% interval: 60.3–69.4%0.645Mean across held-out participantsnot published

Compute time covers fitting and prediction, possibly with accelerator waiting, and excludes data preparation.

Limits

Ten-person laboratory task with prompted rest. This is not continuous-idle monitoring or a physical low-channel headset test.

Methods →

Questions

What the evidence can answer

Figures under one question often share participants: they are repeated conditions within its protocols.

Transfer

Does a decoder still work after a change of sensor, display, electrode layout, body movement or session?

Sensor transfer

Dry vs. wet electrodes

What changes when a decoder crosses between two native eight-channel recordings from the same 102 people?

2 s SSVEP · 12 targets · balanced accuracyRead the evidence →
Context transfer

Screen to VR

The same 21 people calibrated on a PC screen and tested in a VR headset, and the reverse: the level reached after the switch, with no same-display score to compare. Plus: a P300 decoder trained at one image rate and tested at another.

P300 · 21 people in VR · 9 people across image ratesRead the evidence →
Montage

Fewer electrodes

In-ear against scalp for sleep, four posterior electrodes against sixteen for eyes open or closed, and foundation encoders on BETA with eight and four electrodes: channel sets from specific research recordings.

Two paired comparisons · 10 and 19 people · BETA, 8 and 4 electrodes, 70 peopleRead the evidence →
Motion robustness

On the move

Standing, walking and running results, with scalp and ear recordings and incompatible time windows kept apart.

SSVEP balanced accuracy · ERP ROC AUCRead the evidence →
Session transfer · same person

Later sessions

Trained on a person’s earlier session and tested on a later one, with no labels from it: motor imagery across recording sessions, with simple baselines and frozen CBraMod; target detection at the publisher’s nominal later visits; and continuous cursor tracking, where a constant baseline does better.

Motor imagery, WBCIC-SHU, 51 and 11 people · RSVP, 15 people · cursor tracking, a negative resultRead the evidence →

Adapting models

How much calibration a decoder needs, which part of a pretrained model to update, whether pretraining helps, whether one model can answer several questions, including questions asked in words, and what lets a decoder answer an SSVEP frequency it never trained on.

Calibration budget

How much calibration?

Twelve, 24 or 48 labeled trials on a wearable SSVEP task, and up to 40 from a person’s next motor-imagery session: the gain differs by method, and some people’s scores fall.

SSVEP · 102 people · motor imagery, next session · 51 peopleRead the evidence →
Model adaptation

Which part to update?

LaBraM on new people, same task, zero labels from the test person: head only, last block or LoRA, printed beside the core matrix’s frozen readout. Plus: the next-day experiment, run and held.

EEGMAT, 36 people · three update rules · next day: heldRead the evidence →
Representation controls

Does pretraining help?

Matched pretrained and constructor-random encoders under fixed and train-selected readout settings. Plus further foundation models in the same frozen recipe: three checkpoints and, narrowly, EEGPT above every published row on sleep staging, none above training-free CCA on BETA.

Two tasks · three encoders · three random initializations · 16 further checkpointsRead the evidence →
Shared encoder · route 2

One model, several questions

One shared encoder with a fixed output per question, against a head told which question it is answering and against a separate model per question, at matched data and compute — with what each costs.

Motor imagery, OpenBMI, 51 people · sleep, BOAS · EESM19, crudeRead the evidence →
Questions in language · route 3

Questions in language

One small head over frozen EEG features, asked each question by a number, a label template or a description: it works only for questions it was trained on, and not on every dataset.

SSVEP, BETA, 70 people · sleep, BOAS · secondary: EESM19, OpenBMI, Wearable-102Read the evidence →
Route 3 follow-ups

New SSVEP frequencies

Fourteen follow-ups: thirteen on route 3’s BETA cohort, five on Wearable-102, one of them only there. Heads that read reference spectra or stimulus phase stayed far below CCA, which needs no training; a small learned correction on top of CCA added a few points on BETA and changed little on Wearable-102; filter-bank CCA, untrained too, scored above CCA in every setting tested, and an untrained harmonic sum came out nearly level with a learned eigenvalue head.

SSVEP, BETA, 70 people · 8 held-out frequencies · Wearable-102, 102 peopleRead the evidence →

Reliability & clinical

When a decoder should not act, what accuracy hides in sleep staging, what resting-state EEG says about a clinical group, and what a public dataset’s files show when checked end to end.

Abstention · decision research

When not to act

Command detection read with its false-activation rate; when a decoder should decline to decide, on two protocols; and the decision-research plan, with its three routes.

Idle, 4-person pilot · non-control, 20 people · reliable decisions, 36 and 70 peopleRead the evidence →
Sleep staging · simple baselines

Sleep-stage balance

Two simple baselines in 25 healthy sleepers and 55 people with sleep apnoea, as two separate experiments: accuracy beside balanced accuracy, and the stage the stager never predicts.

Dreem DOD-H and DOD-O · 25 and 55 nights · balanced accuracyRead the evidence →
Clinical research

Clinical groups

A 149-person Parkinson's and control comparison beside an age-and-sex-only comparator; neither is a diagnosis.

149 people · one site · balanced accuracyRead the evidence →
Data quality and reproducibility

Checked end to end

Public EEG datasets read from their own files: Shin2022’s runs, duplicates and valid windows counted before a participant-held-out check, where the EEG arm sits close to a control that reads only trial duration; training-free CCA on Kim beta-range SSVEP; MIND’s stored markers, read on record IDs; three one-person cases, eldBETA, Damm and NeBULA, with counts and no score; and a timing hold on one converted ZuCo run.

Shin2022, 10 people · Kim beta-range · MIND · one-person cases, counts only · ZuCo, status onlyRead the evidence →

Which kinds of transfer have been measured

What changes between training and test, and whether this site has evidence on it.
What changesMeasuredStatus onlyHeldNot measured
PersonNoneNone
Session / dayNone
Sensor / montageNoneNone
  • From one headset or amplifier to another
ContextNoneNoneNone
DatasetNoneNoneNone
  • Training on one dataset, testing on another

n is the number of people behind an entry; two sizes (n=24 / 17) are two analyses or cohorts in one entry, largest first. “comparison”: two electrode sets scored separately on the same data. “also changes”: what else changed in the same contrast.

The full map, with what each entry measures →

Holds

What is held back, and why

Held

Kim beta-range SSVEP · amplitude-dependent models

Amplitude units, channel gains and the saved reference history are not established, so models whose output depends on amplitude are held on these files. Training-free CCA, which does not depend on a common amplitude scale, is published.

Status only

Damm finger motor imagery · one-person score

One participant’s two random-order runs, checked end to end. The scores are held under the one-person rule; design, counts and file facts are published.

Status only

NeBULA · one-person scores

One participant reaching to three targets under three levels of assistance. The EEG, EMG and combined scores are held under the one-person rule; design, counts and file facts are published.

Status only

eldBETA · one-person score

The raw-recording route runs end to end on one participant’s recordings. With one person every score is that person’s, so the accuracy is held; the counts are published.

No score

ZuCo on NEMAR · converted-run timing

In one converted run on NEMAR, some fixation times fall outside the recording. No EEG–text score is computed until the converter’s timing rules and a source-checksummed fixture are available.

No score

ds007420 · fNIRS classifier

Its numeric task codes have no verified lookup to hands or movements, and its event durations disagree between the events table, the optical files and the cited paper. Its optical coverage counts are published.

Held

Dreem sleep cohorts · neural-network and foundation models

The stored signal metadata says millivolts; the publisher’s own converter treats the same arrays as microvolts. Models that need absolute amplitude are not run; the published baselines do not depend on the unit.

Status only

Stieger longitudinal BCI · one-person pilot

The pipeline works on one person’s eleven sessions. With one person every score is that person’s, so none is published.

No score

OpenNeuro ds004902 · paired sleep comparison

Five source payloads are shorter than their own headers declare.

Held

Foundation models on the clinical set

Not run: the source states no physical amplitude unit.

Described, not scored

L-FAME

Its per-condition numbers are withheld.

Held

BNCI2015-001 · next-day adaptation

Run and independently replayed. The catalogue licence is CC BY-NC-ND and the description names no ethics approval, so no figure is published until that review is done.

Full holds register →Corrections (2) →

Directory

Everything else, by what it is

Evaluation

How these results were produced

Only explicitly reviewed cohort-level research results are exported. Raw EEG, individual results and model weights stay outside the website. Each comparison states its source, license, protocol and limitations. No cross-task overall score.

Download all results · JSON ↓
01

Status labels

Downloads, loading checks and scored evaluations have distinct status labels. Models awaiting an adapter have no result.

02

Failure modes

Missed commands, false activations and abstention are reported.

03

Same task, same protocol

Splits, channels, preprocessing and training modes travel with each protocol. Frozen encoders and scratch baselines are labeled separately.

04

Fixed, audited local runs

Experiments run offline on a Mac or local GPU workstation. Timings are configuration-specific. This website performs no EEG inference or diagnosis.

Experiment details