{
 "grupo": "dados",
 "descricao": "Dados",
 "itens": [
  {
   "id": "dad-olhar",
   "nome": "Olhar um dado antes de usar",
   "receita": "head, contagem, tipos, nulos, duplicatas, mín/máx por coluna",
   "prova": "resumo escrito do que achou"
  },
  {
   "id": "dad-limpar",
   "nome": "Limpar tabela",
   "receita": "padronize tipo, espaço, caixa, datas; trate nulo explicitamente; guarde o original",
   "prova": "contagem antes e depois"
  },
  {
   "id": "dad-juntar",
   "nome": "Juntar duas tabelas",
   "receita": "chave única dos dois lados? many-to-many multiplica linhas; confira contagem",
   "prova": "linhas esperadas = linhas obtidas"
  },
  {
   "id": "dad-duplicados",
   "nome": "Achar duplicatas",
   "receita": "group by chave having count>1; decida a regra de ficar com qual",
   "prova": "0 duplicatas na chave"
  },
  {
   "id": "dad-csv-grande",
   "nome": "CSV maior que a memória",
   "receita": "leia em blocos (chunksize) ou DuckDB direto no arquivo",
   "prova": "resultado sem estourar memória"
  },
  {
   "id": "dad-duckdb",
   "nome": "Consultar arquivo com SQL",
   "receita": "duckdb -c \"select ... from 'arq.csv'\" (também parquet/json)",
   "prova": "resultado de consulta"
  },
  {
   "id": "dad-agregar",
   "nome": "Somar/contar por grupo",
   "receita": "group by, defina a unidade; confira soma total com e sem grupo",
   "prova": "total bate"
  },
  {
   "id": "dad-datas",
   "nome": "Séries por data",
   "receita": "normalize fuso; agrupe por dia/semana; preencha dias sem dado",
   "prova": "nenhum dia faltando"
  },
  {
   "id": "dad-outlier",
   "nome": "Valores fora da curva",
   "receita": "boxplot/IQR; olhe os casos antes de apagar; pode ser erro ou fato",
   "prova": "lista dos outliers e decisão"
  },
  {
   "id": "dad-funil",
   "nome": "Funil de conversão",
   "receita": "etapas ordenadas; usuários únicos por etapa; taxa entre etapas",
   "prova": "taxas somam com o topo"
  },
  {
   "id": "dad-coorte",
   "nome": "Retenção por coorte",
   "receita": "agrupe por mês de entrada; % ativo nos meses seguintes",
   "prova": "tabela triangular"
  },
  {
   "id": "dad-amostra",
   "nome": "Amostrar com honestidade",
   "receita": "aleatória, semente fixa, tamanho dito; não generalize de amostra viesada",
   "prova": "semente e n registrados"
  },
  {
   "id": "dad-correlacao",
   "nome": "Correlação não é causa",
   "receita": "mostre o gráfico, o n e uma explicação alternativa",
   "prova": "ressalva escrita"
  },
  {
   "id": "dad-grafico-certo",
   "nome": "Escolher gráfico",
   "receita": "comparação: barras; tempo: linha; parte do todo: poucas fatias; relação: dispersão",
   "prova": "gráfico com eixo e unidade"
  },
  {
   "id": "dad-planilha-formula",
   "nome": "Fórmula de planilha",
   "receita": "PROCV/XLOOKUP, SOMASES, ÍNDICE+CORRESP; teste com 3 linhas",
   "prova": "valores batem na mão"
  },
  {
   "id": "dad-exportar",
   "nome": "Exportar sem quebrar",
   "receita": "UTF-8 com BOM para Excel; aspas em campos com vírgula",
   "prova": "abrir no Excel sem erro"
  },
  {
   "id": "dad-json-schema",
   "nome": "Validar JSON",
   "receita": "escreva o schema; valide na entrada; mensagens de erro por campo",
   "prova": "exemplo ruim reprovado"
  },
  {
   "id": "dad-migrar",
   "nome": "Migrar dados",
   "receita": "rode em cópia; contagem e checksum antes e depois; reversível",
   "prova": "contagens iguais"
  },
  {
   "id": "dad-anonimizar",
   "nome": "Anonimizar para teste",
   "receita": "troque nome/email/CPF por falsos; mantenha formato e relações",
   "prova": "nenhum dado real restou"
  },
  {
   "id": "dad-relatorio",
   "nome": "Relatório recorrente",
   "receita": "consulta versionada, parâmetros de data, saída datada",
   "prova": "rodar duas vezes dá o mesmo"
  }
 ]
}
