fix: Consistent CPI score calculation using airlines benchmarks

Updates economy dimension score to use airlines benchmark percentiles:
- p25 (€2.20) = 100 points
- p50 (€3.50) = 80 points
- p75 (€4.50) = 60 points
- p90 (€5.50) = 40 points
- >p90 = 20 points

Applies to: backendMapper.ts, realDataAnalysis.ts, analysisGenerator.ts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
sujucu70
2026-01-23 14:02:25 +01:00
parent c9f6db9882
commit eb804d7fb0
3 changed files with 41 additions and 18 deletions

View File

@@ -1363,14 +1363,15 @@ function generateDimensionsFromRealData(
kpi: { label: 'CSAT', value: avgCsat > 0 ? `${Math.round(avgCsat)}/100` : 'N/A' },
icon: Smile
},
// 6. ECONOMÍA - CPI
// 6. ECONOMÍA - CPI (benchmark aerolíneas: p25=2.20, p50=3.50, p75=4.50, p90=5.50)
{
id: 'economy_cpi',
name: 'economy_cpi',
title: 'Economía Operacional',
score: costPerInteraction < 4 ? 85 : costPerInteraction < 5 ? 70 : costPerInteraction < 6 ? 55 : 40,
percentile: costPerInteraction < 4.5 ? 70 : costPerInteraction < 5.5 ? 50 : 30,
summary: `CPI: €${costPerInteraction.toFixed(2)} por interacción. Coste anual: €${totalCost.toLocaleString('es-ES')}. Benchmark sector: €5.00 (Fuente: Gartner 2024).`,
// Score basado en percentiles aerolíneas (CPI invertido: menor = mejor)
score: costPerInteraction <= 2.20 ? 100 : costPerInteraction <= 3.50 ? 80 : costPerInteraction <= 4.50 ? 60 : costPerInteraction <= 5.50 ? 40 : 20,
percentile: costPerInteraction <= 2.20 ? 90 : costPerInteraction <= 3.50 ? 70 : costPerInteraction <= 4.50 ? 50 : costPerInteraction <= 5.50 ? 25 : 10,
summary: `CPI: €${costPerInteraction.toFixed(2)} por interacción. Coste anual: €${totalCost.toLocaleString('es-ES')}. Benchmark sector aerolíneas: €3.50.`,
kpi: { label: 'Coste/Interacción', value: `${costPerInteraction.toFixed(2)}` },
icon: DollarSign
},