Skip to contents

This function documents the anticipated user behavior by listing bias mitigation strategies related to anchoring, framing, confirmation bias, etc. It also supports adding interaction hints and visual feedback elements.

Usage

bid_anticipate(
  previous_stage,
  bias_mitigations = NULL,
  interaction_principles = NULL
)

Arguments

previous_stage

A tibble or list output from an earlier BID stage function.

bias_mitigations

A named list of bias mitigation strategies. If NULL, the function will suggest bias mitigations based on information from previous stages.

interaction_principles

A named list of interaction principles (optional).

Value

A tibble containing the documented information for the "Anticipate" stage.

Examples

structure_info <- bid_structure(
  bid_interpret(
    bid_notice(
      "Issue with dropdown menus",
      evidence = "User testing indicated delays"
    ),
    central_question = "How can we improve selection efficiency?",
    data_story = list(
      hook = "Too many options",
      context = "Excessive choices",
      tension = "User frustration",
      resolution = "Simplify menu"
    )
  ),
  layout = "dual_process",
  concepts = c("principle_of_proximity", "default_effect")
)
#> Auto-suggested theory: Hick's Law (confidence: 90%)
#> Stage 1 (Notice) completed. (20% complete)
#>   - Problem: Issue with dropdown menus
#>   - Theory: Hick's Law (auto-suggested)
#>   - Evidence: User testing indicated delays
#>   - Theory confidence: 90%
#>   - Next: Use bid_interpret() for Stage 2 
#> Stage 2 (Interpret) completed.
#>   - Central question: How can we improve selection efficiency?
#>   - Your data story has all key elements. Focus on making each component compelling and relevant.
#>   - Your central question is appropriately scoped.
#>   - No user personas defined 
#> Returning all 41 concepts
#> 
#> ── Implementation tips for selected concepts: 
#>Principle of Proximity: Place related controls and visualizations in
#> proximity to each other.
#>Default Effect: Pre-select the most useful timeframe or metrics for initial
#> view.
#> Stage 3 (Structure) completed.
#>   - Layout: dual_process
#>   - Concepts: Principle of Proximity, Default Effect
#>   - No accessibility considerations specified 

# Basic usage
bid_anticipate(
  previous_stage = structure_info,
  bias_mitigations = list(
    anchoring = "Use context-aware references",
    framing = "Toggle between positive and negative framing"
  )
)
#> Automatically suggested interaction principles: progressive_disclosure, hover_effects.
#> Found partial match: Anchoring Effect
#> Found partial match: Framing & Loss Aversion
#> Stage 4 (Anticipate) completed.
#>   - Bias mitigations: 2 defined
#>   - Interaction principles: 2 defined
#>   - Key suggestions: anchoring mitigation: Always show reference points like previous period, budget, or industry average., framing mitigation: Toggle between progress (65% complete) and gap (35% remaining) framing., Consider also addressing these common biases: confirmation 
#> # A tibble: 1 × 8
#>   stage      bias_mitigations             interaction_principles previous_layout
#>   <chr>      <chr>                        <json>                 <chr>          
#> 1 Anticipate anchoring: Use context-awar… "{\"progressive_discl… dual_process   
#> # ℹ 4 more variables: previous_concepts <chr>, previous_accessibility <chr>,
#> #   suggestions <chr>, timestamp <dttm>

# Let the function suggest bias mitigations based on previous stages
bid_anticipate(
  previous_stage = structure_info
)
#> Automatically suggested bias mitigations: association bias, clustering illusion, status quo bias, choice architecture, framing.
#> Automatically suggested interaction principles: progressive_disclosure, hover_effects.
#> Concept 'association bias' not found
#> Concept 'clustering illusion' not found
#> Concept 'status quo bias' not found
#> Concept 'choice architecture' not found
#> Found partial match: Framing & Loss Aversion
#> Stage 4 (Anticipate) completed.
#>   - Bias mitigations: 5 defined
#>   - Interaction principles: 2 defined
#>   - Key suggestions: association bias mitigation: Consider how this bias affects user decisions., clustering illusion mitigation: Consider how this bias affects user decisions., status quo bias mitigation: Consider how this bias affects user decisions. 
#> # A tibble: 1 × 8
#>   stage      bias_mitigations             interaction_principles previous_layout
#>   <chr>      <chr>                        <json>                 <chr>          
#> 1 Anticipate "association bias: Consider… "{\"progressive_discl… dual_process   
#> # ℹ 4 more variables: previous_concepts <chr>, previous_accessibility <chr>,
#> #   suggestions <chr>, timestamp <dttm>

# With interaction principles
bid_anticipate(
  previous_stage = structure_info,
  bias_mitigations = list(
    anchoring = "Use context-aware references",
    framing = "Toggle between positive and negative framing"
  ),
  interaction_principles = list(
    hover_effects = "Show additional information on hover",
    selection_feedback = "Highlight active filters with color change",
    progressive_actions = "Show advanced options only if basic ones are used"
  )
)
#> Found partial match: Anchoring Effect
#> Found partial match: Framing & Loss Aversion
#> Stage 4 (Anticipate) completed.
#>   - Bias mitigations: 2 defined
#>   - Interaction principles: 3 defined
#>   - Key suggestions: anchoring mitigation: Always show reference points like previous period, budget, or industry average., framing mitigation: Toggle between progress (65% complete) and gap (35% remaining) framing., Consider also addressing these common biases: confirmation 
#> # A tibble: 1 × 8
#>   stage      bias_mitigations             interaction_principles previous_layout
#>   <chr>      <chr>                        <json>                 <chr>          
#> 1 Anticipate anchoring: Use context-awar… "{\"hover_effects\":\… dual_process   
#> # ℹ 4 more variables: previous_concepts <chr>, previous_accessibility <chr>,
#> #   suggestions <chr>, timestamp <dttm>