Prévoir l’occupation d’une maison d’hôtes à J−7 avec les réservations nettes

Chronologie d’une prévision à J−7 : figer les réservations, utiliser les nuits déjà clôturées puis mesurer l’occupation réelle.

Illustration originale GEEKKECH. Schéma de la méthode et résultats de la simulation : MAE de 1,50 contre 1,17 chambre sur six nuits fictives. Aucun résultat commercial réel.

Texte rédigé le 08/11/2026. La date affichée correspond à la rédaction. Mise en ligne ultérieure.

Un samedi, huit chambres sont ouvertes à la vente et quatre sont réservées une semaine à l’avance. Combien seront réellement occupées le soir venu ? La réponse peut modifier le planning d’accueil ou les achats du petit-déjeuner. La méthode consiste à partir des chambres réservées à J−7, puis à estimer combien de chambres seront gagnées ou perdues d’ici au séjour. Pour la tester, il faut rejouer chaque prévision avec les données dont l’équipe disposait à l’époque.

Les chiffres touristiques nationaux relayés le 8 novembre décrivent l’activité des établissements classés jusqu’à la fin août. Ils donnent un repère de conjoncture, à une échelle et avec un délai différents de ceux du planning d’une maison d’hôtes à Safi. La prévision ci-dessous s’appuie sur les réservations de l’établissement et son inventaire réel de chambres. HCP, Repères statistiques n° 333, octobre 2026 · Hespress FR, reprise du tableau de bord le 8 novembre 2026.

Figer les réservations au moment où la décision se prend

Choisissez une heure de lecture fixe. Pour préparer le samedi soir, le cas d’école retient midi le samedi précédent. L’export doit compter les chambres réservées pour cette nuit précise et encore actives au moment de la lecture. Un séjour du vendredi au dimanche contribue à deux nuits. Une réservation de deux chambres contribue à deux chambres pour chacune des nuits concernées. Comptez les chambres, puis traitez séparément le nombre de personnes si la prévision sert à commander les petits-déjeuners.

Archivez par date de séjour le nombre de chambres commercialisables, le nombre de chambres réservées à l’heure de lecture et, après clôture, le nombre de chambres réellement occupées. Conservez aussi l’heure de clôture et, si l’outil le permet, les créations, modifications et annulations horodatées. Un export d’aujourd’hui qui a déjà supprimé les réservations annulées peut donner une image fausse de ce qui figurait au planning à J−7. Si aucun historique des modifications n’est disponible, commencez à conserver les instantanés et évaluez la méthode sur les semaines à venir.

Comparer deux prévisions sur les mêmes nuits

La référence simple prévoit que le nombre de chambres occupées sera égal au nombre déjà réservé à J−7. La deuxième méthode ajoute la médiane des variations nettes de trois samedis comparables déjà clôturés. Chaque variation est calculée en retranchant le nombre réservé à J−7 du nombre réellement occupé. Une variation négative peut refléter des annulations, des départs anticipés ou des absences. Une positive peut refléter des réservations tardives. La prévision reste comprise entre zéro et la capacité disponible connue à J−7.

À chaque date testée, recommencez le calcul avec les seules nuits dont le résultat était déjà connu. Dans l’exemple, la nuit du samedi précédent n’est clôturée que le dimanche, après l’heure de lecture du samedi. Elle est donc exclue. Wu et ses coauteurs ont appliqué le même principe de séparation temporelle à des données mensuelles provinciales en Thaïlande. Leur étude éclaire le protocole de validation. Elle ne mesure pas l’occupation d’un établissement marocain. Wu et al., Discover Artificial Intelligence, 25 octobre 2026.

Reproduire le test avec dix samedis fictifs

Le script utilise la bibliothèque standard de Python 3.12. Les dix paires sont ordonnées depuis le 29 août 2026. Chaque paire contient les chambres réservées à J−7 et les chambres occupées. La capacité est de huit chambres et la clôture intervient à 11 h le lendemain du séjour. L’exemple mesure l’erreur absolue moyenne en chambres et les alertes de renfort quand la prévision atteint sept chambres. Documentation Python 3.12, statistics.median.

from datetime import date, timedelta
from statistics import mean, median

depart = date(2026, 8, 29)
semaine = timedelta(days=7)
lendemain = timedelta(days=1)
paires = [(3, 5), (4, 5), (2, 4), (5, 4), (4, 6),
          (6, 8), (6, 5), (3, 4), (5, 8), (6, 6)]
series = [(depart + i * semaine, reserve, occupe)
          for i, (reserve, occupe) in enumerate(paires)]
tests = []

for nuit, reserve, occupe in series:
    lecture = nuit - semaine
    # Clôture à 11 h et lecture à midi, heure locale.
    connus = [o - r for d, r, o in series if d + lendemain <= lecture]
    if len(connus) < 3:
        continue
    corrige = min(8, max(0, reserve + median(connus[-3:])))
    tests.append((reserve, corrige, occupe))

for colonne, nom in enumerate(("Réservations seules", "Variation médiane")):
    paires_test = [(t[colonne], t[2]) for t in tests]
    mae = mean(abs(p - y) for p, y in paires_test)
    manque = sum(p < 7 <= y for p, y in paires_test)
    inutile = sum(y < 7 <= p for p, y in paires_test)
    print(f"{nom}: MAE {mae:.2f}, alertes manquées {manque}, "
          f"alertes inutiles {inutile}")

Sur les six samedis évaluables, l’erreur absolue moyenne passe de 1,50 à 1,17 chambre avec la correction médiane. Le 10 octobre, pourtant, la référence prévoit six chambres pour cinq occupées, alors que la méthode corrigée en prévoit huit. Un résultat moyen plus bas peut donc coexister avec une mauvaise décision sur une nuit précise.

Avec un seuil fictif de sept chambres, la référence manque deux nuits où un renfort aurait été déclenché. La correction les détecte, mais ajoute deux alertes inutiles. Si une fausse alerte coûte 120 MAD et un renfort manqué 300 MAD, la pénalité simulée est de 240 MAD pour la correction et de 600 MAD pour la référence. Ces montants servent uniquement à comparer les décisions. Ils ne mesurent aucune économie réelle.

Décider quand un modèle plus complexe mérite un test

Six nuits illustrent le calcul. Pour décider en exploitation, évaluez séparément les week-ends ordinaires, les vacances, les événements et les périodes où des chambres sont fermées. Une nuit complète mesure l’occupation réalisée. Pour estimer la demande non satisfaite, il faut aussi journaliser les refus et les demandes arrivées après la fermeture des ventes.

Un modèle d’apprentissage peut intégrer le canal, le délai de réservation et les événements déjà annoncés à l’heure de lecture. Commencez par la correction médiane comme référence, gardez une période de test à part et comparez les erreurs ainsi que les décisions réellement déclenchées. Le gain doit se retrouver sur plusieurs périodes comparables pour justifier la complexité. Le contexte commercial de Safi reste à lire à l’échelle de l’offre de chaque hébergeur. Tourisme à Safi et construction d’une offre locale.

Démarrer
GEEKKECH