Price Elasticity Modeling
Understand how price changes impact subscriber behavior, revenue, and growth. Make data-driven pricing decisions with confidence.
Current State Overview
Before exploring price elasticity, let's understand our current pricing tiers and key performance metrics.
Loading Data
Initializing elasticity models and loading sample data...
Current Pricing Tiers
Key Performance Metrics (Latest Week)
The Question
What happens if we increase prices by $1? Or offer a 30% discount? Price elasticity modeling helps us predict the impact on subscribers, revenue, and churn before making changes.
Data Explorer
Explore the raw datasets that power our price elasticity models. Browse through subscriber data, segments, and more.
Acquisition Elasticity
Model how price changes affect new subscriber acquisition. Simulate scenarios and analyze impacts on sign-up rates.
Churn Elasticity
Understand how price increases drive subscriber churn. Model time-lagged effects and retention patterns.
Tier Migration
Model subscriber movement between pricing tiers. Analyze upgrade and downgrade patterns based on price gaps.
Customer Cohorts & Elasticity
Analyze customer cohorts and their differential responses to pricing changes. Explore behavioral cohorts and elasticity patterns.
Segment Elasticity Comparison
Compare price elasticity across different customer segments. Identify which segments are most and least price-sensitive.
Event Calendar
Track important events and their impact on business metrics. Understand how external factors influence subscriber behavior.
AI Chat & Advanced Analytics
Chat with AI to get insights, ask questions about your data, and access advanced analytical tools.
Sample Data Explorer
Available Datasets
Loading data...
Select a dataset from the left sidebar to view the data
Scenario Engine - 3 Elasticity Models
Simulate pricing scenarios across acquisition, churn, and tier migration models
Adjust Price
What is Elasticity?
An elasticity of -1.9 means a 1% price increase leads to a 1.9% decrease in new acquisitions. Negative values indicate inverse relationship.
Projected New Subscribers by Cohort
Elasticity by Customer Segment
| Segment | Elasticity | Sensitivity | Projected Change |
|---|---|---|---|
| 0-3 months | -2.5 | High | 0% |
| 3-12 months | -1.9 | Medium | 0% |
| 12+ months | -1.6 | Low | 0% |
Model 1: Acquisition Elasticity
What it captures: How new subscriber sign-ups respond to different prices and promotional offers
Key Insight: Loyal fans join regardless of price. Budget-conscious users drop off sharply when prices increase.
Pre-Built Scenarios
Note: Detailed cohort analysis tables will appear below after running a scenario simulation.
Simulate Price Increase
Why Time-Lagged?
Subscribers don't cancel immediately. Some wait for billing cycle, others for promo expiration. Peak churn typically occurs 8-12 weeks after a price increase.
Revenue Note: The cumulative revenue line accumulates over time. With extreme price increases or highly elastic cohorts (Deal Hunter), it can peak then decline as subscriber loss outweighs price gain.
Cumulative Churn Over Time
Retention Forecast & Revenue Impact
Churn Impact by Time Horizon
Model 2: Churn Elasticity (Time-Lagged)
What it captures: When customers cancel after price increases or when promotional discounts expire
Key Insight: Cancellations don't happen immediately. Customers typically leave 8-12 weeks after price changes or promo endings.
Pre-Built Scenarios
Note: Detailed cohort churn heatmaps will appear below after running a scenario simulation.
Adjust Tier Prices
Migration Dynamics
When the price gap narrows, more Ad-Lite subscribers upgrade. When it widens, more Ad-Free subscribers may downgrade or churn.
Migration Flow Diagram
Projected Tier Distribution
| Transition | Probability | Subscribers | Revenue Impact |
|---|---|---|---|
| Ad-Lite → Ad-Free (Upgrade) | 8.2% | ~850 | +$2,550 |
| Ad-Free → Ad-Lite (Downgrade) | 3.5% | ~420 | -$1,260 |
| Ad-Lite → Cancel | 4.2% | ~430 | -$2,574 |
| Ad-Free → Cancel | 3.8% | ~460 | -$4,134 |
Tier Mix Over Time
Model 3: Tier Migration & Mix-Shift
What it captures: How customers switch between subscription tiers based on price differences and promotional incentives
Decision Takeaway: Find the smallest price gap that drives upgrades to premium tiers without causing excessive downgrades or cancellations.
Pre-Built Scenarios
Note: Detailed tier transition matrices will appear below after running a scenario simulation.
Decision Engine - Auto-Ranking
Top 3 Recommendations
Simulation Results
Revenue Impact
Subscriber Impact
Cohort-Level Acquisition Response
| Cohort | Size | Adds Elasticity | Adds Lift @ P-5% | Adds Lift @ P+5% | Confidence |
|---|
Cohort Churn Uplift Heatmap (Δ vs baseline)
| Cohort | 0-4 Weeks | 4-8 Weeks | 8-12 Weeks | 12+ Weeks |
|---|
Tier Transition Matrix (Δ vs baseline)
Elasticity Analysis
Scenario Comparison
Compare multiple scenarios side-by-side
KPI Comparison
Multi-Dimensional Trade-offs
Customer Cohorts & Elasticity
Pricing changes don't affect everyone the same way
Cohort Elasticity Heatmap
3-Axis Elasticity Visualization
Circle size represents subscriber count. Click cohorts to explore details.
Cohort Scatter Plot
Bubble size represents ARPU, color represents churn rate. Hover for details.
Cohort Elasticity Comparison
Elasticity Comparison Chart
Event Calendar & Validation Windows
Loading...Event Timeline (2022-2024)
| Date | Event Type | Tier | Price Change | Promo | Notes |
|---|
Promo Campaign Performance
Model Validation Windows
| Window ID | Type | Period | Weeks | Status | Purpose |
|---|
Ask Questions About Scenarios
Scenario Analysis Assistant
Ask me to interpret scenario results, compare outcomes, suggest optimizations, or create new scenarios.
Edit Scenario Parameters
Methodology: Current State KPIs
Data Sources
- subscribers.csv - 50,000 subscriber records (synthetic data)
- weekly_aggregated.csv - 471 weekly KPI snapshots by tier
- pricing_history.csv - Historical pricing and promotions
KPI Formulas
ARPU = Total Revenue / Active Subscribers
Calculated per tier, weighted by subscriber count
LTV = ARPU × Average Tenure (months) × (1 - Churn Rate)
Discounted over 24-month horizon at 5% annual rate
Monthly Churn = Churned Subscribers / Active Subscribers (30-day window)
Smoothed with 90-day moving average
Key Assumptions
- All data is synthetic, representing a realistic streaming service
- Baseline period: Last 12 weeks of available data
- Currency: USD
- No seasonal adjustments applied
Methodology: Acquisition Elasticity
Elasticity Model
Price elasticity of demand measures how acquisition rates respond to price changes.
% Change in Acquisitions = Elasticity Coefficient × % Change in Price
Example: If elasticity = -2.1 and price increases by 10%, acquisitions decrease by 21%
Elasticity Coefficients (Industry Benchmarks)
| Tier | Base Elasticity | Source |
|---|---|---|
| Ad-Lite | -2.1 | Most price-sensitive (value seekers) |
| Ad-Free | -1.7 | Moderately sensitive (quality conscious) |
Adjustment Factors
Base elasticity is modified by:
- Tenure: New users (0-3 months) are 1.3× more sensitive
- Age Group: 18-24 demographic is 1.2× more sensitive
- Acquisition Channel: Paid ads users are 1.4× more sensitive
- Time Horizon: Long-term effects (12+ months) are 1.5× stronger
Scenario Simulation
- Calculate price change percentage:
(New Price - Current Price) / Current Price - Apply elasticity:
Demand Change = Elasticity × Price Change% - Project new acquisitions:
New Acq = Baseline Acq × (1 + Demand Change) - Calculate revenue impact:
New Rev = New Acq × New Price × Retention Rate
ML Model: Poisson GLM (Python)
Algorithm: Poisson Generalized Linear Model
Execution: Runs in browser via Pyodide (Python + NumPy in WebAssembly)
Link Function: log(E[adds]) = β₀ + β₁×price + β₂×discount + β₃×is_promo + β₄×segment
Pre-fitted Coefficients:
intercept = 6.5→ baseline ~665 adds/monthprice = -0.25→ price sensitivitypromo_discount = 0.03→ discount effectivenessis_promo = 0.4→ promo boost multipliersegment_elasticity_factor = 0.12→ segment adjustment
Why Poisson? Subscriber counts are whole numbers (0, 1, 2...). This statistical method naturally fits count data and auto-adjusts as volumes change.
Methodology: Churn Elasticity
Churn Model
Churn elasticity models how price increases drive subscriber cancellations over time.
Additional Churn% = Churn Elasticity × Price Change% × Time Factor
Example: 10% price increase with -1.8 elasticity → +18% churn rate (baseline 3% → 3.54%)
Time-Lagged Effects
Churn doesn't happen instantly. We model temporal dynamics:
| Period | Effect Multiplier | Explanation |
|---|---|---|
| 0-1 month | 0.3× | Immediate reaction (angry users) |
| 2-3 months | 1.0× | Peak churn period |
| 4-6 months | 0.7× | Tapering off (remaining users adjusted) |
| 7-12 months | 0.4× | Long-tail effect |
Cohort-Specific Churn
Different customer segments have different churn sensitivities:
- New subscribers (0-6 months): 2.5× baseline churn elasticity
- Mid-tenure (6-18 months): 1.0× baseline
- Loyal (18+ months): 0.5× baseline (more forgiving)
- Bundle subscribers: 0.3× baseline (highest retention)
Retention Tactics
Model includes optional retention strategies:
- Win-back campaigns: Can reduce churn by 15-25%
- Grandfathering: Exempt existing users from price increase
- Loyalty discounts: Offer 20% off for long-tenure users
ML Model: Logistic Regression (Python)
Algorithm: Logistic Regression with time-lagged effects
Execution: Runs in browser via Pyodide (Python + NumPy)
Link Function: logit(churn) = β₀ + β₁×price_change + β₂×time_interaction
Pre-fitted Coefficients:
intercept = -2.944→ baseline 5% churn probabilityprice_change_pct = 0.01→ base price effectprice_x_0_4wks = 0.006→ immediate effect multiplierprice_x_4_8wks = 0.018→ roll-off peak multiplierprice_x_8_12wks = 0.028→ peak churn multiplierprice_x_12plus = 0.008→ long-tail stabilization
Why Logistic? Binary outcome (churn yes/no) requires logit link. Time-lagged interactions capture delayed churn response to price changes.
Methodology: Tier Migration
Migration Model
Models subscriber movement between pricing tiers when relative prices change.
Migration Rate = Base Rate × Price Gap Factor × Elasticity
Where Price Gap = (Higher Tier Price - Lower Tier Price) / Lower Tier Price
Migration Patterns
- Base downgrade rate: 2-5% monthly
- Increases by 1.5% for every $1 price gap increase
- Peak downgrade occurs 2-3 months after price change
- Base upgrade rate: 3-7% monthly
- Decreases by 0.8% for every $1 price gap increase
- Motivated by ad fatigue, premium content
Simulation Logic
- Calculate new price gaps between all tier pairs
- Estimate migration probabilities using logistic regression
- Apply cohort-specific modifiers (tenure, engagement)
- Simulate month-by-month transitions using Markov chain
- Calculate net revenue impact accounting for mix shift
Elasticity Cross-Effects
Migration is influenced by relative elasticities:
Cross-Elasticity = -0.5 × (Tier A Elasticity - Tier B Elasticity)
Higher elasticity differential = more migration
ML Model: Multinomial Logit (Python)
Algorithm: Multinomial Logistic Regression (Softmax)
Execution: Runs in browser via Pyodide (Python + NumPy)
Outputs: Migration probability matrix across all tier pairs
Supported Tier Structures:
- 2-Tier: Ad-Lite ↔ Ad-Free
- 3-Tier Bundle: Ad-Lite, Ad-Free, Bundle (Discovery+ + Max)
- 3-Tier Basic: Basic, Ad-Lite, Ad-Free
Sample Coefficients (3-Tier Bundle):
ad_free_to_bundle intercept = -0.5→ moderate upgrade appealvalue_savings_pct = 0.03→ 21% savings → +0.63 utilityhas_content_need = 0.8→ Max content drives 55-70% conversiontenure_months = 0.012→ loyal customers more likely to upgrade
Why Multinomial Logit? Multiple discrete choices (stay, upgrade, downgrade, cancel). Softmax ensures probabilities sum to 1. Handles asymmetric cross-effects between tiers.
Methodology: Customer Cohorts
Segmentation Framework
3-axis behavioral segmentation framework creating 375 unique segments (15 types × 25 variations × 3 tiers).
Three Segmentation Axes
- Platform-bundled acquirers: Came through partnerships
- TVOD-to-SVOD converters: Transactional buyers who upgraded
- Trial-to-paid converters: Free trial conversions
- Direct-to-paid acquirers: Signed up immediately
- Promo-driven acquirers: Discount/campaign motivated
- Ad-value seekers: Ad-tier users, high tolerance
- Ad-free loyalists: Premium tier, hate ads
- Price-triggered downgraders: Sensitive to price changes
- Content-anchored upgraders: Upgrade for specific shows
- Platform switchers: Multi-platform users, low loyalty
- Habitual streamers: Heavy users, low churn risk
- Content-anchored viewers: Watch specific genres only
- Promo-only users: Wait for deals, cancel after
- Binge-then-churn cyclers: Subscribe for show releases
- Steady-state subscribers: Consistent usage patterns
Segment Elasticity Calculation
Segment Elasticity = Base Tier Elasticity × Axis1 Modifier × Axis2 Modifier × Axis3 Modifier
Example: Ad-Lite promo-driven price-sensitive switcher:
-2.1 (base) × 1.4 (promo) × 1.3 (downgrader) × 1.2 (switcher) = -4.55 (highly elastic)
Data Sources
- customer_segments.csv: 375 cohort definitions with characteristics
- segment_kpis.csv: Historical performance by cohort
- segment_elasticity.json: Calibrated elasticity parameters
Methodology: Segment Elasticity Comparison
Comparative Analysis
Compares price sensitivity across customer segments to identify optimal pricing strategies.
Analysis Methods
Visual matrix showing elasticity coefficients across segments.
- Color scale: Green (inelastic -0.5 to -1.5) → Red (highly elastic -3.0+)
- Sorting: By elasticity magnitude or revenue contribution
- Filtering: By tier, acquisition channel, engagement level
2D visualization: Elasticity (X-axis) vs Revenue Impact (Y-axis)
- Quadrant I: High elasticity, high revenue → Risky to increase prices
- Quadrant II: Low elasticity, high revenue → Safe to increase prices
- Quadrant III: Low elasticity, low revenue → Low priority
- Quadrant IV: High elasticity, low revenue → Discount opportunity
Multi-dimensional view plotting segments across three axes:
- Radius: Elasticity magnitude
- Angle: Revenue contribution
- Color: Churn risk level
Filtering & Aggregation
Analysis supports multiple filter combinations:
- By Tier: Compare within Ad-Lite or ad-free tiers
- By Tenure: New (0-6mo), mid-tenure (6-18mo), loyal (18+mo)
- By Engagement: Heavy users (>20hr/month), light users (<5hr/month)
- By Risk: High churn risk (>10% monthly), stable (<3% monthly)
Export Capabilities
- CSV Export: Full cohort data with elasticity and KPI metrics
- SVG Export: Vector graphics for presentations
- JSON Export: Raw data for further analysis
Key Insights
- Segments with elasticity < -2.5 are highly price-sensitive
- Segments with elasticity > -1.0 are inelastic (price increase opportunity)
- Focus price optimization on high-revenue, low-elasticity segments
- Consider targeted discounts for high-elasticity, low-engagement segments