Files
BeyondCX_Insights/docs/CHANGELOG.md
sujucu70 75e7b9da3d feat: Add Streamlit dashboard with Blueprint compliance (v2.1.0)
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>
2026-01-19 16:27:30 +01:00

172 lines
7.0 KiB
Markdown

# 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 analyses
- `calculate_kpis()` - Dashboard KPI calculations
- `aggregate_drivers()` - Cross-analysis driver aggregation
- **Visualization Components** (`components.py`)
- `render_kpi_cards()` - Metric cards with deltas
- `render_outcome_chart()` - Horizontal bar chart
- `render_driver_analysis()` - Driver frequency bars
- `render_fcr_analysis()` - FCR 4-category view per blueprint
- `render_churn_risk_analysis()` - Binary churn risk view per blueprint
- `render_agent_performance()` - Talento Para Replicar / Oportunidades de Mejora
- `render_rca_sankey()` - RCA flow: Driver → Outcome → Churn Risk
- `render_driver_correlation_heatmap()` - Jaccard similarity co-occurrence
- `render_driver_outcome_heatmap()` - Driver distribution by outcome
- `render_outcome_deep_dive()` - Root causes, correlation, duration analysis
- `render_call_explorer()` - Filterable call detail table
- **Export Functionality** (`exports.py`)
- `create_excel_export()` - 8-sheet workbook with all analysis data
- `create_executive_summary_html()` - Branded HTML report
- `create_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 + RESOLVED` counted as success
- **After**: Only `FIRST_CALL` counts as FCR success (per blueprint)
- Updated in `data_loader.py` and `exports.py`
### Fixed
- Plotly colorbar `titlefont` deprecated 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**
- `FCRStatus` enum: `FIRST_CALL`, `REPEAT_CALL`, `UNKNOWN`
- `fcr_status` field in `CallAnalysis`
- `fcr_failure_drivers` field for tracking repeat call causes
- **Churn Risk Classification**
- `ChurnRisk` enum: `NO_RISK`, `AT_RISK`, `UNKNOWN`
- `churn_risk` field in `CallAnalysis`
- `churn_risk_drivers` field for churn indicators
- **Agent Skill Assessment**
- `AgentClassification` enum: `GOOD_PERFORMER`, `NEEDS_IMPROVEMENT`, `MIXED`, `UNKNOWN`
- `AgentSkillIndicator` model with skill_code, skill_type, evidence, coaching recommendations
- `agent_positive_skills` and `agent_improvement_areas` fields in `CallAnalysis`
- **Enhanced RCALabel Structure**
- `DriverOrigin` enum: `AGENT`, `CUSTOMER`, `COMPANY`, `PROCESS`, `UNKNOWN`
- `origin` field in `RCALabel` for responsibility attribution
- `corrective_action` field for actionable recommendations
- `replicable_practice` field for positive behaviors to replicate
#### New Taxonomy Categories
- `churn_risk` drivers: PRICE_DISSATISFACTION, SERVICE_QUALITY_ISSUES, REPEATED_PROBLEMS, COMPETITOR_MENTION, CONTRACT_ISSUES, BILLING_PROBLEMS
- `fcr_failure` drivers: INCOMPLETE_RESOLUTION, PENDING_ACTION_REQUIRED, MISSING_INFORMATION, UNCLEAR_NEXT_STEPS, SYSTEM_LIMITATIONS, PROMISED_CALLBACK
- `agent_skills.positive`: EFFECTIVE_CLOSING, GOOD_RAPPORT, OBJECTION_MASTERY, PRODUCT_KNOWLEDGE, ACTIVE_LISTENING, EMPATHY_SHOWN, SOLUTION_ORIENTED, CLEAR_COMMUNICATION
- `agent_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.0
- `config/prompts/call_analysis/v2.0/user.txt` - User prompt with all taxonomy sections
- `config/prompts/call_analysis/v2.0/schema.json` - JSON schema for v2.0 response
- `docs/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 `RCALabel` with `origin`, `corrective_action`, `replicable_practice` fields
- Added `AgentSkillIndicator` model
- Extended `CallAnalysis` with 7 new fields
#### Inference (`src/inference/`)
- `prompt_manager.py`: Added `TaxonomyTexts` dataclass, updated `load_taxonomy_for_prompt()` to return all sections
- `analyzer.py`: Updated to parse all v2.0 fields, added `_parse_agent_skills()` method
- Default `prompt_version` changed from `v1.0` to `v2.0`
#### Aggregation (`src/aggregation/`)
- `models.py`: Added `DriverCategory` type, extended `RCATree` and `BatchAggregation` with v2.0 fields
- `statistics.py`: Updated `calculate_frequencies()` to return dict with 6 categories, added FCR/churn/agent metrics to `calculate_outcome_rates()`
#### Configuration
- `config/prompts/versions.yaml`: Changed active version from v1.0 to v2.0
- `config/rca_taxonomy.yaml`: Added 3 new top-level sections
### Tests Updated
- `tests/unit/test_inference.py`: Updated active version assertion to v2.0
- `tests/unit/test_aggregation.py`: Updated sample_analyses fixture with v2.0 fields, updated frequency tests
### Documentation
- Updated `docs/PROJECT_CONTEXT.md` with v2.0 status
- Updated `docs/TODO.md` with 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
- `CallAnalysis` model with observed vs inferred separation
- `RCALabel` with mandatory `evidence_spans[]`
- Versioned prompts system
- Checkpoint/resume mechanism
- Batch processing with rate limiting
---
**Última actualización**: 2026-01-19