Function Acquisition Speed Test - FAST - Pictures

Technical Manual

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond

Credits:
Millisecond thanks Brian Roche for sharing his FAST5.3 Inquisit script with us!

Created: January 13, 2025

Last Modified: January 11, 2026 by K. Borchert (katjab@millisecond.com), Millisecond

Script Copyright © Millisecond Software, LLC

Background

This script implements the Function Acquisition Speed Test (FAST), an implicit measure of stimulus relatedness (based on prior learning).

The FAST assesses how quickly a person can learn to arbitrarily sort items based on their existing associations, with the speed of acquisition reflecting the strength of these previously learned relationships. Items that are more strongly connected are thought to be easier to be sorted into the same categories, resulting in higher performance and faster sorting times. The FAST is suggested to be an alternative to the IAT and IRAP (e.g. Watters et al, 2023).

This default FAST template uses the attribute categories POSITIVE vs. NEGATIVE and the target categories FLOWERS vs. INSECTS with the hypothesized strength FLOWERS-POSITIVE (INSECTS-NEGATIVE) being more strongly related than the opposite pairings.

References

O'Reilly, A., Roche, B., Ruiz, Maria R., Tyndall, I., & Gavin, A. (2012). The Function Acquisition Speed Test (FAST): a Behavior Analytic Implicit Test for Assessing Stimulus Relations. The Psychological Record, 62(3), 507-528.

Watters, A. (2023). Assessing the Function Acquisition Speed Test (FAST) as a Novel Implicit Measure of Salient Emotional Experiences. ProQuest Dissertations & Theses.

Watters, A., Cummins, J., & Roche, B. (2023). How to Build and How not to Build an Implicit Measure in Behavior Analysis: A case Study Using the Function Acquisition Speed Test. Perspectives on Behavior Science, 46(3–4), 459–492. https://doi.org/10.1007/s40614-023-00387-w

Javascript implementation accessible here: https://github.com/JamieCummins/fast-js

Wall, M., Passarelli, D & Roche, B. (2025). Assessing the Function Acquisition Speed Test (FAST) as a measure of implicit gender and racial bias. The Psychological Record, 75, 607–620.

Duration

5 minutes

Description

Participants are asked to sort attributes (e.g. positive and negative adjectives) and target items (e.g flowers vs. insects) via 2 keystroke presses (e.g. Z vs M). Feedback is given after each sorting trial to inform the participant whether the correct key was pressed.

Participants work through two blocks: one 'CONSISTENT' and one 'INCONSISTENT' block.

CONSISTENT BLOCK: attribute and target items that are hypothesized to be more strongly connected (based on prior learning/experiences) are sorted via the same keys (Example: positive adjectives, e.g. "beautiful", flowers, e.g. "daisy", are both correctly sorted via the Z-key). -> 'stereotype conforming' matchings

INCONSISTENT BLOCK: attribute and target items that are hypothesized to be more strongly connected (based on prior learning/experiences) are sorted via opposite keys (Example: positive adjectives are correctly sorted via the M-key but flowers are correctly sorted via the Z-key). -> 'stereotype NONconforming' matchings

The order of the consistent and inconsistent block is determined randomly.

Procedure

(1) General instructions

(2) Optional Practice (see section Editable Parameters), by default the practice block is skipped

(3) Test: 2 test blocks (CONSISTENT vs. INCONSISTENT)
-> order of blocks is randomly determined
-> 52 (learning) trials per block (see section Editable Parameters)
-> selection of the two attribute trials (here: positive vs. negative words) and the two target trials
(here: flowers vs. insects) is done randomly without replacement (repeat after all 4 trial types have been selected)
-> each attribute/target trial randomly (without replacement) selects one of their assigned stimuli


Trial Sequence

->iti (blank screen) for 500ms
->stimulus for max. 3000ms or until response
->feedback immediately following response for 500ms
-> iti.....

Stimuli

provided by Millisecond - can be edited in script 'fast_stimuli_inc.iqjs'

this script acts as a template. By changing the stimuli, you can test your own
hypotheses.

Instructions

provided by Millisecond - can be edited in script 'fast_instructions_inc.iqjs'

Scoring

