Count your heartbeat.
Can you count your heartbeats without touching your pulse?
Original study
- Schandry, R. (1981). Heart beat perception and emotional experience. Psychophysiology, 18(4), 483–488. Source
- Garfinkel, S. N., Seth, A. K., Barrett, A. B., Suzuki, K., & Critchley, H. D. (2015). Knowing your own heart: Distinguishing interoceptive accuracy from interoceptive awareness. Biological Psychology, 104, 65–74. Source
- Ring, C., & Brener, J. (1996). Influence of beliefs about heart rate and actual heart rate on heartbeat counting. Psychophysiology, 33(5), 541–546. Source
- Zamariola, G., Maurage, P., Luminet, O., & Corneille, O. (2018). Interoceptive accuracy scores from the heartbeat counting task are problematic: Evidence from simple bivariate correlations. Biological Psychology, 137, 12–17. Source
- Desmedt, O., Luminet, O., & Corneille, O. (2018). The heartbeat counting task largely involves non-interoceptive processes: Evidence from both the original and an adapted counting task. Biological Psychology, 138, 185–188. Source
- Ring, C., & Brener, J. (2018). Heartbeat counting is unrelated to heartbeat detection: A comparison of methods to quantify interoception. Psychophysiology, 55(9), e13084. Source
- Ring, C., Brener, J., Knapp, K., & Mailloux, J. (2015). Effects of heartbeat feedback on beliefs about heart rate and heartbeat counting: A cautionary tale about interoceptive awareness. Biological Psychology, 104, 193–198. Source
Our adaptation
An adaptation of Schandry's (1981) heartbeat counting task. Sitting comfortably and without touching the pulse, the participant silently counts heartbeats felt between two tones; three counts of 25, 35 and 45 seconds are shuffled with a personal seed and the durations are not disclosed. Leaving the page during a count repeats it. Then the pulse is counted at the wrist or neck for 30 seconds, or a device reading is entered, and the participant rates how well they could feel their beats.
Differences from the original study
- The true beat count comes not from an ECG but from the participant's own pulse count or device; both compared numbers are self-reported.
- The validity of the task is debated (Zamariola et al., 2018).
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 |
|---|---|---|
intervals | JSON | Counts: [[duration s, beats counted] × 3]. |
ref_method | palp | dev | none | Pulse source: palp = manual count, dev = device, none = not found. |
ref_value | number | Beats in 30 seconds for a manual count, beats per minute for a device. |
conf | integer | How well beats were felt (0 not at all – 3 almost every beat). |
away | integer | Time away from the tab (ms). |
counted_bpm | number | Counted beats per minute. |
clean | 0 | 1 | Did not leave the tab for more than 3 seconds (1 = clean). |
bpm | number | Pulse (beats per minute; empty without a pulse). |
expected_1 | number | Expected beats for each count from the pulse. (item 1) |
expected_2 | number | Expected beats for each count from the pulse. (item 2) |
expected_3 | number | Expected beats for each count from the pulse. (item 3) |
acc_1 | number | Accuracy for each count: 1 − |expected − counted| / expected (floored at 0). (item 1) |
acc_2 | number | Accuracy for each count: 1 − |expected − counted| / expected (floored at 0). (item 2) |
acc_3 | number | Accuracy for each count: 1 − |expected − counted| / expected (floored at 0). (item 3) |
score | number | Mean accuracy over three counts (0–1). |
ratio | number | Total counted / total expected. |
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 checks that the three durations follow the plan (25, 35, 45 s) and that the pulse value is within a plausible range, and computes accuracies itself. Without a pulse the accuracy columns are empty.
- 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
This experiment has no leaderboard score. The crowd result is mean accuracy and accuracy by reported awareness.
Version notes
- 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.