---
id: "US-PFM-013"
title: "Alerta de Rebalanceo"
type: "User Story"
status: "Pending"
priority: "Media"
epic: "OQI-008"
project: "trading-platform"
story_points: 5
created_date: "2026-01-25"
updated_date: "2026-01-25"
---

# US-PFM-013: Alerta de Rebalanceo

**Épica:** OQI-008 - Portfolio Manager
**Story Points:** 5 | **Prioridad:** P2

---

## Historia de Usuario

**Como** inversor
**Quiero** recibir alertas cuando mi portafolio se desvíe de la asignación objetivo
**Para** mantener mi estrategia de inversión y rebalancear cuando sea necesario

---

## Criterios de Aceptación

```gherkin
Scenario: Configurar umbral de desviación
  Given soy usuario Pro/Premium
  And estoy en la sección de Alertas
  When configuro un umbral de desviación (ej: 5%)
  Then el sistema guarda la configuración
  And veo el umbral configurado en mi dashboard

Scenario: Recibir alerta cuando se excede el umbral
  Given tengo un umbral configurado de 5%
  And mi asignación objetivo es 60% acciones / 40% bonos
  When mi portafolio alcanza 65% acciones / 35% bonos
  Then recibo notificación push
  And recibo notificación email
  And veo badge de alerta en el dashboard

Scenario: Ver desviación actual del portafolio
  Given estoy en la sección de Alertas
  When consulto mi portafolio
  Then veo tabla con cada clase de activo
  And cada fila muestra: asignación objetivo, asignación actual, desviación %
  And las desviaciones > umbral se resaltan en rojo

Scenario: Recibir sugerencias de rebalanceo
  Given mi portafolio está fuera de balance
  When visualizo la desviación
  Then veo sugerencias automáticas de rebalanceo
  And cada sugerencia muestra: qué vender, qué comprar, montos
  And puedo ejecutar rebalanceo desde la sugerencia (1-click)

Scenario: Configurar canales de notificación
  Given estoy en configuración de alertas
  When selecciono canales (push, email, SMS)
  Then el sistema respeta mis preferencias
  And solo recibo en canales habilitados
```

---

## Dependencias
- RF-PFM-007.1, RF-PFM-007.2, RF-PFM-007.3
- ET-PFM-007
- US-PFM-009 (Asignación objetivo)

---

## API Endpoints

### POST /api/portfolio/alerts
**Configurar umbral de alerta**
```json
{
  "userId": "uuid",
  "threshold": 5.0,
  "channels": ["push", "email"],
  "enabled": true
}
```
**Response:** 201 Created

### GET /api/portfolio/deviation
**Obtener desviación actual del portafolio**
```json
{
  "userId": "uuid",
  "timestamp": "2026-01-25T10:30:00Z",
  "assets": [
    {
      "assetClass": "stocks",
      "targetAllocation": 60.0,
      "currentAllocation": 65.2,
      "deviation": 5.2,
      "status": "alert"
    },
    {
      "assetClass": "bonds",
      "targetAllocation": 40.0,
      "currentAllocation": 34.8,
      "deviation": -5.2,
      "status": "alert"
    }
  ],
  "isBalanced": false,
  "suggestions": [
    {
      "action": "sell",
      "assetClass": "stocks",
      "amount": 500.00
    },
    {
      "action": "buy",
      "assetClass": "bonds",
      "amount": 500.00
    }
  ]
}
```

---

## Elementos de UI/UX

1. **Card de Alertas en Dashboard**
   - Mostrar estado: ✓ Balanceado / ⚠ Fuera de balance
   - Badge rojo si hay desviación > umbral
   - Botón "Configurar"

2. **Modal de Configuración**
   - Input slider: umbral 1-10%
   - Checkboxes: canales de notificación
   - Botón Guardar

3. **Página de Desviación**
   - Tabla con desgloses por activo
   - Gráfico de dona: objetivo vs actual
   - Sugerencias de rebalanceo con botón "Ejecutar"

4. **Notificaciones**
   - Push: "Tu portafolio se desvió 5.2% de tu objetivo. Rebalancear"
   - Email: Detalles completos + link a dashboard

---

*Historia de usuario - Sistema NEXUS*
