Gestire una casa vacanze è un'attività faticosa.
Comunicare con gli ospiti, gestire il personale addetto alle pulizie, sviluppare una strategia dei prezzi... È tutto un lavoro che porta via molto tempo.
Ciò che rende tutto più difficile è che molte decisioni vengono prese con informazioni parziali: la sensazione che "questo mese sia sembrato pieno", il presentimento che i prezzi potrebbero essere troppo bassi o la vaga impressione che un canale di prenotazione stia iniziando a dominare. È così che l'intuizione sostituisce silenziosamente l'evidenza.
È qui che l'analisi per le case vacanze dimostra il suo valore
L'analisi dei dati ci offre una visione oggettiva di ciò che sta realmente accadendo nell'attività, consentendoci di dedicare meno tempo alle supposizioni e più tempo all'azione. Ancora più importante, ci aiuta a offrire un'esperienza di alta qualità e costante che fa tornare gli ospiti.
La sfida è che la verità è solitamente sparsa tra piattaforme di prenotazione, fogli di calcolo e sensazioni istintive. Una buona dashboard raggruppa tutto in un unico posto e fornisce agli utenti una lettura rapida e onesta delle prestazioni, con la possibilità di analizzare più a fondo nel momento in cui qualcosa sembra anomalo o inaspettatamente positivo. Detto questo, ecco cosa andremo a costruire:
Passo dopo passo: come abbiamo costruito la dashboard per case vacanze
Quando costruisci un'app, l'obiettivo non è solo fornire grafici agli utenti. L'obiettivo è dare loro sicurezza all'interno del flusso di lavoro in cui già operano. A questo serve l'analisi integrata (embedded analytics). La dashboard si trova all'interno della tua app, parla la lingua del tuo prodotto e risponde alle domande che gli utenti si pongono già, senza rimandarli a un foglio di calcolo o a un'altra piattaforma.
In questo post del blog, costruiremo lo stesso tipo di base che utilizzeresti in un vero scenario integrato:
- un set di dati sulle prenotazioni archiviato in PostgreSQL
- una connessione a un'origine dati pulita in Yellowfin
- Una Vista (View) progettata per le dashboard e la NLQ
- e una dashboard che può essere estesa man mano che il tuo prodotto cresce
Passo 1: Come creare il database PostgreSQL
Iniziamo archiviando le prenotazioni in PostgreSQL, con una riga per prenotazione e variabili come data di prenotazione, notti prenotate, tariffa notturna, ecc. Da PowerShell, apri psql e crea un database per la demo:
CREATE DATABASE hotel_demo;
\c hotel_demo
Creare la tabella delle prenotazioni
Successivamente, creiamo una tabella piatta delle prenotazioni (flat table) progettata per supportare i tipi di domande che i proprietari di immobili si pongono 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) );
Questa struttura è intenzionalmente semplice: riflette il funzionamento dei sistemi di prenotazione, mantiene ovvia la granularità e rende le analisi a valle più facili da spiegare e da estendere.
Caricare i dati da un file CSV nella nostra tabella PostgreSQL
Con la tabella pronta, carichiamo il CSV:
\copy bookings_flat
FROM 'C:\Users\YourUser\Desktop\bookings_flat.csv'
DELIMITER ','
CSV HEADER;
Un rapido controllo conferma che è tutto dentro:
SELECT COUNT(*) FROM bookings_flat;
A questo punto, abbiamo un set di dati pulito a livello di prenotazione che è pronto per essere esposto a un livello di analisi.
Nel passaggio successivo, collegheremo questo database a Yellowfin, costruiremo le nostre prime Viste (Views) e inizieremo a dare forma ai dati in qualcosa che i tuoi utenti finali potranno esplorare direttamente all'interno del tuo prodotto.
Passo 2: Collegare PostgreSQL a Yellowfin ed esporre i dati in modo sicuro
Il compito successivo è rendere il database disponibile al livello di analisi in modo controllato.
È qui che entra in gioco Yellowfin.
Per i team di prodotto, questo passaggio è fondamentale. Non stai solo collegando un database. Stai decidendo cosa sarà consentito vedere ai tuoi utenti finali, quali domande potranno fare e su cosa potranno costruire insight all'interno della tua applicazione.
Creare un'origine dati PostgreSQL in Yellowfin
Dall'interfaccia di amministrazione di Yellowfin, creiamo una nuova origine dati e la puntiamo alla nostra istanza PostgreSQL.
Avrai bisogno di:
- host
- porta
- nome del database
- nome utente e password
Una volta connesso, Yellowfin può vedere lo schema del database, ma non è ancora esposto nulla agli utenti. Questa separazione è importante. Le tabelle non sono automaticamente disponibili per i report.
Creare una Vista sulla tabella delle prenotazioni
Ora creiamo una Vista (View) basata sulla tabella bookings_flat.
In Yellowfin:
- crea una nuova Vista
- seleziona bookings_flat come tabella di base
All'interno della Vista, cambiamo i campi in metriche, dimensioni e tempo (time) ove necessario.

