Dashboard de matrículas e evasão no Power BI
Como construir um dashboard de matrículas e evasão no Power BI para o setor educacional: modelagem, medidas DAX, coorte e drill por unidade.
O gestor educacional descobre a evasão tarde demais
Na maioria das instituições de ensino com que trabalhamos, a evasão só vira assunto quando o número de rematrículas do semestre já fechou abaixo do esperado. Nesse ponto, o aluno já saiu, o custo de captação dele já foi gasto e não há campanha de retenção que reverta o que aconteceu três meses antes. Um dashboard de matrículas bem modelado inverte essa lógica: em vez de olhar o resultado consolidado depois do prazo, você acompanha o funil de captação, a conversão em matrícula e os sinais de evasão enquanto ainda dá para agir.
Este artigo é para quem toca BI numa escola, faculdade, rede de ensino ou edtech e precisa sair do relatório estático em Excel para um painel que responda três perguntas ao mesmo tempo: quantos alunos estão entrando, quantos estão ficando e onde exatamente eles desistem. Vou tratar de modelagem, das medidas DAX que sustentam o painel e da análise de coorte de evasão por curso e turno, que é a parte que quase todo mundo erra na primeira tentativa.
O modelo de dados vem antes de qualquer visual
Antes de abrir a tela de relatório, você precisa de um modelo em estrela. Isso não é preciosismo: o motor VertiPaq, que roda por trás do Power BI, comprime cada coluna com base na cardinalidade dela. Colunas com poucos valores distintos (turno, situação da matrícula, unidade) comprimem muito bem. Chaves únicas e texto livre comprimem mal e incham o modelo. Um esquema em estrela com dimensões enxutas gera um arquivo menor e medidas mais rápidas do que um modelo achatado numa tabela gigante.
Para um painel de captação, matrículas e evasão, o mínimo viável costuma ser este:
| Tabela | Tipo | Grão | Campos-chave |
|---|---|---|---|
fMatriculas | Fato | Uma linha por aluno por período letivo | AlunoID, CursoID, UnidadeID, PeriodoID, situação, data de matrícula |
fCaptacao | Fato | Uma linha por lead por etapa | LeadID, CanalID, data da etapa, etapa do funil |
dAluno | Dimensão | Um aluno | AlunoID, faixa etária, sexo, cidade |
dCurso | Dimensão | Um curso | CursoID, nome, modalidade, área |
dUnidade | Dimensão | Uma unidade | UnidadeID, nome, região |
dCalendario | Dimensão | Um dia | Data, ano, semestre, período letivo |
dTurno | Dimensão | Um turno | TurnoID, descrição (manhã, tarde, noite, EAD) |
Duas decisões definem a qualidade do painel. A primeira é ter uma dimensão calendário marcada como tabela de datas, sem ela a inteligência de tempo do DAX não funciona de forma confiável. A segunda é definir com clareza o grão do fato de matrículas. Recomendo uma linha por aluno por período letivo, com a situação da matrícula naquele período (matriculado, trancado, transferido, evadido, formado). Esse desenho é o que permite comparar coortes ao longo do tempo, e é por isso que insisto tanto nele. Se você quer se aprofundar em modelagem antes de seguir, vale ler nosso material de boas práticas de modelagem DAX.
Captação e matrícula são dois fatos, não um
Um erro comum é tentar espremer o funil de captação dentro da tabela de matrículas. Não faça isso. Um lead que nunca virou aluno não tem AlunoID, e um aluno rematriculado há três semestres não tem etapa de funil ativa. São grãos diferentes. Mantenha fCaptacao separada, ligada a dCalendario e a uma dimensão de canal, e conecte as duas visões pela camada de relatório, não por um join forçado no modelo. Isso mantém cada medida honesta com o seu próprio grão.
As medidas DAX que sustentam o painel
Com o modelo em pé, o painel vive das medidas. Abaixo estão as que uso como base. Elas assumem os nomes de tabela do modelo acima e servem de ponto de partida, não de receita fechada.
Total de matriculados no período em foco:
Matriculados = CALCULATE(DISTINCTCOUNT(fMatriculas[AlunoID]), fMatriculas[Situacao] = "Matriculado")
Taxa de conversão do funil, do lead qualificado à matrícula efetivada:
Taxa Conversao = DIVIDE([Matriculas Efetivadas], [Leads Qualificados])
Sempre use DIVIDE em vez do operador de barra. DIVIDE trata a divisão por zero devolvendo em branco ou um valor alternativo, o que evita o erro de infinito quebrando o visual quando um canal ainda não teve leads no período.
Taxa de rematrícula, comparando quem estava ativo no período anterior e voltou:
Taxa Rematricula = DIVIDE([Rematriculados], [Elegiveis Rematricula])
Onde Elegiveis Rematricula é a contagem de alunos que estavam matriculados no período anterior e não se formaram nem foram transferidos. Definir bem o denominador é o que separa uma taxa de rematrícula útil de um número que ninguém confia.
Para a evasão, a medida central conta quem estava matriculado num período e não aparece como matriculado, formado ou trancado no período seguinte:
Evadidos = CALCULATE(DISTINCTCOUNT(fMatriculas[AlunoID]), fMatriculas[Situacao] = "Evadido")
E a taxa de evasão sobre a base ativa:
Taxa Evasao = DIVIDE([Evadidos], [Base Ativa Periodo Anterior])
O segredo aqui não está na sintaxe, está na regra de negócio. O que conta como evasão na sua instituição? Trancamento é evasão? Transferência interna entre unidades conta? Aluno que pediu transferência para outra escola conta? Essas respostas precisam estar cravadas na medida, documentadas, e revisadas com a área acadêmica. Uma medida de evasão que ninguém validou é pior do que não ter medida, porque gera decisão baseada em número errado.
A análise de coorte é o coração do painel de evasão
Contar evadidos por mês esconde o problema mais importante: alunos de entradas diferentes evadem em ritmos diferentes. A turma que entrou no primeiro semestre pode ter uma retenção ótima no terceiro período, enquanto a turma seguinte despenca já no segundo. Se você olha só o total mensal, essas duas histórias se misturam e você não enxerga nenhuma.
A análise de coorte resolve isso agrupando os alunos pelo período em que ingressaram e acompanhando cada grupo ao longo dos períodos seguintes. A leitura vira uma matriz: nas linhas, a coorte de entrada; nas colunas, os períodos decorridos desde o ingresso; nas células, o percentual de alunos ainda ativos.
| Coorte de entrada | Período 1 | Período 2 | Período 3 | Período 4 |
|---|---|---|---|---|
| 2024.1 | 100% | 88% | 79% | 74% |
| 2024.2 | 100% | 85% | 76% | 70% |
| 2025.1 | 100% | 91% | 83% | (em curso) |
| 2025.2 | 100% | 87% | (em curso) | (em curso) |
Os números da tabela acima são ilustrativos, servem só para mostrar o formato da leitura. Numa matriz real você bate o olho e enxerga o degrau: se a queda mais forte acontece sempre entre o Período 1 e o Período 2, o problema está na experiência do primeiro semestre, não na captação. Cruze essa mesma matriz por curso e por turno e o diagnóstico fica cirúrgico. Não raro a evasão se concentra num turno específico (o noturno costuma sofrer mais) ou num punhado de cursos, e a decisão de retenção passa a ser dirigida em vez de genérica.
Tecnicamente, a coorte se apoia numa medida que fixa a base inicial da coorte e a compara com a base ativa em cada período decorrido. Isso exige um cálculo de período relativo, geralmente uma coluna de deslocamento entre o período de ingresso e o período corrente, e medidas que respeitem esse deslocamento no contexto de filtro. É a parte mais trabalhosa do painel e a que mais se beneficia de uma revisão de quem domina DAX. Se o time interno não tem esse fôlego, é exatamente o tipo de entrega que nossa área de analytics avançado assume.
Drill por unidade sem multiplicar relatórios
Redes de ensino caem numa armadilha clássica: um relatório por unidade, mantido na mão, que ninguém consegue comparar. O caminho certo é um único painel com hierarquia de drill: começa na visão da rede, desce para região, depois unidade, depois curso e turno. No Power BI isso se faz com hierarquia no visual e com drill-through para uma página de detalhe da unidade selecionada.
Se as unidades têm gestores que só podem ver os próprios dados, aplique segurança em nível de linha (RLS). Você define um papel que filtra dUnidade pelo usuário logado, e cada diretor abre o mesmo relatório vendo apenas a sua realidade. Isso evita o pesadelo de manter dezenas de arquivos e, de quebra, atende à necessidade de restringir acesso a dados de alunos, que são dados pessoais sob a LGPD, a Lei nº 13.709/2018. Tratar dados de menores e de responsáveis exige cuidado extra, e restringir quem vê o quê é parte da conformidade, não um luxo. Vale conferir como estruturamos governança de dados no Power BI sob a LGPD.
Licenciamento e capacidade: o que realmente muda a conta
A pergunta que sempre aparece é qual licença usar. Sem entrar em preço fechado, porque os valores variam e devem ser confirmados na página oficial da Microsoft, o racional é este:
| Cenário | Licença ou capacidade | Observação |
|---|---|---|
| Poucos analistas publicam, poucos consomem | Power BI Pro por usuário | Cada pessoa que vê ou publica precisa de licença |
| Modelos grandes, recursos avançados, por usuário | Power BI Premium por Usuário (PPU) | Licença individual com teto de recursos maior |
| Muitos consumidores, escala de rede | Capacidade dedicada (Fabric) | SKUs de F2 a F2048, consumo medido em Capacity Units |
Para uma rede de ensino com muitos diretores e coordenadores consumindo o painel, a capacidade dedicada tende a fazer mais sentido do que licenciar cada consumidor no Pro. O Microsoft Fabric, anunciado pela Microsoft em 2023, unificou esse licenciamento por capacidade e mede o consumo em Capacity Units. Se a instituição já pensa em levar os dados de matrícula para um lakehouse, o modo Direct Lake do Fabric lê direto do OneLake, sem importação nem consulta ao vivo tradicional, o que muda bastante a arquitetura. Esse é um assunto próprio, tratamos dele no guia sobre o que é o Microsoft Fabric. Só não caia na tentação de começar pela capacidade mais cara antes de ter o modelo e as medidas certas: capacidade não conserta modelagem ruim.
O que separa um painel bonito de um painel usado
Já vi painéis de matrícula tecnicamente impecáveis morrerem por três motivos, e nenhum deles é DAX. O primeiro é falta de definição acordada: se acadêmico, comercial e diretoria não concordam sobre o que é evasão e o que é uma matrícula efetivada, cada reunião vira briga de número. O segundo é atualização frágil: se o painel depende de alguém exportar planilha toda segunda, ele para no primeiro feriado. Vale investir em engenharia de dados para que a carga seja automática e confiável. O terceiro é ausência de dono: painel sem responsável por sustentação apodrece em seis meses.
A recomendação prática, então, não é técnica. Antes de modelar, escreva num documento de uma página as definições de captação, matrícula, rematrícula e evasão, com o aval da área acadêmica. Esse documento vale mais do que qualquer medida, porque é ele que faz o painel ser aceito como fonte da verdade.
Perguntas frequentes
Qual a diferença entre um dashboard de matrículas e um relatório de matrículas comum? O relatório comum mostra o número consolidado depois que o período fechou. O dashboard de matrículas acompanha o processo enquanto ele acontece: funil de captação, conversão, rematrícula e sinais de evasão em tempo de agir. A diferença não é visual, é o momento em que a informação chega até quem decide.
Como calcular a taxa de evasão de forma que a diretoria confie no número? Defina antes, com a área acadêmica, o que conta como evasão: trancamento entra? Transferência interna conta? Formatura obviamente não é evasão. Deixe essa regra fixada dentro da medida DAX e documente o denominador (a base ativa do período anterior). O problema quase nunca é a fórmula, é a falta de acordo sobre a definição.
Por que usar análise de coorte em vez de olhar a evasão total por mês? Porque o total mensal mistura turmas que entraram em momentos diferentes e evadem em ritmos diferentes. A coorte agrupa os alunos pelo período de ingresso e mostra em que período decorrido a queda acontece. É isso que revela se o problema está na captação, no primeiro semestre ou mais adiante no curso.
Preciso de Microsoft Fabric ou o Power BI Pro resolve? Depende da escala de consumo. Para poucas pessoas, o Power BI Pro por usuário costuma bastar. Para uma rede com muitos diretores e coordenadores consumindo o painel, a capacidade dedicada do Fabric, com SKUs de F2 a F2048, tende a sair melhor. Confirme os valores na fonte oficial, pois eles variam.
Como garantir que cada diretor de unidade veja só os dados da própria unidade? Com segurança em nível de linha (RLS). Você cria um papel que filtra a dimensão de unidade pelo usuário logado, e todos abrem o mesmo relatório vendo apenas a sua realidade. Além de simplificar a manutenção, isso ajuda na conformidade com a LGPD, já que dados de alunos são dados pessoais e o acesso precisa ser restrito.
Quanto tempo leva para colocar um painel desses em produção? Varia com a qualidade das fontes. Se os dados de matrícula já estão num sistema acadêmico acessível e com histórico limpo, a modelagem e as primeiras medidas andam rápido. O que costuma alongar o prazo é a extração confiável dos dados e o acordo sobre as definições de negócio, não a construção do relatório em si.
Comece pelo modelo, não pela tela
Um dashboard de matrículas e evasão que funciona nasce de três coisas: um modelo em estrela com o grão certo, medidas DAX que carregam regras de negócio validadas e uma análise de coorte que mostra onde o aluno desiste antes que seja tarde. O visual bonito vem por último e é o que menos importa. Se a sua instituição está presa em planilhas ou num painel que ninguém confia, fale com a gente: a gente monta o modelo certo desde o começo.
Quer aplicar isso na sua empresa?
A Fynx implementa BI, Power BI e Power Platform de ponta a ponta. Conte seu cenário e devolvemos um diagnóstico direto ao ponto.
Falar com um especialista