Dashboard Features: - 8 navigation sections: Overview, Outcomes, Poor CX, FCR, Churn, Agent, Call Explorer, Export - Beyond Brand Identity styling (colors #6D84E3, Outfit font) - RCA Sankey diagram (Driver → Outcome → Churn Risk flow) - Correlation heatmaps (driver co-occurrence, driver-outcome) - Outcome Deep Dive (root causes, correlation, duration analysis) - Export functionality (Excel, HTML, JSON) Blueprint Compliance: - FCR: 4 categories (Primera Llamada/Rellamada × Sin/Con Riesgo de Fuga) - Churn: Binary view (Sin Riesgo de Fuga / En Riesgo de Fuga) - Agent: Talento Para Replicar / Oportunidades de Mejora - Fixed FCR rate calculation (only FIRST_CALL counts as success) Technical: - Streamlit + Plotly for interactive visualizations - Light theme configuration (.streamlit/config.toml) - Fixed Plotly colorbar titlefont deprecation Documentation: - Updated PROJECT_CONTEXT.md, TODO.md, CHANGELOG.md - Added 4 new technical decisions (TD-014 to TD-017) - Created TROUBLESHOOTING.md with 10 common issues Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7.0 KiB
7.0 KiB
CHANGELOG
Registro de cambios del proyecto CXInsights
[2.1.0] - 2026-01-19 - Streamlit Dashboard + Blueprint Compliance
Added
Streamlit Dashboard (dashboard/)
-
Main Application (
app.py)- 8 navigation sections: Overview, Outcomes, Poor CX, FCR, Churn, Agent, Call Explorer, Export
- Automatic batch detection and selection
- Beyond brand header with logo and metadata
-
Brand Configuration (
config.py)- Beyond Brand Identity colors: Black #000000, Blue #6D84E3, Grey #B1B1B0
- Custom CSS with Outfit font (Google Fonts)
- McKinsey-style chart formatting
-
Data Loading (
data_loader.py)load_batch_data()- Load summary and individual analysescalculate_kpis()- Dashboard KPI calculationsaggregate_drivers()- Cross-analysis driver aggregation
-
Visualization Components (
components.py)render_kpi_cards()- Metric cards with deltasrender_outcome_chart()- Horizontal bar chartrender_driver_analysis()- Driver frequency barsrender_fcr_analysis()- FCR 4-category view per blueprintrender_churn_risk_analysis()- Binary churn risk view per blueprintrender_agent_performance()- Talento Para Replicar / Oportunidades de Mejorarender_rca_sankey()- RCA flow: Driver → Outcome → Churn Riskrender_driver_correlation_heatmap()- Jaccard similarity co-occurrencerender_driver_outcome_heatmap()- Driver distribution by outcomerender_outcome_deep_dive()- Root causes, correlation, duration analysisrender_call_explorer()- Filterable call detail table
-
Export Functionality (
exports.py)create_excel_export()- 8-sheet workbook with all analysis datacreate_executive_summary_html()- Branded HTML reportcreate_json_export()- Raw JSON data package
-
Theme Configuration (
.streamlit/config.toml)- Light theme base
- Brand primary color
- Port 8510 configuration
Changed
Blueprint Terminology Compliance
-
FCR Analysis: Updated from simple distribution to 4 categories
- Primera Llamada Sin Riesgo de Fuga
- Primera Llamada Con Riesgo de Fuga
- Rellamada Sin Riesgo de Fuga
- Rellamada Con Riesgo de Fuga
-
Churn Risk Analysis: Updated to binary categories
- Sin Riesgo de Fuga (LOW, MEDIUM)
- En Riesgo de Fuga (AT_RISK, HIGH)
-
Agent Performance: Updated labels to blueprint terminology
- Talento Para Replicar (positive skills)
- Oportunidades de Mejora (improvement areas)
FCR Rate Calculation Fix
- Before:
FIRST_CALL + RESOLVEDcounted as success - After: Only
FIRST_CALLcounts as FCR success (per blueprint) - Updated in
data_loader.pyandexports.py
Fixed
- Plotly colorbar
titlefontdeprecated property →title.font - Streamlit dark theme issue → Light theme in config.toml
- Port conflicts → Using port 8510
[2.0.0] - 2026-01-19 - Blueprint Alignment
Added
New Analysis Dimensions (High Priority Gaps)
-
FCR Detection Module
FCRStatusenum:FIRST_CALL,REPEAT_CALL,UNKNOWNfcr_statusfield inCallAnalysisfcr_failure_driversfield for tracking repeat call causes
-
Churn Risk Classification
ChurnRiskenum:NO_RISK,AT_RISK,UNKNOWNchurn_riskfield inCallAnalysischurn_risk_driversfield for churn indicators
-
Agent Skill Assessment
AgentClassificationenum:GOOD_PERFORMER,NEEDS_IMPROVEMENT,MIXED,UNKNOWNAgentSkillIndicatormodel with skill_code, skill_type, evidence, coaching recommendationsagent_positive_skillsandagent_improvement_areasfields inCallAnalysis
-
Enhanced RCALabel Structure
DriverOriginenum:AGENT,CUSTOMER,COMPANY,PROCESS,UNKNOWNoriginfield inRCALabelfor responsibility attributioncorrective_actionfield for actionable recommendationsreplicable_practicefield for positive behaviors to replicate
New Taxonomy Categories
churn_riskdrivers: PRICE_DISSATISFACTION, SERVICE_QUALITY_ISSUES, REPEATED_PROBLEMS, COMPETITOR_MENTION, CONTRACT_ISSUES, BILLING_PROBLEMSfcr_failuredrivers: INCOMPLETE_RESOLUTION, PENDING_ACTION_REQUIRED, MISSING_INFORMATION, UNCLEAR_NEXT_STEPS, SYSTEM_LIMITATIONS, PROMISED_CALLBACKagent_skills.positive: EFFECTIVE_CLOSING, GOOD_RAPPORT, OBJECTION_MASTERY, PRODUCT_KNOWLEDGE, ACTIVE_LISTENING, EMPATHY_SHOWN, SOLUTION_ORIENTED, CLEAR_COMMUNICATIONagent_skills.improvement_needed: POOR_CLOSING, MISSED_OPPORTUNITIES, OBJECTION_FAILURES, KNOWLEDGE_GAPS, PASSIVE_LISTENING, LOW_EMPATHY, PROBLEM_FOCUSED, UNCLEAR_COMMUNICATION
New Files
config/prompts/call_analysis/v2.0/system.txt- System prompt for v2.0config/prompts/call_analysis/v2.0/user.txt- User prompt with all taxonomy sectionsconfig/prompts/call_analysis/v2.0/schema.json- JSON schema for v2.0 responsedocs/GAP_ANALYSIS.md- Comprehensive gap analysis vs BeyondCX blueprints
Changed
Models (src/models/call_analysis.py)
- Added 4 new enums:
FCRStatus,ChurnRisk,AgentClassification,DriverOrigin - Extended
RCALabelwithorigin,corrective_action,replicable_practicefields - Added
AgentSkillIndicatormodel - Extended
CallAnalysiswith 7 new fields
Inference (src/inference/)
prompt_manager.py: AddedTaxonomyTextsdataclass, updatedload_taxonomy_for_prompt()to return all sectionsanalyzer.py: Updated to parse all v2.0 fields, added_parse_agent_skills()method- Default
prompt_versionchanged fromv1.0tov2.0
Aggregation (src/aggregation/)
models.py: AddedDriverCategorytype, extendedRCATreeandBatchAggregationwith v2.0 fieldsstatistics.py: Updatedcalculate_frequencies()to return dict with 6 categories, added FCR/churn/agent metrics tocalculate_outcome_rates()
Configuration
config/prompts/versions.yaml: Changed active version from v1.0 to v2.0config/rca_taxonomy.yaml: Added 3 new top-level sections
Tests Updated
tests/unit/test_inference.py: Updated active version assertion to v2.0tests/unit/test_aggregation.py: Updated sample_analyses fixture with v2.0 fields, updated frequency tests
Documentation
- Updated
docs/PROJECT_CONTEXT.mdwith v2.0 status - Updated
docs/TODO.mdwith completed and new tasks - Created
docs/CHANGELOG.md(this file)
[1.0.0] - 2026-01-19 - MVP Complete
Added
- Complete pipeline: transcription → features → inference → aggregation → exports
- CP1-CP8 checkpoints completed
- AssemblyAI transcription with diarization
- GPT-4o-mini inference with JSON strict mode
- Transcript compression (>60% token reduction)
- RCA tree building with severity scoring
- Export formats: JSON, Excel, PDF/HTML
- CLI interface with resume support
- Comprehensive test suite
Features
CallAnalysismodel with observed vs inferred separationRCALabelwith mandatoryevidence_spans[]- Versioned prompts system
- Checkpoint/resume mechanism
- Batch processing with rate limiting
Última actualización: 2026-01-19