Questo passaggio può sembrare amministrativo, ma ha un impatto diretto sull'esperienza dell'utente. Una Vista ben definita rende le dashboard più facili da costruire e le domande NLQ molto più affidabili.
Cosa consente questo immediatamente
Con una singola Vista in atto, sblocchiamo diverse cose contemporaneamente:
- le dashboard possono essere costruite senza toccare SQL
- la NLQ capisce cosa può essere contato, calcolato in media o raggruppato
- i team di prodotto possono far evolvere l'analisi senza modificare il database
La cosa più importante è che abbiamo creato un confine netto. PostgreSQL rimane la fonte di verità. Yellowfin diventa il livello di narrazione (storytelling).
Nel passaggio successivo, utilizzeremo questa Vista per costruire i primi grafici della dashboard e mostreremo come la NLQ si adatta naturalmente all'esperienza.
Passo 3: Costruire i primi grafici e lasciare che la NLQ faccia ciò che sa fare meglio

Con la Vista delle prenotazioni in atto, possiamo finalmente rispondere alla domanda che conta per i team di prodotto:
Che aspetto ha un'esperienza analitica utile per un utente finale?
L'obiettivo qui non è costruire ogni grafico possibile. È far emergere quelli giusti. Grafici che offrono chiarezza immediata e che invitano naturalmente a domande di follow-up.
È qui che Yellowfin inizia a brillare.
Iniziare con il risultato, non con l'esplorazione
Iniziamo costruendo per primi i grafici che rispondono a domande a livello di risultato (outcome-level). Queste sono le domande che i proprietari di immobili si pongono senza bisogno di suggerimenti.
Entrate nel tempo
Questa è l'ancora. Dice agli utenti se l'attività sta andando nella giusta direzione e fornisce il contesto per tutto il resto della dashboard. Da solo, non spiega perché le entrate si siano mosse, ma ci dice dove guardare dopo.

Tariffa media notturna per mese
Questo grafico dà significato alle variazioni delle entrate. Mostra se le prestazioni sono guidate dai prezzi o dal volume. Quando le entrate aumentano parallelamente a tariffe stabili, la domanda è probabilmente in crescita. Quando le tariffe diminuiscono senza un aumento delle prenotazioni, la strategia dei prezzi diventa una questione da affrontare.
Questi due grafici insieme riducono già le supposizioni. Trasformano impressioni vaghe in qualcosa di misurabile.
Aggiungere il contesto comportamentale
Una volta che i risultati sono visibili, aggiungiamo il comportamento.
Numero di prenotazioni
Le prenotazioni mostrano la domanda indipendentemente dal prezzo. Un aumento delle prenotazioni associato a entrate piatte suggerisce una pressione sui prezzi. Meno prenotazioni con entrate stabili significano spesso soggiorni più lunghi o ospiti di valore più elevato.
Durata media del soggiorno
È qui che entra in gioco la realtà operativa. Soggiorni più lunghi significano solitamente meno ricambi (turnover) e operazioni più prevedibili. Soggiorni più brevi aumentano il carico di lavoro e possono nascondere una domanda più debole dietro un numero di prenotazioni più elevato.
Questi grafici aiutano gli utenti a capire non solo cosa è successo, ma come è successo.
Rendere visibile la strategia
Infine, facciamo emergere i grafici che influenzano le decisioni a lungo termine.
Entrate per canale
Questo mostra quanto l'azienda sia dipendente da Booking.com, Airbnb, Expedia, prenotazioni dirette o clienti di passaggio. Una forte dipendenza dalle OTA (agenzie di viaggio online) può guidare il volume, ma ha un impatto sui margini. La crescita delle prenotazioni dirette segnala spesso una domanda più sana e un maggiore riconoscimento del marchio.

Origine degli ospiti
Il paese dell'ospite aggiunge un contesto che i soli numeri non possono fornire. Nel corso del tempo, questo grafico può informare il focus del marketing e le decisioni sui prezzi stagionali.
Dove la NLQ si adatta in modo naturale
Una volta che questi grafici sono in atto, la NLQ smette di essere una novità e inizia a comportarsi come un'estensione naturale della dashboard.
Gli utenti possono porre domande di follow-up come:
- prenotazioni per canale il mese scorso
- tariffa media notturna per le prenotazioni dirette
- entrate dagli ospiti in Germania
- durata del soggiorno per dispositivo
Poiché la Vista è stata progettata con cura, queste domande restituiscono risposte sensate senza bisogno di spiegazioni. La NLQ funziona meglio quando il modello di dati riflette già il modo in cui gli utenti pensano.
Perché questo è importante per i team di prodotto
Non mostri più agli utenti report statici. Stai dando loro:
- una visione condivisa delle prestazioni
- la possibilità di porre le proprie domande
- la certezza che gli insight provengano dalla stessa fonte di verità
E la parte migliore? Man mano che i dati entrano nel tuo database, i grafici in Yellowfin si aggiornano automaticamente. Questo significa che i tuoi utenti hanno una visione in tempo reale di come sta andando l'attività.
Pensi di essere pronto per iniziare a costruire la tua dashboard? Iscriviti per un playground privato dove potrai sperimentare tutta la potenza di Yellowfin. Bonus: troverai esempi di codice che semplificano l'integrazione delle analisi nella tua app. ```
