Selos usados:
GA-candidato·Preview·NÃO MEDIDO·Roadmap. Legenda e template (selo + 9 campos) em README. Uma página por visual: catálogo de visuais.
Contagem certificada#
O catálogo único de visuais do produto tem 46 visuais de dados + 4 elementos de layout = 50 itens. O mesmo catálogo alimenta a aba Inserir (cria um visual novo) e a aba Visual (troca o tipo do selecionado), com os mesmos ícones e cores.
A marca comercial "50+ visuais" é um overstatement: só fecha "50" quando os 4 elementos de layout (texto, forma, imagem, botão) entram na conta. Visuais de dados são 46.
Nenhum visual é mock: todos têm componente React dedicado (Recharts ou SVG próprio), e todo item do catálogo exige uma amostra sintética de dados de referência — a suíte falha se faltar. Comparado ao Power BI, os ~40 nativos são empatados/superados (inclui o que lá é custom visual pago: sankey, marimekko, bullet), e os mapas do Brasil com malha IBGE municipal são superiores ao out-of-the-box do Power BI. Isso é equivalência por item, com evidência — não afirmamos paridade total.
O sistema de visuais (template)#
Selo: GA-candidato (transformação de dados e geometria)
-
O que é — uma família de 46 visuais de dados renderizados no navegador, mais 4 elementos de layout.
-
Quando usar — todo dashboard; a escolha do tipo depende da pergunta (comparar, compor, distribuir, relacionar, mapear).
-
Como funciona — os dados passam por um pipeline único de linhas (agregações sum/avg/min/max/last/count, Top-N, ordenação) e o visual recebe linhas prontas; uma matriz de capacidades por visual (eixos, legenda, rótulos, empilhado, ordenação, linhas de referência, eixo secundário, small multiples, totais, formato) define o que cada tipo suporta.
-
Pré-requisitos — um modelo/consulta que produza a dimensão + até 5 métricas por visual (seletor de campos).
-
Como validar — crie "Receita por categoria" (barras), adicione uma 2ª métrica, ative rótulos e uma linha de referência; confirme cada opção no visual.
-
Limites e ressalvas — a suíte determinística cobre transformação de dados e geometria (funções puras), não a renderização DOM final — não há teste visual/snapshot de imagem. Portanto a aparência renderizada de cada visual é
NÃO MEDIDOpor esta documentação. -
Dados de exemplo (sintéticos)
categoria receita Bebidas 250 Limpeza 90 Higiene 140 -
Evidência — catálogo de visuais, pipeline de linhas e matriz de capacidades por visual cobertos por suíte determinística; cada item exige uma amostra sintética; o pipeline de linhas é congelado pelo conjunto de testes de referência, com resultado idêntico a cada execução.
-
Estado & maturidade — GA-candidato para dados/geometria; render DOM
NÃO MEDIDO.
Catálogo completo (46 de dados + 4 de layout)#
Render: Recharts, SVG próprio (custom) ou HTML. "Como validar cada um": crie o visual pela aba Inserir com os campos indicados e confira o resultado; cada visual tem uma amostra sintética de referência.
KPIs e cartões (3)
| # | id | Visual | Render | Campos mínimos p/ validar |
|---|---|---|---|---|
| 1 | kpi | KPI | custom | 1 métrica (Receita) |
| 2 | kpi-spark | KPI + tendência | custom | 1 métrica + 1 tempo |
| 3 | multikpi | Multi-KPI | custom | várias métricas |
Comparação e tendência (6)
| # | id | Visual | Render | Campos mínimos p/ validar |
|---|---|---|---|---|
| 4 | bar | Barras | Recharts | dimensão + métrica |
| 5 | hbar | Barras horizontais | Recharts | dimensão + métrica |
| 6 | line | Linha | Recharts | tempo + métrica |
| 7 | area | Área | Recharts | tempo + métrica |
| 8 | combo | Combo barra+linha | Recharts | dimensão + 2 métricas |
| 26 | combo-stack | Colunas empilhadas + linha | SVG | dimensão + série + métrica |
Composição e parte-do-todo (7)
| # | id | Visual | Render | Campos mínimos p/ validar |
|---|---|---|---|---|
| 9 | pie | Pizza | Recharts | dimensão + métrica |
| 10 | donut | Rosca | Recharts | dimensão + métrica |
| 16 | treemap | Treemap | Recharts | dimensão + métrica |
| 11 | funnel | Funil | Recharts | etapas + métrica |
| 17 | waterfall | Cascata | custom | passos + variação |
| 32 | mekko | Marimekko (participação) | SVG | 2 dimensões + métrica |
| 33 | ribbon | Ribbon (troca de posto) | SVG | tempo + categoria + métrica |
Medidores e meta (4)
| # | id | Visual | Render | Campos mínimos p/ validar |
|---|---|---|---|---|
| 12 | gauge | Velocímetro | Recharts/custom | 1 métrica + alvo |
| 13 | thermometer | Termômetro | custom | 1 métrica + alvo |
| 21 | bullet | Bullet (meta) | SVG | métrica + meta + faixas |
| 23 | progress | Anel de progresso | SVG | métrica + alvo |
Distribuição e estatística (5)
| # | id | Visual | Render | Campos mínimos p/ validar |
|---|---|---|---|---|
| 18 | histogram | Histograma | custom/Recharts | 1 métrica contínua |
| 19 | pareto | Pareto (80/20) | custom | dimensão + métrica |
| 20 | boxplot | Box plot | custom | grupo + métrica |
| 15 | scatter | Dispersão | Recharts | 2 métricas |
| 22 | quadrant | Dispersão com quadrantes | SVG | 2 métricas + cortes |
Relação e comparação par-a-par (5)
| # | id | Visual | Render | Campos mínimos p/ validar |
|---|---|---|---|---|
| 14 | radar | Radar | Recharts/custom | eixos + série |
| 24 | dumbbell | Haltere (antes × depois) | SVG | categoria + 2 valores |
| 30 | slope | Slope (antes × depois) | SVG | 2 períodos + métrica |
| 31 | tornado | Tornado (espelhado) | SVG | categoria + 2 séries |
| 34 | network | Rede (quem se liga a quem) | SVG | nós + arestas |
Tempo, fluxo e prazo (5)
| # | id | Visual | Render | Campos mínimos p/ validar |
|---|---|---|---|---|
| 25 | calendar | Calendário (sazonalidade) | SVG | data + métrica |
| 27 | gantt | Gantt (cronograma) | SVG | tarefa + início + fim |
| 28 | sankey | Fluxo (origem → destino) | SVG | origem + destino + fluxo |
| 36 | timeline | Linha do tempo (período) | SVG | evento + período |
| 44 | motion | Bolhas no tempo (animado) | Recharts+anim | 2 métricas + tempo |
Tabelas (4)
| # | id | Visual | Render | Campos mínimos p/ validar |
|---|---|---|---|---|
| 37 | table | Tabela (com totais) | HTML | colunas |
| 38 | matrix | Matriz (linhas × colunas) | HTML | linhas + colunas + valor |
| 46 | pivot | Tabela dinâmica (arrastar) | HTML+drag | campos arrastáveis |
| 39 | heatmap | Heatmap | HTML | 2 dimensões + métrica |
Vitrine e texto de dados (2)
| # | id | Visual | Render | Campos mínimos p/ validar |
|---|---|---|---|---|
| 29 | wordcloud | Nuvem de palavras | SVG | termo + peso |
| 35 | imagecard | Cartão com imagem | SVG | rótulo + imagem + métrica |
Mapas do Brasil (5)
| # | id | Visual | Render | Campos mínimos p/ validar |
|---|---|---|---|---|
| 40 | map | Mapa do Brasil (UF) | SVG próprio | UF + métrica |
| 41 | mapcity | Mapa por município | SVG (IBGE) | município + métrica |
| 42 | bubblemap | Mapa de bolhas (lat/long) | SVG | lat/long + métrica |
| 43 | geoheat | Mapa de calor geográfico | SVG | lat/long + intensidade |
| 45 | maplayers | Mapa com camadas | SVG | camadas geográficas |
Elementos de layout (4 — não são visuais de dados)
| # | id | Elemento | Render |
|---|---|---|---|
| E1 | text | Texto | custom |
| E2 | shape | Forma | custom |
| E3 | image | Imagem | custom |
| E4 | button | Botão (com ações) | custom |
Mapas do Brasil (diferencial)#
Selo: Preview
- O que é — 5 mapas nativos do Brasil: por UF, por município (malha IBGE), bolhas lat/long, calor geográfico e camadas.
- Quando usar — distribuição regional de vendas/clientes; densidade por cidade.
- Como funciona — mapa por UF usa SVG próprio (27 UFs); o mapa por município
carrega a malha do estado sob demanda via rota interna
(
/api/geo/br/[uf]) com cache de 30 dias; a categoria de dado UF/município do modelo orienta o join geográfico. - Pré-requisitos — coluna marcada como UF/município (ver categoria de dado em Modelo semântico); para o município, a malha do estado precisa ser buscada (rede).
- Como validar — marque
filiais.ufcomo UF, crie o mapa por UF de "Receita por estado" com SP/RJ/MG e confira o preenchimento; depois abra o mapa por município de um estado e confirme o carregamento da malha. - Limites e ressalvas — a busca da malha municipal depende de rede/cache;
latência do carregamento IBGE é
NÃO MEDIDOaqui. MarcadoPreviewpor depender de rede externa e cache quente. - Dados de exemplo (sintéticos) — Receita por UF: SP=250, RJ=90, MG=140.
- Evidência — renderização dos mapas e geometria da malha (UF e município) cobertas por suíte determinística; a malha municipal é servida por rota interna com cache.
- Estado & maturidade — Preview; geometria testada, latência de malha
NÃO MEDIDO.
Elementos de layout (texto, forma, imagem, botão)#
Selo: GA-candidato
- O que é — elementos sem dados: caixa de texto, forma, imagem e botão com ações.
- Quando usar — títulos, molduras, logotipo, navegação por botão.
- Como funciona — o botão dispara ações (ex.: aplicar bookmark, trocar página); imagem/forma/texto são puramente visuais.
- Pré-requisitos — nenhum.
- Como validar — adicione um botão "Ir para Detalhe" que troca de página e confirme a navegação.
- Limites e ressalvas — não contam como visuais de dados (por isso 46, não 50).
- Dados de exemplo (sintéticos) — título "Aurora Varejo — Julho/2026".
- Evidência — renderização e ações dos elementos de layout (texto/forma/imagem/botão) cobertas pela lógica testada do editor.
- Estado & maturidade — GA-candidato.
Sobre drill, tooltips e exportação por visual: ver Filtros e interações e Exportação e distribuição.
Estado & evidência: 46+4 confirmados no catálogo único de visuais; o pipeline
de linhas é fixado pelo conjunto de testes de referência e cada item exige uma amostra sintética. A
renderização DOM final não tem teste visual — aparência de cada visual é
NÃO MEDIDO. Estados derivados da matriz de estados do produto (teto Preview).
Nenhum recurso é GA de produto.