User Manual: Inquisit Function Acquisition Speed Test (FAST) - template with mixed (picture/text) stimuli


										English Version
									(with picture stimuli)
																														


___________________________________________________________________________________________________________________	

								Function Acquisition Speed Test (FAST)
___________________________________________________________________________________________________________________	


Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC
Date: 10-13-2025
last updated:  10-14-2025 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 10-14-2025 Millisecond Software

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________
This script implements the Function Acquisition Speed Test (FAST), an implicit measure
of stimulus relatedness (based on prior learning).
It 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:											
////////////////

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
___________________________________________________________________________________________________________________
TASK 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).

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).

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

___________________________________________________________________________________________________________________	
DURATION 
___________________________________________________________________________________________________________________	
the default set-up of the script takes appr. 5 minutes to complete

___________________________________________________________________________________________________________________	
DATA OUTPUT DICTIONAIRY
___________________________________________________________________________________________________________________		
The fields in the data files are:

(1) Raw data file: 'XXX_raw*.iqdat'

build:						The specific Inquisit version used (the 'build') that was run
computer.platform:			the platform the script was run on (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, time: 				date and time script was run 
subject:					with the current subject id
group: 						with the current group id
session:					with the current session id

blockcode, blocknum:		the name and number of the current block (built-in Inquisit variable)
trialcode, trialnum: 		the name and number of the currently recorded trial (built-in Inquisit variable)
								Note: 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)


(2) Summary data file: 'xxx_summary*.iqdat'

inquisit.version:			Inquisit version run
computer.platform:			the platform the script was run on (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 script was run
starttime:					time script was started
subjectid:					assigned subject id number
groupid:					assigned group id number
sessionid:					assigned session id number
elapsedtime:				time it took to run script (in ms); measured from onset to offset of script
completed:					0 = script was not completed (prematurely aborted); 
							1 = script was completed (all conditions run)
							
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


//////FAST SCORE CALCULATIONS:
durationCMS: 				the block duration (in ms) of the consistent block
durationIMS:				the block duration (in ms) of the inconsistent block

correctCountC: 				total number of correct responses in the consistent block
incorrectCountC: 			total number of incorrect responses in the consistent block (including no response)
correctCountI: 				total number of correct responses in the inconsistent block
incorrectCountI: 			total number of incorrect responses in the inconsistent block (including no response)

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
							
							Note: 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 Software uses the blockDuration in ms for the RFD calculations
											
___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	

(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 Software - can be edited in script 'fast_stimuli_inc.iqjs'
___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________

provided by Millisecond Software - can be edited in script 'fast_instructions_inc.iqjs'
___________________________________________________________________________________________________________________	
EDITABLE CODE 
___________________________________________________________________________________________________________________	
check below for (relatively) easily editable parameters, stimuli, instructions etc. 
Keep in mind that you can use this script as a template and therefore always "mess" with the entire code 
to further customize your experiment.

The parameters you can change are:

//UI parameters
/ canvasColor = white					//the color of the portion of the screen used for the current task ("active")
/ screenColor = white					//the color of the portion of the screen that is not used for the current task
/ defaultTextColor = black				//the default text color

//design parameters
/ skipPractice = true					//true = practice session is skipped (Waters et al, 2023, p.478, "[...] contemporary FAST studies generally omit practice blocks.")
										//false = a practice session is run
										
/ nPracticeTrials = 10					//number of practice trials (if practice block is run)					
/ nTestTrials = 50						//number of test trials run per consistent and inconsistent test block

//sizing parameters
/ wordStimHeightPct = 5%				//the default height of the word stimuli (in canvas height%)
/ imageStimHeightPct = 20%				//the default height of picture stimuli (in canvas height%)

//timing parameters
/ getReadyDurationMS = 2000				//duration (in ms) of the getReady trial
/ stimDurationMS = 3000					//the duration (in ms) that the stims are presented (also the response time)
/ itiMS = 500							//interttrial interval (in ms): presents black screen before each new trial
/ feedbackMS = 500						//feedback duration (in ms)

//responseKeys:
/ leftResponseKey = "Z"
/ rightResponseKey = "M"