Data API

BCI Report data API: static JSON and CSV at stable URLs

Every published result is a static file: the same bytes the pages are built from.

How it works

Stable URLs

Every file lives at https://bci.report/data/<file>. A file is only ever replaced by a reviewed release, and the release archive gives the SHA-256 of the bytes currently served.

No key, no account

Plain HTTPS GET. Static files behind a CDN; no rate limit is promised, so cache what you use. Any HTTP client can fetch the files under /data/, the llms files and the Markdown copies, so pd.read_csv can read a CSV straight from its URL. Files under /data/ allow cross-origin reads, so a notebook running in a browser can fetch them too.

Licence

The aggregate results are CC BY 4.0. The recordings they were computed from belong to their authors and keep their own terms — each dataset page names them. The code that builds the site and the exports is MIT-licensed.

Mirror

The same files are on Hugging Face as the dataset Twu31/bci-report, with the per-protocol tables merged into loadable configurations.

Files

FileWhat it holdsRelease
open-register-20261106.jsonThe open register, canonical: every EEG dataset we know of and every EEG model and paper we track, one row each under an opaque id, with its ladder (dataset or model), the furthest step checked, each step’s evidence as pass, gap or not applicable with its source, the gaps, its status, the terms as stated and by whom, aliases (repository ids, accessions, MOABB loaders), findings as codes with their parameters, and links; the step definitions in English and Chinese, the rules, the sources with the frozen query, the counts and the uploader families.open-register-update-20261106
open-register-20261106.csvThe open register’s dataset ladder, flat, for spreadsheets and the Hugging Face viewer: one row per dataset entry with its id, group, name, host, licence as stated, whether access is gated, the furthest step checked, gaps, status and page. Findings are in the JSON.open-register-update-20261106
core-matrix-20261106.jsonRows of the core matrix run under its exact protocols (filter-bank CCA on both BETA protocols; TS+LR, MDM, xDAWN+LDA and XDAWNCov+TS+LR on their core protocols and idle; ShallowFBCSPNet, Deep4Net and CSP+LDA in cells the matrix left empty): full-precision values, recipes, roles, backends, the paired differences shown on the protocol and method pages, and every matrix cell marked released, in this file, not applicable or not run.core-matrix-update-20261106
core-matrix-20261106-mi-rest.csvMotor imagery & rest: this file’s rows in the core results CSV’s columns and units, then release, recipe, role, backend and protocol line.core-matrix-update-20261106
core-matrix-20261106-idle.csvIdle & command: this file’s rows in the core results CSV’s columns and units, then release, recipe, role, backend and protocol line.core-matrix-update-20261106
core-matrix-20261106-beta-8ch.csvSSVEP · 8 channels: this file’s rows in the core results CSV’s columns and units, then release, recipe, role, backend and protocol line.core-matrix-update-20261106
core-matrix-20261106-beta-4ch.csvSSVEP · 4 channels: this file’s rows in the core results CSV’s columns and units, then release, recipe, role, backend and protocol line.core-matrix-update-20261106
core-matrix-20261106-arithmetic-rest.csvArithmetic & rest: this file’s rows in the core results CSV’s columns and units, then release, recipe, role, backend and protocol line.core-matrix-update-20261106
core-matrix-20261106-p300-target.csvP300 target ERP: this file’s rows in the core results CSV’s columns and units, then release, recipe, role, backend and protocol line.core-matrix-update-20261106
core-matrix-20261106-semantic-target.csvSemantic target ERP: this file’s rows in the core results CSV’s columns and units, then release, recipe, role, backend and protocol line.core-matrix-update-20261106
core-matrix-20261106-sleep-scalp.csvSleep staging: this file’s rows in the core results CSV’s columns and units, then release, recipe, role, backend and protocol line.core-matrix-update-20261106
logpower-ridge-update.jsonBCI Report’s log band-power ridge (5 bands, visible channels) beside the Spectral ridge row on seven core protocols: per protocol, balanced accuracy with its participant-bootstrap interval, macro F1, people, channels and chance level; its paired differences from the Spectral ridge row and from one named frozen-encoder row with their intervals and readings; the recipe and how it differs from the Spectral ridge row; two summary lines on its head and input scaling; rights; and what is not published.logpower-ridge-update-20261106
signal-jepa-eegsimpleconv-update.jsonSignal-JEPA (frozen encoder with a ridge head, its own 0.5–40 Hz, 128 Hz input) and EEGSimpleConv (trained from scratch, mean of three seeds) on motor imagery & rest and arithmetic & rest, beside the core matrix: balanced accuracy, macro F1, Signal-JEPA’s participant-bootstrap interval, each model’s difference from EEGNet on the same people, identities and licences by part, the directory correction, and what is not published.signal-jepa-eegsimpleconv-update-20261106
foundation-checkpoints-update.jsonLaBraM at Scale’s Quark-B, Quark-L, Quark-H, Atom-L, Molecule-L and Quark-G, with REVE Small, as frozen probes on the eight core protocols: each cell’s balanced accuracy with its participant-bootstrap interval, macro F1 and chance level (idle: trial counts and window metrics), the Quark ladder’s paired differences, pretraining exposure per cell, terms and limitations.foundation-checkpoints-update-20261106
random-init-controls-update.jsonRandom-initialization controls for REVE Large, ST-EEGFormer Base and Large, SingLEM and EEGMamba on motor imagery and rest, arithmetic and rest, and sleep staging: pretrained and random-mean balanced accuracy and their paired difference with its interval, under the fixed and the train-selected readout.random-init-controls-update-20261106
nsp-components-update.jsonA local test of the components of Neural State Prediction (arXiv:2609.31167v1, cited only), in a panel of its own after the counted pilots on the pilot-studies page, in three blocks: a small model trained on EEGMAT with the residualised target on or off and the context geometry topological or random, with the contrasts fixed in advance, position-probe means and within-model content-dependence drops; the same model never trained against the trained cells at three fitting-label budgets, analysed after the main results, with a sampled replay; and the published eeg-fm-masking encoders and a log band-power ridge with channels zeroed on EEGMAT and ds003810, with the head kept or refitted. Equal-person means and paired differences with descriptive participant-bootstrap intervals; methods, audit scope, the first incomplete audit, what was not run, credits and what is not published.nsp-components-update-20261106
electrode-shift-update.jsonWhat if the cap sits one electrode off? A simulation on BETA’s 70 people: six decoders fitted at the original eight posterior sites and tested with every electrode read one position over (forward one row, left or right one column), deployed and recalibrated; the twelve prespecified contrasts with Bonferroni intervals and audited counts of people losing or gaining 10 points or more; all 144 contrasts, the neighbour maps, the spline doses and the bridges to the published cells.electrode-shift-update-20261106
eldbeta-cohort-update.jsoneldBETA checked end to end on all 100 published participants: training-free CCA and filter-bank CCA mean participant accuracy with paired participant-bootstrap intervals and chance, the paired difference, the audited counts at the one-person binomial threshold, the file checks and the located non-finite values, and the rights record.eldbeta-cohort-update-20261106
clinical-aseeg-update.jsonASEEG, schizophrenia and controls from resting EEG: age-and-sex comparators beside EEG spectra, EEG with age and sex, age-and-sex-residualised EEG and frozen CBraMod (balanced accuracy and AUROC with paired participant-bootstrap intervals, macro F1), in eyes-closed and eyes-open recordings of the same people; the primary and secondary contrasts; the claim boundary and the rights record.clinical-aseeg-update-20261106
open-register-20261028.jsonThe open register, canonical: every EEG dataset we know of and every EEG model and paper we track, one row each under an opaque id, with its ladder (dataset or model), the furthest step checked, each step’s evidence as pass, gap or not applicable with its source, the gaps, its status, the terms as stated and by whom, aliases (repository ids, accessions, MOABB loaders), findings as codes with their parameters, and links; the step definitions in English and Chinese, the rules, the sources with the frozen query, the counts and the uploader families.open-register-update-20261028
open-register-20261028.csvThe open register’s dataset ladder, flat, for spreadsheets and the Hugging Face viewer: one row per dataset entry with its id, group, name, host, licence as stated, whether access is gated, the furthest step checked, gaps, status and page. Findings are in the JSON.open-register-update-20261028
ssvep-followups-update.jsonMore audited follow-ups on SSVEP frequencies a decoder never trained on, cards 8 to 14 of that question page, on route 3’s BETA cohort and, for some, on Wearable-102’s dry and wet headbands: the endpoints with their chance levels; a name key from the site’s names to the export codes, and the estimates several cards share; for each study its design, levels and paired contrasts with their intervals and interval method, roles and flags, its checks as pass or fail with counts, and what was not run; which intervals are adjusted; CPU timings of each component (warm, single-thread, never summed); rights records, the filter-bank CCA credit and the audit record.ssvep-followups-update-20261028
neurorvq-update.jsonNeuroRVQ’s frozen backbone on three existing tasks (EEGMAT’s arithmetic and rest, motor imagery against rest, P300 target against non-target), a separate pilot panel: for each task the cohort, split and input chain, the participant-mean balanced accuracy and macro-F1 of the backbone and of simple features of the same windows under one fixed ridge head, and one paired difference with its participant-bootstrap interval; the checkpoint’s identity and how it was restored, pretraining exposure (unknown) with its sources, the protocols not run and why, the terms of the code, the weights and each dataset, limitations, the audit record and what is not published.neurorvq-update-20261028
eegmat-ten-second-update.jsonTwo frozen encoders, EEG-Captioner’s and AXON, on ten-second windows of EEGMAT’s arithmetic and rest, a separate pilot panel with a subsection for each: the cohort and its preprocessing, the source annotation-QC totals printed beside every score, each encoder’s participant-mean balanced accuracy against Welch band power on the same windows with a paired participant-bootstrap interval, each encoder’s identity and terms, AXON’s own numerical input check, why no difference between the two encoders is computed, limitations, the audit record and what is not published.eegmat-ten-second-update-20261028
dataset-checks-update.jsonFour public EEG datasets checked end to end from their files. Kim beta-range SSVEP, a worked case: training-free CCA on all its participants, the mean participant accuracy with its participant-bootstrap interval against chance, the intake and how it was checked, caveats, and a hold on amplitude-dependent models. MIND, a conditional case on record IDs: CSP + LDA beside an ordinal lookup and a majority control for two stored-code pairs, record-ID resampling ranges, the label schedules, a separate secondary panel and the coverage chain. Damm and NeBULA, one-person status cases: design, counts, file facts and the arms run, with every score held. For each source its rights record, its licence statements as each source states them, its consent and ethics statements, and the holds.dataset-checks-update-20261028
open-register-20261020.jsonThe open register, canonical: every EEG dataset we know of and every EEG model and paper we track, one row each under an opaque id, with its ladder (dataset or model), the furthest step checked, each step’s evidence as pass, gap or not applicable with its source, the gaps, its status, the terms as stated and by whom, aliases (repository ids, accessions, MOABB loaders), findings as codes with their parameters, and links; the step definitions in English and Chinese, the rules, the sources with the frozen query, the counts and the uploader families.open-register-update-20261020
open-register-20261020.csvThe open register’s dataset ladder, flat, for spreadsheets and the Hugging Face viewer: one row per dataset entry with its id, group, name, host, licence as stated, whether access is gated, the furthest step checked, gaps, status and page. Findings are in the JSON.open-register-update-20261020
new-ssvep-frequencies-update.jsonWhat lets a decoder answer an SSVEP frequency it never trained on? Seven audited follow-ups to route 3 on its BETA cohort, and the same models run unchanged on Wearable-102: the endpoints with their chance levels; a name key from the site’s names to the export codes; for each study its levels and paired contrasts with their intervals and interval method, roles and flags, its checks as pass or fail with counts, and what was not run; the stimulus phases taken from the BETA authors’ corrigendum; a status card for the cross-spectral round, with no figures; rights records and the audit record.new-ssvep-frequencies-update-20261020
data-quality-update.jsonThree public EEG datasets checked end to end from their files. Shin2022, the worked case: a participant-held-out diagnostic with three arms (a training prior, a normalised spectral ridge and a retrospective duration control; participant-mean balanced accuracy with its participant-bootstrap interval, and a pooled secondary value), the coverage chain from the runs in the release to the signal-valid windows, where the catalog’s trial length comes from, how the files were checked, its holds, rights and consent and ethics statements. eldBETA: counts for one participant’s recordings, with the score held. ZuCo 2.0: a timing hold on one converted run, with no figure.data-quality-update-20261020
clinical-iesseeg-update.jsonIESSEEG, an infant case-control pilot with age and recording-setting controls: six arms with and without EEG (a training prior, age only, recording settings only, EEG spectral features, EEG with age, and EEG after training-fold age residualization) and four arms that read frozen NeuroLM features with the same probes. Out-of-fold point estimates of balanced accuracy, AUROC and secondary metrics with confusion counts, for everyone and for the people aged 2 or under; the cohort and its input check; the release card’s attribution and ethics statement; the audit boundary, limitations and what is not published; and the clinical-groups page’s medical disclaimer.clinical-iesseeg-update-20261020
neurolm-eegmat-update.jsonNeuroLM’s frozen features on EEGMAT’s arithmetic and rest, a separate pilot panel: equal-person balanced accuracy and macro-F1 of three representations (tokenizer features, GPT hidden states and band power) under one fixed ridge head, three paired differences with their participant-bootstrap intervals, the adapter and the probe, the checkpoint’s identity and the terms of each part, pretraining exposure (unknown) with its sources, limitations, the audit record and what is not published.neurolm-eegmat-update-20261020
eegpt-core-update.jsonEEGPT beside the core matrix, from the same runs as the published LaBraM rows and, except on idle, the CBraMod rows: its eight core-matrix cells as a frozen row (balanced accuracy with its participant-bootstrap interval, macro F1, chance level and pretraining exposure per cell, each percent figure also in the core rows’ units; idle false activations, detections within 3 s and people who always abstained as counts, with the window balanced accuracy and AUROC), the footnotes beside the cells they bear on, how each cell stands against the published rows (above, below or overlapping by the 95% intervals, with the gap in percentage points), its pretraining-attribution rows and paired contrasts on mi-rest and EEGMAT in the published deployment-topics fields, the model’s terms (checkpoint licence unresolved, no weights distributed, Apache-2.0 the code’s alone), the owner’s release record and what is not published.eegpt-core-update-20261013
pilot-studies-update.jsonSmall pilots outside every leaderboard and model ranking. The Orthosis error-detection dataset as one cohort in three results: a 64-channel classical EEG baseline (balanced accuracy, AUROC and average precision with person-bootstrap intervals, a direction/time confound probe, the training majority and class prior, the matched EEG-minus-confound difference with how many people were above, permutation-control means with observed ranges, and the response-clean subset as counts), the same baseline on 58 channels, and frozen EEGPT against those matched classical features (the paired difference with its interval, the checkpoint’s identity and licence status; no weights). BINGO Greek and English inner speech within and across languages (balanced and top-3 accuracy against their priors, order-only, high-frequency and label-shuffle controls, the cross-minus-within contrast, the protocol and the project’s documented preprocessing). A mask-aware EEG analysis of a handwriting competition dataset, five people (balanced accuracy of relative EEG and three controls that see no EEG, with person-bootstrap intervals except the mask-only control’s, three paired contrasts, label-shuffle means with observed ranges, channel availability over trials and its flag counts, and the earlier analysis of the same people as context). REFED’s stored-clip diagnostic (equal-axis mean absolute error for EEG and three source-only controls in two conditions). Status-only entries, and each source’s rights, consent and ethics record, with the handwriting dataset’s stated gap.pilot-studies-update-20261012
beyond-scalp-update.jsonDo simple baselines work on signals other than scalp EEG? Human fNIRS on Bak et al.’s finger and foot tapping, a person left out at a time (participant-macro balanced accuracy with its descriptive interval, class recalls, and a training-prior comparator); one macaque’s motor-cortex spiking on MC_RTT (a ridge decoder of finger velocity against the training mean: R², RMSE and MAE, including the metric on which the ridge is worse, with trial, neuron and row counts); a numerical coverage check of ds007420’s fNIRS recordings (counts only, with the gates that hold its classifier); and two sources prepared but not scored, FALCON H2 and Rabut et al.’s functional ultrasound, as counts. Species and modality on every entry; each source’s rights record, with its consent and ethics statement or, for the macaque, its animal-care statement.beyond-scalp-update-20261012
questions-in-language-update.jsonRoute 3, questions in language, on BETA SSVEP and BOAS sleep: one question-conditioned head asked each question by a question number, a label template or a description — the 35 pre-declared entries with n, seeds, interval, both flags, the route-sentence rule and the route sentence, kept apart as seen questions, rewordings and questions the EEG head was never trained on; per-arm levels with chance-corrected values, generalisation costs, read-offs and flip rates; the pre-run checks as pass or fail and counts, with the two failed canary revisions and the owner’s override disclosed; the secondary results (EESM19, OpenBMI, REVE-L, a second text encoder, Chinese wordings, negation, extrapolation, Wearable-102), labelled single-seed and likely inconclusive where declared; BOAS’s three stated gaps and attribution, rights records, references and the audit record.questions-in-language-update-20261008
questions-in-language-wordings.jsonThe wordings route 3 asked its questions with, published with its results: 787 texts in English and Chinese for sleep, SSVEP and motor imagery (training and held-out sentence frames, label names and synonyms, training and held-out descriptions, descriptions and names of the unseen questions, negation frames), written before any score by two agents from a fixed brief; the leakage rules they passed; the held-out frequency partition of the five rotations and the extrapolation band; the declared derangements of the shuffled control; the numeric frequency code; and the pinned text encoders. Text only, CC BY 4.0.questions-in-language-update-20261008
later-sessions-update.jsonDoes a decoder trained on an earlier session still work later? WBCIC-SHU session 1 to session 3 in two separate cohorts (a source-majority prior and a relative spectral ridge, and frozen CBraMod with a session-1 ridge readout: balanced accuracy with its participant-bootstrap interval, accuracy, macro F1 and the paired differences); the longitudinal RSVP source’s first-visit ERP baseline at the nominal Day 7, 80 and 200 visits (AUROC with its interval, average precision, log loss, Brier score and ECE, event counts, the paired Day 200 minus Day 7 contrast and how many people declined); and Forenzo’s continuous cursor tracking, a negative result (per cohort and response arm, the ridge’s mean and median error against the source-mean comparator, paired differences, how many records the ridge did worse on, secondary metrics with nulls kept null, coverage and holds); with each source’s rights, consent and ethics record and its limitations.later-sessions-update-20261008
shared-representation-update.jsonRoute 2, one representation and several questions, on OpenBMI motor imagery and BOAS sleep: independent models, fixed linear heads on a shared encoder, a shared hidden layer and the question-conditioned head, at matched data and compute, with EEGNet from scratch, frozen CBraMod features and CBraMod adapted by LoRA — every paired contrast with its interval, its difference and margin flags and its gate; per-arm balanced accuracy, AUROC and log loss; the route sentence per domain and the cost ledger; the derivable-question test (log R); a crude EESM19 replication; BOAS’s three stated gaps and attribution, rights records and the audit record.shared-representation-update-20261007
foundation-models-update.jsonFurther foundation encoders beside the core matrix: sixteen encoder checkpoints of eleven further models as frozen probes on the eight core protocols (balanced accuracy with its participant-bootstrap interval, macro F1, chance flag and pretraining exposure per cell; idle false activations and detections as counts; two cells not run, with the reason), the masking ablation, nine models adapted on EEGMAT (head on a frozen encoder against rank-4 LoRA: three-seed means, per-seed means, paired changes with people helped and harmed, trainable parameters), comparisons decided by interval overlap, the pretraining-exposure table with sources, weights licences, row footnotes and the audit record.foundation-models-update-20261004
foundation-models-mi-rest.csvMotor imagery & rest: the further foundation-encoder rows — one per encoder checkpoint, in the core results CSV’s columns and units, then status, panel, chance flag, pretraining exposure, licence and footnote. Not run is empty with its reason.foundation-models-update-20261004
foundation-models-idle.csvIdle & command: the further foundation-encoder rows — one per encoder checkpoint, in the core results CSV’s columns and units, then status, panel, chance flag, pretraining exposure, licence and footnote. Not run is empty with its reason.foundation-models-update-20261004
foundation-models-beta-8ch.csvSSVEP · 8 channels: the further foundation-encoder rows — one per encoder checkpoint, in the core results CSV’s columns and units, then status, panel, chance flag, pretraining exposure, licence and footnote. Not run is empty with its reason.foundation-models-update-20261004
foundation-models-beta-4ch.csvSSVEP · 4 channels: the further foundation-encoder rows — one per encoder checkpoint, in the core results CSV’s columns and units, then status, panel, chance flag, pretraining exposure, licence and footnote. Not run is empty with its reason.foundation-models-update-20261004
foundation-models-arithmetic-rest.csvArithmetic & rest: the further foundation-encoder rows — one per encoder checkpoint, in the core results CSV’s columns and units, then status, panel, chance flag, pretraining exposure, licence and footnote. Not run is empty with its reason.foundation-models-update-20261004
foundation-models-p300-target.csvP300 target ERP: the further foundation-encoder rows — one per encoder checkpoint, in the core results CSV’s columns and units, then status, panel, chance flag, pretraining exposure, licence and footnote. Not run is empty with its reason.foundation-models-update-20261004
foundation-models-semantic-target.csvSemantic target ERP: the further foundation-encoder rows — one per encoder checkpoint, in the core results CSV’s columns and units, then status, panel, chance flag, pretraining exposure, licence and footnote. Not run is empty with its reason.foundation-models-update-20261004
foundation-models-sleep-scalp.csvSleep staging: the further foundation-encoder rows — one per encoder checkpoint, in the core results CSV’s columns and units, then status, panel, chance flag, pretraining exposure, licence and footnote. Not run is empty with its reason.foundation-models-update-20261004
reliable-decisions-update.jsonRoute 1, reliable decisions, on EEGMAT and BETA: each method’s coverage and error under a fixed confidence threshold (with how many people had nothing accepted), a coverage target and a certified selective risk (with folds certified and folds over target); the learned reject option against calibrated confidence (AURC, error at 80% coverage); errors at a matched coverage; NLL, ECE and Brier score; and person-specific recalibration with its label cost — with paired person-bootstrap intervals and verdicts. A crude ds003810 panel, secondary seeds, sensitivity arms and the audit record.reliable-decisions-update-20261004
large-source-update.jsonDreem sleep staging in two separate cohorts, DOD-H (healthy) and DOD-O (obstructive sleep apnoea): a training prior and a spectral ridge with accuracy, balanced accuracy, macro F1 and Cohen’s kappa, the paired balanced-accuracy gain and the ridge’s per-stage recall, precision and F1 (nulls kept null); and OpenBMI cross-session motor-imagery calibration, 51 people at 0, 10, 20 and 40 labelled session-2 trials, with paired changes and how many people declined. Rights records and one figure-free hold.large-source-update-20261003
extension-update.jsonTwenty further people of the asynchronous SSVEP release under a pilot-fixed and a personal rejection threshold (detection, coverage, correct-and-accepted, false acceptance per state, people helped and harmed), and LTRSVP image-rate and recording transfer (two primary arms, paired difference, 3×3 matrix), with rights records.extension-update-20261002
adaptation-update.jsonLaBraM on EEGMAT, new people, same task, zero labels from the test person, adapted three ways (head only, last block, rank-4 LoRA) over three seeds: scores, paired changes with people helped or harmed, trainable parameters and training time; the next-day experiment as status only.adaptation-update-20261001
context-update.jsonScreen-to-VR P300 transfer, treadmill walking speed beside a movement-nuisance comparator, and the asynchronous SSVEP non-control pilot, with audits.context-update-20260927
clinical-update.jsonParkinson's disease vs. controls from resting-state EEG (ds004584) beside an age-and-sex-only comparator, the claim boundary, and status-only sources.clinical-update-20260923
evidence-update.jsonIn-ear vs. scalp sleep staging (EESM23), four vs. sixteen electrodes (Alpha Waves), and the physical head phantom, each with its rights record.evidence-update-20260922
deployment-topics.jsonDeployment topics: dry vs. wet sensor transfer, calibration budget, movement (SSVEP and ERP) and pretraining controls — measurements, paired contrasts, seed sensitivity and dataset citations.deployment-topics-20260920-v1
experiments.jsonThe core matrix: every protocol with each method’s score, interval, cohort, electrode count, training mode and limitations, plus the model and dataset directories.research-preview-20260920
mi-rest-results.csvMotor imagery & rest: one row per method — score, interval, secondary metric, cohort and compute time.research-preview-20260920
mi-rest-protocol.jsonMotor imagery & rest: the protocol — cohort, channels, windows, split, training budget, rights and limitations.research-preview-20260920
idle-results.csvIdle & command: one row per method — score, interval, secondary metric, cohort and compute time.research-preview-20260920
idle-protocol.jsonIdle & command: the protocol — cohort, channels, windows, split, training budget, rights and limitations.research-preview-20260920
beta-8ch-results.csvSSVEP · 8 channels: one row per method — score, interval, secondary metric, cohort and compute time.research-preview-20260920
beta-8ch-protocol.jsonSSVEP · 8 channels: the protocol — cohort, channels, windows, split, training budget, rights and limitations.research-preview-20260920
beta-4ch-results.csvSSVEP · 4 channels: one row per method — score, interval, secondary metric, cohort and compute time.research-preview-20260920
beta-4ch-protocol.jsonSSVEP · 4 channels: the protocol — cohort, channels, windows, split, training budget, rights and limitations.research-preview-20260920
arithmetic-rest-results.csvArithmetic & rest: one row per method — score, interval, secondary metric, cohort and compute time.research-preview-20260920
arithmetic-rest-protocol.jsonArithmetic & rest: the protocol — cohort, channels, windows, split, training budget, rights and limitations.research-preview-20260920
p300-target-results.csvP300 target ERP: one row per method — score, interval, secondary metric, cohort and compute time.research-preview-20260920
p300-target-protocol.jsonP300 target ERP: the protocol — cohort, channels, windows, split, training budget, rights and limitations.research-preview-20260920
semantic-target-results.csvSemantic target ERP: one row per method — score, interval, secondary metric, cohort and compute time.research-preview-20260920
semantic-target-protocol.jsonSemantic target ERP: the protocol — cohort, channels, windows, split, training budget, rights and limitations.research-preview-20260920
sleep-scalp-results.csvSleep staging: one row per method — score, interval, secondary metric, cohort and compute time.research-preview-20260920
sleep-scalp-protocol.jsonSleep staging: the protocol — cohort, channels, windows, split, training budget, rights and limitations.research-preview-20260920

