Stable URLs
Every file lives at https://bci.report/data/<file>. A file is only ever replaced by a reviewed release, and the releases page gives the SHA-256 of the bytes currently served.
Data API
There is no server to query: every published result is a static file, the same bytes the pages are built from. Fetch them directly, verify them against the SHA-256 on the releases page, and cite the release you used.
Every file lives at https://bci.report/data/<file>. A file is only ever replaced by a reviewed release, and the releases page gives the SHA-256 of the bytes currently served.
Plain HTTPS GET. Static files behind a CDN; no rate limit is promised, so cache what you use.
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 same files are on Hugging Face as the dataset Twu31/bci-report, with the per-protocol tables merged into loadable configurations.
| File | What it holds | Release |
|---|---|---|
context-update.json | Screen-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.json | Parkinson'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.json | In-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.json | Deployment 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.json | The 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.csv | Motor imagery & rest: one row per method — score, interval, secondary metric, cohort and compute time. | research-preview-20260920 |
mi-rest-protocol.json | Motor imagery & rest: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | research-preview-20260920 |
idle-results.csv | Idle & command: one row per method — score, interval, secondary metric, cohort and compute time. | research-preview-20260920 |
idle-protocol.json | Idle & command: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | research-preview-20260920 |
beta-8ch-results.csv | SSVEP · 8 channels: one row per method — score, interval, secondary metric, cohort and compute time. | research-preview-20260920 |
beta-8ch-protocol.json | SSVEP · 8 channels: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | research-preview-20260920 |
beta-4ch-results.csv | SSVEP · 4 channels: one row per method — score, interval, secondary metric, cohort and compute time. | research-preview-20260920 |
beta-4ch-protocol.json | SSVEP · 4 channels: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | research-preview-20260920 |
arithmetic-rest-results.csv | Arithmetic & rest: one row per method — score, interval, secondary metric, cohort and compute time. | research-preview-20260920 |
arithmetic-rest-protocol.json | Arithmetic & rest: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | research-preview-20260920 |
p300-target-results.csv | P300 target ERP: one row per method — score, interval, secondary metric, cohort and compute time. | research-preview-20260920 |
p300-target-protocol.json | P300 target ERP: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | research-preview-20260920 |
semantic-target-results.csv | Semantic target ERP: one row per method — score, interval, secondary metric, cohort and compute time. | research-preview-20260920 |
semantic-target-protocol.json | Semantic target ERP: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | research-preview-20260920 |
sleep-scalp-results.csv | Sleep staging: one row per method — score, interval, secondary metric, cohort and compute time. | research-preview-20260920 |
sleep-scalp-protocol.json | Sleep staging: the protocol — cohort, channels, windows, split, training budget, rights and limitations. | research-preview-20260920 |
curl -sO https://bci.report/data/experiments.json
curl -s https://bci.report/data/context-update.json | jq '.results | keys'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")from datasets import load_dataset
results = load_dataset("Twu31/bci-report", "results") # also: topics, contrasts, seed_sensitivityCite the site and the release you used (the current one is context-update-20260927), 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}},
note = {Release context-update-20260927}
}