Delay and Probability Discounting Procedure - Random Adjustment

Technical Manual

Script Author: Meticulously handcrafted from the finest code by David Nitz (nitz.david@gmail.com), Millisecond.

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

Script Copyright © Millisecond Software, LLC

Background

This script implements a Delay and Probability Discounting Procedure to establish a) the hypothetical payoffs at which people start to discount higher monetary rewards in favor of shorter wait periods (Delay Discounting) b) the fictional payoffs at which people start to discount high monetary rewards of unsure events in favor of lower monetary rewards of sure wins (Probability Discounting)

The implemented procedure is based on Richards et al (1999).

References

Richards, J. B., Zhang, L., Mitchell, S. H., & De Wit, H. (1999). Delay or probability discounting in a model of impulsive behavior: Effect of alcohol. Journal of the Experimental Analysis of Behavior, 71(2), 121-143.

Duration

15 minutes

Description

Participants choose between a standard amount of money ($10) with different time/probability delays or a variable amount with no delay until an indifference point for each delay is found or until the maximum number of trials has been run for each delay (default: 30).

Procedure

• 5 temporal delays and 5 probability "delays"; tested within in a mixed design
temporal delays are 0, 2, 30, 180 and 365 days
probability delays are: 100, 90, 75, 50 and 25 percent
=> change delays under section EDITABLE PARAMETERS
• 1 standard amount (10), variable amounts between 0 <=variable amount <= 10
• once an indifference point is found for a particular delay, that delay is not run any further
• potentially 30 trials can be run for each delay -> can be edited under block.dpdt
• after a predetermined amount of trials (see EDITABLE PARAMETERS), a distractor trial is run after each test trial
• script stops if an indifference point has been found for all delays or the maximum number of trials
has been run for each delay (default: 30).


Description Of The Adjustment Procedure:
If a subject picks the 'variable' amount on a given trial, the respective top and the bottom
limits are decreased according to the following three rules:
(a) If the 'variable' amount is less than the minimum top limit, the minimum top limit is set to
equal the 'variable' amount. The maximum top limit is set equal to the previous minimum top
limit.
(b) If the 'variable' amount is greater than the minimum top limit, the maximum top limit is
set to equal the 'variable' amount. The minimum top limit is left unchanged.
(c) If the 'variable' amount is less than the minimum bottom limit, the minimum bottom limit
is set to equal the 'variable' amount. The maximum bottom limit is set equal to $0.

If a subject picks the 'standard' amount ($10) on a given trial, the respective top and bottom
limits are increased according to the following three rules:
(a) If the 'variable' amount is greater than the minimum bottom limit, the minimum bottom
limit is set to equal the 'variable' amount. The maximum bottom limit is set equal to the
previous minimum bottom limit.
(b) If the 'variable' amount is less than the minimum bottom limit, the maximum bottom limit
is set to equal the 'variable' amount. The minimum bottom limit is left unchanged.
(c) If the 'variable' amount is greater than the minimum top limit, the minimum top limit is
set to equal to the current 'variable' amount. The maximum top limit is set to equal the
'standard' amount ($10).

As soon as the difference between the respective maximum bottom limit and maximum top
limit reaches $0.50, the corresponding variable amount is recorded as estimate of the
respective indifference point.
After an indifference point has been successfully determined for a particular temporal or
probabilistic delay, no more trials of that type will be run.

Instructions

see section EDITABLE INSTRUCTIONS

Summary Data

File Name: dpdt_richards_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
nips The total number of successfully determined indifference points.
The procedure determines a total of 10 different indifference points
(for five temporal delays, 't1' to 't5', and five probabilistic 'delays', 'p1' to 'p5').
The procedure is stopped as soon as 'expressions.nips' returns 10,
i.e. when all indifference points at question have been obtained.
t1IpFound Value reflecting whether an indifference point has been successfully determined ('1') or not ('0') for temporal delay t1.
t1Ip Obtained indifference point estimate for temporal delay t1
t2IpFound Value reflecting whether an indifference point has been successfully determined ('1') or not ('0') for temporal delay t2.
t2Ip Obtained indifference point estimate for temporal delay t2
t3IpFound Value reflecting whether an indifference point has been successfully determined ('1') or not ('0') for temporal delay t3.
t3Ip Obtained indifference point estimate for temporal delay t3
t4IpFound Value reflecting whether an indifference point has been successfully determined ('1') or not ('0') for temporal delay t4.
t4Ip Obtained indifference point estimate for temporal delay t4
t5IpFound Value reflecting whether an indifference point has been successfully determined ('1') or not ('0') for temporal delay t5.
t5Ip Obtained indifference point estimate for temporal delay t5
p1IpFound Value reflecting whether an indifference point has been successfully determined ('1') or not ('0') for probabilistic delay p1.
p1Ip Obtained indifference point estimate for probabilistic ‘delay’ p1
p2IpFound Value reflecting whether an indifference point has been successfully determined ('1') or not ('0') for probabilistic delay p2.
p2Ip Obtained indifference point estimate for probabilistic ‘delay’ p2
p3IpFound Value reflecting whether an indifference point has been successfully determined ('1') or not ('0') for probabilistic delay p3.
p3Ip Obtained indifference point estimate for probabilistic ‘delay’ p3
p4IpFound Value reflecting whether an indifference point has been successfully determined ('1') or not ('0') for probabilistic delay p4.
p4Ip Obtained indifference point estimate for probabilistic ‘delay’ p4
p5IpFound Value reflecting whether an indifference point has been successfully determined ('1') or not ('0') for probabilistic delay p5.
p5Ip Obtained indifference point estimate for probabilistic ‘delay’ p5
text.subjectQuestion.currentItem The question that was randomly selected to determine participant’s reward
text.subjectAnswer.currentItem The participant’s response to the win question

Raw Data

File Name: dpdt_richards_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 cou
trialCount Total number of trials run (including distractor trials).
latency The participant’s response latency (in ms) for the current trial (in ms)
response The selected response of the participant for the current trial (for most trials: A or B)
text.question.currentItem The actual decision question presented to participant
questionType 0 = temporal delay question; 1 = probabilistic delay question
text.subjectQuestion.currentItem The question that was randomly selected to determine participant’s reward
text.subjectAnswer.currentItem The participant’s response to the win question
var 'Variable' amount of money offered in the current trial. This value is computed according to the proper bottom and top limits (see below) by expressions 't1Var' through 'p5Var'.
std 'Standard' amount of money to use throughout the task. Default is 10.
The Following Variable Is Only Relevant For Trials With Question Type = 1
t Value of the current temporal delay used in a given trial.
The Following Variable Is Only Relevant For Trials With Question Type = 2
p Value of the current probabilistic 'delay' used in a given trial.
The Following Variables Are Only Relevant For Trials Trialcode = “T1” (The Same Applies To All Temporal Delay Trials.T2-T5)
t1BMax The respective maximum bottom limits for temporal delay t1. Used to determine the variable amount of money offered in a given t1 trial and to adjust the limits for subsequent t1 trials.
t1BMin The respective minimum bottom limits for temporal delay t1. Used to determine the variable amount of money offered in a given t1 trial and to adjust the limits for subsequent t1 trials.
t1TMin The respective minimum top limits for the temporal delay t1. Used to determine the variable amount of money offered in a given t1 trial and to adjust the limits for subsequent t1 trials.
t1TMax The respective maximum top limits for the temporal delay t1. Used to determine the variable amount of money offered in a given t1 trial and to adjust the limits for subsequent t1 trials.
t1Var 'variable' amount for temporal delays t1. The valid range is restricted by the respective maximum bottom and maximum top limits. Values returned lie between those limits in 0.5 increments.
t1Count Number of trials for temporal delay t1.
t1IpFound Value reflecting whether an indifference point has been successfully determined ('1') or not ('0') for temporal delay t1.
t1Ip Obtained indifference point estimate for temporal delay t1
parameters.t1 Predetermined value for temporal delay t1 questions in this script (t1 = 0)
The Following Variables Are Only Relevant For Trials Trialcode = “P1” (The Same Applies To All Probabilistic Delay Trials.P2-P5)
p1BMax The respective maximum bottom limits for probabilistic ‘delay’ p1. Used to determine the variable amount of money offered in a given p1 trial and to adjust the limits for subsequent p1 trials.
p1BMin The respective minimum bottom limits for probabilistic ‘delay’ p1. Used to determine the variable amount of money offered in a given p1 trial and to adjust the limits for subsequent p1 trials.
p1TMin The respective minimum top limits for the probabilistic ‘delay’ p1. Used to determine the variable amount of money offered in a given p1 trial and to adjust the limits for subsequent p1 trials.
p1TMax The respective maximum top limits for the probabilistic ‘delay’ p1. Used to determine the variable amount of money offered in a given p1 trial and to adjust the limits for subsequent p1 trials.
p1Var 'variable' amount for probabilistic ‘delay’ p1. The valid range is restricted by the respective maximum bottom and maximum top limits. Values returned lie between those limits in 0.5 increments.
p1Count Number of trials for probabilistic ‘delay’ p1.
p1IpFound Value reflecting whether an indifference point has been successfully determined ('1') or not ('0') for probabilistic ‘delay’ p1.
p1Ip Obtained indifference point estimate for probabilistic ‘delay’ p1
p1 Predetermined value for probabilistic ‘delay’ for p1-questions in this script (p1 = 100)
Relevant For All Trials
nips The total number of successfully determined indifference points.
The procedure determines a total of 10 different indifference points
(for five temporal delays, 't1' to 't5', and five probabilistic 'delays', 'p1' to 'p5').
The procedure is stopped as soon as 'expressions.nips' returns 10, i.e. when all
indifference points at question have been obtained.
distractorStart Number of trials to run *before* distractor trials should be added to the mix.
Default is 70, i.e. after 70 experimental trials ('t1' to 'p5') have been run,
every second trial will be a distractor trial ('d0').
d0Count Total number of distractor trials run
d0Var Computes a random 'variable' amount to be used in distractor trials ('d0').
The value returned always lies between 0 and the defined 'standard' amount ($10) in 0.5 increments

Parameters

The procedure can be adjusted by setting the following parameters.

NameDescriptionDefault
pretrialDelay Adjustable pretrialpause in milliseconds. Change as needed.500
posttrialDelay Adjustable posttrialpause in milliseconds. Change as needed.0
distractorStart Number of trials to run *before* distractor trials should be
added to the mix. Default is 70, i.e. after 70 experimental
trials ('t1' to 'p5') have been run, every second trial will be a
distractor trial ('d0').
70
std 'Standard' amount of money to use throughout the task.10
5 Temporal Delays
t1 Temporal delay t1 (in days)0
t2 Temporal delay t2 (in days)2
t3 Temporal delay t3 (in days)30
t4 Temporal delay t4 (in days)180
t5 Temporal delay t5 (in days)365
5 Probabilistic 'Delays'
p1 Probabilistic 'delay' p1 (in percent)100
p2 Probabilistic 'delay' p2 (in percent)90
p3 Probabilistic 'delay' p3 (in percent)75
p4 Probabilistic 'delay' p4 (in percent)50
p5 Probabilistic 'delay' p5 (in percent)25