Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: January 12, 2024
Last Modified: January 06, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements Millisecond's version of the 'The Work for Environmental Protection Task' (WEPT, Lange & Dewitte, 2022), a cognitive effort task to study online societally relevant behaviors.
The default setup up of the script runs with proportional sizing. Researchers can select to run the task with an absolute screen size to ensure that distances stay the same across devices. Go to section Defaults for more information.
Lange, F., & Dewitte, S. (2022). The Work for Environmental Protection Task: A consequential web-based procedure for studying pro-environmental behavior. Behavior Research Methods, 54(1), 133–145. https://doi.org/10.3758/s13428-021-01617-2
10 minutes
Participants are asked to work on a simple cognitive task ('find all the 2-digit numbers with an even first and odd second digit') to generate donation money for a specified charity. The task consists of one practice page (to demonstrate the task) and 15 possible test pages. The 15 possible test pages run 3 different donation amounts x 5 different amounts of 2-digit numbers per page (max: 200). Participants decide for each page separately if they are willing to work for the promised donation money.
Design: 3 donation amounts x 5 different amounts of stims on the page x 1 repetition =
15 different experimental conditions
this script provides the functionality to run fewer conditions. See section Editable parameters for more info.
(1) Practice
The script starts each participant on a practice page that presents 20 2-digit numbers
-> each number is randomly (with replacement) selected (probability of a target selection: 20/90 ~ 22%)
-> 20 numbers per line
-> unlimited time to select targets (corrections possible)
-> selected numbers are highlighted*
-> once submitted, feedback is provided (the program circles incorrect responses as well as missed targets)
(2) Test
Participants are told that there are 15 (default) more pages with varying amount of numbers (Max: 200)
Each page provides the opportunity to earn donation money for a specified charity.
To earn that money, participants have to get at least 90% of the numbers correct.
For each of the 15 pages, participants are told
- amount of numbers per page
- donation money that can be earned
Participation is voluntary for each page and participants can decline to work on a specific page
(by pressing the NO button).
-> each number is randomly (with replacement) selected (probability of a target selection: 20/90 ~ 22%)
-> there are 20 numbers per line; 10 lines Max (for Max: 200 numbers)
-> unlimited time to select targets (corrections possible)
-> selected numbers are highlighted*
-> no feedback is provided for test pages
-> The order of the 15 conditions (donation money x amount of stims per page) is selected randomly (without replacement).
•Color Settings:
By default, this script presents the numbers black on a white background. Selected numbers are highlighted in yellow.
Change color settings under section Editable Parameters
provided by Millisecond - can be edited under section 'Editable Stimuli'
provided by Millisecond - can be edited under section 'Editable Instructions'
The instructions are based on published instruction from Lange & DeWitte (2022)
File Name: environmentalprotectiontask_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| 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 |
| totalDonation | Cumulative sum of the final donations earned (adds up offered donations for all pages selected where participants reaches 90% accuracy) |
| propParticipation | Overall participation rate |
| overallMeanParticipationDecisionRT | Mean participant response time (in ms) |
| meanPropSignalsPerPage | The mean proportion of signals (targets) per page |
| overallPropCorrect | Overall proportion correct (for selected pages only) |
Per Page |
|
| condition1 | Experimental condition of page1 (15 condition total = 3 donation values x 5 number of stims) |
| stims1 | The number of stims presented on page1 |
| donation1 | The offered donation amount for page1 participation |
| participation1 | 1 = participant participated on page1; 0 = participant declined to participate on page1 |
| participationDecisionRT1 | The participation response time (in ms) for page1 |
| acc1 | Proportion correct responses for page1 participation |
| duration1 | The time (in ms) participation spent on page1 |
| faRate1 | The false alarm rate for page1 participation |
| hitRate1 | The hitrate for page1 participation (same for pages2-15) |
File Name: environmentalprotectiontask_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
Design Parameters |
|
| parameters.numberDonationAmountsToRun | The number of donation amounts run (Max: 3) |
| parameters.numberStimsToRun | The number of different stimulus amounts to run (Max: 5) => 3x5 = 15 different condition is the max to run |
Built-In Inquisit Variables |
|
| blockCode | Name of the current block |
| blockNum | Number of the current block |
| trialCode | Name of the current trial |
| trialNum | Number of the current trial |
| response | The response of participant (scancode of response button) |
| correct | Correctness of response (1 = correct, 0 = error) |
| latency | Response latency (in ms); measured from |
Custom Variables |
|
| phase | "practice" vs. "test" |
| totalDonation | Cumulative sum of the donations made (adds up offered donations for all pages selected where participants reaches 90% accuracy) |
| pageCounter | Counts the number of pages worked on |
| pageCondition | 1-15 (15 condition total = 3 donation values x 5 number of stims) |
| pageParticipation | 0 = participant declined to participate on the current page 1 = participant agreed to participate on the current page |
| pageParticipationRT | Response time (in ms) for participation decision |
| pageDonation | The donation that will be made if conditions are met for the current page |
| pageStims | The number of stims on the current page |
| pageSignals | The number of signals/targets on the current page |
| pageFoils | The number of foils on the current page |
| propSignalsPerPage | Proportion of signals to stims on the current page |
| pageAcc | Proportion correct decisions for the current page (proportion correct = (number of hits + number of correct rejections)/number of stims) |
| pageCorrect | Number of correct decisions for the current page (number of hits + number of correct rejections) |
| pageHits | Number of hits (correctly selected signals/targets) |
| pageFas | Number of false alarms (incorrectly selected foils) |
| pageDurationMS | Time (in ms) spent on the current page |
Specific Page Info: (For All 200 Possible Stims) |
|
| text.n1.skip | 0 = number1 was presented; 1 = number1 was skipped |
| number1 | The currently randomly selected number for number1 |
| number1Signal | 1 = number1 is a signal/target (first digit is even, second digit is odd) 0 = number1 is a foil |
| number1Selected | 1 = number1 is currently selected by participant 0 = number1 is currently unselected by participant |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Color Parameter |
||
| canvasColor | Display color of the actively used portion of the screen (the 'canvas') if set to a color other than the screenColor, the active canvas appears 'anchored' on the screen regardless of monitor size | white |
| screenColor | Color of the screen not used by the canvas ('inactive screen') | white |
| defaultTextColor | Default color of text items presented on active canvas | black |
| selectionHighLightColor | yellow //Default color to highlight the selected numbers | |
Screen Sizes |
||
| runAbsoluteSizes: | True = runs absolutely sized canvas (see parameters.canvasHeightMM) false = uses proportionally sized canvas (uses width = 4/3*screenHeight) the script will look for the larges 4:3 area it can find on the current screen | false |
The Setting Of The Active Canvas In Absolute Mm Is Only Relevant If Parameters.Runabsolutesizes = True (1) |
||
| canvasHeightMM: | The height (H) of the active canvas in mm the width of the active canvas (W) is automatically set at ratio: W:H ~ 4:3 => W= 4/3*canvasHeightMM = 144mm*4/3=192mm (default) | 144 |
Sizing Parameters In Relative Measurements |
||
| charity | Add the charity here | "[Charity]" |
| charityDescription | add additional info that should appear in the instructions about the charity here | "an environmental non-profit organization working on the preservation of tropical forests. [Charity] invests, for example, in reforestation and environmental education in Latin America." |
| showTotalDonationAtEnd | True: shows the total donation earned at the end (based on 90% accuracy per page) false: no donation information is provided at the end Lange & DeWitte (2022) call a page completed only if the duration spent on this page is not 2*SD lower than that of the sample mean for the particular page condition. However, to calculate this completion rate, the sample mean has to be known. | true |
Design: Donation Amounts (Iv1) X Number Of Stims On Screen (Iv2) |
||
Donation Amounts (Iv1) |
||
| numberDonationAmountsToRun | This specifies the number of levels for IV1 (donation amounts) (MAX: 3) | 3 |
| donationAmount1 | IV1 level1 | 0.1 |
| donationAmount2 | IV1 level2 | 0.2 |
| donationAmount3 | IV1 level3 | 0.3 |
| montaryUnit | The monetary unit the donations should be made in | "$" |
| unitPlacement | The placement of the monetary unit sign ("after" vs. "before"), Examle: US $ "before" ->$0.1 | "before" |
The 5 Possible Stim Numbers To Appear On The Page (Iv2) |
||
| numberStimsToRun | This specifies the number of levels for IV2 (number of stims on the screen) (MAX: 5) | 5 |
| stimNumbers1 | IV2 level 1: 40 numbers on the screen | 40 |
| stimNumbers2 | IV2 level 2: 80 numbers on the screen | 80 |
| stimNumbers3 | IV2 level 3: 120 numbers on the screen | 120 |
| stimNumbers4 | IV2 level 4: 160 numbers on the screen | 160 |
| stimNumbers5 | IV2 level 5: 200 numbers on the screen | 200 |
Timing Parameters |
||
| taskPageDelayMS | The delay of the page with the stims after participant decide to participate or not | 500 |
Debugging Parameters |
||
| debugMode | True: presents feedback for the test pages to check that calculations etc. match false: does not present test feedback (should be set to false for testing!!!!) | false |