User Manual: Inquisit Cognitive Effort Discounting Task with Gain/Loss Condition


___________________________________________________________________________________________________________________	

						Cognitive Effort Discounting Task (with n-back task)
						- includes gain/loss condition-
___________________________________________________________________________________________________________________

Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software LLC
last updated:  03-22-2024 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC

Script Copyright © 03-22-2024 Millisecond Software

Millisecond Software thanks Jenny Crawford and the Braver lab at Washington University in St. Louis 
for help fine-tuning this Cognitive Effort Discounting Task procedure!

___________________________________________________________________________________________________________________
BACKGROUND INFO 	
___________________________________________________________________________________________________________________	
This script implements a Cognitive Effort Discounting Procedure to establish
indifference points (minimum price points) at which people start to discount ("devalue") monetary rewards
paid for higher effort tasks in favor of less paid lower effort tasks
as well as indifference points at which people start to devalue lower monetary Losses
paid for higher effort tasks in favor of lower effort tasks resulting in higher monetary losses.


The general procedure is based on Westbrook et al (2013) but expands on the original study by
including a gain and loss cognitive effort discounting condition as developed by the Braver lab at
Washington University in St. Louis.

Reference:											
											
Westbrook A, Kester D, Braver TS (2013). What Is the Subjective Cost of Cognitive Effort? Load,
Trait, and Aging Effects Revealed by Economic Preference. 
Pessiglione M, ed. PLoS One 981 8:e68210.
	
											
___________________________________________________________________________________________________________________
TASK DESCRIPTION	
___________________________________________________________________________________________________________________
Participants are repeatedly asked to choose between a more difficult cognitive task with
a higher earning potential or an easier cognitive task with less earning potential.
Through a series of questions the participants' cognitive effort indifference point for the pair
of tasks is determined (aka the price point at which participants start to devalue the potential
higher pay for a challenging cognitive task in favor of less pay for a less challenging one).
(Note: the same is done for a 'Loss' condition. People are asked to choose between a more difficult
cognitive tasks with a promised lower loss and an easier task with a promised higher loss)
		
In this script, the cognitive task chosen is the n-back working memory task.
4 levels of n-back tasks are used in this task (editable) with the 1-back being the designated 'easy' task.

The procedure is divided into 5 phases:

1. Participants get familiar with the n-back procedure and work through several rounds of n-back tasks for the 
different levels of N. The n-back levels are referred to by assigned colors.

2. Gain Condition: Participants work through the indifference point estimation procedure (without actually performing the n-back tasks)
for the 3 higher levels of N (1 vs.2; 1 vs. 3; 1 vs. 4)
=> 3 indifference points are estimated for each level of N tested

3. One of the participant's choices is randomly selected, the participant works through 5 (default) more rounds
of n-backs with the selected N and promised reward.

4. Loss Condition: Participants work through the indifference point estimation procedure (without actually performing the n-back tasks)
for the 3 higher levels of N (1 vs.2; 1 vs. 3; 1 vs. 4)
=> 3 indifference points are estimated for each level of N tested

5. One of the participant's choices is randomly selected, the participant works through 5 (default) more rounds
of n-backs with the selected N and promised "loss".

											
*N-back Task (with letter stimuli)*
*2-key n-back procedure*
									
The 2-key n-back task requires participants to press one key for targets (go) and
another key for non-targets. Which stimuli are targets depends on the level of N:										
										
