How many dots?.
Can you tell how many dots flashed on the screen before you get a chance to count them?
Original study
- Jevons, W. S. (1871). The power of numerical discrimination. Nature, 3(67), 281–282. Source
- Kaufman, E. L., Lord, M. W., Reese, T. W., & Volkmann, J. (1949). The discrimination of visual number. The American Journal of Psychology, 62(4), 498–525. Source
- Trick, L. M., & Pylyshyn, Z. W. (1994). Why are small and large numbers enumerated differently? A limited-capacity preattentive stage in vision. Psychological Review, 101(1), 80–102. Source
- Revkin, S. K., Piazza, M., Izard, V., Cohen, L., & Dehaene, S. (2008). Does subitizing reflect numerical estimation? Psychological Science, 19(6), 607–614. Source
- Izard, V., & Dehaene, S. (2008). Calibrating the mental number line. Cognition, 106(3), 1221–1247. Source
- Kılıç, A., & İnan, A. B. (2022). Response bias in numerosity perception at early judgments and systematic underestimation. Attention, Perception, & Psychophysics, 84(1), 188–204. Source
Our adaptation
An adaptation of the subitizing and numerosity estimation task of Kaufman et al. (1949). After a 500 ms fixation cross the dots are shown for 200 ms and covered by a 300 ms mask; then the number is typed. Round 1 shows 1–4 dots, round 2 5–9 and round 3 15–60 (6 trials each). Dot size and the spread of the cluster vary from trial to trial; feedback is given only at the end of a round.
Differences from the original study
- 200 ms on screen depends on frames (about 12 frames at 60 Hz) and can deviate by a few milliseconds by device.
- Response time includes typing time.
- There are only a few trials per range.
Measured variables
The columns of the open data file. List fields are expanded into numbered columns (for example rt_60, est_3); JSON columns contain only numbers and fixed stimulus names.
| Column | Type | Description |
|---|---|---|
score | number | Total score (0–18): 1 point for a correct answer on 1–9 dot trials; max(0, 1 − |log2(estimate / truth)|) on 15–60 dot trials. |
trials | JSON | Trials: [{"n": number of dots shown, "a": answer, "rt": time from mask to answer in ms}]. |
Columns present in every file (14)
row_id | string | Row code. Regenerated at random in every release; it does not identify a person and cannot be matched across releases or experiments. |
experiment | string | Short name of the experiment (URL slug). |
experiment_version | integer | Version of the answer format. For experiments whose format changed, only the current format is published. |
date | YYYY-MM-DD | YYYY-Www | YYYY-MM | Day the answer was given (Istanbul time). If fewer than 5 answers share the same day, language and device, it is coarsened to the ISO week, and to the month if that is still too few. |
date_precision | day | week | month | Precision of the date column. |
lang | tr | en | (boş) | Interface language. Language recording started in the first week of October 2026; for earlier answers it is known only in experiments whose stimuli depend on the language, and empty otherwise. |
device | desktop | mobile | tablet | (boş) | Device class reported by the browser (class only; browser details are neither stored here nor published). |
source | site | embed | Where the answer came from: the balabs site or the experiment embedded on another site. The embedding site is not published. |
mode | free | daily | challenge | race | session | (boş) | Play mode in scored experiments: free play, daily round, challenge, race room, experiment session. Empty for unscored experiments and for older answers that did not store it. |
color_vision | normal | rg | by | contrast | (boş) | In color-based experiments, the color vision mode the participant chose: normal, red-green, blue-yellow or high contrast. Stimuli are generated along different axes per mode, so compare within a mode. Empty for other experiments. |
first_play | 1 | Every row is a participant’s first play of this experiment (always 1). Replays are stored only as leaderboard scores and are not part of the open data. |
seen_before | yes | no | unsure | (boş) | Participant’s own report of whether they had seen this experiment or its known answer before (in experiments that ask). |
duration_s | number | Time from the start of the experiment to submitting the answer, in seconds (measured in the browser, 0.1 s). |
play_score | number | Leaderboard score of the first play (scored experiments; defined on the method card). Empty for unscored experiments. |
Exclusion criteria
The server requires at least 6 valid trials (true count 1–200, answer 0–999) and computes the score from the trial records itself.
- Only each participant's first answer to this experiment; replays are not included.
- Simulated rows, bots, banned and sample accounts are not included.
- Answers before 3 October 2026 are not included (the first day the open data notice was live).
Scoring
Leaderboard score: the sum of accuracy points over three rounds (at most 18); higher is better.
Leaderboard measure: score (higher is better). The play_score column in the open data is this score for the first play.
Version notes
- October 2026
This experiment started storing the play mode (free, daily, challenge, race, session) with the answer; the mode column is empty for earlier answers.
- October 2026
The interface language (lang) started being stored with each answer; for earlier answers it is known only in experiments whose stimuli depend on the language, and empty otherwise.