Market Analysis Interactive
Game Theory
Strategic interaction between competitors. Understanding Nash equilibrium and best responses for pricing decisions in competitive markets.
๐ The Prisoner's Dilemma
| Competitor Cooperates | Competitor Defects | |
|---|---|---|
| You Cooperate | 3, 3 Both win | 0, 5 You lose |
| You Defect | 5, 0 You win | 1, 1 Nash Eq |
In Pricing Terms
- Cooperate: Keep hold rates reasonable
- Defect: Slash hold to steal market share
Insight: Both firms are better off with moderate hold (3,3), but each has incentive to cut prices, leading to (1,1).
Pricing Decisions
2 10
2 10
๐ Best Response
Competitor's Hold 5%
Your Best Response 7.5%
Expected Profit 2.81
Market Outcome
You
Hold Rate 5%
Market Share 50%
Profit Score 2.50
Competitor
Hold Rate 5%
Market Share 50%
Profit Score 2.50
Matched pricing: Equal share, competing on other dimensions.
Common Game Structures
Prisoner's Dilemma
Both better off cooperating, but each has incentive to defect
Price wars: both cut prices, both lose margin
Defect-Defect (suboptimal)
Chicken
Worst outcome if both stay aggressive
Promotional spending: who backs down first?
One aggressive, one passive
Coordination
Both benefit from choosing same strategy
Market standards, feature matching
Multiple equilibria exist
โ๏ธ Strategic Considerations
Competitive Dynamics
- โ Monitor competitor pricing in real-time
- โ Consider long-term reputation effects
- โ Repeated games allow for cooperation
- โ Differentiation can escape price wars
Signaling & Commitment
- โ Price matching guarantees signal commitment
- โ Public pricing = credible commitment
- โ Promotional "shots across the bow"
- โ Tit-for-tat builds cooperation
R Code Equivalent
# Game theory payoff analysis
calculate_payoff <- function(my_hold, their_hold) {
hold_diff <- their_hold - my_hold
base_share <- 50
share_gain <- hold_diff * 5 # 5% share per 1% hold diff
my_share <- pmax(10, pmin(90, base_share + share_gain))
profit <- my_share * my_hold / 100
return(list(share = my_share, profit = profit))
}
# Find best response
best_response <- function(their_hold) {
holds <- seq(2, 10, by = 0.5)
profits <- sapply(holds, function(h) calculate_payoff(h, their_hold)$profit)
best_idx <- which.max(profits)
return(list(hold = holds[best_idx], profit = profits[best_idx]))
}
# Nash equilibrium search
find_nash <- function() {
for (h1 in seq(2, 10, by = 0.5)) {
for (h2 in seq(2, 10, by = 0.5)) {
br1 <- best_response(h2)$hold
br2 <- best_response(h1)$hold
if (h1 == br1 && h2 == br2) return(c(h1, h2))
}
}
}โ Key Takeaways
- โข Nash equilibrium: no one benefits from changing
- โข Price wars often lead to lose-lose outcomes
- โข Best response depends on competitor actions
- โข Differentiation can escape price competition
- โข Repeated games allow cooperation to emerge
- โข Signaling and commitment matter