for N=1 trials (1-back):
- is the letter the same as the one that preceded it? If so (it's a target), and press "S". If not, press "K".

for N=2 trials (2-back):
- is the letter the same as the one presented two trials before? If so (it's a target), and press "S". If not, press "K".

for N=3 trials (3-back):
- is the letter the same as the one presented three trials before? If so (it's a target), and press "S". If not, press "K".

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

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

(1) Raw data file: 'cognitiveeffortdiscountingtask_complete_raw.iqdat' (a separate file for each participant)

build:						The specific Inquisit version used (the 'build') that was run
computer.platform:			the platform the script was run on (win/mac/ios/android)
date, time: 				date and time script was run 
subject, group: 			with the current subject/groupnumber
session:					with the current session id

taskOrder: 					1 = gain condition runs before loss condition; 2 = loss condition runs before gain condition

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 such as feedback trials. Thus, trialNum 
									may not reflect the number of main trials run per block. 
										
discountingCondition:		"gain" vs. "loss" 										

phase1BlockCount:			the total number of n-back practice blocks run (phase 1)
phase3BlockCount:			the total number of phase 3 n-back blocks run

phase:						1 = n-back practice
							2 = indifference point assessment
							3 = final n-back runs to earn money
								
n:							the level of N currently tested								

stimulusItem.1:				phase1/phase3: n-back trials: the letter presented																
stimulusNumber.1: 			n-back trials: the item number of the presented letter

currentTarget:				n-back trials: the item number of the current target

response:					the response of the participant (scancode of response button)
							nback trials:
							31 = S (for n-back trials: correct target response)
							37 = K (for n-back trials: correct notarget response)
									
							choice trials:
							16 = Q (left box selected during Choice Trials)
							25 = P (right box selected during Choice Trials)
									
							remaining trials:
							57 = spacebar
							0 = no response
									
																		
correct:					the correctness of the response (1 = correct; 0 = otherwise)
							Note: has no meaning for phase 2 trials
									
latency:					how fast a participant responded within the given timeframe (in ms)
							Phase1/Phase3: n-back trials => latencies of 1500ms (stimulus presentation time) are no responses

									
the following variables have only meaning for phase2:									
n1X:						25pct = the N1 reward was located in the left box
							75pct = the N1 reward was located in the right box
								
level1Reward:				Phase 2: the currently offered reward for choosing the 1-back task									
levelNReward:				Phase 2: the currently offered reward for choosing the higher level N-back task							


the following variables have only meaning for phase3:
roundWinAmount: 			Phase 3: the amount won after the current phase 3 round
totalWinAmount:				Phase 3: the total amount won during phase 3


//current NASATLX summary variables: on scale: 1 (very low) - 21 (very high)
mentalDemand:
physicalDemand:
temporalDemand:
performance:
effort:
frustration:
								
								
(2) Summary data file: 'cognitiveeffortdiscountingtask_summary*.iqdat' (a separate file for each participant)

inquisit.version:  			the inquisit build/version
computer.platform:			the platform the script was run on (win/mac/ios/android)
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)
									
taskOrder: 					1 = gain condition runs before loss condition; 
							2 = loss condition runs before gain condition									


//Phase 2 Variables:
//Gain Indifference Points
ip12-ip16:							indifference points for the gain trials
									(here: level1Reward after the 6th choice for the currently tested level of N)

//Loss Indifference Points									
ip12Loss-ip16Loss:				indifference points for the loss trials									
									
//Phase 3 Variables:								
totalWinAmount:						the total win amount from phase 3 (across both gain and loss phase3 trials)								

finalNReward:						final N in Reward phase 3 trials
finalRewardReward:					final promised Reward in Reward phase 3 trials

finalNLoss:						final N in Loss phase 3 trials
finalRewardLoss:					final promised Reward in Loss phase 3 trials

//Phase 1 Variables:																
hitRateN1-
hitRateN6:							store the hitrates (targets) for N levels 1-6 during phase 1 (across all rounds for each N-level)
									hit = pressing 's' for a target trial
crRateN1-
crRateN6:							store the correct rejection (non-targets) rate for N levels 1-6 during phase 1 (across all rounds for each N-level)			 	
									CR = pressing 'k' for a non-target trial
									
									
//NASATLX summary variables (per level of Nback run during phase 1): on scale: 1 (very low) - 21 (very high)								
mentalDemand1:					
physicalDemand1:
temporalDemand1:
performance1:
effort1:
frustration1:									
								

___________________________________________________________________________________________________________________	
EXPERIMENTAL SET-UP 
___________________________________________________________________________________________________________________	

5 phases:

(1) Phase 1: n-back Practice

- by default, this script runs through 1 run of N-levels 1-4 (see section Editable Parameters to select N-levels and/or change number
of rounds) => 4 blocks of n-backs

- each n-back block runs for 20 trials (see section Editable Parameters to change the number of trials; the start trials that
cannot be target yet are not counted towards the trialCount)
Note: Westbrook et al (2013) ran 64 trials per block.

- each block runs 25% targets (here: 5 target trials) (see section Editable Parameters to change the proportion)
!!!This script does not run target-lure trials (see Westbrook et al, 2013, p.2)
- the order of targets and nontargets is randomly determined

- this script uses a 2 key n-back procedure: one key (S) is used for target identification; another (K) for nontarget identification

- each level of N is assigend a particular letter color
Note: the level of N is only referenced by assigned color
N1 = black
N2 = red
N3 = blue
N4 = purple
N5 = green
N6 = brown

- at the end of each block, participants receive feedback

Trial Sequence:
Letter (1500ms = response timeout) -> Fixation Cross (2000ms) -> Letter.....

Responses are only registered during letter presentations. Responses do not interrupt letter presentations. 

Note: after each level participants are asked to self-report on the 6 rating scales of the NASA TASK LOAD INDEX- Survey:
/mentalDemand
/physicalDemand
/temporalDemand
/performance
/effort
/frustration

(2) Phase 2 (GAIN): Indifference Point Estimations
- 3 Indifference Points for level of N tested (e.g. 3 different standard amounts are offered for each level of N)
- by default this script runs 54 trials = 3 levels of N (2, 3, 4) x 3 IPs per N level x 6 trials
- the trials are presented in random order in a mixed design
- level of n-backs are referred to only by color
- the position (right/left) of the standard amount is randomly determined:
half the trials the standard amount appears on the right
- participants have 9s to make a choice (after 9s the black task is automatically assigned as the default choice)

Indifference Point Algorithm:
- the harder level N always offers a higher (fixed) reward (see section Editable Parameters),
- the possible reward for the easier 1-back starts at 1 but gets adjusted according to the choices made:
	- if the harder choice was previously selected; the reward goes up (by half the previous adjustment)
	- if the easier choice was previously selected; the reward goes down (by half the previous adjustment)
- Indifference Points: the adjusted reward for level 1 after the last choice (aka: the reward offered for level 1 on the 
7th round)

(3) Phase 3 (GAIN): Actual Money Earning Phase  (can be skipped; see parameters.phase3Runs for more info)
- one of the 3 (level of N: 2-4) * 6 (trials per level of N) * 3 indifference points per n-level = 54 choice trials
from Phase 2 is randomly selected by the computer
- the chosen N during that trial as well as the promised reward is used for another 5 (editable)
rounds of n-backs

This script does not provide any behavioral measure of actual 'effort' during phase 3

(4) Phase 2 (LOSS): Indifference Point Estimations
- 3 Indifference Points for level of N tested (e.g. 3 different standard amounts are offered for each level of N)
- by default this script runs 54 trials = 3 levels of N (2, 3, 4) x 3 IPs per N level x 6 trials
- the trials are presented in random order in a mixed design
- level of n-backs are referred to only by color
- the position (right/left) of the standard amount is randomly determined:
half the trials the standard amount appears on the right
- participants have 9s to make a choice (after 9s the black task is automatically assigned as the default choice)

Indifference Point Algorithm:
- the easy Black level (1back) always offers a higher (fixed) Loss (see section Editable Parameters),
- the variable Loss for the more difficult Nback starts at half the loss of the 1back but gets adjusted according to the choices made:
	- if the harder choice was previously selected; the Loss goes up for the harder amount (by half the previous adjustment)
	(=> the lower loss amount for the more difficult task was already enough to get participant to show more effort,
	so the next step is to see whether a higher loss amount for the more difficult task is still enough for participants to 
	choose the higher effort task or whether the higher loss amount now makes that choice less 'tempting')
	
	- if the easier choice was previously selected; the Loss goes down for the harder amount (by half the previous adjustment)
	(=> the lower loss amount for the more difficult task wasn't quite enough yet to get participant to show more effort,
	so we try to 'tempt' participants with a lower loss amount in the next round)
	
- Indifference Points: the adjusted Loss for level X after the last choice (aka: the Loss offered for level N on the 
7th round)

(5) Phase 3 (LOSS): Actual Money Earning Phase  (can be skipped; see parameters.phase3Runs for more info)
- one of the 3 (level of N: 2-4) * 6 (trials per level of N) * 3 indifference points per n-level = 54 choice trials
from Phase 2 is randomly selected by the computer
- the chosen N during that trial as well as the promised Loss is used for another 5 (editable)
rounds of n-backs

This script does not provide any behavioral measure of actual 'effort' during phase 3

Note: the order of GAIN and LOSS tasks is counterbalanced by groupnumber
odd group numbers: run Gain -> Loss
even group numbers: run Loss -> Gain
___________________________________________________________________________________________________________________	
STIMULI
___________________________________________________________________________________________________________________
* the n-back task runs with consonants (see section Editable Stimuli)
* the size of the letters can be adjusted under section Editable Parameters

___________________________________________________________________________________________________________________	
INSTRUCTIONS 
___________________________________________________________________________________________________________________	
provided by Millisecond Software as *.htm files.
To change instructions, edit the htm files directly (e.g. in TextEdit for Macs or Notepad for Windows).
Instructions have been generously shared by Jenny Crawford and her lab

___________________________________________________________________________________________________________________	
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: