___________________________________________________________________________________________________________________ ANGLING RISK TASK (ART) ___________________________________________________________________________________________________________________ Author: Katja Borchert, Ph.D. (katjab@millisecond.com) for Millisecond Software, LLC Date: 05-02-2013 last updated: 01-08-2025 by K. Borchert (katjab@millisecond.com) for Millisecond Software, LLC Script Copyright © 01-08-2025 Millisecond Software ___________________________________________________________________________________________________________________ BACKGROUND INFO ___________________________________________________________________________________________________________________ This script implements the Angling Risk Task (ART), a procedure to study risk taking behavior. The implemented procedure is based on: Pleskac, T.J (2008). Decision Making and Learning While Taking Sequential Risks. Journal of Experimental Psychology: Learning, Memory, and Cognition, 34, 167+185. Note: the original ART as well as more detailed information can be obtained from Dr.Pleskac by request Millisecond Software thanks Dr. Pleskac for sharing his original program as well as generously supporting our efforts to replicate it in Inquisit! ___________________________________________________________________________________________________________________ TASK DESCRIPTION ___________________________________________________________________________________________________________________ Participants are playing in a fishing tournament for 30 (default) number of rounds. The goal is to win as much money as possible during each round. Participants win money by fishing red fish out of a pond that contains 127 red fish (default) and 1 blue fish. Each time they catch a red fish, they win 5cents (default) which is put in a temporary bank. If they catch the blue fish instead, the current round is over and all money in the temporary bank is lost. If participants don't want to lose their temporary money they have to decide when to stop catching fish and collect the money they have earned. Once they decide to collect the money, the money is transferred to a permanent bank and the current round is over. Participants can play the game under * 2 different weather conditions: a) 'clear' (all fish are visible) or b) 'cloudy' (no fish are visible) * 2 different release conditions: a) 'catch n'keep' (fish are not returned to the lake => chance to fish blue fish increases with each successful fishing attempt) b) 'catch n'release' (fish are returned to the lake => chance to fish blue fish stays constant) ART vs BART (Balloon Analogue Risk Task; Lejuez et al., 2002) from Pleskac - readme.txt (in original ART experimental package): "The weather conditions of the fishing tournament can also be changed to manipulate the amount of learning necessary in the task and test the learning and risk assessment prediction. The tournament can take place on a sunny day, allowing participants to see how many fish are swimming in the pond and eliminating the need to learn. In contrast, the tournament can take place on a cloudy day, concealing the fish in the pond, which in turn forces participants to learn how many are in the pond. This is a stronger manipulation of learning than can be done with the BART because it removes any helpful cues. For example, a helpful cue in the BART is the relation between the balloon size and the edge of the screen because the balloon is set to explode for certain when it fills the screen. The ART also offers a visually informative and understandable display in the sunny tournaments so that participants are fully aware of the parameters of the task." ___________________________________________________________________________________________________________________ DURATION ___________________________________________________________________________________________________________________ the default set-up of the script takes appr. 8-10 minutes to complete ___________________________________________________________________________________________________________________ DATA OUTPUT DICTIONARY ___________________________________________________________________________________________________________________ The fields in the data files are: (1) Raw data file: 'anglingrisktask_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 expCondition: 1 = clear, catch n'keep 2 = cloudy, catch n'keep 3 = clear, catch n'release 4 = cloudy, catch n'release releaseCondition: 1 = no release/catch n'keep (default); 2 = release/catch n'release weatherCondition: 0 = clear (default); 1 = cloudy maxFishCount: the number of fish in the pond at the start of each fishing round maxTripCount: number of fishing trips planned fixedSampling: 1 = fixed samling: the sampling of the blue fish is fixed across participants 0 = random sampling (default); computers samples randomly when the blue fish is caught (not predetermined) fixedFishingTrips: stores the number of fishingTrips that can be made under the fixed sampling condition Example: 64 => 63 successful fishing trips can be made before the blue fish is caught on the 64th trip reward: amount paid for each red fish caught (default: $0.05) 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. set: 1 (first third of fishing trips), 2 (second third), 3 (last third) tripCount: tracks the number of fishing trips nextFish: stores the number of the nextFish (1 = blue fish caught, any other number = red fish caught) winFishCount: stores the current number of red fish left in the pond currentWinnings: stores the current potential reward money (not safe yet) totalWinnings: stores the current reward money already safely in the bank response: the response of participant ("goFishButton", "collectButton", "okButton") successTrip: tracks the number of successful fishing trips (successful = did not fish a blue fish during this trip) latency: response latency (in ms) timeBefore1stCast: latency before participant decide to do first cast (empty if participant decides to collect right away) castLatency: time it takes for participant to decide to cast (starting at start of trial.xxxTournament); includes first cast sumRTCastLatency: sum of all cast latencies (used to calculate meanCastLatency) timeTimeBeforeCollect: time (in ms) before participant decides to collect (measured from onset of trip until collect; if balloon explodes it's empty) (2) Summary data file: 'anglingrisktaskSummary*.iqdat' (a separate file for each participant) inquisit.version: Inquisit version run 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) expCondition: 1 = clear, catch n'keep 2 = cloudy, catch n'keep 3 = clear, catch n'release 4 = cloudy, catch n'release releaseCondition: 1 = no release/catch n'keep (default); 2 = release/catch n'release weatherCondition: 0 = clear (default); 1 = cloudy maxFishCount: the number of fish in the pond at the start of each fishing round maxTripCount: number of fishing trips planned fixedSampling: 1 = fixed samling: the sampling of the blue fish is fixed across participants 0 = random sampling (default); computers samples randomly when the blue fish is caught (not predetermined) fixedFishingTrips: stores the number of fishingTrips that can be made under the fixed sampling condition Example: 64 => 63 successful fishing trips can be made before the blue fish is caught on the 64th trip reward: amount paid for each red fish caught (default: $0.05) totalWinnings: stores the current reward money already safely in the bank tripCount: actual number of fishing trips made tripCount1Set- per set (set1=trip1-trip10, set2= trip11-trip20, set3 = trip21-trip30) tripCount3Set: successTrip: tracks the number of successful fishing trips (successful = did not fish a blue fish during this trip) successTrip1Set- per set successTrip3Set: totalFishingCount: tracks the number of fishing attempts across all trips totalFishingCount1Set - per set totalFishingCount3Set: adjTotalFishingCount: tracks the number of SUCCESSFUL fishing attempts across all trips adjTotalFishingCount1Set- per set adjTotalFishingCount3Set: totalSuddenEnds: tracks the number of times a blue fish was caught totalSuddenEnds1Set- per set totalSuddenEnds3Set: avgFishingCount: mean number of times participant selected to fish (includes unsuccessful trips) avgFishingCount1Set- per set avgFishingCount3Set: adjAvgFishingCount: mean number of times participant selected to fish (EXCLUDES unsuccessful trips) adjAvgFishingCount1Set- by set adjAvgFishingCount3Set: meanCastLatency: mean cast latency for tournament ___________________________________________________________________________________________________________________ EXPERIMENTAL SET-UP ___________________________________________________________________________________________________________________ * This script runs any of the four conditions of the ART * By default, parameters can be set at the beginning of each script run ___________________________________________________________________________________________________________________ INSTRUCTIONS ___________________________________________________________________________________________________________________ Instructions are the original ART instructions by Pleskac (2008) (with minor modifications). Instructions are presented via simple htm pages. These htm pages are included with this script and can easily be adapted to different languages. ___________________________________________________________________________________________________________________ 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: /parameterSelection: parameterSelection = true (default): a screen is shown that let's participant/experimenter set the parameters parameterSelection = false; default values are used that can be changed below /showcatchring: 1= show a ring around the fish that was caught (default: 1) 0 = don't show a ring around the fish that was caught /catchring: duration the caught fish (with green ring around) is presented (default: 200ms) /showTripCount: 1 = 'tripCount' is presented on the screen; 2 = 'tripCount' is NOT presented on the screen (default) Parameters that are set up front IF parameterSelection = true (otherwise can be changed below) /maxFishCount: sets the number of fish in the pond (default: 128) suggested default for no-release condition: 128 (compares best to BART procedure) suggested default for release condition: 65 /weatherCondition: 0 = clear (default); 1 = cloudy /releaseCondition: 1 = no release/catch n'keep (default); 2 = release/catch n'release /maxTripCount: number of trips (default: 30) Note: it is suggested to use a number that is divisible by 3 as in addition to overall performance per trip condition, this script tracks performance by 3 sets of trips (first, second, third) Example: for 30 trips: first 10, second 10, third 10 trips get tracked separately if the chosen number is NOT divisible by 3, the script still runs but the summary variables may not be meaningful /reward: amount paid for each red fish caught (default: $0.05) /fixedSampling: 1 = fixed samling: participants would catch the blue fish at the same point for each fishing round 0 = random sampling (default); computers samples randomly when the blue fish is caught (not predetermined) !!!Note: fixed sampling only works in this script for 'catch n'keep' condition with N = 128 fish in the pond and tripnumbers = 30 If 'catch n'release' condition is chosen, sampling is changed automatically to random. If 'catch n'keep' condition is chosen, number of trips is set automatically to 30 and number of fish to 128 /fixedSamplingCheck: 1 = script automatically checks if the conditions for fixed sampling is met (if fixedSampling is selected) => if not, computer adjusts the conditions: for no-release conditions, the number of fish is set to 128 and the number of fishing trips is set to 30; for release conditions, fixed sampling is turned into random sampling 0 = script doesn't automatically check and correct conditions for fixed sampling => this is useful if you want to change the list that is used for fixed sampling (->list.explosionpoint) and adjust it for a different number of fish in the pond or different number of fishing trips.