- Taxonomía de Calidad de Datos
+ {t('methodology.taxonomy.title')}
- En lugar de eliminar registros, aplicamos "Soft Delete" con etiquetado de calidad
- para permitir doble visión: financiera (todos los costes) y operativa (KPIs limpios).
+ {t('methodology.taxonomy.description')}
-
Estado
-
%
-
Definición
-
Costes
-
AHT
+
{t('methodology.taxonomy.state')}
+
{t('methodology.taxonomy.percentage')}
+
{t('methodology.taxonomy.definition')}
+
{t('methodology.taxonomy.costs')}
+
{t('methodology.taxonomy.aht')}
@@ -202,16 +202,16 @@ function TaxonomySection({ data }: { data: DataSummary['taxonomia'] }) {
- Coste por Interacción (CPI)
+ {t('methodology.kpis.cpiTitle')}
- El CPI se calcula dividiendo el coste total entre el volumen de interacciones.
- El coste total incluye todas las interacciones (noise, zombie y válidas) porque todas se facturan,
- y aplica un factor de productividad del {(effectiveProductivity * 100).toFixed(0)}%.
+ {t('methodology.cpi.description', { productivity: (effectiveProductivity * 100).toFixed(0) })}
{/* Fórmula visual */}
- Fórmula de Cálculo
+ {t('methodology.kpis.cpiFormulaTitle')}
- CPI
+ {t('methodology.kpis.cpiLabel')}=
- Coste Total
- ÷
- Volumen Total
+ {t('methodology.kpis.totalCost')}
+ {t('methodology.kpis.divide')}
+ {t('methodology.kpis.totalVolume')}
- El coste total usa (AHT segundos ÷ 3600) × coste/hora × volumen ÷ productividad
+ {t('methodology.kpis.cpiNote')}
- El AHT está en segundos, se convierte a horas dividiendo por 3600.
- Incluye todas las interacciones que generan coste (noise + zombie + válidas).
- Solo se excluyen los abandonos porque no consumen tiempo de agente.
+ {t('methodology.cpi.ahtExplanation')}
{/* Componentes del coste horario */}
-
Coste por Hora del Agente (Fully Loaded)
+
{t('methodology.cpi.hourlyRate')}
- Valor introducido: €{costPerHour.toFixed(2)}/h
+ {t('methodology.cpi.configuredValue', { value: costPerHour.toFixed(2) })}
- Este valor fue configurado en la pantalla de entrada de datos y debe incluir todos los costes asociados al agente:
+ {t('methodology.cpi.includesAllCosts')}
•
- Salario bruto del agente
+ {t('methodology.cpi.cost1')}
•
- Costes de seguridad social
+ {t('methodology.cpi.cost2')}
•
- Licencias de software
+ {t('methodology.cpi.cost3')}
•
- Infraestructura y puesto
+ {t('methodology.cpi.cost4')}
•
- Supervisión y QA
+ {t('methodology.cpi.cost5')}
•
- Formación y overhead
+ {t('methodology.cpi.cost6')}
- 💡 Si necesita ajustar este valor, puede volver a la pantalla de entrada de datos y modificarlo.
+ 💡 {t('methodology.cpi.adjustNote')}
- 💡 Sin esta transformación, las decisiones de automatización
- se basarían en datos incorrectos, generando inversiones en los procesos equivocados.
+ 💡 {t('methodology.impact.withoutTransformation')} {t('methodology.impact.wrongInvestments')}
980
@@ -543,8 +538,7 @@ function SkillsMappingSection({ numSkillsNegocio }: { numSkillsNegocio: number }
- Se redujo la complejidad de 980 skills técnicos a {numSkillsNegocio} Líneas de Negocio.
- Esta simplificación es vital para la visualización ejecutiva y la toma de decisiones estratégicas.
+ {t('methodology.skillMapping.reductionDesc', { count: numSkillsNegocio })}
@@ -553,8 +547,8 @@ function SkillsMappingSection({ numSkillsNegocio }: { numSkillsNegocio: number }
-
Línea de Negocio
-
Keywords Detectadas (Lógica Fuzzy)
+
{t('methodology.skillMapping.businessLine')}
+
{t('methodology.skillMapping.keywords')}
@@ -575,34 +569,33 @@ function SkillsMappingSection({ numSkillsNegocio }: { numSkillsNegocio: number }
- 💡 El mapeo utiliza lógica fuzzy para clasificar automáticamente cada skill técnico
- según las keywords detectadas en su nombre. Los skills no clasificados se asignan a "Customer Service".
+ 💡 {t('methodology.skillMapping.fuzzyLogicNote')}
diff --git a/frontend/locales/en.json b/frontend/locales/en.json
index ff3ebbc..0461a4f 100644
--- a/frontend/locales/en.json
+++ b/frontend/locales/en.json
@@ -713,6 +713,10 @@
"monthsHistory": "Months of history",
"sourceSystem": "Source system",
"periodRange": "Period: {{period}}",
+ "defaultPeriod": "January - December 2025",
+ "sourceGenesys": "Genesys Cloud CX",
+ "sourceDataset": "Loaded dataset",
+ "pdfDevelopment": "PDF download functionality under development. The document will be available soon.",
"pipeline": {
"title": "Transformation Pipeline",
"description": "Modular 3-layer architecture to ensure traceability and scalability.",
@@ -771,6 +775,21 @@
"howCalculate": "How is Total Cost calculated?",
"costEquals": "Cost ="
},
+ "cpi": {
+ "description": "CPI is calculated by dividing total cost by interaction volume. Total cost includes all interactions (noise, zombie, and valid) because all are billed, and applies a productivity factor of {{productivity}}%.",
+ "volume": "Volume",
+ "ahtExplanation": "The AHT is in seconds, converted to hours by dividing by 3600. Includes all interactions that generate cost (noise + zombie + valid). Only abandons are excluded because they don't consume agent time.",
+ "hourlyRate": "Agent Hourly Rate (Fully Loaded)",
+ "configuredValue": "Configured value: €{{value}}/h",
+ "includesAllCosts": "This value was configured in the data input screen and should include all costs associated with the agent:",
+ "cost1": "Agent gross salary",
+ "cost2": "Social security costs",
+ "cost3": "Software licenses",
+ "cost4": "Infrastructure and workstation",
+ "cost5": "Supervision and QA",
+ "cost6": "Training and overhead",
+ "adjustNote": "If you need to adjust this value, you can return to the data input screen and modify it."
+ },
"impact": {
"title": "Transformation Impact",
"metric": "Metric",
@@ -784,12 +803,18 @@
"revealsDemand": "Reveals hidden failed demand",
"detectsFrustration": "Detects real customer frustration",
"executiveVision": "Actionable executive vision",
- "reflectsPerformance": "KPIs reflect real performance"
+ "reflectsPerformance": "KPIs reflect real performance",
+ "technicalSkills": "{{count}} technical",
+ "businessLines": "{{count}} business lines",
+ "distorted": "Distorted",
+ "clean": "Clean",
+ "withoutTransformation": "Without this transformation,",
+ "wrongInvestments": "automation decisions would be based on incorrect data, generating investments in the wrong processes."
},
"skillMapping": {
"title": "Skills to Business Lines Mapping",
"simplificationApplied": "Simplification applied",
- "reductionDesc": "Reduced complexity from 980 technical skills to {{count}} actionable Business Lines using fuzzy keyword logic.",
+ "reductionDesc": "Reduced complexity from 980 technical skills to {{count}} Business Lines. This simplification is vital for executive visualization and strategic decision making.",
"businessLine": "Business Line",
"keywords": "Detected Keywords (Fuzzy Logic)",
"baggage": "Baggage & Handling",
@@ -799,7 +824,8 @@
"changes": "Changes & Post-Sales",
"digital": "Digital Support",
"customer": "Customer Service",
- "internal": "Internal / Backoffice"
+ "internal": "Internal / Backoffice",
+ "fuzzyLogicNote": "The mapping uses fuzzy logic to automatically classify each technical skill based on keywords detected in its name. Unclassified skills are assigned to \"Customer Service\"."
},
"quality": {
"title": "Quality Guarantees",
diff --git a/frontend/locales/es.json b/frontend/locales/es.json
index 6ffce26..3f8147d 100644
--- a/frontend/locales/es.json
+++ b/frontend/locales/es.json
@@ -713,6 +713,10 @@
"monthsHistory": "Meses de histórico",
"sourceSystem": "Sistema origen",
"periodRange": "Periodo: {{period}}",
+ "defaultPeriod": "Enero - Diciembre 2025",
+ "sourceGenesys": "Genesys Cloud CX",
+ "sourceDataset": "Dataset cargado",
+ "pdfDevelopment": "Funcionalidad de descarga PDF en desarrollo. El documento estará disponible próximamente.",
"pipeline": {
"title": "Pipeline de Transformación",
"description": "Arquitectura modular de 3 capas para garantizar trazabilidad y escalabilidad.",
@@ -771,6 +775,21 @@
"howCalculate": "¿Cómo se calcula el Coste Total?",
"costEquals": "Coste ="
},
+ "cpi": {
+ "description": "El CPI se calcula dividiendo el coste total entre el volumen de interacciones. El coste total incluye todas las interacciones (noise, zombie y válidas) porque todas se facturan, y aplica un factor de productividad del {{productivity}}%.",
+ "volume": "Volumen",
+ "ahtExplanation": "El AHT está en segundos, se convierte a horas dividiendo por 3600. Incluye todas las interacciones que generan coste (noise + zombie + válidas). Solo se excluyen los abandonos porque no consumen tiempo de agente.",
+ "hourlyRate": "Coste por Hora del Agente (Fully Loaded)",
+ "configuredValue": "Valor introducido: €{{value}}/h",
+ "includesAllCosts": "Este valor fue configurado en la pantalla de entrada de datos y debe incluir todos los costes asociados al agente:",
+ "cost1": "Salario bruto del agente",
+ "cost2": "Costes de seguridad social",
+ "cost3": "Licencias de software",
+ "cost4": "Infraestructura y puesto",
+ "cost5": "Supervisión y QA",
+ "cost6": "Formación y overhead",
+ "adjustNote": "Si necesita ajustar este valor, puede volver a la pantalla de entrada de datos y modificarlo."
+ },
"impact": {
"title": "Impacto de la Transformación",
"metric": "Métrica",
@@ -784,12 +803,18 @@
"revealsDemand": "Revela demanda fallida oculta",
"detectsFrustration": "Detecta frustración cliente real",
"executiveVision": "Visión ejecutiva accionable",
- "reflectsPerformance": "KPIs reflejan desempeño real"
+ "reflectsPerformance": "KPIs reflejan desempeño real",
+ "technicalSkills": "{{count}} técnicos",
+ "businessLines": "{{count}} líneas negocio",
+ "distorted": "Distorsionado",
+ "clean": "Limpio",
+ "withoutTransformation": "Sin esta transformación,",
+ "wrongInvestments": "las decisiones de automatización se basarían en datos incorrectos, generando inversiones en los procesos equivocados."
},
"skillMapping": {
"title": "Mapeo de Skills a Líneas de Negocio",
"simplificationApplied": "Simplificación aplicada",
- "reductionDesc": "Se redujo la complejidad de 980 skills técnicos a {{count}} Líneas de Negocio accionables mediante lógica fuzzy de palabras clave.",
+ "reductionDesc": "Se redujo la complejidad de 980 skills técnicos a {{count}} Líneas de Negocio. Esta simplificación es vital para la visualización ejecutiva y la toma de decisiones estratégicas.",
"businessLine": "Línea de Negocio",
"keywords": "Keywords Detectadas (Lógica Fuzzy)",
"baggage": "Baggage & Handling",
@@ -799,7 +824,8 @@
"changes": "Changes & Post-Sales",
"digital": "Digital Support",
"customer": "Customer Service",
- "internal": "Internal / Backoffice"
+ "internal": "Internal / Backoffice",
+ "fuzzyLogicNote": "El mapeo utiliza lógica fuzzy para clasificar automáticamente cada skill técnico según las keywords detectadas en su nombre. Los skills no clasificados se asignan a \"Customer Service\"."
},
"quality": {
"title": "Garantías de Calidad",