AVO (Average Value Operator)

Creating Binary Indicators Based on Value Thresholds

AVO (Above Value Operator) creates binary (0/1) dummy variables based on whether values fall above or below a threshold. This transformation is useful for creating "activity" or "availability" indicators that capture when a channel is active at meaningful levels.


What is AVO?

Threshold-Based Binary Variable

AVO converts continuous values into binary indicators:

Original Variable (Continuous):

TV_Spend: $5K, $12K, $0, $8K, $25K, $0, $18K...

AVO 90 (Binary - top 10%):

TV_AVO_90: 0, 0, 0, 0, 1, 0, 0...

Logic:

  • Calculate threshold based on value range

  • Values ≥ threshold → 1 (active/available)

  • Values < threshold → 0 (inactive)


How AVO Threshold Works

Pure Range-Based Calculation

Formula:

Threshold = MIN + (Percentage/100) × (MAX - MIN)

Example with AVO 90:

TV_Spend: Min = $0, Max = $25K
Range = $25K - $0 = $25K
Threshold = $0 + 90% × $25K = $22.5K

Values ≥ $22.5K → 1
Values < $22.5K → 0

Result: Only periods with TV spend ≥ $22.5K get marked as "1"


AVO Percentage Interpretation

Understanding the Threshold

AVO 90 = Top 10% of value range

  • 90% of range excluded (below threshold)

  • 10% of range included (above threshold)

  • Only highest spend periods marked as "1"

AVO 50 = Top 50% of value range

  • 50% of range excluded

  • 50% of range included

  • Above-median spend marked as "1"

AVO 10 = Top 90% of value range

  • 10% of range excluded

  • 90% of range included

  • Most non-zero periods marked as "1"


Visual Example

Original TV_Spend:

Week 1:  $8K   ──────┐
Week 2:  $12K  ────────┐
Week 3:  $0    ─┐
Week 4:  $5K   ───┐
Week 5:  $23K  ─────────────┐ (Above threshold)
Week 6:  $0    ─┐
Week 7:  $15K  ──────────┐
Week 8:  $25K  ──────────────┐ (Above threshold)

Min = $0, Max = $25K
AVO 90 Threshold = $22.5K

Result - TV_AVO_90:

Week 1: 0
Week 2: 0
Week 3: 0
Week 4: 0
Week 5: 1  ← Above $22.5K
Week 6: 0
Week 7: 0
Week 8: 1  ← Above $22.5K

When to Use AVO

Use Case 1: Campaign Flight Detection

Problem: Identify when campaigns are running at meaningful levels

Solution:

Create: TV_AVO_80

Interpretation: Captures weeks with top 20% of TV spending (heavy campaign periods)

Benefit: Model can separately estimate effect of "being on-air at high levels"


Use Case 2: Availability Indicators

Problem: Model "presence" vs. "absence" of marketing

Solution:

Create: Radio_AVO_50

Interpretation: Binary indicator for "Radio is active" (above median spend)

Use in Model: Interaction with other variables to test amplification effects


Use Case 3: Flighting Analysis

Problem: Understand impact of sustained high-spending periods

Solution:

Create: Digital_AVO_70

Interpretation: Identifies periods of concentrated digital investment


Use Case 4: Threshold Effects

Problem: Test if channel only works above certain spend level

Solution:

Create: OOH_AVO_60
Model: Sales ~ OOH_Spend + OOH_AVO_60

Interpretation:

  • OOH_Spend coefficient: Continuous effect

  • OOH_AVO_60 coefficient: Additional boost when spending is in top 40% of range


Creating AVO Variables

In Variable Workshop

Step 1: Select base variable (e.g., TV_Spend)

Step 2: Choose "Create AVO"

Step 3: Set threshold percentage (0-100):

  • 90: Top 10% of value range → 1

  • 80: Top 20% of value range → 1

  • 70: Top 30% of value range → 1

  • 50: Top 50% of value range → 1

Step 4: Optional identifier (or defaults to threshold number)

Step 5: Preview shows:

  • Original values

  • Threshold value calculated

  • Binary result (0/1)

  • Count of 1s vs. 0s

Step 6: Create variable


Naming Convention

Format:

{Variable}|AVO {Threshold}

Examples:
TV_Spend|AVO 90
Digital_Spend|AVO 80
Radio_Spend|AVO 70

Choosing the Right Threshold

High Thresholds (80-95)

When to Use:

  • Identify only the most intense campaign periods

  • Test impact of "heavy investment weeks"

  • Rare events you want to flag

Result: Very few 1s (5-20% of observations)

Example:

AVO 90: Only top 10% of spend range

Medium Thresholds (50-75)

When to Use:

  • General "active vs. inactive" indicator

  • Moderate campaign intensity

  • Balanced binary split

