FreeIAT: How It Works

The FreeIAT is basically two programs in one:

  • A program that uses a series of Windows forms to prompt the user to set up his or her program, and
  • An IAT administration program that assesses reaction time and whether the response is correct or incorrect for different stimuli

The SetUp program

The purpose of the set-up program is to make use of the IAT program as simple as possible.  However, use of the setup program is not required.  The sole purpose of the setup program is to create a configuration file called ‘Config.txt’ in the same director as the FreeIAT.exe program.  The primary IAT administration program relies on the configuration file to know what stimuli to present in the IAT.

The set-up program is fairly self explanatory in function and was described in the Getting Started section.  Prompts on the forms and other information are scrubbed and are written into the Config.txt file in plain text format.

The IAT administration program

Once you click the FreeIAT.exe file or shortcut, the first screen you see is a start page.  This page is intended for researchers assistants to assess before the participant enters the room.  To administer the IAT, an RA need only enter a participant ID (which can be numeric or text and up to 200 characters long) and to hit the “Begin” button.

Once this button is clicked, the participant would then see a welcome screen detailing the various stimuli with which he or she will be presented and the categories into which he or she should classify those stimuli.

The configuration file

Behind the scenes, however, the FreeIAT is hard at work.  The first thing the program does is to look for a “Config.txt” file in the same directory as the FreeIAT.exe program.

Note: You cannot put the configuration file in another directory!

Also be aware that if you have a desktop shortcut, the configuration file must be in the same directory as the FreeIAT.exe file, not on the desktop.  Your data will be written to this directory as well.

Once the FreeIAT program finds the Config.txt file, it begins reading the file line by line.  Please see the configuration file details page for more information.

Once the configuration file has been read, all information is stored in the program’s memory and the program begins the IAT administration.

IAT Administration

The IAT is administered via one of two simple Visual Basic forms.  One form is used when both text and images are presented in the IAT and the other is used for text only.  The differences between the two are trivial and are entirely cosmetic.

Once the form loads, a label appears on the screen instructing the participant to hit the space bar to begin.  Once the space bar is pressed, the label disappears and the program goes into the first of five stages of IAT administration.  These five stages are as follows:

Click below for Description
Stage 1
Stage 2
Stage 3
Stage 4
Stage 5


The first stage begins and stimuli are randomly selected for administration with the constraint that the same stimulus may not be presented twice in a row (else the effect is the perception that the program did not record the response as the screen does not noticeably change).  A large X appears if the respondent answers incorrectly and the screen does not change until the correct response is chosen.

For each trial in all stages, the stimulus name, whether or not the respondent answered correctly, and the response time (in milliseconds) is recorded. Note that the time stored is the time until a correct response is given, thus incorrect responses do not “stop the clock”. A counter tracks how many trials have been administered in each stage.  When the maximum number of trials has been reached for a given stage, the program clears the screen and displays the relevant category labels for the next stage’s stimuli so that respondents may examine them before beginning the next stage.

Stages 3 and 5 involve paired comparisons.  For these stages, the type of stimulus to be administered is first randomly chosen, then the stimulus within that type is randomly chosen.  As a result, the number of stimuli in each type can differ (e.g., 4 of each type of image may be used along with 10 of positive words and 10 negative words) without displaying a disproportionate number of words to images.

During each trial, information is stored regarding the current stage, what stimulus was administered, how long (in milliseconds) until a correct response was entered, and whether an incorrect response was given. This information is used to compute scores and is reported in the output as described below.

Output Reporting

Two output files are created by the FreeIAT:

  • A file containing all raw data from all trials.
  • A file containing only the most relevant “final” scores.

Both files work in the same way in that they first search for existing output files in the same director as the FreeIAT.exe file.  If an existing output file is found, the program will write the participants data/scores to the end of that file.  Otherwise, the program will create the file and populate it with the participant’s data. There is no way to change the directory to which the data file is written. All raw data is stored in a file called ‘AllData.txt’.

The AllData.txt File

The first line of data written for each participant follows the following format:

  • The word “Participant: ” followed by the participant ID
  • The word “Test:” followed by the name of the IAT administered (read from the ‘Config.txt’ file)
  • The following text: “Format is stimulus, correct(1)/incorrect(0), time(ms). Writes 10 trials per line.”

