> ## 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

> Consulte a analítica da sua empresa pelo terminal: catálogo completo por categoria, uma métrica pontual ou um painel inteiro, com filtros, janelas de tempo e templates.

`jelou metrics` lê o mesmo catálogo de analytics que os dashboards do Studio
leem — oito categorias: `inbox`, `ecommerce`, `payments`, `voice`,
`biometrics`, `brain`, `ai`, `general`. O catálogo é próprio de cada empresa e
é servido em tempo real, então **descubra antes de buscar** — nunca fixe uma
`key` de memória.

```bash theme={null}
jelou metrics list --agent                                 # catálogo completo
jelou metrics list --category ecommerce --agent            # uma categoria
jelou metrics get ecommerce_sales_kpis --last 30d --agent  # uma métrica
jelou metrics dashboard --template ecommerce --agent       # um painel inteiro
jelou metrics dashboard --agent                             # o painel principal
```

## Listar o catálogo

```bash theme={null}
jelou metrics list                          # tudo, legível
jelou metrics list --category payments      # só uma categoria
jelou metrics list --json                   # inclui filtros e formato de cada métrica
```

| Flag                | Descrição                                                                         |
| ------------------- | --------------------------------------------------------------------------------- |
| `--category <cat>`  | `inbox`, `ecommerce`, `payments`, `voice`, `biometrics`, `brain`, `ai`, `general` |
| `--origin <origem>` | `default`, `custom` ou `datum` (por padrão os três são combinados)                |

`list` combina três origens de catálogo. Se uma falhar, o comando ainda sai
com código `0` com as métricas que conseguiu ler, e nomeia as demais em
`errors[]` — confira `failed` antes de concluir que uma `key` não existe.

As sete `keys` legadas de antes da v2 (`dau_total`, `dau_ai_total`,
`unique_users_total`, `unique_users_per_day`, `brain_sessions`,
`bic_billing_sessions`, `hsm_by_sent_status`) continuam funcionando e
retornam o envelope de sempre — aparecem marcadas com `legacy: true` no
`--json`.

## Buscar uma 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 legado, janela legada
```

As `keys` não diferenciam maiúsculas/minúsculas, e o final do
`invocation_name` funciona quando não é ambíguo. Em terminal interativo
renderiza como cartão ou gráfico; no modo `--json`/`--agent` (ou com stdout
redirecionado) emite o envelope JSON.

### Janelas de tempo

| Flag                                                       | Descrição                                       |
| ---------------------------------------------------------- | ----------------------------------------------- |
| `--last <7d\|30d\|90d\|12m>`                               | Janela relativa. Prefira-a.                     |
| `--period <today\|currentWeek\|currentMonth\|currentYear>` | Janela de calendário (padrão `currentMonth`)    |
| `--start <iso> --end <iso>`                                | Intervalo customizado; os dois juntos ou nenhum |

Precedência: `--start`+`--end` vence `--last`, que vence `--period`.

### Filtros

Cada métrica declara quais filtros aceita — passar um que ela não declara sai
com código `2` e informa quais ela aceita. Confira `filters` em
`jelou metrics list --json` antes de chamar uma métrica nova.

| Filtro declarado    | Flag                      | Notas                                              |
| ------------------- | ------------------------- | -------------------------------------------------- |
| `botId`             | `--bot-id`                | repetível; ids de `jelou channels list`            |
| `teamId`            | `--team-id`               | repetível                                          |
| `provider`          | `--provider`              | repetível (pagamentos)                             |
| `currency`          | `--currency`              | repetível (pagamentos)                             |
| `environment`       | `--environment PROD\|DEV` | pagamentos                                         |
| `typeBiometric`     | `--type-biometric`        | biometria                                          |
| `skillName`         | `--skill-name`            | repetível; custo de IA por workflow                |
| `nodeId`            | `--node-id`               | repetível; avaliações de agente                    |
| `skillId`           | `--skill-id`              | repetível; avaliações de agente                    |
| `criterionName`     | `--criterion-name`        | repetível; frequência de avaliação de agente       |
| —                   | `--app-id`                | só ecommerce, repetível; sem esse flag é cada loja |
| `startAt` / `endAt` | as flags de janela acima  | sempre aceitas, declaradas ou não                  |

## Um painel completo

```bash theme={null}
jelou metrics dashboard                                    # painel principal
jelou metrics dashboard --template ecommerce               # painel oficial
jelou metrics dashboard "Operações"                        # painel salvo, pelo nome
jelou metrics dashboard --template payments --last 7d --agent
```

| Flag                                        | Descrição                                                         |
| ------------------------------------------- | ----------------------------------------------------------------- |
| `--template <nome>`                         | `ecommerce`, `payments`, `brain`, `ai`, `biometrics`, `operators` |
| `--last` / `--period` / `--start` / `--end` | mesmas janelas de `get`                                           |

As métricas de um painel são buscadas em paralelo — uma que falhar não
derruba o painel inteiro: a resposta `--json` traz `failed` e `errors[]`, e o
resto renderiza normalmente. Sem nome nem `--template`, `dashboard` mostra o
painel principal da empresa; o envelope desse comando lista em `workspaces`
os nomes de painéis salvos que encontrou.

## Exit codes

| Código | Significado                                                                                       |
| ------ | ------------------------------------------------------------------------------------------------- |
| 0      | Sucesso                                                                                           |
| 1      | Genérico / desconhecido                                                                           |
| 2      | Input — key ambígua, data inválida, `--start`/`--end` solto, ou uma flag que a métrica não aceita |
| 3      | Não encontrado — key, painel ou template desconhecido                                             |
| 4      | Auth / proibido — token faltante, expirado ou rejeitado                                           |
| 6      | Transitório / API — 5xx ou timeout de rede, seguro tentar novamente                               |

<Warning>
  Os números que este comando retorna têm ressalvas reais — não os trate como
  verdade contábil:

  * Os agregados de ecommerce vêm de tabelas de rollup atualizadas a cada \~10
    min (só hoje/ontem mais os dias recentemente tocados); os dados de
    `detail` são em tempo real e podem não coincidir com os resumos.
  * `total_sales` exclui modificadores de produto — é uma estimativa de GMV,
    não receita contábil. `AOV` herda essa limitação.
  * `cart_conversion` é uma coorte por data de criação sem TTL de abandono —
    janelas recentes ficam subestimadas; `breakdown.abandoned` costuma ser `0`.
  * `sales_by_category` conta em dobro (relação M:N) — não vai somar igual a
    `total_sales`.
  * A família de métricas de catálogo ignora `from`/`to` completamente (é uma
    foto global).
  * `ai_usage_cost` nas métricas de busca é custo interno da Jelou.
  * Os totais dos termos de busca mais buscados excluem consultas de
    navegação/sentinel, mas `total_searches` as inclui — as listas não vão
    somar igual.
  * É necessário o scope `analytics:read` (mais `ecommerce:access` para shop).
    Não valide isso antes — deixe o 401/403 da API chegar como está.
</Warning>

<Tip>
  Se o seu agente já vai buscar o resto do contexto do workspace, `jelou
    context --agent` não inclui métricas — este comando continua sendo a única
  porta de entrada para a analítica da empresa.
</Tip>
