
Document User Behavior Anticipation Stage in BID Framework
bid_anticipate.Rd
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.
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).
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
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> Returning all 41 concepts
#>
#> ── Implementation tips for selected concepts:
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> • Principle of Proximity: Place related controls and visualizations in
#> proximity to each other.
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> • 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"
)
)
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> Found 7 concept(s) matching 'bias|anchor|fram|confirm'
#> Automatically suggested interaction principles: progressive_disclosure, hover_effects.
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> Found partial match: Anchoring Effect
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> 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
)
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> Found 7 concept(s) matching 'bias|anchor|fram|confirm'
#> Automatically suggested bias mitigations: association bias, clustering illusion, status quo bias, choice architecture, framing.
#> Automatically suggested interaction principles: progressive_disclosure, hover_effects.
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> Concept 'association bias' not found
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> Concept 'clustering illusion' not found
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> Concept 'status quo bias' not found
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> Concept 'choice architecture' not found
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> 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"
)
)
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> Found 7 concept(s) matching 'bias|anchor|fram|confirm'
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> Found partial match: Anchoring Effect
#> Rows: 41 Columns: 7
#> ── Column specification ────────────────────────────────────────────────────────
#> Delimiter: ","
#> chr (7): concept, description, category, reference, example, implementation_...
#>
#> ℹ Use `spec()` to retrieve the full column specification for this data.
#> ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#> 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>