Criar um dashboard de analítica para alojamento de férias no Yellowfin
Gerir um alojamento local é uma tarefa laboriosa.
Comunicar com os hóspedes, gerir o pessoal de limpeza, desenvolver uma estratégia de preços... É tudo um trabalho que consome muito tempo.
O que torna tudo mais difícil é o facto de muitas decisões serem tomadas com informação parcial: a sensação de que "este mês pareceu agitado", o palpite de que os preços poderão estar demasiado baixos ou uma vaga impressão de que um canal de reservas está a começar a dominar. É assim que a intuição substitui silenciosamente as provas.
É aqui que a análise de dados (analytics) para alojamento local mostra o seu valor
A análise de dados dá-nos uma visão objetiva do que está realmente a acontecer no negócio, para que possamos passar menos tempo a adivinhar e mais tempo a agir. Mais importante ainda, ajuda-nos a proporcionar uma experiência de alta qualidade consistente que faz com que os hóspedes voltem.
O desafio é que a verdade está geralmente espalhada por plataformas de reserva, folhas de cálculo e intuição. Um bom dashboard reúne tudo num só lugar e dá aos utilizadores uma leitura rápida e honesta sobre o desempenho, com a capacidade de aprofundar a análise no momento em que algo parece estranho ou inesperadamente bom. Dito isto, eis o que vamos construir:
Passo a passo: como construímos o dashboard para alojamento local
Quando se está a construir uma aplicação, o objetivo não é apenas dar gráficos aos utilizadores. O objetivo é dar-lhes confiança dentro do fluxo de trabalho em que já vivem. É para isso que serve a análise integrada (embedded analytics). O dashboard fica dentro da sua aplicação, fala a linguagem do seu produto e responde às perguntas que os utilizadores já fazem, sem os enviar para uma folha de cálculo ou outra plataforma.
Nesta publicação do blogue, vamos construir o mesmo tipo de base que utilizaria num cenário integrado real:
- um conjunto de dados (dataset) de reservas armazenado em PostgreSQL
- uma ligação de fonte de dados limpa no Yellowfin
- Uma Vista (View) concebida para dashboards e NLQ
- e um dashboard que pode ser expandido à medida que o seu produto cresce
Passo 1: Como criar a base de dados PostgreSQL
Começamos por armazenar as reservas no PostgreSQL, com uma linha por reserva e variáveis como data de reserva, noites reservadas, tarifa noturna, etc. A partir do PowerShell, abra o psql e crie uma base de dados para a demonstração:
CREATE DATABASE hotel_demo;
\c hotel_demo
Criar a tabela de reservas
Em seguida, criamos uma tabela de reservas plana (flat table) concebida para suportar os tipos de perguntas que os proprietários fazem naturalmente.
DROP TABLE IF EXISTS bookings_flat; CREATE TABLE bookings_flat ( booking_id INTEGER PRIMARY KEY, booking_date DATE, nights_booked INTEGER, guests INTEGER, apartment_capacity INTEGER, guest_country TEXT, channel_type TEXT, device TEXT, nightly_rate_eur NUMERIC(10,2), total_booking_value_eur NUMERIC(12,2) );
Esta estrutura é intencionalmente simples – reflete como funcionam os sistemas de reservas, mantém a granularidade óbvia e torna as análises a jusante mais fáceis de explicar e expandir.
Carregar os dados de um ficheiro CSV para a nossa tabela PostgreSQL
Com a tabela criada, carregamos o CSV:
\copy bookings_flat
FROM 'C:\Users\YourUser\Desktop\bookings_flat.csv'
DELIMITER ','
CSV HEADER;
Uma verificação rápida confirma que está tudo lá:
SELECT COUNT(*) FROM bookings_flat;
Neste momento, temos um conjunto de dados limpo ao nível da reserva que está pronto a ser exposto a uma camada analítica.
No passo seguinte, iremos ligar esta base de dados ao Yellowfin, construir as nossas primeiras Vistas (Views) e começar a dar forma aos dados para criar algo que os seus utilizadores finais possam explorar diretamente dentro do seu produto.
Passo 2: Ligar o PostgreSQL ao Yellowfin e expor os dados em segurança
A tarefa seguinte é disponibilizar a base de dados à camada analítica de forma controlada.
É aqui que o Yellowfin entra.
Para as equipas de produto, este passo é crítico. Não está apenas a ligar uma base de dados. Está a decidir o que os seus utilizadores finais poderão ver, sobre o que poderão fazer perguntas e a partir do que poderão construir insights dentro da sua aplicação.
Criar uma fonte de dados PostgreSQL no Yellowfin
A partir da interface de administração do Yellowfin, criamos uma nova fonte de dados e apontamo-la para a nossa instância PostgreSQL.
Irá precisar de:
- anfitrião (host)
- porta
- nome da base de dados
- nome de utilizador e palavra-passe
Uma vez ligado, o Yellowfin consegue ver o esquema da base de dados, mas ainda nada está exposto aos utilizadores. Essa separação é importante. As tabelas não ficam automaticamente disponíveis para relatórios.
Criar uma Vista sobre a tabela de reservas
Criamos agora uma Vista (View) com base na tabela bookings_flat.
No Yellowfin:
- crie uma nova Vista (View)
- selecione bookings_flat como a tabela base
Dentro da Vista, alteramos os campos para métricas, dimensões e tempo onde for necessário.