Release archive, with the SHA-256 of every file →

Examples

Shell

curl -sO https://bci.report/data/experiments.json
curl -s https://bci.report/data/context-update.json | jq '.results | keys'

Python

import pandas as pd, requests

matrix = requests.get("https://bci.report/data/experiments.json", timeout=30).json()
for track in matrix["tracks"]:
    print(track["id"], track["chanceLevel"], len(track["rows"]))

mi_rest = pd.read_csv("https://bci.report/data/mi-rest-results.csv")

Hugging Face datasets

from datasets import load_dataset

results = load_dataset("Twu31/bci-report", "results")  # also: topics, contrasts, seed_sensitivity, foundation_models, eegpt_core, core_matrix_rows, core_matrix_contrasts, register

Cite

Cite the site and the release you used (the current one is open-register-update-20261106), and the upstream dataset each figure was computed on.

@misc{bcireport,
  title        = {BCI Report: public EEG decoding results reported with their protocol},
  author       = {{BCI Report}},
  year         = {2026},
  howpublished = {\url{https://bci.report}},
  doi          = {10.5281/zenodo.23123296},
  note         = {Release open-register-update-20261106}
}

Upstream datasets and their credits →

CITATION.cff, the same citation machine-readable ↗ · Code on GitHub (MIT) ↗ · Mirror on Hugging Face ↗

For agents and crawlers

BCI Report Explorer on Hugging Face ↗: browse the same results, or query them through MCP tools. It reads one pinned release of the mirror and names it in every answer.