Ir para o conteúdo

← Voltar ao decisor

Como ranqueamos

O hub ordena atrações com uma função de score determinística: os mesmos dados de conteúdo, clima e perfil escolhido produzem a mesma ordem. Não usamos modelo de linguagem para ordenar a lista.

1. Perfil (category tags)

Se você escolhe um perfil (ex.: família), atrações que têm essa tag em category_tags ganham um bônus fixo no score.

2. Clima (Open-Meteo)

Usamos previsão/atual para Gramado. Quando o sinal indica tempo ruim para ao ar livre, cada atração recebe peso maior de weather_suitability (1–5) e ajustes por semantic_tags (ex.: indoor forte, outdoor exposto, rain-friendly). Em tempo mais favorável ao ar livre, os pesos semânticos mudam (ex.: leve bônus a outdoor).

3. Tags semânticas (radar)

São independentes do “perfil” de marketing: descrevem logística e ambiente (chuva, fila, indoor). Lista canônica e validação no build estão em lib/schemas.ts e na documentação de conteúdo.

4. Preço

Entre atrações comparáveis, quem tem menor preço listado entre parceiros cadastrados sobe um pouco no ranking (penalidade menor no score para preços altos).

5. O que não fazemos

  • Não raspamos sites de terceiros para preço em tempo real.
  • O termômetro de “movimento” na cidade é estimativa editorial por calendário — não é fila oficial.
  • Preços e disponibilidade podem mudar no site do parceiro depois da nossa última revisão.

Implementação: pesos documentados em comentários em lib/radar.ts.