Result: Moderate 1s (25-50% of observations)

Example:

AVO 60: Top 40% of spend range

Low Thresholds (10-40)

When to Use:

  • Identify "any meaningful activity"

  • Most non-zero spending periods

  • Broad availability indicator

Result: Many 1s (60-90% of observations)

Example:

AVO 20: Top 80% of spend range

Interpreting AVO in Models

As Main Effect

Model:

Sales = β₀ + β₁×TV_AVO_90

β₁ Interpretation: Average sales lift during periods when TV spending is in top 10% of range


With Continuous Variable

Model:

Sales = β₀ + β₁×TV_Spend + β₂×TV_AVO_90

β₁: Effect of each dollar of TV spend β₂: Additional fixed effect when TV spending is very high

Interpretation: TV has continuous effect (β₁), PLUS extra boost (β₂) during heavy campaign weeks


As Interaction Term

Model:

Sales = β₀ + β₁×TV_Spend + β₂×Digital_Spend + β₃×(TV_AVO_90 × Digital_Spend)

β₃ Interpretation: Does digital spending work better during heavy TV weeks?

If β₃ > 0: Yes, synergy effect when TV is at high levels


Common Patterns

Testing Threshold Effects

Create multiple AVO thresholds:

TV_AVO_70
TV_AVO_80  
TV_AVO_90

Test each in model: Which threshold best explains KPI variance?

Example Result:

TV_AVO_80: t-stat = 3.5 (best)
TV_AVO_90: t-stat = 2.1
TV_AVO_70: t-stat = 1.8

Use: AVO 80 (most significant)


Best Practices

✅ Do's

Use for Campaign Flights AVO perfect for identifying burst spending periods

Test Multiple Thresholds Create 2-3 different thresholds, see which performs best statistically

Combine with Continuous Model both TV_Spend (continuous) and TV_AVO_90 (binary) for full picture

Use Descriptive Identifiers TV|AVO High instead of just TV|AVO 90 for clarity

Check Distribution Preview shows how many 1s vs. 0s - ensure reasonable split

Document Threshold Choice Record why 90 vs. 80 vs. 70 was chosen


❌ Don'ts

Don't Use Too High Threshold AVO 99 might give only 1-2 observations with "1" - insufficient data

Don't Use Too Low Threshold AVO 5 means almost everything is "1" - not informative

Don't Confuse with Percentile AVO 90 ≠ 90th percentile of data AVO 90 = 90% of value RANGE (min to max)

Don't Ignore Zeros If variable has many zeros, AVO threshold still based on min (often 0) to max

Don't Use as Only Variable Usually best combined with continuous spend variable


AVO vs. Other Transformations

AVO vs. Simple Threshold

Simple Threshold:

If TV_Spend > $15K: 1, else: 0

Fixed arbitrary threshold

AVO:

Threshold = MIN + 90% × (MAX - MIN)

Adaptive based on data range

Benefit: AVO adapts to your specific data distribution


AVO vs. Standardization

Standardization: Converts to z-scores (mean=0, std=1) - continuous

AVO: Converts to binary (0 or 1) - categorical

Use AVO when: You want to test presence/absence effects, not magnitude


Example Use Case

Identifying High-Spend Campaign Periods

Data:

TV_Spend range: $0 to $30K

Create:

TV_AVO_85

Calculation:

Threshold = $0 + 85% × ($30K - $0) = $25.5K

Result:

Only weeks with TV ≥ $25.5K are marked "1"

Model:

Sales ~ TV_Spend + TV_AVO_85

Interpretation:

  • TV_Spend coefficient: Continuous linear effect

  • TV_AVO_85 coefficient: Extra lift during heavy campaign weeks

Example Coefficients:

TV_Spend: 0.5 (each $1K → $500 sales)
TV_AVO_85: 15000 ($15K extra lift during heavy weeks)

Business Insight: Heavy TV weeks not only generate continuous returns (0.5 per dollar) but also create additional $15K boost (maybe from amplified awareness, buzz, etc.)


Summary

Key Takeaways:

🎯 AVO = Above Value Operator - binary indicator based on threshold

📊 Threshold = Range-based - MIN + (Percentage × Range)

🔢 AVO 90 = Top 10% of value range (not 90th percentile!)

Perfect for campaign flights - identify high-intensity periods

🔄 Combine with continuous - model both amount (continuous) and presence/intensity (AVO)

📈 Test multiple thresholds - find statistically optimal cutoff

💡 Adaptive to your data - threshold calculates based on actual min/max

🎬 Common use: Flighting - when is channel "really active" vs. baseline?

AVO transforms continuous spending into actionable binary indicators, perfect for testing threshold effects and identifying high-impact periods!

Last updated