> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Métricas

> Consulta la analítica de tu empresa desde la terminal: catálogo completo por categoría, una métrica puntual o un tablero entero, con filtros, ventanas de tiempo y plantillas.

`jelou metrics` lee el mismo catálogo de analítica que ven los dashboards de
Studio — ocho categorías: `inbox`, `ecommerce`, `payments`, `voice`,
`biometrics`, `brain`, `ai`, `general`. El catálogo es propio de cada empresa y
se sirve en vivo, así que **descubre antes de pedir** — nunca asumas una `key`
de memoria.

```bash theme={null}
jelou metrics list --agent                                 # catálogo completo
jelou metrics list --category ecommerce --agent            # una categoría
jelou metrics get ecommerce_sales_kpis --last 30d --agent  # una métrica
jelou metrics dashboard --template ecommerce --agent       # un tablero entero
jelou metrics dashboard --agent                            # el tablero principal
```

## Listar el catálogo

```bash theme={null}
jelou metrics list                          # todo, legible
jelou metrics list --category payments      # solo una categoría
jelou metrics list --json                   # incluye filtros y forma de cada métrica
```

| Flag                | Descripción                                                                       |
| ------------------- | --------------------------------------------------------------------------------- |
| `--category <cat>`  | `inbox`, `ecommerce`, `payments`, `voice`, `biometrics`, `brain`, `ai`, `general` |
| `--origin <origen>` | `default`, `custom` o `datum` (por defecto se mezclan los tres)                   |

`list` combina tres orígenes de catálogo. Si uno falla, el comando de todas
formas sale con código `0` con las métricas que sí pudo leer y nombra las
demás en `errors[]` — revisa `failed` antes de asumir que una `key` no existe.

Las siete `keys` heredadas de antes de v2 (`dau_total`, `dau_ai_total`,
`unique_users_total`, `unique_users_per_day`, `brain_sessions`,
`bic_billing_sessions`, `hsm_by_sent_status`) siguen resolviendo y devuelven su
envelope de siempre — aparecen marcadas con `legacy: true` en `--json`.

## Traer una métrica

```bash theme={null}
jelou metrics get ecommerce_sales_kpis --last 30d
jelou metrics get payments_success_rate --last 7d --agent
jelou metrics get brain_top_words --bot-id <bot-id> --last 30d
jelou metrics get dau_ai_total --period currentYear   # slug heredado, ventana heredada
```

Las `keys` no distinguen mayúsculas/minúsculas, y el final del `invocation_name`
funciona cuando no es ambiguo. En terminal interactiva se renderiza como
tarjeta o gráfico; en modo `--json`/`--agent` (o con stdout redirigido) emite
el envelope JSON.

### Ventanas de tiempo

| Flag                                                       | Descripción                                        |
| ---------------------------------------------------------- | -------------------------------------------------- |
| `--last <7d\|30d\|90d\|12m>`                               | Ventana relativa. Prefiérela.                      |
| `--period <today\|currentWeek\|currentMonth\|currentYear>` | Ventana de calendario (por defecto `currentMonth`) |
| `--start <iso> --end <iso>`                                | Rango a medida; van los dos juntos o ninguno       |

Precedencia: `--start`+`--end` gana sobre `--last`, que gana sobre `--period`.

### Filtros

Cada métrica declara qué filtros acepta — pasar uno que no declara sale con
código `2` y te dice cuáles sí acepta. Revisa `filters` en
`jelou metrics list --json` antes de llamar una métrica nueva.

| Filtro              | Flag                        | Notas                                                   |
| ------------------- | --------------------------- | ------------------------------------------------------- |
| `botId`             | `--bot-id`                  | repetible; ids desde `jelou channels list`              |
| `teamId`            | `--team-id`                 | repetible                                               |
| `provider`          | `--provider`                | repetible (pagos)                                       |
| `currency`          | `--currency`                | repetible (pagos)                                       |
| `environment`       | `--environment PROD\|DEV`   | pagos                                                   |
| `typeBiometric`     | `--type-biometric`          | biometría                                               |
| `skillName`         | `--skill-name`              | repetible; costo de IA por workflow                     |
| `nodeId`            | `--node-id`                 | repetible; evaluaciones de agente                       |
| `skillId`           | `--skill-id`                | repetible; evaluaciones de agente                       |
| `criterionName`     | `--criterion-name`          | repetible; frecuencia de evaluación de agente           |
| —                   | `--app-id`                  | solo ecommerce, repetible; sin este flag es cada tienda |
| `startAt` / `endAt` | los flags de ventana arriba | siempre se aceptan, estén declarados o no               |

## Un tablero completo

```bash theme={null}
jelou metrics dashboard                                    # tablero principal
jelou metrics dashboard --template ecommerce               # tablero oficial
jelou metrics dashboard "Operaciones"                      # tablero guardado, por nombre
jelou metrics dashboard --template payments --last 7d --agent
```

| Flag                                        | Descripción                                                       |
| ------------------------------------------- | ----------------------------------------------------------------- |
| `--template <nombre>`                       | `ecommerce`, `payments`, `brain`, `ai`, `biometrics`, `operators` |
| `--last` / `--period` / `--start` / `--end` | mismas ventanas que `get`                                         |

Las métricas de un tablero se piden en paralelo — una que falle no tumba el
tablero completo: la respuesta `--json` trae `failed` y `errors[]`, y el resto
se renderiza igual. Sin nombre ni `--template`, `dashboard` muestra el tablero
principal de la empresa; el envelope de ese comando lista en `workspaces` los
nombres de tableros guardados que encontró.

## Códigos de salida

| Código | Significado                                                                                       |
| ------ | ------------------------------------------------------------------------------------------------- |
| 0      | Éxito                                                                                             |
| 1      | Genérico / desconocido                                                                            |
| 2      | Input — key ambigua, fecha inválida, `--start`/`--end` suelto, o un flag que la métrica no acepta |
| 3      | No encontrado — key, tablero o template desconocido                                               |
| 4      | Auth / prohibido — token faltante, expirado o rechazado                                           |
| 6      | Transitorio / API — 5xx o timeout de red, reintentable                                            |

<Warning>
  Los números que devuelve este comando tienen matices reales, no son verdad
  contable:

  * Los agregados de ecommerce vienen de tablas de rollup refrescadas cada \~10
    min (solo hoy/ayer + días recientemente tocados); el detalle (`detail`) es en
    vivo y puede no coincidir con los resúmenes.
  * `total_sales` excluye modificadores de producto — es una estimación de GMV,
    no ingreso contable. `AOV` hereda esta limitación.
  * `cart_conversion` es una cohorte por fecha de creación sin TTL de abandono —
    las ventanas recientes se subestiman; `breakdown.abandoned` suele ser `0`.
  * `sales_by_category` cuenta doble (relación M:N) — no va a sumar igual a
    `total_sales`.
  * La familia de métricas de catálogo ignora `from`/`to` por completo (es una
    foto global).
  * `ai_usage_cost` en las métricas de búsqueda es costo interno de Jelou.
  * Los totales de términos de búsqueda excluyen consultas de navegación/sentinel,
    pero `total_searches` sí las incluye — las listas no van a sumar igual.
  * Se necesita el scope `analytics:read` (+ `ecommerce:access` para shop). No lo
    valides de antemano — deja que el 401/403 de la API llegue tal cual.
</Warning>

<Tip>
  Si tu agente ya va a pedir el resto del contexto del workspace, `jelou context --agent` no incluye métricas — este comando sigue siendo la única puerta de
  entrada a la analítica de la empresa.
</Tip>
