Ver mais O artigo completo que acompanha a aula: o argumento, o diferencial, os oito casos numerados, o método e as fontes. Os três painéis que rodam ao vivo ficam aqui dentro, e cada um liga no seu clique.
Os quatro casos mais pesados
Na sala eu mostro um, porque são trinta minutos. Estes quatro estão mais abaixo, cada um no seu clique. O que me prendeu em cada um foi a dificuldade:
- Caso 5. Tráfego aéreo de São José dos Campos, ao vivo. O caminho da fonte até a tela: proxy com a credencial, cache de borda e um aviso quando a fonte cai.
- Caso 6. Dez anos das duas aéreas listadas na B3. O arquivo: 245 posições por linha no COTAHIST, e o fator de cotação inverte o sinal se eu emendo os códigos sem olhar.
- Caso 7. Tráfego aéreo sobre o Brasil, agora. Fazer o número e o traço saírem do mesmo filtro, com cada coordenada testada nos 27 estados.
- Caso 8. 264 Super Tucanos ocupando o pátio. Manter escala real e a folga do Anexo 14 da ICAO, para o total ocupar chão em vez de virar barra.
Tarifa e demanda, curva de pavimento e fila em terminal também estão abaixo, e dão menos trabalho. Eu começaria por eles.
O argumento
Eu uso dado para decidir melhor, e o gráfico entra como meio. Na graduação o gargalo de qualquer análise minha era o mesmo: achar o dado, limpar, padronizar unidade e ano-base, e só então olhar para a decisão. CrowdFlower, em 2016, punha 79% do tempo do analista em coleta e limpeza. Anaconda, em 2020, punha 45%. A análise era o que sobrava do meu dia.
No projeto final eu analisei passagem aérea e levei semanas no tratamento que hoje sai em minutos: juntar arquivo, padronizar unidade, achar repetição, olhar a distribuição. Com quatro horas por tentativa cabiam duas no dia, e eu escolhia a forma que já sabia montar.
Com IA a execução saiu do meu caminho. Eu peço a distribuição inteira, a faixa publicada, o diagrama cumulativo, o mapa que se atualiza, o pátio ano a ano. Isso vale para a sala inteira no mesmo fim de semana. A pergunta da aula ficou esta: se a IA limpa os dados, faz a análise e monta o painel, o que sobra para mim? Ela acelera todo mundo igual, e quem escolhe para onde ir sou eu.
De 2017 a 2021 o kit que eu abria era planilha, Python na força bruta, Jupyter ou Colab, PDF copiado na mão e Word no pen drive. Hoje eu uso Cursor (a planilha vira banco), Claude (PDF vira tabela e script), NotebookLM (responde citando os meus arquivos), Python no SVG, GitHub publicando, MapLibre no mapa e API aberta na fonte. O site sobe de graça na Vercel, DNS na Cloudflare. Com esse kit eu fecho numa tarde a forma que antes eu nem tentava.
MCP (Model Context Protocol, Anthropic, novembro de 2024) é como eu ligo o modelo à fonte sem colar tabela no chat: declaro a pasta, o banco ou a API uma vez, e o modelo consulta de novo. Observable Plot ficou fora da aula, e é onde eu prototipo no browser antes de fechar o SVG.
O diferencial
Quando executar ficou barato, o que ficou raro para mim é o que não vem no chat. São seis, e as seis aparecem na disciplina:
- Julgamento. Decidir se o número presta e se a comparação é justa.
- Boas perguntas. A resposta nasce da pergunta.
- Repertório. Saber que o desenho existe e saber o nome dele. Quem não sabe que existe diagrama cumulativo acaba pedindo barra.
- Ligar pontos. Juntar duas áreas que ninguém pôs na mesma frase.
- Curiosidade. Abrir o dado sem ninguém pedir.
- Boas referências. Livro, artigo e canal para calibrar o que é bom.
Ligar pontos é o que o slide desenha. Dado é ponto solto. Conhecimento é o ponto preenchido numa área que eu estudei. A sacada é a ligação entre duas áreas. A IA liga o que está no pedido, e essa ligação longa depende do que já está na minha cabeça.
Por isso eu separei tempo para livro de 300 ou 400 páginas: a repetição forma o modelo. Um resumo de vinte minutos deixa o vocabulário.
O tempo que me sobrou vai para escopo, revisão e tentar de novo. Com vinte minutos por tentativa cabem dez no dia, e eu jogo oito fora.
A régua de quando parar, na minha prática: os primeiros 80% resolvem relatório do dia, análise rápida, decisão de baixo risco. Não resolvem viabilidade, geoespacial, número que sai da empresa. O critério é o risco da decisão. Pareto aqui é regra de bolso, não medida.
Os oito casos
Cada caso é uma decisão de engenharia em que o formato do gráfico muda a resposta, e não só a aparência dela. A apresentação na sala mostra um deles: o tráfego aéreo de São José dos Campos subindo cinco níveis, da tabela crua até o dado que chega sozinho. Os outros sete ficam aqui, e do quinto em diante o desenho está nesta página, cada um no bloco que leva o número do caso.
- Estouro de custo em obra de transporte. Ferrovia estoura 45% em média (desvio padrão 38), pontes e túneis 34% (desvio 62) e rodovia 20% (desvio 30), em 258 projetos de 20 países. Em ponte e túnel o desvio é quase o dobro da média: uma contingência de 34% cobre o caso médio, e poucos projetos ficam perto do caso médio. Em vez de um número, o que ajuda a decidir é a distribuição de referência dos projetos comparáveis.
- Tarifa e demanda aérea. A elasticidade-preço publicada é uma faixa, não um ponto: de -0,84 a -1,96 no nível de rota e de -0,48 a -1,23 no nível nacional. Desenhar a faixa como faixa mostra que a decisão inverte de sinal conforme o nível de agregação. Uma linha única esconderia isso.
- Curva de deterioração de pavimento. Nos primeiros 75% da vida a condição cai cerca de 40%. Os 40% seguintes caem em mais 17% da vida. Passar 2 a 3 anos do ponto ótimo multiplica por 4 a 5 o custo de restaurar. A curva tira a conversa do preço unitário e leva para o ano de intervir.
- Fila em terminal. No diagrama cumulativo, a distância horizontal entre chegadas e atendimentos é a espera de um passageiro, a vertical é o tamanho da fila e a área entre as curvas é o atraso total. Com números redondos de aula: 120 passageiros chegando a 6 por minuto num posto que atende 4 por minuto dão fila máxima de 40 pessoas no minuto 20, espera máxima de 10 minutos e 600 passageiro-minuto de atraso total. Um desenho responde três perguntas sem dizer um número, porque a codificação foi escolhida antes de desenhar.
- São José dos Campos em 2D e em 3D, ao vivo. Recorte de 1,44 grau de latitude por 1,70 de longitude em volta de SBSJ, cerca de 160 por 174 quilômetros, com altitude no eixo Z e rota em ortodromia. É o caso que roda ao vivo na sala, e a mesma fonte alimenta o mapa do Brasil mais abaixo. Se a API não responde, o widget mostra a foto guardada com a data na tela, em vez de dado velho passando por atual.
- Dez anos das duas aéreas listadas na B3. A GOLL4 sai de R$ 1,53 em janeiro de 2016, chega a R$ 40,97 em julho de 2019 e termina a R$ 0,79 em 11 de junho de 2025. A AZUL4 estreia a R$ 23,96 em abril de 2017, chega a R$ 59,26 em janeiro de 2020 e termina a R$ 0,81 em 22 de dezembro de 2025. Quedas de 98,1% e 98,6% sobre o pico, enquanto o Ibovespa multiplicou por 4,4 no mesmo período. O gráfico está no bloco do caso 6, junto com a armadilha do fator de cotação.
- Tráfego aéreo sobre o Brasil, agora. Três APIs abertas, amostra no passo de 45 segundos, cada coordenada testada contra os polígonos dos 27 estados antes de entrar na conta. Posição real para posição no plano, rumo para ângulo, altitude e velocidade só ao apontar.
- 264 Super Tucanos no pátio. Aeronaves Super Tucano produzidas pela Embraer. O total publicado é 264 até 2023; a animação preenche o pátio ano a ano com ritmo aproximado da lista de produção EMB-314, reescalada para fechar nesse total. Numa barra o total seria só um número, e aqui ele ocupa chão em escala real.
São José dos Campos em 2D e em 3D, ao vivo
É o caso que roda ao vivo na sala, na escala do aeroporto da cidade, e na apresentação ele aparece em cinco níveis: a tabela que a API devolve, a mesma tabela ordenada por altitude, a planta, o 3D e o caminho que faz o dado chegar sozinho. Posição no plano é posição real, o ângulo do símbolo é o rumo, e a altitude entra como terceiro eixo no painel da direita. O círculo consultado tem 140 km de raio, o que alcança a Grande São Paulo e traz helicóptero junto com avião: os dois recebem símbolos diferentes, pela categoria do transponder e pelo código do tipo. A busca é a cada 10 segundos, e a linha atrás de cada aeronave é o rastro das amostras anteriores desta sessão, não uma trajetória que a fonte tenha informado. Clique numa aeronave para ver origem, destino, altitude e velocidade; no 3D, arraste para girar.
Tráfego ao vivo em volta de SBSJ, com a Grande São Paulo no alcance.
Posição pela adsb.lol, reserva na adsb.fi, as duas redes de receptores ADS-B da comunidade, rota no adsbdb. O círculo consultado tem 140 km de raio em volta de SBSJ, o que alcança a Grande São Paulo, e a busca é a cada 10 segundos: o rastro atrás de cada aeronave é a posição das amostras anteriores desta sessão, não uma trajetória informada pela fonte. Avião e helicóptero têm símbolos diferentes, pela categoria do transponder e pelo código do tipo. Mapa base OSM/CARTO na planta e imagem de satélite da Esri (Maxar, Earthstar Geographics) no 3D, onde o chão é a superfície da Terra num raio de 380 km, a curvatura sai de d²/2R e o exagero vertical de 11 vale para a curvatura e para a altitude. Clique na aeronave ou na lista; no 3D, arraste para girar.
Dez anos das aéreas na bolsa, e a armadilha do arquivo da B3
Este é o caso que mais se parece com um trabalho de economia aplicada: série longa, fonte primária, choques datados por cima. As duas companhias aéreas que negociaram ação na B3 na última década foram a GOL e a Azul, e as duas terminaram o período valendo menos de um real por papel.
A GOLL4 abre janeiro de 2016 a R$ 1,53, no fundo da recessão, chega a R$ 40,97 em julho de 2019 e fecha a R$ 0,79 em 11 de junho de 2025, queda de 98,1% sobre o pico. A AZUL4 estreia em abril de 2017 a R$ 23,96, chega a R$ 59,26 em janeiro de 2020, dois meses antes da pandemia, e fecha a R$ 0,81 em 22 de dezembro de 2025, queda de 98,6%. No mesmo período o Ibovespa saiu de 40.406 para 177.895 pontos, um múltiplo de 4,4. É o tipo de comparação que só funciona com referência do lado: sem o índice, a queda das duas parece uma história de bolsa, e com o índice fica claro que é uma história de setor.
Por que faixa em uns eventos e linha em outros
A escolha vale para qualquer série com contexto histórico em cima. Faixa é período com início e fim publicados: a recessão datada pelo CODACE (do segundo trimestre de 2014 ao quarto de 2016), a Selic parada em 13,75% (de 4 de agosto de 2022 a 2 de agosto de 2023, pela série 432 do Banco Central), e os dois Chapter 11, cada um do pedido até a saída (GOL de 25 de janeiro de 2024 a 6 de junho de 2025, Azul de 28 de maio de 2025 a 25 de fevereiro de 2026). Linha tracejada é data única, quando a fonte deu o dia e não o intervalo: o impeachment em 31 de agosto de 2016, a greve dos caminhoneiros começando em 21 de maio de 2018 (com aeroporto sem combustível e voo cancelado), a pandemia declarada pela OMS em 11 de março de 2020 e a invasão da Ucrânia em 24 de fevereiro de 2022. Desenhar como faixa um período cujo fim ninguém publicou seria inventar a data do fim.
A armadilha do fator de cotação
O arquivo da B3 traz um campo chamado FATCOT, o fator de cotação, que diz quantas ações o preço impresso representa. Nas duas séries longas ele vale 1, e por isso elas podem ser lidas direto. Nos papéis que nasceram das reestruturações ele muda: a GOLL54 passa a ser cotada por lote de mil ações e a AZUL53 por lote de um milhão.
O efeito prático é grande. O último pregão da GOLL4 fecha a R$ 0,79 em 11 de junho de 2025 e o primeiro da GOLL54 fecha a R$ 200,01 no dia seguinte. Emendar as duas pontas produz alta de 25.218%. Dividindo pelo fator de cotação, o papel novo vale R$ 0,20 por ação, o que é queda de 75%. O maior evento da história financeira da empresa aparece com o sinal invertido em quem não leu o campo. Do lado da Azul o caminho tem quatro códigos (AZUL4, AZUL54, AZUL53 e AZUL3), com cada preferencial virando 75 ordinárias e depois um grupamento de 150.000 para 1, que é o motivo de a ação voltar a negociar acima de R$ 20 em abril de 2026 sem que ninguém tenha recuperado nada.
Por isso o gráfico para onde cada código para, em vez de emendar. O ISIN é a prova de que são títulos diferentes: a GOLL4 é BRGOLLACNPR4 e a GOLL54 é BRGOLLA01PR5; a AZUL4 é BRAZULACNPR4 e a AZUL3 é BRAZULACNOR7. A GOL negociou pela última vez na B3 em 27 de março de 2026, depois de a CVM aprovar a oferta de fechamento de capital, com a Abra em cerca de 80% do capital após o aumento de R$ 12 bilhões da reestruturação.
Como refazer a conta
O script scripts/fetch-b3-aereas.js baixa os arquivos anuais de 2016 a 2026 direto da B3, lê o layout de 245 posições fixas, guarda o fechamento do último pregão de cada mês e escreve _data/b3_aereas.yml. Ele para com erro se algum papel aparecer com fator de cotação diferente de 1 ou com mais de um ISIN, que são as duas maneiras de a série deixar de ser a mesma sem avisar. São 4.505 pregões lidos para os 219 pontos mensais do gráfico (114 da GOLL4 e 105 da AZUL4), e os fechamentos do Ibovespa foram conferidos contra os oficiais da B3 de dezembro de 2016 (60.227) e de dezembro de 2019 (115.645).
O mapa que roda enquanto você lê
Os quatro primeiros casos e a série da B3 são gráficos de dado parado, publicado, conferido. Com IA dá para montar o caminho inteiro, da fonte até a tela, em uma tarde. O mapa abaixo é esse caminho montado, na escala do país, e o radar de SJC é o mesmo encanamento na escala do aeroporto. Ele pergunta a três APIs abertas quais aeronaves estão no ar sobre o Brasil neste instante, de onde cada uma saiu e para onde vai, e desenha o resultado no mesmo preto e branco do resto do site.
Carregando tráfego aéreo…
- posição real, girada no rumo do voo
- rota de origem a destino, pela ortodromia
- em solo
Posição pela adsb.lol e pela adsb.fi, redes de receptores ADS-B da comunidade, numa varredura de oito círculos sobre o país, origem e destino pelo adsbdb, contorno na malha estadual do IBGE. Atualiza sozinho a cada 45 segundos.
As decisões de codificação, uma por uma
Um mapa de voo é uma boa prova da régua de Cleveland, porque tenta puxar cinco grandezas ao mesmo tempo: posição, rumo, altitude, velocidade e rota. A régua diz que o olho só é preciso nas primeiras codificações da lista, então gastar as boas em variável decorativa é desperdício.
- Posição no plano vai para a posição real. É a codificação mais precisa que existe e a única que a pergunta "onde está o avião" aceita. Nada mais disputa esse canal.
- Ângulo vai para o rumo. Ângulo é ruim para ler grandeza, mas aqui o dado já é um ângulo: a silhueta do avião aponta para onde a aeronave voa, sem tradução no meio.
- Altitude e velocidade não entram no desenho. Seria fácil virar cor ou tamanho, e é exatamente o que a régua condena. Elas saem como número, ao apontar a aeronave: o "detalhe sob demanda" de Shneiderman, que já está na lista de fontes acima.
- A rota é ortodromia, não reta. A linha reta entre dois aeroportos no mapa plano não é o caminho que o avião faz. Desenhar a reta seria mais simples e estaria errado.
- A contagem bate com o desenho. A consulta pega uma caixa que invade Argentina, Colômbia e Chile, então cada coordenada é testada contra os polígonos dos 27 estados antes de entrar na conta. Número na tela e traço na tela vêm do mesmo filtro.
O que o encanamento ensina
Num artefato ao vivo o desenho é a parte fácil; o trabalho está em mantê-lo honesto. Três decisões valem mais que o resto:
- O navegador não fala com a fonte direto. As redes de ADS-B da comunidade recusam com HTTP 429 quem passa de cerca de uma requisição por segundo, e a varredura do país são oito círculos, então ela é repartida entre as duas redes e cada host recebe a sua parte no passo dele. Uma função no servidor faz a varredura uma vez e o cache de borda serve todos os visitantes, então a carga na fonte não cresce com a audiência. A OpenSky, que cobria o país inteiro em uma requisição, ficou como último recurso: ela responde 403 para IP de datacenter sem credencial, que é justamente de onde o site chama.
- Cada mapa tem o seu passo. O painel de São José dos Campos busca a cada 10 segundos, porque nessa escala a aeronave anda o suficiente para o rastro aparecer. O mapa do país busca a cada 45 segundos: um jato de carreira anda cerca de 6 km nesse intervalo, meio pixel neste mapa, e atualizar de dois em dois segundos gastaria trinta vezes mais requisição para mover o desenho menos que a espessura do traço.
- Se a fonte cair, o mapa diz que caiu. Existe uma foto do tráfego guardada no repositório, e ela entra quando a API não responde, com a data e a hora na tela. Sala de aula sem wifi e exportação em PDF continuam mostrando dado real, e nunca dado antigo apresentado como se fosse de agora.
264 Super Tucanos ocupando o pátio
Aqui o gráfico sai da folha. Cada fila é um ano de entrega e o comprimento da fila é quanto saiu naquele ano. O pátio está em escala real, com 3 m de folga entre aeronaves (mínimo de código A do Anexo 14 da ICAO), o que dá 662 m por 342 m de concreto. Numa barra o total seria o mesmo número, e nesse desenho ele ocupa chão.
Carregando o pátio…
Modelo A-29 (EMB-314) em Three.js, uma fila por ano de entrega. Total: Embraer, Backlog & Deliveries 3Q25 (264 entregues até 2023). Ritmo anual: lista de produção EMB-314, reescalada para fechar nesse total. Escala do pátio: cada aeronave ocupa 11,14 m de envergadura por 11,38 m de comprimento, com 3 m de folga entre vizinhas (mínimo de código A, Anexo 14 da ICAO, 3.13.6), o que dá 662 m por 342 m de concreto.
O método em quatro passos
- Escreva a pergunta antes de abrir os dados. Diga também qual decisão muda conforme a resposta.
- Junte boas referências. A fonte primária do número, com unidade e ano-base, e dois ou três gráficos que você queria ter feito.
- Diga o objetivo, não o passo a passo. Quem lê, o que essa pessoa compara e o que ela decide depois.
- Pergunte mais do que peça. Mande a IA analisar a sua pergunta antes de desenhar, gere em lote e descarte o que não responde.
A codificação em si saiu da lista porque ela já tem slide próprio na aula (Cleveland e McGill, 1984, com posição e comprimento na frente de área e ângulo). O que entrou no lugar é o que muda o resultado quando quem desenha é a IA: referência boa na entrada, objetivo em vez de passo a passo, e pergunta antes de pedido.
Referências
- Flyvbjerg, B., Skamris Holm, M. K. e Buhl, S. L. (2004). "What Causes Cost Overrun in Transport Infrastructure Projects?", Transport Reviews 24(1), 3 a 18. Amostra de 258 projetos em 20 países, cerca de US$ 90 bilhões a preços de 1995.
- InterVISTAS (2007). "Estimating Air Travel Demand Elasticities", relatório final preparado para a IATA.
- Cleveland, W. S. e McGill, R. (1984). "Graphical Perception: Theory, Experimentation, and Application to the Development of Graphical Methods", Journal of the American Statistical Association 79(387).
- Shneiderman, B. (1996). "The Eyes Have It: A Task by Data Type Taxonomy for Information Visualizations", IEEE Symposium on Visual Languages.
- FHWA e AASHTO, curva clássica de deterioração da prática de gerência de pavimentos, reproduzida em Pavement Interactive e na Asphalt Magazine.
- CrowdFlower (2016), Data Science Report, e Anaconda (2020), State of Data Science, para a repartição do tempo do analista.
- Epoch AI, Notable AI Models, baixado em 14 de agosto de 2026 (535 modelos com cálculo de treino declarado, 38 deles recordistas), para a linha do tempo de 1950 até hoje, e o relatório Can AI scaling continue through 2030? (agosto de 2024), para a faixa de 2×10²⁸ a 2×10³⁰ operações no maior treino de 2030, com 2×10²⁹ como valor provável.
- B3, Séries Históricas (COTAHIST), arquivos anuais de 2016 a 2026, para o fechamento diário de GOLL4 e AZUL4, o fator de cotação e o ISIN de cada papel. Série do Ibovespa pelo código ^BVSP, com os fechamentos conferidos contra os oficiais da B3.
- CODACE, Comitê de Datação de Ciclos Econômicos da FGV IBRE, para a recessão do segundo trimestre de 2014 ao quarto trimestre de 2016, e Banco Central do Brasil, série SGS 432, para a meta Selic em 13,75% entre agosto de 2022 e agosto de 2023.
- Gênio do slide do encanamento: ilustração de John D. Batten para Fairy tales from the Arabian nights (E. Dixon, 1893; edição Putnam de 1915), em domínio público no Wikimedia Commons, vetorizada para entrar no desenho na cor do tema.
- Marcas da GOL e da Azul no gráfico, em SVG, do Wikimedia Commons. São marcas registradas das duas empresas, usadas para identificar cada série; no gráfico a cor codifica companhia, e é a cor do próprio logo.
- Datas e termos das duas reestruturações (pedido e saída do Chapter 11, aumento de capital de R$ 12 bilhões da GOL com a Abra em cerca de 80%, conversão de cada preferencial da Azul em 75 ordinárias, grupamento de 150.000 para 1 e fechamento de capital da GOL na B3 em março de 2026) nos comunicados das empresas e na cobertura de InfoMoney, Money Times, Seu Dinheiro e ADVFN.
- adsb.lol e adsb.fi (posição, altitude, tipo e categoria da aeronave, por círculo em volta de um ponto), redes abertas de receptores ADS-B mantidas por colaboradores, com a OpenSky Network como último recurso por caixa geográfica, e adsbdb (origem e destino a partir do callsign). Contorno do país e divisas estaduais da malha do IBGE.
- Embraer, Backlog & Deliveries 3Q25, para os 264 A-29 Super Tucano entregues até 2023, e a brochura do A-29 para as dimensões da aeronave (11,14 m de envergadura por 11,38 m de comprimento). O ritmo anual do pátio é aproximado pela lista de produção do EMB-314, reescalada para fechar nesse total. A marca no topo do caso é o arquivo Embraer logo.svg do Wikimedia Commons, em domínio público, aqui em uma cor só.
- ICAO, Anexo 14, Volume I, 8ª edição (2018), item 3.13.6 e Tabela 1-1, para a folga mínima de 3 m entre aeronaves de código A no pátio.
- 3Blue1Brown, canal de Grant Sanderson (3blue1brown.com), para ver conceito explicado por desenho antes da conta, e a Manim (github.com/3b1b/manim), biblioteca Python aberta que gera esses vídeos e que também está no estudo Efetividade x eficiência.
- Bilawal Sidhu, Ex-Google Maps PM Vibe Coded Palantir In a Weekend (WorldView, APIs abertas + agentes de IA). Repositórios OpenFoundry (github.com/DioCrafts/OpenFoundry) e AEGIS (Gotham-like no GitHub).