IATs scored by a published method.[1]
D-scores, error penalties and exclusions are computed as respondents finish, with the improved algorithm. How we score and how we time every trial are written down for you to check.
IAT, brief IAT, single-target IAT, go/no-go association task, evaluative priming, the affect misattribution procedure and an implicit reaction-time grid. Webcam eye-tracking is a labelled beta, accurate to 2 to 4 degrees.
A D-score distribution, not a spreadsheet of latencies.
An implicit association test (IAT) measures how quickly people sort words or pictures when two concepts share a response key. Faster sorting in one pairing suggests a stronger association.
Scored with D1, the improved algorithm (Greenwald, Nosek and Banaji, 2003), with the error penalty applied and the mean reported with its interval. The scoring note walks through one respondent.
Respondents need two keys and a browser.
This is a brief IAT cut down to twelve trials. Press I when a word belongs to the categories on the right and E for anything else, or tap the halves of the screen. The word appears on the next screen frame and the clock starts there, the way it does in a study.
In a real study the page is full screen in the agency's colours, and a wrong key shows a red X until it's corrected.
EAnything else
IFlowers or Good
Twelve trials in two blocks, under a minute. Press I when a word belongs to the two categories on the right, E for anything else. Keys or taps.
Twelve trials is a demo, not a measurement. A brief IAT in Stroop runs a 16-trial practice block and four blocks of 20, and scoring drops the first four trials of each. How the timing works
An IAT after the usability test, same people.
Run the prototype test and the brand IAT in one sitting. What people did on the checkout and how they associate the brand land in the same results, per participant.
Stroop is the all-in-one research and testing platform. Run usability tests, prototypes, surveys, tree tests, diaries and IATs in one study, and get results back transcribed, scored and charted, with every finding linked to the session it came from.
Every respondent scored, every exclusion named.
Each respondent's D-score is computed by the same code the results page runs, with the reason beside anyone left out. The export carries D1 to D6 and every trial.
How we time it, and what we haven't proved yet.
The worry about IATs in a browser is fair. A participant's laptop adds delay between the screen changing and the key registering, and you can't see their laptop. Here's what that delay does to a D-score, how Stroop times everything else, and what we've measured so far.
Constant lag drops out of the D-score
A D-score is a difference: mean latency in one pairing minus mean latency in the other, divided by the pooled standard deviation. If a laptop adds 60 ms to every response, it adds 60 ms to both means, so the difference doesn't move. Neither does the standard deviation, because adding a constant to every value leaves the spread alone. Priming effects behave the same way.
Two things don't cancel. Jitter, the part of the delay that changes from press to press, adds noise and costs some reliability; Bridges and colleagues (2020) measured browser timing precision under about 10 ms in most setups, with constant lags that could average 80 ms or more depending on the device. And absolute reaction times keep the lag: if your analysis compares raw milliseconds between people on different machines, the machines are in your data.
How Stroop times a trial
The trial loop runs outside React, in a cross-origin isolated page, and every block records whether isolation held. Each change to the screen is made inside a requestAnimationFrame callback, and the stimulus onset is the timestamp of the next callback, the frame the change appeared on. The response time is the key event's timestamp minus that onset, both on the browser's high-resolution performance clock.
Short exposures run as whole frames. Ask for a 75 ms prime on a 60 Hz screen and you get five frames, 83.3 ms, and Stroop stores the achieved duration of every prime, blank, target and mask with the trial. Your analysis uses what was shown, not what was asked for.
Each block's instruction screen measures the refresh rate, and frame intervals are watched during trials. Every participant gets a timing grade. Good means under 1% dropped frames, under 1 ms of frame jitter and every timed duration within a frame of the request. Fair allows 5% and 3 ms. Anything worse is Poor, and one switch in the results excludes Poor.
What we've checked, and what we haven't
We drive the timed tasks with an automated browser and check two things: that recorded reaction times match a delay we injected, once the harness's own round trip is taken out, and that every short exposure runs as the whole frames it should. In headless Chromium, both hold. Headless Chromium draws frames from its own steady timer rather than a display, so that's the best case. It shows the arithmetic and the frame scheduling are right. It says nothing about your participants' screens and keyboards.
Not measured yet: display and keyboard latency on real devices, and Firefox and Safari. That takes a photodiode on the screen and a solenoid on the key, and we haven't run it. Until we have, we make no comparison with lab software, and you shouldn't either.
When to use a lab or Gorilla instead
If your paradigm is new, needs custom code, or runs as a game or with several people at once, use Gorilla, PsychoPy or Inquisit. If you need a published timing paper to cite in a methods section, Gorilla has one and we don't yet. If absolute reaction time is your dependent variable, test people on hardware you know.
Stroop is for routine commercial implicit work: a brand IAT, a priming study, a go/no-go before a campaign, scored and reported the same week. The full method is in the notes on timing and IAT scoring.
Where it stops.
A week-long IAT with any number of respondents is $56. See every rate
- No published timing benchmark on real devices yet, so no comparison with lab software. The validity section above says what we have checked.
- Paradigms are built from the block library. Novel paradigms and custom code belong in Gorilla, PsychoPy or Inquisit.
- Webcam eye-tracking is a labelled beta, accurate to 2 to 4 degrees: enough for which half of the screen, not which word.
Questions
How many respondents does an IAT need?
- For a group mean, 100 to 150 completed respondents is a sensible floor. D-scores usually spread with a standard deviation near 0.4, so 150 people put a 95% interval of about plus or minus 0.06 around the mean. Comparing two groups needs more.
Which D-score algorithm does Stroop use?
- D1 by default: the improved algorithm with the built-in error penalty, which needs correction required, as Greenwald, Nosek and Banaji (2003) recommend. You can pick any of D1 to D6, and the export carries all six for every respondent, so a reviewer can see the choice didn't move the result.
Who gets excluded from the results?
- Anyone with more than 10% of responses under 300 ms is out of the D-score, as the algorithm says. The rest are switches: a Poor timing grade, over 10% of trials interrupted, an error rate above 30%, leaving full screen more than twice. Each switch shows how many people it removes before you apply it.
Can respondents take an IAT on a phone?
- Yes. On a touch screen the E and I keys become the left and right halves of the screen. Keep one study to one input, though. Stroop records whether each respondent used keys or touch, and can exclude anyone whose input doesn't match the study's, because the two give different latencies.