diff --git a/frontend/components/tabs/AgenticReadinessTab.tsx b/frontend/components/tabs/AgenticReadinessTab.tsx index 95871d8..9a20a01 100644 --- a/frontend/components/tabs/AgenticReadinessTab.tsx +++ b/frontend/components/tabs/AgenticReadinessTab.tsx @@ -20,6 +20,7 @@ import { formatNumber, formatPercent, } from '../../config/designSystem'; +import { useTranslation } from 'react-i18next'; // ============================================ // RED FLAGS CONFIGURATION AND DETECTION @@ -38,50 +39,51 @@ interface RedFlagConfig { description: string; } -const RED_FLAG_CONFIGS: RedFlagConfig[] = [ +// Note: These configs will be translated in the component using t() function +const getRedFlagConfigs = (t: any): RedFlagConfig[] => [ { id: 'cv_high', - label: 'Critical AHT CV', - shortLabel: 'CV', + label: t('agenticReadiness.redFlags.cvCritical'), + shortLabel: t('agenticReadiness.redFlags.cvCriticalShort'), threshold: 120, operator: '>', getValue: (q) => q.cv_aht, format: (v) => `${v.toFixed(0)}%`, color: 'red', - description: 'Extreme variability - unpredictable processes' + description: t('agenticReadiness.redFlags.cvCriticalDesc') }, { id: 'transfer_high', - label: 'Excessive Transfer', - shortLabel: 'Transfer', + label: t('agenticReadiness.redFlags.transferExcessive'), + shortLabel: t('agenticReadiness.redFlags.transferExcessiveShort'), threshold: 50, operator: '>', getValue: (q) => q.transfer_rate, format: (v) => `${v.toFixed(0)}%`, color: 'orange', - description: 'High complexity - requires frequent escalation' + description: t('agenticReadiness.redFlags.transferExcessiveDesc') }, { id: 'volume_low', - label: 'Insufficient Volume', - shortLabel: 'Vol', + label: t('agenticReadiness.redFlags.volumeInsufficient'), + shortLabel: t('agenticReadiness.redFlags.volumeInsufficientShort'), threshold: 50, operator: '<', getValue: (q) => q.volume, format: (v) => v.toLocaleString(), color: 'slate', - description: 'Negative ROI - volume doesn\'t justify investment' + description: t('agenticReadiness.redFlags.volumeInsufficientDesc') }, { id: 'valid_low', - label: 'Low Data Quality', - shortLabel: 'Valid', + label: t('agenticReadiness.redFlags.dataQualityLow'), + shortLabel: t('agenticReadiness.redFlags.dataQualityLowShort'), threshold: 30, operator: '<', getValue: (q) => q.volume > 0 ? (q.volumeValid / q.volume) * 100 : 0, format: (v) => `${v.toFixed(0)}%`, color: 'amber', - description: 'Unreliable data - distorted metrics' + description: t('agenticReadiness.redFlags.dataQualityLowDesc') } ]; @@ -91,10 +93,10 @@ interface DetectedRedFlag { value: number; } -function detectRedFlags(queue: OriginalQueueMetrics): DetectedRedFlag[] { +function detectRedFlags(queue: OriginalQueueMetrics, configs: RedFlagConfig[]): DetectedRedFlag[] { const flags: DetectedRedFlag[] = []; - for (const config of RED_FLAG_CONFIGS) { + for (const config of configs) { const value = config.getValue(queue); const hasFlag = config.operator === '>' ? value > config.threshold @@ -109,13 +111,13 @@ function detectRedFlags(queue: OriginalQueueMetrics): DetectedRedFlag[] { } // v3.5: Individual Red Flag badge component -function RedFlagBadge({ flag, size = 'sm' }: { flag: DetectedRedFlag; size?: 'sm' | 'md' }) { +function RedFlagBadge({ flag, size = 'sm', t }: { flag: DetectedRedFlag; size?: 'sm' | 'md'; t: any }) { const sizeClasses = size === 'md' ? 'px-2 py-1 text-xs' : 'px-1.5 py-0.5 text-[10px]'; return ( {flag.config.shortLabel}: {flag.config.format(flag.value)} @@ -124,8 +126,8 @@ function RedFlagBadge({ flag, size = 'sm' }: { flag: DetectedRedFlag; size?: 'sm } // v3.5: Componente de lista de Red Flags de una cola -function RedFlagsList({ queue, compact = false }: { queue: OriginalQueueMetrics; compact?: boolean }) { - const flags = detectRedFlags(queue); +function RedFlagsList({ queue, compact = false, configs, t }: { queue: OriginalQueueMetrics; compact?: boolean; configs: RedFlagConfig[]; t: any }) { + const flags = detectRedFlags(queue, configs); if (flags.length === 0) return null; @@ -133,7 +135,7 @@ function RedFlagsList({ queue, compact = false }: { queue: OriginalQueueMetrics; return (
{flags.map(flag => ( - + ))}
); @@ -146,7 +148,7 @@ function RedFlagsList({ queue, compact = false }: { queue: OriginalQueueMetrics; {flag.config.label}: {flag.config.format(flag.value)} - (umbral: {flag.config.operator}{flag.config.threshold}) + ({t('agenticReadiness.redFlags.threshold', { operator: flag.config.operator, value: flag.config.threshold })}) ))} @@ -173,46 +175,46 @@ interface TierExplanation { recommendation: string; } -const TIER_EXPLANATIONS: TierExplanation[] = [ +const getTierExplanations = (t: any): TierExplanation[] => [ { tier: 'AUTOMATE', - label: 'Automatizable', + label: t('agenticReadiness.automatable'), emoji: '🤖', color: '#10b981', bgColor: '#d1fae5', - description: 'Procesos maduros listos para automatización completa con agente virtual.', - criteria: 'Score ≥7.5: CV AHT <75%, Transfer <15%, Volumen >500/mes', - recommendation: 'Desplegar agente virtual con resolución autónoma' + description: t('agenticReadiness.automatableDesc'), + criteria: t('agenticReadiness.automatableCriteria'), + recommendation: t('agenticReadiness.automatableAction') }, { tier: 'ASSIST', - label: 'Asistible', + label: t('agenticReadiness.assistable'), emoji: '🤝', color: '#3b82f6', bgColor: '#dbeafe', - description: 'Candidatos a Copilot: IA asiste al agente humano en tiempo real.', - criteria: 'Score 5.5-7.5: Procesos semiestructurados con variabilidad moderada', - recommendation: 'Implementar Copilot con sugerencias y búsqueda inteligente' + description: t('agenticReadiness.assistableDesc'), + criteria: t('agenticReadiness.assistableCriteria'), + recommendation: t('agenticReadiness.assistableAction') }, { tier: 'AUGMENT', - label: 'Optimizable', + label: t('agenticReadiness.optimizable'), emoji: '📚', color: '#f59e0b', bgColor: '#fef3c7', - description: 'Requiere herramientas y estandarización antes de automatizar.', - criteria: 'Score 3.5-5.5: Alta variabilidad o complejidad, necesita optimización', - recommendation: 'Desplegar KB mejorada, scripts guiados, herramientas de soporte' + description: t('agenticReadiness.optimizableDesc'), + criteria: t('agenticReadiness.optimizableCriteria'), + recommendation: t('agenticReadiness.optimizableAction') }, { tier: 'HUMAN-ONLY', - label: 'Solo Humano', + label: t('agenticReadiness.humanOnly'), emoji: '👤', color: '#6b7280', bgColor: '#f3f4f6', - description: 'No apto para automatización: volumen insuficiente o complejidad extrema.', - criteria: 'Score <3.5 o Red Flags: CV >120%, Transfer >50%, Vol <50', - recommendation: 'Mantener gestión humana, evaluar periódicamente' + description: t('agenticReadiness.humanOnlyDesc'), + criteria: t('agenticReadiness.humanOnlyCriteria'), + recommendation: t('agenticReadiness.humanOnlyAction') } ]; diff --git a/frontend/locales/en.json b/frontend/locales/en.json index 4433f42..f06be8e 100644 --- a/frontend/locales/en.json +++ b/frontend/locales/en.json @@ -532,7 +532,254 @@ "hideDetail": "Hide detail", "viewDetail": "View detail", "collapseAll": "Collapse all", - "expandAll": "Expand all" + "expandAll": "Expand all", + "tierLabels": { + "automate": "Automate", + "assist": "Assist", + "augment": "Optimize", + "human": "Human" + }, + "payback": { + "seeWave34": "See Wave 3-4", + "notRecoverable": "Not recoverable", + "immediate": "Immediate", + "recoversWithAutomation": "This investment is recovered with automation waves (W3-W4). Payback is calculated on the complete roadmap, not on enabling waves in isolation.", + "savingsDoNotCoverRecurring": "Annual savings do not cover recurring costs.", + "moderateRecoveryPeriod": "Moderate recovery period.", + "longRecoveryPeriod": "Long recovery period. Consider less ambitious scenario." + }, + "waves": { + "wave1Name": "Wave 1", + "wave1Title": "FOUNDATION", + "wave1Quarter": "Q1-Q2 2026", + "wave1Condition": "", + "wave1Provider": "Beyond Consulting or specialized third party", + "wave1RiskDescription": "Consulting with tangible deliverables. Does not require technology.", + "wave2Name": "Wave 2", + "wave2Title": "AUGMENT", + "wave2Quarter": "Q3 2026", + "wave2Condition": "Requires CV ≤75% post-Wave 1 in target queues", + "wave2Provider": "BEYOND (KB + AI Scripts)", + "wave2RiskDescription": "Support tools, low integration risk.", + "wave3Name": "Wave 3", + "wave3Title": "ASSIST", + "wave3Quarter": "Q4 2026", + "wave3Condition": "Requires Score ≥5.5 AND CV ≤90% AND Transfer ≤30%", + "wave3Provider": "BEYOND (Copilot + AI Routing)", + "wave3RiskDescription": "Integration with contact center platform. 4-week pilot mitigates.", + "wave4Name": "Wave 4", + "wave4Title": "AUTOMATE", + "wave4Quarter": "Q1-Q2 2027", + "wave4Condition": "Requires Score ≥7.5 AND CV ≤75% AND Transfer ≤20% AND FCR ≥50%", + "wave4Provider": "BEYOND (Voicebot + IVR + Chatbot)", + "wave4RiskDescription": "Very conditional. Requires demonstrated success in Waves 1-3." + }, + "initiatives": { + "wave1Init1": "Variability and red flags analysis", + "wave1Init1Kpi": "Map causes of CV >75% and Transfer >20%", + "wave1Init2": "Process redesign and documentation", + "wave1Init2Kpi": "Standardized scripts for 80% of cases", + "wave1Init3": "Agent training and certification", + "wave1Init3Kpi": "90% agent certification, >85% adherence", + "wave2Init1": "Contextual Knowledge Base", + "wave2Init1Kpi": "Hold time -25%, KB usage +40%", + "wave2Init2": "AI-powered dynamic scripts", + "wave2Init2Kpi": "Script adherence +30%", + "wave3Init1": "Agent Assist / AI Copilot", + "wave3Init1Kpi": "AHT -30%, suggestions accepted >60%", + "wave3Init2": "Partial automation (FAQs, routing)", + "wave3Init2Kpi": "Deflection rate 15%", + "wave4Init1": "Transactional Voicebot/Chatbot", + "wave4Init1Kpi": "Containment 70%+, CSAT ≥4/5", + "wave4Init2": "Intelligent IVR with NLU", + "wave4Init2Kpi": "Pre-qualification 80%+, warm transfer" + }, + "successCriteriaTemplates": { + "wave1Criterion1": "CV AHT ≤75% in at least {{count}} high-volume queues", + "wave1Criterion2": "Transfer ≤20% global", + "wave1Criterion3": "Red flags eliminated in priority queues", + "wave1Criterion4": "At least {{count}} queues migrate from Tier 4 → Tier 3", + "wave2Criterion1": "Average score rises from 3.5-5.5 → ≥5.5", + "wave2Criterion2": "AHT -15% vs baseline", + "wave2Criterion3": "CV ≤90% in target queues", + "wave2Criterion4": "{{count}} queues migrate from Tier 3 → Tier 2", + "wave3Criterion1": "Average score rises from 5.5-7.5 → ≥7.5", + "wave3Criterion2": "AHT -30% vs Wave 2 baseline", + "wave3Criterion3": "CV ≤75% in target queues", + "wave3Criterion4": "Transfer ≤20%", + "wave3Criterion5": "{{count}} queues migrate from Tier 2 → Tier 1", + "wave4Criterion1": "Containment ≥70% in automated queues", + "wave4Criterion2": "CSAT maintains or improves (≥4/5)", + "wave4Criterion3": "Escalation to human <30%", + "wave4Criterion4": "Cumulative ROI >300%" + }, + "scenarios": { + "conservativeName": "Conservative", + "conservativeDesc": "FOUNDATION + AUGMENT (Wave 1-2)", + "moderateName": "Moderate", + "moderateDesc": "FOUNDATION + AUGMENT + ASSIST (Wave 1-3)", + "aggressiveName": "Aggressive", + "aggressiveDesc": "Complete roadmap (Wave 1-4)", + "recommended": "Recommended", + "enablerRecommendation": "Recommended as ENABLER", + "partialEnabler": "Partial enabler", + "aspirational": "Aspirational", + "notProfitable": "Not profitable with current volume", + "scenariosTitle": "Investment Scenarios", + "scenariosSubtitle": "Comparison of options according to commitment level", + "scenariosTooltip": "ROI based on industry benchmarks. Adjusted ROI considers implementation risk factors.", + "scenario": "Scenario", + "investment": "Investment", + "recurring": "Recurring", + "savings": "Savings", + "adjusted": "adjusted", + "margin": "Margin", + "payback": "Payback", + "roi3y": "3y ROI", + "risk": "Risk", + "enabler": "Enabler", + "prerequisite": "Prerequisite", + "roiCalculatedOn": "ROI calculated on", + "enablerLongDesc": "Enabling waves whose value lies in unlocking subsequent waves. Their payback is evaluated on the complete roadmap.", + "paybackNote": "Payback: Implementation time + recovery time. Wave 1: 6m, W2: 3m, W3: 3m, W4: 6m. Savings begin at 50% of last wave.", + "roiNote": "ROI: (3y Savings - 3y Total Cost) / 3y Total Cost × 100. Adjusted applies risk: W1-2: 75-90%, W3: 60%, W4: 50%.", + "enablerNote": "Enabler: Waves that unlock ROI of subsequent waves. Their payback is evaluated with the complete roadmap.", + "enablerValue": "Real value of this investment:", + "enablerUnlocks": "Unlocks {{amount}}/year in {{waves}}. Without this foundation, subsequent waves are not viable." + }, + "decisionGates": { + "gate1Question": "CV ≤75% in 3+ queues?", + "gate1Criteria": "Red flags eliminated, Tier 4→3", + "gate1GoAction": "Start AUGMENT", + "gate1NoGoAction": "Extend FOUNDATION", + "gate2Question": "Score ≥5.5 in target?", + "gate2Criteria": "CV ≤90%, Transfer ≤30%", + "gate2GoAction": "Start ASSIST", + "gate2NoGoAction": "Consolidate AUGMENT", + "gate3Question": "Score ≥7.5 in 2+ queues?", + "gate3Criteria": "CV ≤75%, FCR ≥50%", + "gate3GoAction": "Launch AUTOMATE", + "gate3NoGoAction": "Expand ASSIST", + "goNoGo": "Go/No-Go", + "criteria": "Criteria:", + "go": "Go:", + "no": "No:" + }, + "timeline": { + "title": "Transformation Roadmap 2026-2027", + "subtitle": "Each wave depends on the success of the previous one. Decision points allow adjustment based on actual results.", + "setup": "Setup:", + "savings": "Savings:", + "conditional": "Conditional", + "low": "Low", + "medium": "Medium", + "high": "High", + "legendConfirmed": "Confirmed wave", + "legendConditional": "Conditional wave", + "legendDecisionPoint": "Go/No-Go decision point", + "legendRisk": "= Risk" + }, + "comparison": { + "investment": "Investment", + "recurring": "Recurring", + "savings": "Savings", + "margin": "Margin", + "payback": "Payback", + "roi3y": "3y ROI", + "risk": "Risk", + "scenario": "Scenario", + "recommendation": "Recommendation", + "enabler": "Enabler", + "recommended": "Recommended" + }, + "entryCriteria": { + "wave1TierFrom": "HUMAN-ONLY (4), AUGMENT (3)", + "wave1ScoreRange": "<5.5", + "wave1Metric1": "CV >75% or Transfer >20%", + "wave1Metric2": "Active Red Flags", + "wave1Metric3": "Undocumented processes", + "wave2TierFrom": "AUGMENT (3)", + "wave2ScoreRange": "3.5-5.5", + "wave2Metric1": "CV ≤75%", + "wave2Metric2": "Transfer ≤20%", + "wave2Metric3": "No Red Flags", + "wave3TierFrom": "ASSIST (2)", + "wave3ScoreRange": "5.5-7.5", + "wave3Metric1": "CV ≤90%", + "wave3Metric2": "Transfer ≤30%", + "wave3Metric3": "Stable AHT", + "wave4TierFrom": "AUTOMATE (1)", + "wave4ScoreRange": "≥7.5", + "wave4Metric1": "CV ≤75%", + "wave4Metric2": "Transfer ≤20%", + "wave4Metric3": "FCR ≥50%", + "wave4Metric4": "No Red Flags" + }, + "exitCriteria": { + "wave1TierTo": "AUGMENT (3) minimum", + "wave1ScoreTarget": "≥3.5", + "wave1Kpi1": "CV ≤75%", + "wave1Kpi2": "Transfer ≤20%", + "wave1Kpi3": "Red flags eliminated", + "wave2TierTo": "ASSIST (2)", + "wave2ScoreTarget": "≥5.5", + "wave2Kpi1": "CV ≤90%", + "wave2Kpi2": "Transfer ≤30%", + "wave2Kpi3": "AHT -15%", + "wave3TierTo": "AUTOMATE (1)", + "wave3ScoreTarget": "≥7.5", + "wave3Kpi1": "CV ≤75%", + "wave3Kpi2": "Transfer ≤20%", + "wave3Kpi3": "FCR ≥50%", + "wave3Kpi4": "AHT -30%", + "wave4TierTo": "AUTOMATED", + "wave4ScoreTarget": "Containment ≥70%", + "wave4Kpi1": "Bot resolution ≥70%", + "wave4Kpi2": "CSAT ≥4/5", + "wave4Kpi3": "Escalation <30%" + }, + "recommendations": { + "conservativeEnabler": "✅ Recommended as ENABLER. Unlocks {{amount}}/year in Wave 3-4. Objective: move {{count}} queues from Tier 4→3.", + "conservativeNormal": "✅ Recommended. Validate model with low risk. Objective: move {{count}} queues from Tier 4→3.", + "moderateEnabler": "Partial enabler. Unlocks {{amount}}/year in Wave 4. Decide Go/No-Go in Q3 2026.", + "moderateNormal": "Decide Go/No-Go in Q3 2026 based on Wave 1-2 results. Requires Score ≥5.5 in target queues.", + "aggressivePositive": "⚠️ Aspirational. Only if Waves 1-3 successful and queues with Score ≥7.5 exist. Decision in Q1 2027.", + "aggressiveNegative": "❌ Not profitable with current volume. Requires significantly greater scale." + }, + "table": { + "topQueuesByVolumeImpact": "Top Queues by Volume × Impact", + "queue": "Queue", + "volPerMonth": "Vol/month", + "score": "Score", + "tier": "Tier", + "redFlags": "Red Flags", + "potential": "Potential", + "redFlagsNote": "Red Flags: CV >120% (high variability) · Transfer >50% (fragmented process) · Vol <50 (small sample) · Valid <30% (noisy data)", + "skills": "Skills", + "financialMetrics": "Financial Metrics", + "setupLabel": "Setup", + "recurringPerYear": "Recurring/year", + "savingsPerYear": "Savings/year", + "marginPerYear": "Margin/year", + "initiativesLabel": "Initiatives:", + "setup": "Setup:", + "rec": "Rec:", + "kpi": "KPI:", + "successCriteriaLabel": "✅ Success criteria:", + "condition": "⚠️ Condition:", + "provider": "Provider:" + }, + "porQueNecesarioTemplates": { + "wave1": "{{count}} of {{total}} queues are in Tier 3-4 ({{pct}}% of volume). Red flags: CV >75%, Transfer >20%. Automating without standardizing = guaranteed failure.", + "wave2": "Implement support tools for Tier 3 queues (Score 3.5-5.5). Objective: raise score to ≥5.5 to enable Wave 3. Focus on {{count}} queues with {{volume}} int/month.", + "wave3": "AI Copilot for agents in Tier 2 queues. Real-time suggestions, autocomplete, next-best-action. Objective: raise score to ≥7.5 for Wave 4. Target: {{count}} queues with {{volume}} int/month.", + "wave4": "End-to-end automation for Tier 1 queues. Transactional Voicebot/Chatbot with 70% containment. Only viable with mature processes. Current target: {{count}} queues with {{volume}} int/month." + }, + "fallbackSkills": { + "wave1": "Queues that reach Score 3.5-5.5 post Wave 1", + "wave2": "Queues that reach Score ≥5.5 post Wave 2", + "wave3": "Queues that reach Score ≥7.5 post Wave 3" + } }, "opportunities": { "viewCriticalActions": "View Critical Actions", @@ -819,6 +1066,65 @@ "resolution": "Resolution", "dataQuality": "Data Quality" }, + "factorConfigs": { + "predictability": { + "title": "Predictability", + "description": "Consistency in handling times", + "methodology": "Score = 10 - (CV_AHT / 10). CV AHT < 30% → Score > 7", + "benchmark": "Optimal CV AHT < 25%", + "highImplication": "Consistent times, ideal for AI", + "lowImplication": "Requires standardization" + }, + "inverseComplexity": { + "title": "Simplicity", + "description": "Low level of human judgment required", + "methodology": "Score = 10 - (Transfer_Rate × 0.4). Transfer <10% → Score > 6", + "benchmark": "Optimal transfers <10%", + "highImplication": "Simple processes, automatable", + "lowImplication": "High complexity, requires copilot" + }, + "repeatability": { + "title": "Volume", + "description": "Scale to justify investment", + "methodology": "Score = normalized log10(Volume). >5000 → 10, <100 → 2", + "benchmark": "Positive ROI requires >500/month", + "highImplication": "High volume justifies investment", + "lowImplication": "Consider shared solutions" + }, + "roiPotential": { + "title": "ROI Potential", + "description": "Expected economic return", + "methodology": "Score based on total annual cost. >€500K → 10", + "benchmark": "ROI >150% at 12 months", + "highImplication": "Solid business case", + "lowImplication": "Marginal ROI, evaluate other benefits" + } + }, + "scoreBreakdown": { + "predictability": "Predictability (30%)", + "resolution": "Resolution (25%)", + "volume": "Volume (25%)", + "dataQuality": "Data Quality (10%)", + "simplicity": "Simplicity (10%)" + }, + "bubbleChart": { + "quickWinsCount": "{{count}} queues · {{amount}}", + "highPotentialCount": "{{count}} queues · {{amount}}", + "developCount": "{{count}} queues · {{amount}}", + "easyImplCount": "{{count}} · {{amount}}", + "backlogCount": "{{count}} · {{amount}}", + "total": "total", + "noQueuesFilters": "No queues match the selected filters" + }, + "modal": { + "skillLabel": "Skill:", + "transferRate": "Transfer Rate", + "annualSavings": "Annual Savings" + }, + "volumeLabels": { + "queues": "queues", + "int": "int" + }, "subFactors": { "repeatability": "Repeatability", "repeatabilityDisplayName": "Repeatability", diff --git a/frontend/locales/es.json b/frontend/locales/es.json index c96cfb5..c297822 100644 --- a/frontend/locales/es.json +++ b/frontend/locales/es.json @@ -532,7 +532,254 @@ "hideDetail": "Ocultar detalle", "viewDetail": "Ver detalle", "collapseAll": "Colapsar todas", - "expandAll": "Expandir todas" + "expandAll": "Expandir todas", + "tierLabels": { + "automate": "Automatizar", + "assist": "Asistir", + "augment": "Optimizar", + "human": "Humano" + }, + "payback": { + "seeWave34": "Ver Wave 3-4", + "notRecoverable": "No recuperable", + "immediate": "Inmediato", + "recoversWithAutomation": "Esta inversión se recupera con las waves de automatización (W3-W4). El payback se calcula sobre el roadmap completo, no sobre waves habilitadoras aisladas.", + "savingsDoNotCoverRecurring": "El ahorro anual no supera los costes recurrentes.", + "moderateRecoveryPeriod": "Periodo de recuperación moderado.", + "longRecoveryPeriod": "Periodo de recuperación largo. Considerar escenario menos ambicioso." + }, + "waves": { + "wave1Name": "Wave 1", + "wave1Title": "FOUNDATION", + "wave1Quarter": "Q1-Q2 2026", + "wave1Condition": "", + "wave1Provider": "Beyond Consulting o tercero especializado", + "wave1RiskDescription": "Consultoría con entregables tangibles. No requiere tecnología.", + "wave2Name": "Wave 2", + "wave2Title": "AUGMENT", + "wave2Quarter": "Q3 2026", + "wave2Condition": "Requiere CV ≤75% post-Wave 1 en colas target", + "wave2Provider": "BEYOND (KB + Scripts IA)", + "wave2RiskDescription": "Herramientas de soporte, bajo riesgo de integración.", + "wave3Name": "Wave 3", + "wave3Title": "ASSIST", + "wave3Quarter": "Q4 2026", + "wave3Condition": "Requiere Score ≥5.5 Y CV ≤90% Y Transfer ≤30%", + "wave3Provider": "BEYOND (Copilot + Routing IA)", + "wave3RiskDescription": "Integración con plataforma contact center. Piloto 4 semanas mitiga.", + "wave4Name": "Wave 4", + "wave4Title": "AUTOMATE", + "wave4Quarter": "Q1-Q2 2027", + "wave4Condition": "Requiere Score ≥7.5 Y CV ≤75% Y Transfer ≤20% Y FCR ≥50%", + "wave4Provider": "BEYOND (Voicebot + IVR + Chatbot)", + "wave4RiskDescription": "Muy condicional. Requiere éxito demostrado en Waves 1-3." + }, + "initiatives": { + "wave1Init1": "Análisis de variabilidad y red flags", + "wave1Init1Kpi": "Mapear causas de CV >75% y Transfer >20%", + "wave1Init2": "Rediseño y documentación de procesos", + "wave1Init2Kpi": "Scripts estandarizados para 80% casuística", + "wave1Init3": "Training y certificación de agentes", + "wave1Init3Kpi": "Certificación 90% agentes, adherencia >85%", + "wave2Init1": "Knowledge Base contextual", + "wave2Init1Kpi": "Hold time -25%, uso KB +40%", + "wave2Init2": "Scripts dinámicos con IA", + "wave2Init2Kpi": "Adherencia scripts +30%", + "wave3Init1": "Agent Assist / Copilot IA", + "wave3Init1Kpi": "AHT -30%, sugerencias aceptadas >60%", + "wave3Init2": "Automatización parcial (FAQs, routing)", + "wave3Init2Kpi": "Deflection rate 15%", + "wave4Init1": "Voicebot/Chatbot transaccional", + "wave4Init1Kpi": "Contención 70%+, CSAT ≥4/5", + "wave4Init2": "IVR inteligente con NLU", + "wave4Init2Kpi": "Pre-calificación 80%+, transferencia warm" + }, + "successCriteriaTemplates": { + "wave1Criterion1": "CV AHT ≤75% en al menos {{count}} colas de alto volumen", + "wave1Criterion2": "Transfer ≤20% global", + "wave1Criterion3": "Red flags eliminados en colas prioritarias", + "wave1Criterion4": "Al menos {{count}} colas migran de Tier 4 → Tier 3", + "wave2Criterion1": "Score promedio sube de 3.5-5.5 → ≥5.5", + "wave2Criterion2": "AHT -15% vs baseline", + "wave2Criterion3": "CV ≤90% en colas target", + "wave2Criterion4": "{{count}} colas migran de Tier 3 → Tier 2", + "wave3Criterion1": "Score promedio sube de 5.5-7.5 → ≥7.5", + "wave3Criterion2": "AHT -30% vs baseline Wave 2", + "wave3Criterion3": "CV ≤75% en colas target", + "wave3Criterion4": "Transfer ≤20%", + "wave3Criterion5": "{{count}} colas migran de Tier 2 → Tier 1", + "wave4Criterion1": "Contención ≥70% en colas automatizadas", + "wave4Criterion2": "CSAT se mantiene o mejora (≥4/5)", + "wave4Criterion3": "Escalado a humano <30%", + "wave4Criterion4": "ROI acumulado >300%" + }, + "scenarios": { + "conservativeName": "Conservador", + "conservativeDesc": "FOUNDATION + AUGMENT (Wave 1-2)", + "moderateName": "Moderado", + "moderateDesc": "FOUNDATION + AUGMENT + ASSIST (Wave 1-3)", + "aggressiveName": "Agresivo", + "aggressiveDesc": "Roadmap completo (Wave 1-4)", + "recommended": "Recomendado", + "enablerRecommendation": "Recomendado como HABILITADOR", + "partialEnabler": "Habilitador parcial", + "aspirational": "Aspiracional", + "notProfitable": "No rentable con el volumen actual", + "scenariosTitle": "Escenarios de Inversión", + "scenariosSubtitle": "Comparación de opciones según nivel de compromiso", + "scenariosTooltip": "ROI basado en benchmarks de industria. El ROI ajustado considera factores de riesgo de implementación.", + "scenario": "Escenario", + "investment": "Inversión", + "recurring": "Recurrente", + "savings": "Ahorro", + "adjusted": "ajust.", + "margin": "Margen", + "payback": "Payback", + "roi3y": "ROI 3a", + "risk": "Riesgo", + "enabler": "Habilitador", + "prerequisite": "Prerrequisito", + "roiCalculatedOn": "El ROI se calcula sobre el roadmap completo", + "enablerLongDesc": "Waves habilitadoras - su valor está en desbloquear waves posteriores. Su payback se evalúa con el roadmap completo.", + "paybackNote": "Payback: Tiempo implementación + tiempo recuperación. Wave 1: 6m, W2: 3m, W3: 3m, W4: 6m. Ahorro comienza al 50% de última wave.", + "roiNote": "ROI: (Ahorro 3a - Coste Total 3a) / Coste Total 3a × 100. Ajustado aplica riesgo: W1-2: 75-90%, W3: 60%, W4: 50%.", + "enablerNote": "💡 Habilitador: Waves que desbloquean ROI de waves posteriores. Su payback se evalúa con el roadmap completo.", + "enablerValue": "💡 Valor real de esta inversión:", + "enablerUnlocks": "Desbloquea {{amount}}/año en {{waves}}. Sin esta base, las waves posteriores no son viables." + }, + "decisionGates": { + "gate1Question": "¿CV ≤75% en 3+ colas?", + "gate1Criteria": "Red flags eliminados, Tier 4→3", + "gate1GoAction": "Iniciar AUGMENT", + "gate1NoGoAction": "Extender FOUNDATION", + "gate2Question": "¿Score ≥5.5 en target?", + "gate2Criteria": "CV ≤90%, Transfer ≤30%", + "gate2GoAction": "Iniciar ASSIST", + "gate2NoGoAction": "Consolidar AUGMENT", + "gate3Question": "¿Score ≥7.5 en 2+ colas?", + "gate3Criteria": "CV ≤75%, FCR ≥50%", + "gate3GoAction": "Lanzar AUTOMATE", + "gate3NoGoAction": "Expandir ASSIST", + "goNoGo": "Go/No-Go", + "criteria": "Criterio:", + "go": "✓ Go:", + "no": "✗ No:" + }, + "timeline": { + "title": "Roadmap de Transformación 2026-2027", + "subtitle": "Cada wave depende del éxito de la anterior. Los puntos de decisión permiten ajustar según resultados reales.", + "setup": "Setup:", + "savings": "Ahorro:", + "conditional": "Condicional", + "low": "● Bajo", + "medium": "● Medio", + "high": "● Alto", + "legendConfirmed": "Wave confirmada", + "legendConditional": "Wave condicional", + "legendDecisionPoint": "Punto de decisión Go/No-Go", + "legendRisk": "= Riesgo" + }, + "comparison": { + "investment": "Inversión", + "recurring": "Recurrente", + "savings": "Ahorro", + "margin": "Margen", + "payback": "Payback", + "roi3y": "ROI 3a", + "risk": "Riesgo", + "scenario": "Escenario", + "recommendation": "Recomendación", + "enabler": "Habilitador", + "recommended": "Recomendado" + }, + "entryCriteria": { + "wave1TierFrom": "HUMAN-ONLY (4), AUGMENT (3)", + "wave1ScoreRange": "<5.5", + "wave1Metric1": "CV >75% o Transfer >20%", + "wave1Metric2": "Red Flags activos", + "wave1Metric3": "Procesos no documentados", + "wave2TierFrom": "AUGMENT (3)", + "wave2ScoreRange": "3.5-5.5", + "wave2Metric1": "CV ≤75%", + "wave2Metric2": "Transfer ≤20%", + "wave2Metric3": "Sin Red Flags", + "wave3TierFrom": "ASSIST (2)", + "wave3ScoreRange": "5.5-7.5", + "wave3Metric1": "CV ≤90%", + "wave3Metric2": "Transfer ≤30%", + "wave3Metric3": "AHT estable", + "wave4TierFrom": "AUTOMATE (1)", + "wave4ScoreRange": "≥7.5", + "wave4Metric1": "CV ≤75%", + "wave4Metric2": "Transfer ≤20%", + "wave4Metric3": "FCR ≥50%", + "wave4Metric4": "Sin Red Flags" + }, + "exitCriteria": { + "wave1TierTo": "AUGMENT (3) mínimo", + "wave1ScoreTarget": "≥3.5", + "wave1Kpi1": "CV ≤75%", + "wave1Kpi2": "Transfer ≤20%", + "wave1Kpi3": "Red flags eliminados", + "wave2TierTo": "ASSIST (2)", + "wave2ScoreTarget": "≥5.5", + "wave2Kpi1": "CV ≤90%", + "wave2Kpi2": "Transfer ≤30%", + "wave2Kpi3": "AHT -15%", + "wave3TierTo": "AUTOMATE (1)", + "wave3ScoreTarget": "≥7.5", + "wave3Kpi1": "CV ≤75%", + "wave3Kpi2": "Transfer ≤20%", + "wave3Kpi3": "FCR ≥50%", + "wave3Kpi4": "AHT -30%", + "wave4TierTo": "AUTOMATIZADO", + "wave4ScoreTarget": "Contención ≥70%", + "wave4Kpi1": "Bot resolution ≥70%", + "wave4Kpi2": "CSAT ≥4/5", + "wave4Kpi3": "Escalado <30%" + }, + "recommendations": { + "conservativeEnabler": "✅ Recomendado como HABILITADOR. Desbloquea {{amount}}/año en Wave 3-4. Objetivo: mover {{count}} colas de Tier 4→3.", + "conservativeNormal": "✅ Recomendado. Validar modelo con riesgo bajo. Objetivo: mover {{count}} colas de Tier 4→3.", + "moderateEnabler": "Habilitador parcial. Desbloquea {{amount}}/año en Wave 4. Decidir Go/No-Go en Q3 2026.", + "moderateNormal": "Decidir Go/No-Go en Q3 2026 basado en resultados Wave 1-2. Requiere Score ≥5.5 en colas target.", + "aggressivePositive": "⚠️ Aspiracional. Solo si Waves 1-3 exitosas y hay colas con Score ≥7.5. Decisión en Q1 2027.", + "aggressiveNegative": "❌ No rentable con el volumen actual. Requiere escala significativamente mayor." + }, + "table": { + "topQueuesByVolumeImpact": "Top Colas por Volumen × Impacto", + "queue": "Cola", + "volPerMonth": "Vol/mes", + "score": "Score", + "tier": "Tier", + "redFlags": "Red Flags", + "potential": "Potencial", + "redFlagsNote": "Red Flags: CV >120% (alta variabilidad) · Transfer >50% (proceso fragmentado) · Vol <50 (muestra pequeña) · Valid <30% (datos ruidosos)", + "skills": "Skills", + "financialMetrics": "Métricas Financieras", + "setupLabel": "Setup", + "recurringPerYear": "Recurrente/año", + "savingsPerYear": "Ahorro/año", + "marginPerYear": "Margen/año", + "initiativesLabel": "Iniciativas:", + "setup": "Setup:", + "rec": "Rec:", + "kpi": "KPI:", + "successCriteriaLabel": "✅ Criterios de éxito:", + "condition": "⚠️ Condición:", + "provider": "Proveedor:" + }, + "porQueNecesarioTemplates": { + "wave1": "{{count}} de {{total}} colas están en Tier 3-4 ({{pct}}% del volumen). Red flags: CV >75%, Transfer >20%. Automatizar sin estandarizar = fracaso garantizado.", + "wave2": "Implementar herramientas de soporte para colas Tier 3 (Score 3.5-5.5). Objetivo: elevar score a ≥5.5 para habilitar Wave 3. Foco en {{count}} colas con {{volume}} int/mes.", + "wave3": "Copilot IA para agentes en colas Tier 2. Sugerencias en tiempo real, autocompletado, next-best-action. Objetivo: elevar score a ≥7.5 para Wave 4. Target: {{count}} colas con {{volume}} int/mes.", + "wave4": "Automatización end-to-end para colas Tier 1. Voicebot/Chatbot transaccional con 70% contención. Solo viable con procesos maduros. Target actual: {{count}} colas con {{volume}} int/mes." + }, + "fallbackSkills": { + "wave1": "Colas que alcancen Score 3.5-5.5 post Wave 1", + "wave2": "Colas que alcancen Score ≥5.5 post Wave 2", + "wave3": "Colas que alcancen Score ≥7.5 post Wave 3" + } }, "opportunities": { "viewCriticalActions": "Ver Acciones Críticas", @@ -819,6 +1066,65 @@ "resolution": "Resolutividad", "dataQuality": "Calidad Datos" }, + "factorConfigs": { + "predictability": { + "title": "Predictibilidad", + "description": "Consistencia en tiempos de gestión", + "methodology": "Score = 10 - (CV_AHT / 10). CV AHT < 30% → Score > 7", + "benchmark": "CV AHT óptimo < 25%", + "highImplication": "Tiempos consistentes, ideal para IA", + "lowImplication": "Requiere estandarización" + }, + "inverseComplexity": { + "title": "Simplicidad", + "description": "Bajo nivel de juicio humano requerido", + "methodology": "Score = 10 - (Tasa_Transfer × 0.4). Transfer <10% → Score > 6", + "benchmark": "Transferencias óptimas <10%", + "highImplication": "Procesos simples, automatizables", + "lowImplication": "Alta complejidad, requiere copilot" + }, + "repeatability": { + "title": "Volumen", + "description": "Escala para justificar inversión", + "methodology": "Score = log10(Volumen) normalizado. >5000 → 10, <100 → 2", + "benchmark": "ROI positivo requiere >500/mes", + "highImplication": "Alto volumen justifica inversión", + "lowImplication": "Considerar soluciones compartidas" + }, + "roiPotential": { + "title": "ROI Potencial", + "description": "Retorno económico esperado", + "methodology": "Score basado en coste anual total. >€500K → 10", + "benchmark": "ROI >150% a 12 meses", + "highImplication": "Caso de negocio sólido", + "lowImplication": "ROI marginal, evaluar otros beneficios" + } + }, + "scoreBreakdown": { + "predictability": "Predictibilidad (30%)", + "resolution": "Resolutividad (25%)", + "volume": "Volumen (25%)", + "dataQuality": "Calidad Datos (10%)", + "simplicity": "Simplicidad (10%)" + }, + "bubbleChart": { + "quickWinsCount": "{{count}} colas · {{amount}}", + "highPotentialCount": "{{count}} colas · {{amount}}", + "developCount": "{{count}} colas · {{amount}}", + "easyImplCount": "{{count}} · {{amount}}", + "backlogCount": "{{count}} · {{amount}}", + "total": "total", + "noQueuesFilters": "No hay colas que cumplan los filtros seleccionados" + }, + "modal": { + "skillLabel": "Skill:", + "transferRate": "Transfer Rate", + "annualSavings": "Ahorro Anual" + }, + "volumeLabels": { + "queues": "colas", + "int": "int" + }, "subFactors": { "repeatability": "Repetitividad", "repeatabilityDisplayName": "Repetitividad",