Fix consumer subscription pricing exploit with perceived-value-based elasticity
Players could set astronomical prices and still retain subscribers because price elasticity floored at 10% for any price above $100, satisfaction ignored pricing entirely, and churn had no price component. Introduces perceived value per tier (model quality × reputation), replaces the broken linear formula with sigmoid decay, adds price-aware satisfaction blending, and applies per-tier price-based churn multipliers. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -873,6 +873,21 @@ export const TIER_CHURN_RATES: Record<ConsumerTierId, number> = {
|
||||
|
||||
export const FREE_TIER_ADOPTION_RATE = 0.10;
|
||||
|
||||
// --- Consumer Perceived Value ---
|
||||
|
||||
export const CONSUMER_TIER_BASE_PERCEIVED_VALUE: Record<ConsumerTierId, number> = {
|
||||
free: 0,
|
||||
plus: 40,
|
||||
pro: 120,
|
||||
team: 80,
|
||||
};
|
||||
|
||||
export const PERCEIVED_VALUE_REPUTATION_RANGE = { min: 0.5, max: 1.0 };
|
||||
export const PRICE_ELASTICITY_STEEPNESS = 3.0;
|
||||
export const PRICE_SATISFACTION_WEIGHT = 0.3;
|
||||
export const PRICE_CHURN_EXPONENT = 1.5;
|
||||
export const PRICE_CHURN_MAX_MULTIPLIER = 10.0;
|
||||
|
||||
// --- API Tier Defaults ---
|
||||
|
||||
export const API_TIER_DEFAULTS: Record<ApiTierId, { monthlyFee: number; inputPrice: number; outputPrice: number; rateLimit: number }> = {
|
||||
|
||||
Reference in New Issue
Block a user