The second line contains a time-date stamp of when the participant finished the IAT.

Starting on the third line, the following format is used:

  • The word “Block 1:” appears followed by the following data, space delimited
    • The name of the stimulus presented
    • “1” if the item was answered correctly initially, “0” if an incorrect response was given initially
    • The response time until a correct response was given, in milliseconds
  • This sequence is repeated for up to 10 stimuli, at which point the sequence continues on the next line
  • Once all trials in the current Stage (or Block) have been reported, the end of the line is reached
  • The next line contains the specification of the block (e.g., “Block 1 Time:”) and the total time required to administer the data in that block (computed as the sum of the response times for the stimuli in that block).
  • This sequence is then repeated for the remaining Stages/Blocks of data.


The ScoresOnly.txt File

The ‘ScoresOnly.txt’ file is a simple file containing the primary scores of interest to most researchers.

Each row in the file represents the scores of interest for a single respondent. The fields are delimited using either a space or comma (depending on what the user specifies in the Config.txt file) and appear in the following order:

  1. The participant’s ID
  2. The Greenwald, Nosek, and Banaji (2003) overall IAT score (GNB score)
  3. The average corrected response time (in ms) for Stage 3 using missed item substitution
  4. The average corrected response time (in ms) for Stage 5 using missed item substitution
  5. The pooled Stage 3 and Stage 5 response time standard deviation
  6. The average response time (in ms) for Stage 3 in the raw metric
  7. The average response time (in ms) for Stage 5 in the raw metric
  8. The IAT score computed using only the first half of the stimuli from Stages 3 and 5*
  9. The IAT score computed using only the last half of the stimuli from Stages 3 and 5*
  10. The time/date that the IAT was completed

*Correlating data from columns 8 and 9 provides an estimate of internal consistency.

Details on the scoring algorithms:

The GNB score is based on Table 4 in Greenwald, Nosek, and Banaji (2003). In this study, Greenwald et al. considered a number of scoring options for the IAT resulting in the recommendations in Table 4. While they describe their IAT as having 7 stages, stages 3 and 4 are identical (and both are scored) as are stages 6 and 7. Thus the FreeIAT marries these stages though the resulting score is nearly identical to that suggested by Greenwald et al.

In following with GNB Table 4, the IAT does the following:

Step Appears in ScoresOnly.txt file?
1 Eliminates trials with reaction times (RTs) > 10,000 ms
2 Returns a score of “TooFast” for participants who have RTs less than 300ms for more than 10% of of their trials Yes, when applicable
3 Computes the mean RT for items in Block 3 in which the initial response was correct
4 Computes the mean RT for items in Block 5 in which the initial response was correct
5 Computes the standard deviation (SD) of all items (regardless of whether they were initially responded to in a correct or incorrect manner) in both Blocks 3 and 5, ignoring block from which trial came  (see GNB, 2003, p. 201, 2nd paragraph. Note, formula uses N, not N-1, in denominator). This is what GNB call the pooled SD. Yes, this is the fifth piece of information on the row
6 For Block 3, replace RT for items initially answered as incorrect with the Block Mean of Correct items (computed in step 3 above) + 600ms
7 For Block 5, replace RT for items initially answered as incorrect with the Block Mean of Correct items (computed in step 4 above) + 600ms
8 Compute the corrected average RT in Block 3 and also Block 5 using the data that includes replacement for incorrect trials (i.e., data from steps 6 and 7 above). Yes, the Block 3 corrected average appears as the 3rd piece of data on the row while the Block 5 corrected average appears as the 4th piece of data on the row
9 Compute the GNB score (called D in their terminology) as the average corrected RT from Block 5 (computed in step 8 above) minus the average corrected RT from Block 3 (from step 8 above) and divide this difference by the pooled SD from step 5 above. Yes, the second piece of information on the row

Note that the information in the ScoresOnly.txt file corresponding to average Block 3 and Block 5 RT in the raw metric are not used in the GNB scoring algorithm.


Greenwald, A. G., Nosek, B. A., & Banaji, M. R. (2003). Understanding and using the implicit association test: I. An improved scoring algorithm. Journal of Personality and Social Psychology, 85, 197-216.