Model How Deductibles, Copays, and Coinsurance Drive Utilization—Predict Demand Response Before Design Changes Go Live
python# Cost Elasticity Forecasting Engine service_elasticity_map = { 'preventive_care': -0.18, # Low elasticity: critical care 'primary_care_visit': -0.25, 'specialist_visit': -0.35, 'er_visit': -0.32, # Moderate: members defer if possible 'urgent_care': -0.28, 'diagnostic_imaging': -0.42, # Higher: members skip if cost-share increases 'elective_surgery': -0.55, # Highest: very discretionary 'physical_therapy': -0.48, 'mental_health_visit': -0.38, 'generic_rx': -0.15, # Low: clinically necessary 'brand_rx': -0.40, # Higher: members switch or skip 'specialty_rx': -0.22 # Low-moderate: high clinical need } def model_elasticity_impact(current_plan, proposed_plan, population_census): utilization_changes = [] for service, elasticity in service_elasticity_map.items(): # Calculate cost-share change current_cost_share = calculate_member_cost_share(current_plan, service) proposed_cost_share = calculate_member_cost_share(proposed_plan, service) pct_change_cost_share = (proposed_cost_share - current_cost_share) / current_cost_share # Income stratification (low earners 2.4× more sensitive) income_adjusted_elasticity = {} for member in population_census: if member.salary < 50000: multiplier = 2.4 elif member.salary < 80000: multiplier = 1.6 elif member.salary < 120000: multiplier = 1.0 else: multiplier = 0.6 # High earners least sensitive member_elasticity = elasticity * multiplier # Utilization change = elasticity × % cost-share change utilization_change = member_elasticity * pct_change_cost_share if member.id not in income_adjusted_elasticity: income_adjusted_elasticity[member.id] = {} income_adjusted_elasticity[member.id][service] = utilization_change # Aggregate population-level impact baseline_volume = get_service_volume(service, current_plan, population_census) avg_utilization_change = sum(income_adjusted_elasticity[m.id][service] for m in population_census) / len(population_census) projected_volume = baseline_volume * (1 + avg_utilization_change) # Financial impact employer_baseline_cost = baseline_volume * get_plan_cost_per_service(service, current_plan) employer_projected_cost = projected_volume * get_plan_cost_per_service(service, proposed_plan) utilization_changes.append({ 'service': service, 'elasticity': elasticity, 'baseline_volume': baseline_volume, 'projected_volume': projected_volume, 'volume_change_pct': avg_utilization_change, 'employer_cost_baseline': employer_baseline_cost, 'employer_cost_projected': employer_projected_cost, 'employer_savings': employer_baseline_cost - employer_projected_cost }) # Total impact total_baseline_cost = sum(u['employer_cost_baseline'] for u in utilization_changes) total_projected_cost = sum(u['employer_cost_projected'] for u in utilization_changes) total_employer_savings = total_baseline_cost - total_projected_cost # Health outcome risk assessment high_value_services = ['preventive_care', 'primary_care_visit', 'generic_rx'] high_value_volume_loss = sum( abs(u['volume_change_pct']) for u in utilization_changes if u['service'] in high_value_services and u['volume_change_pct'] < 0 ) / len(high_value_services) health_risk_score = 'HIGH' if high_value_volume_loss > 0.08 else 'MEDIUM' if high_value_volume_loss > 0.04 else 'LOW' return { 'total_employer_savings': total_employer_savings, 'utilization_changes': utilization_changes, 'health_outcome_risk': health_risk_score, 'high_value_care_impact': high_value_volume_loss, 'recommendation': 'APPROVE' if health_risk_score == 'LOW' else 'MODIFY' } # Example: Model $500 deductible increase current = load_plan('2024') proposed = load_plan('2024') proposed.deductible_individual += 500 proposed.deductible_family += 1000 census = load_population_census() result = model_elasticity_impact(current, proposed, census) print("Projected Employer Savings: {:,.0f}".format(result['total_employer_savings'])) print("Health Outcome Risk: {}".format(result['health_outcome_risk'])) print("High-Value Care Impact: {:.1%}".format(result['high_value_care_impact'])) print("Recommendation: {}".format(result['recommendation'])) if result['recommendation'] == 'MODIFY': print("\nWarning: Proposed deductible increase reduces high-value care utilization by {:.1%}".format( result['high_value_care_impact'])) print("Consider exempting preventive services from deductible (value-based design)")
Model utilization response across 15+ services. Stratify by income. Predict employer savings. Flag high-value care impact. Optimize benefit design.
Model Cost Elasticity→