Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: December 12, 2016
Last Modified: October 16, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements the Wason Rule Discovery Test, a test of confirmation bias.
Wason, P.C. (1960). On the failure to eliminate hypotheses in a conceptual task. Quarterly Journal of Experimental Psychology, 12, 129-140.
5 minutes
Participants get a sequence of 3 numbers (e.g. 248) and are asked if they can guess the underlying rule (default rule: increasing numbers) of the sequence by selecting different sequences of 3 numbers until they feel reasonably sure they know the rule. Once participants are relatively sure they know the rule, they are asked to describe it. The computer evaluates each response and gives preliminary feedback (optional).
sequence selection -> feedback -> sequence selection ->...-> until 'I think I know' button is selected
-> textbox that collects the description of the rule
-> Summary Feedback
provided by Millisecond - can be edited under section Editable Stimuli
instructions provided in wasonrulediscoverytest_instructions_inc.iqjs
File Name: wasonrulediscoverytest_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 |
| countGuesses | Number of all guesses made for a given rule |
| countPosGuesses | Number of all guesses that resulted in a "yes" |
| countNegGuesses | Number of all gueesses that resulted in a "no" |
| confirmationBias | 1 = participant only selected rule-confirming sequences (did not enter any sequence that received a "no" feedback) 0 = participant selected at least one sequence that received a "no" feedback empty = participant did not select any sequences |
| proposedRule | Stores the openended response for the proposed rule (if any) |
| ruleDetection | 1 = based on preliminary computer analyses of the given openended response based on keyword searches (keywords such as increase, grow, larger, bigger etc.) participant likely narrowed down the rule successfully 0 = otherwise the preliminary computer analyses are based on keyword searches and might have missed a correct result or falsely identified a 'correct' rule. Manual coding is advised. Sequence Analysis categorization of the sequences in terms of several categories, such as "only positive numbers", "mixed numbers", "only even numbers" (etc)) and keeps a count of how often participant used sequences that fall in those categories. => to contradict the rule "doubeling numbers", participant needed to test at least one sequence that used different ratios |
| countOnlyPositive | Counts all sequences that only contain positive numbers and/or zero (=> positive+) |
| countOnlyNegative | Counts all sequences that contain only negative numbers |
| countMixedPositiveNegative | Counts all sequences that contain a mixture of positive+ and negative numbers |
| countOnlyIntegers | Counts all sequences that contain only integers |
| countOnlyDecimals | Counts all sequences that contain only decimals |
| countMixedIntegerDecimals | Counts all sequences that contain a mixture of integers and decimals |
| countOnlyEvenNumbers | Counts all sequences that contain only even numbers (applies only to integers) |
| countOnlyOddNumbers | Counts all sequences that contain only odd numbers (applies only to integers) |
| countMixedOddEvenNumbers | Counts all sequences that contain a mixture of odd and even numbers (applies only to integers) |
| countSameRatios | Counts all sequences that contain only constant ratios (e.g. like doubling numbers) |
| countDifferentRatios | Counts all sequences that have different ratios |
| countSameIntervals | Counts all sequences that contain only numbers that are separated by equal distances (number2-number1 = number3-number2) |
| countDifferentIntervals | Counts all sequences that contain numbers that are not spread equally |
| countOnlyIncrease | Counts all sequences that only increase from number to number; 0 = otherwise |
| countOnlyDecrease | Counts all sequences that only decrease from number to number; 0 = otherwise |
| countMixedIncreaseDecrease | Counts all sequences that contain a mixture of increases and decreases; 0 = otherwise |
| countOnlyDifferent | Counts all sequences that contain only different numbers |
| countSomeEquals | Counts all sequences that contain at least 2 numbers that are the same |
File Name: wasonrulediscoverytest_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 |
| blockCode | Name of the current block |
| blockNum | Number of the current block |
| trialCode | Name of the current trial |
| trialNum | Number of the current trial |
| countRounds | Counts the number of rounds started |
| latency | The response latency (in ms); measured from onset of trial |
| response | The participant's response (selected button) |
| currentBox | The current number box that is in focus |
| targetNumber | The number that is currently entered |
| number1 | Stores the value of number1 |
| number2 | Stores the value of number2 |
| number3 | Stores the value of number3 |
| evaluate | Stores the evaluation of the entered sequence in regard to the tested rule (yes/no) |
| guess | 1 = 'yes' guess; 0 = 'no' guess |
| countGuesses | Counts all guesses made for a given rule |
| countPosGuesses | Counts all guesses that resulted in a "yes" |
| countNegGuesses | Counts all gueesses that resulted in a "no" |
| confirmationBias | 1 = participant only selected rule-confirming sequences (no sequences that received a "no" feedback) 0 = participant selected at least one sequence that received a "no" feedback empty = participant did not select any sequences |
| proposedRule | Stores the openended response for the proposed rule (if any) |
| ruleDetection | 1 = based on preliminary computer analyses of the given openended response based on keyword searches (keywords such as increase, grow, larger, bigger etc.) participant likely narrowed down the rule successfully 0 = otherwise the preliminary computer analyses are based on keyword searches and might have missed a correct result or falsely identified a 'correct' rule. Manual coding is advised. Sequence Analysis categorization of the sequences in terms of several categories, such as "only positive numbers", "mixed numbers", "only even numbers" (etc)) and keeps a count of how often participant used sequences that fall in those categories. |
| onlyPositive | 1 = the entered sequence contains only positive numbers or 0; 0 = otherwise |
| onlyNegative | 1 = the entered sequence contains only negative numbers; 0 = otherwise |
| onlyIntegers | 1 = the entered sequence contains only integers; 0 = otherwise |
| onlyDecimals | 1 = the entered sequence contains only decimals; 0 = otherwise |
| onlyEvenNumbers | 1 = the entered sequence contains only even numbers; 0 = otherwise (applies only to integers) |
| onlyOddNumbers | 1 = the entered sequence contains only odd numbers; 0 = otherwise (applies only to integers) |
| sameRatios | 1 = the entered sequence contains only numbers of the same ratios of number1number2 = number2number3; 0 = otherwise |
| sameIntervals | 1 = the entered sequence contains only numbers that are separated by equal distances number2-number1=number3-number1; 0 = otherwise |
| onlyIncrease | 1 = the entered sequence contains only numbers that increase; 0 = otherwise |
| onlyDecrease | 1 = the entered sequence contains only numbers that decrease; 0 = otherwise |
| onlyDifferent | 1 = all numbers are different from each other; 0 = otherwise (at least two numbers are the same) |
| countOnlyPositive | Counts all sequences that only contain positive numbers |
| countOnlyNegative | Counts all sequences that contain only negative numbers |
| countMixedPositiveNegative | Counts all sequences that contain a mixture of positive and negative numbers |
| countOnlyIntegers | Counts all sequences that contain only integers |
| countOnlyDecimals | Counts all sequences that contain only decimals |
| countMixedIntegerDecimals | Counts all sequences that contain a mixture of integers and decimals |
| countOnlyEvenNumbers | Counts all sequences that contain only even numbers (applies only to integers) |
| countOnlyOddNumbers | Counts all sequences that contain only odd numbers (applies only to integers) |
| countMixedOddEvenNumbers | Counts all sequences that contain a mixture of odd and even numbers (applies only to integers) |
| countSameRatios | Counts all sequences that contain only constant ratios (like doubling numbers) |
| countDifferentRatios | Counts all sequences that have different ratios |
| countSameIntervals | Counts all sequences that contain only numbers that are separated by equal distances (number2-number1 = number3-number2) |
| countDifferentIntervals | Counts all sequences that contain numbers that are not spread equally |
| countOnlyIncrease | Counts all sequences that only increase from number to number; 0 = otherwise |
| countOnlyDecrease | Counts all sequences that only decrease from number to number; 0 = otherwise |
| countMixedIncreaseDecrease | Counts all sequences that contain a mixture of increases and decreases; 0 = otherwise |
| countOnlyDifferent | Counts all sequences that contain only different numbers |
| countSomeEquals | Counts all sequences that contain at least 2 numbers that are the same |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
| exampleNumber1 | The first example number given | 2 |
| exampleNumber2 | The second example number given | 4 |
| exampleNumber3 | The third example number given | 8 |
| rule | The rule tested 1: increase in value (default); no other rule is implemented at this point! | |
| skipFeedback | True = no feedback/explanations about the task are provided at the end false = (preliminary) feedback/explanations about the task are provided at the end | |
| ruleDescription | Describes the rule in simple words (used in instruction pages) Note - only rule = 1 is implemented at this point. - this parameter is defined in wasonrulediscoverytest_instructions_inc.iqjs | "increasing numbers" |