Este passo pode parecer administrativo, mas tem um impacto direto na experiência do utilizador. Uma Vista bem definida torna os dashboards mais fáceis de construir e as perguntas NLQ muito mais fiáveis.
O que isto permite de imediato
Com uma única Vista em funcionamento, desbloqueamos várias coisas de uma só vez:
- os dashboards podem ser construídos sem tocar em SQL
- o NLQ entende o que pode ser contado, calculado em média ou agrupado
- as equipas de produto podem evoluir a análise de dados sem alterar a base de dados
O mais importante é que criámos uma fronteira limpa. O PostgreSQL continua a ser a fonte da verdade (source of truth). O Yellowfin torna-se a camada de narração (storytelling).
No passo seguinte, iremos utilizar esta Vista para construir os primeiros gráficos do dashboard e mostrar como o NLQ se enquadra naturalmente na experiência.
Passo 3: Construir os primeiros gráficos e deixar que o NLQ faça aquilo em que é bom

Com a Vista de reservas implementada, podemos finalmente responder à pergunta que interessa às equipas de produto:
Como é que se parece uma experiência de análise útil para um utilizador final?
O objetivo aqui não é construir todos os gráficos possíveis. É trazer à superfície os gráficos certos. Gráficos que dão uma clareza imediata e que convidam naturalmente a perguntas de seguimento.
É aqui que o Yellowfin começa a brilhar.
Comece com os resultados, não com a exploração
Começamos por construir gráficos que respondem primeiro a perguntas ao nível dos resultados. Estas são as perguntas que os proprietários fazem sem precisarem de ser incentivados.
Receitas ao longo do tempo
Esta é a âncora. Diz aos utilizadores se o negócio está a seguir na direção certa e fornece contexto para tudo o resto no dashboard. Por si só, não explica o motivo da variação das receitas, mas diz-nos para onde devemos olhar a seguir.

Tarifa noturna média por mês
Este gráfico dá sentido às variações nas receitas. Mostra se o desempenho é impulsionado pelos preços ou pelo volume. Quando as receitas sobem a par de tarifas estáveis, é provável que a procura esteja a aumentar. Quando as tarifas descem sem um aumento nas reservas, a estratégia de preços torna-se uma questão.
Estes dois gráficos em conjunto já reduzem a adivinhação. Transformam impressões vagas em algo mensurável.
Adicionar contexto comportamental
Quando os resultados estão visíveis, adicionamos a camada do comportamento.
Número de reservas
As reservas mostram a procura independentemente do preço. Um aumento nas reservas acompanhado por receitas estagnadas sugere pressão sobre os preços. Menos reservas com receitas estáveis significam frequentemente estadias mais longas ou hóspedes de maior valor.
Duração média da estadia
É aqui que a realidade operacional entra em cena. Estadias mais longas significam geralmente menos rotação de hóspedes (turnovers) e operações mais previsíveis. Estadias mais curtas aumentam a carga de trabalho e podem esconder uma procura mais fraca por trás de uma maior contagem de reservas.
Estes gráficos ajudam os utilizadores a compreender não só o que aconteceu, mas como aconteceu.
Tornar a estratégia visível
Finalmente, trazemos à superfície os gráficos que influenciam as decisões a longo prazo.
Receitas por canal
Isto mostra até que ponto o negócio está dependente do Booking.com, Airbnb, Expedia, reservas diretas ou clientes que aparecem à porta (walk-ins). Uma forte dependência das OTAs (Agências de Viagens Online) pode impulsionar o volume, mas afeta as margens. O crescimento das reservas diretas sinaliza frequentemente uma procura mais saudável e um maior reconhecimento da marca.

Origem do hóspede
O país do hóspede adiciona contexto que os números isolados não conseguem fornecer. Ao longo do tempo, este gráfico pode orientar o foco do marketing e as decisões de preços sazonais.
Onde o NLQ se enquadra naturalmente
Quando estes gráficos estão implementados, o NLQ (Consulta em Linguagem Natural) deixa de ser uma novidade e passa a comportar-se como uma extensão natural do dashboard.
Os utilizadores podem fazer perguntas de seguimento como:
- reservas por canal no mês passado
- tarifa noturna média para reservas diretas
- receitas de hóspedes na Alemanha
- duração da estadia por dispositivo
Uma vez que a Vista foi concebida com cuidado, estas perguntas devolvem respostas sensatas sem necessidade de explicação. O NLQ funciona melhor quando o modelo de dados já reflete a forma como os utilizadores pensam.
Por que motivo isto é importante para as equipas de produto
Já não está a mostrar aos utilizadores relatórios estáticos. Está a dar-lhes:
- uma visão partilhada do desempenho
- a capacidade de fazerem as suas próprias perguntas
- a confiança de que os insights provêm da mesma fonte da verdade
E a melhor parte? À medida que os dados entram na sua base de dados, os gráficos no Yellowfin são atualizados automaticamente. Isto significa que os seus utilizadores têm uma visão em tempo real sobre o desempenho do negócio.
Acha que está pronto para começar a construir o seu próprio dashboard? Registe-se num ambiente de teste privado (playground) onde pode experienciar todo o poder do Yellowfin. Bónus: encontrará exemplos de código que facilitam a integração de análises (analytics) na sua aplicação. ```