Signal Detection Measures (Based On Notes From Brian Roche, March 2026)
The FAST templates also implement a Signal Detection scoring system which outputs a sensitivity score (d prime or d')
and a criterion score (C). These concepts do not map perfectly onto tests like the FAST but they do so broadly
enough to be meaningful.

Researchers should understand the limitations of the analogous mapping. For instance, we can conceptualize each trial
as a signal detection task but unusually there are two different signals that must be detected across trials each
with different signal detection response requirements. Where this choice is wrong on the consistent block,
the error is conceived as a miss. On the inconsistent block correct responses are conceptualized as correct rejections,
and incorrect response are understood as the noisy effect of the operation of the contingency from the consistent block
and are therefore classified as false alarms.

Unlike canonical SDT tasks, the FAST framework lacks a natural asymmetry between error types, and any criterion estimates
must therefore be interpreted cautiously. SDT metrics (d′, criterion) can be calculated from these counts to give
exploratory indices of sensitivity and response bias. Note that participants are performing a standard FAST task —
SDT is just an analytic overlay, so interpretations should remain cautious.

SDT metrics are justified for the FAST by designating one response as the “signal” decision and the other as the
“non signal” decision, yielding potentially informative measures of discriminability and criterion that complement
traditional reaction time analyses.

Treatment of Timed out responses:
In all cases, failures to respond within the response window are INCLUDED in metrics but accoding to cannonical SDT,
they would be excluded. For this reason, TRUE False Alarm and TRUE Miss rates are calculated here along with default
False Alarm and Miss Rates. Specifically, the default calculations include all errors whether they were produced by an
overt key press response or a timeout. However true scores are also presented that exclude trials on which a timeout
was recorded. This is because failures to respond at all on the Inconsistent block, cannot be easily taken as evidence
of a near False Alarm. The argument can be made of course, that a failure to correctly reject on the inconsistent block
(i.e., a correct response under the inconsistent contingencies) can be interpreted as a false alarm of sorts.

On the Consistent block, timed out responses are also excluded from SDT metrics in the calculation of the TRUE criterion
and TRUE sensitivity scores, although the default criterion sensitivity scores are also provided. Again, more specifically,
an incorrect response on the consistent block maps most meaningfully onto the concept of a miss. However, a miss is an overt
definitive decision by the subject that a signal is absent and it is the identification of noise in place of the
signal. While it could be argued that a failure to respond within the time window could be interpreted as a failure to
detect the signal and therefore a sort ofdecision and response resulting in a miss, signal detection theory is usually concerned
with decision outcomes rather than mere failures to respond. In summary, in signal detection terms, a miss requires an incorrect
categorical decision. Because timed-out trials involve no expressed decision, they can be excluded from SDT classification using
TRUE false alarm and TRUE miss rate metrics. Although timeouts may reflect response conflict or hesitation, classifying them as
false alarms would require an untestable assumption about the unexpressed decision.

Summary Data

File Name: fast_summary*.iqdat

Data Fields

NameDescription
inquisit.version Inquisit version number
computer.platform Device platform: win | mac |ios | android
computer.touch 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities
computer.hasKeyboard 0 = no external keyboard detected; 1 = external keyboard detected
startDate Date the session was run
startTime Time the session was run
subjectId Participant ID
groupId Group number
sessionId Session number
elapsedTime Session duration in ms
completed 0 = Test was not completed
1 = Test was completed
skipPractice 0 = false -> practice block is run
1 = true -> practice block is skipped
nTestTrials Number of test trials (parameter)
blockOrder The order in which the c(onsistent) and i(nconsistent) blocks were run (order is randomly determined)
Accuracy
propCorrectOverall Overall proportion correct (across consistent and inconsistent block)
propCorrectC Proportion correct across consistent block
propCorrectI Proportion correct across inconsistent block
Latencies
meanCorrRTC Mean correct response time in consistent block
meanCorrRTI Mean correct response time in inconsistent block
Fluency Score Calculations
durationCMS The block duration (in ms) of the consistent block (block duration includes intertrial interval and feedback durations)
durationIMS The block duration (in ms) of the inconsistent block (block duration includes intertrial interval and feedback durations)
correctCountC Total number of correct responses in the consistent block
incorrectCountC Total number of incorrect responses in the consistent block (including timeout errors)
wrongKeyCountC Total number of wrong key responses in the consistent block (excluding timeout errors)
timeoutCountC Total number of timeout errors in the consistent block
correctCountI Total number of correct responses in the inconsistent block
incorrectCountI Total number of incorrect responses in the inconsistent block (including timeout errors)
wrongKeyCountI Total number of wrong key responses in the inconsistent block (excluding timeout errors)
timeoutCountI Total number of timeout errors in the inconsistent block
Response Fluency Measures
fdC Per-minute response fluency in the consistent block [((correctCountC-incorrectCountC)/durationCMS)*60000]
fdI Per-minute response fluency in the inconsistent block [((correctCountI-incorrectCountI)/durationIMS)*60000]
fastRFD A per-minute Response Fluency Differential (RFD) score
that is suggested to reflect the degree to which the response fluency on the consistent block
is greater than that observed on the inconsistent block (Watters,2023,p.56-57).
calculated as
(((correctCountC-incorrectCountC)/durationCMS) - ((correctCountI-incorrectCountI)/durationIMS))*60000
=> positive scores indicate greater response fluency in consistent condition (expected)
=> negative scores indicate greater response fluency in inconsistent condition (unexpected result)
Watters (2023, p.56) writes that the blockDuration time was measured in seconds.
Millisecond believes this to be a typo because
1) to translate minutes into ms you need to multiply the minute time by
t_ms = t_min * 60*1000 = t_min * 60000 (the number stated in the equation)
with seconds you would only need to multiply the minute time by 60.
2) the RFD numbers provided by Watters (2023) would be much higher if the blockDuration was measured in seconds
=> Millisecond uses the blockDuration in ms for the RFD calculations
Learning Slope Measures (Based On Original Fast Script Code (Fast5.3) From Dr. Roche, March 2026)
slopeC The learning slope in the Consistent Condition
The slope is calculated as the slope of the regression line of the cumulative learning rate (accuracy plus time)
slopeI The learning slope in the Inconsistent Condition
slopeDifference The difference in slopes (slopeC-slopeI)
=> Positive scores (steeper learning in consistent condition) are expected results
=> Negative scores (steeper learning in inconsistent condition) are unexpected results
Signal Detection Measures (See 'Scoring' Comments Above)
hitRate Proportion of correct responses in Consistent condition
missRate Proportion of incorrect responses (including no responses) in Consistent condition
missRateTrue Proportion of incorrect key responses in Consistent condition
crRate Proportion of correct responses in Inconsistent condition
faRate Proportion of incorrect responses (including no responses) in Inconsistent condition
faRateTrue Proportion of incorrect key responses in Inconsistent condition
zHitRate The z-transformed hitRate
zFaRate The z-transformed faRate
zFaRateTrue The z-transformed faRateTrue
dPrime Measure of sensitivity, ability to distinguish between signals (required stereotypical responses) and noise (here: required 'non-stereotypical' responses)
=> The higher the value, the better signals (required stereotypical responses) were overall distinguished from noise (here: required 'non-stereotypical' responses)
=> NON-Typical (inconsistent) pairings presented less of a distraction
(d' = 0: chance performance; negative d-primes: opposite interpretations)
c Criterium measure
c-criterion in signal detection:The absolute value of c provides an indication of the strength of
the response bias/response style (conservative vs. liberal)
negative: more liberal, in this case suggesting that a stimulus would be consistent with the CONSISTENT pairing ('bias confirming')
positive: more conservative
dPrimeTrue DPrime measure, using 'faRateTrue'
cTrue DPrime measure, using 'faRateTrue'

Raw Data

File Name: fast_raw*.iqdat

Data Fields

NameDescription
build Inquisit version number
computer.platform Device platform: win | mac |ios | android
computer.touch 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities
computer.hasKeyboard 0 = no external keyboard detected; 1 = external keyboard detected
date Date the session was run
time Time the session was run
subject Participant ID
group Group number
session Session number
blockcode The name the current block (built-in Inquisit variable)
blocknum The number of the current block (built-in Inquisit variable)
trialcode The name of the currently recorded trial (built-in Inquisit variable)
trialnum The number of the currently recorded trial (built-in Inquisit variable)
trialnum is a built-in Inquisit variable; it counts all trials run
even those that do not store data to the data file.
condition "c" = consistent; "i" = inconsistent
blockOrder The order in which the consistent and inconsistent blocks are run
stimulusitem Presented stimuli
response The response of participant (scancode of response button)
responseText The label of the response button
correct Correctness of response (1 = correct, 0 = error)
latency Response latency (in ms); measured from: onset of stims
rspTimestamp Response timestamp of the current response (measured from onset of script)
respCategory 0 = timeout
1 = incorrect response key was pressed
2 = correct response

Parameters

The procedure can be adjusted by setting the following parameters.

NameDescriptionDefault
Ui Parameters
canvasColor The color of the portion of the screen used for the current task ("active")white
screenColor The color of the portion of the screen that is not used for the current taskwhite
defaultTextColor The default text colorblack
Design Parameters
skipPractice True = practice session is skipped (Waters et al, 2023, p.478, "[...] contemporary FAST studies generally omit practice blocks.")
false = a practice session is run
true
nPracticeTrials Number of practice trials (if practice block is run)10
nTestTrials Number of test trials run per consistent and inconsistent test block
this number will generate a balanced number of all four trialtypes in a block
52
Sizing Parameters
wordStimHeightPct The default height of the word stimuli (in canvas height%)5%
imageStimHeightPct The default height of picture stimuli (in canvas height%)20%
Timing Parameters
getReadyDurationMS Duration (in ms) of the getReady trial2000
stimDurationMS The duration (in ms) that the stims are presented (also the response time)3000
itiMS Interttrial interval (in ms): presents black screen before each new trial500
feedbackMS Feedback duration (in ms)500
Responsekeys
leftResponseKey The left response key (on a QWERTY keyboard)"Z"
rightResponseKey The right response key (on a QWERTY keyboard)"M"