====== Sprint 17 — Revenue Management & Optimisation Tarifaire ======
===== Objectif du Sprint =====
Mettre en œuvre un moteur avancé de Revenue Management permettant d'optimiser automatiquement les revenus locatifs tout en conservant un contrôle total par les gestionnaires.
À l'issue du Sprint 17 :
* Les prix peuvent être ajustés dynamiquement
* Les recommandations tarifaires sont calculées automatiquement
* Les revenus futurs sont simulés
* Les niveaux d'occupation influencent les tarifs
* Les événements saisonniers sont pris en compte
* Les concurrents peuvent être analysés
* Les gestionnaires gardent la validation finale
Ce sprint apporte une couche d'intelligence économique directement reliée au catalogue, aux réservations et au reporting.
----
====== Principes Métier ======
===== Objectif =====
Le système ne remplace pas le gestionnaire.
Il fournit :
* Des recommandations
* Des simulations
* Des alertes
* Des scénarios
La décision finale reste configurable :
MANUEL
ASSISTÉ
AUTOMATIQUE
----
====== Périmètre ======
===== Modules concernés =====
RevenueManagementModule
DynamicPricingModule
YieldManagementModule
CompetitorAnalysisModule
PricingRulesModule
ForecastRevenueModule
----
====== Architecture Fonctionnelle ======
Historique Réservations
+
Occupation
+
Saisonnalité
+
Événements
+
Concurrence
↓
Revenue Engine
↓
Recommandation Tarifaire
↓
Validation
↓
Publication
----
====== User Stories ======
===== US-1701 : Consulter les recommandations tarifaires =====
**En tant que gestionnaire**
Je souhaite obtenir une recommandation de prix
Afin d'optimiser mes revenus.
----
===== Endpoint =====
GET /revenue-management/recommendations
----
===== Réponse =====
Tarif actuel
Tarif recommandé
Variation
Justification
----
====== US-1702 : Calculer un tarif dynamique ======
===== Endpoint =====
POST /dynamic-pricing/calculate
----
===== Facteurs =====
Occupation
Saison
Demande
Historique
Anticipation
Événements
----
===== Exemple =====
Prix base
100 €
Occupation élevée
+20 %
↓
120 €
----
====== US-1703 : Appliquer une recommandation ======
===== Endpoint =====
POST /dynamic-pricing/apply
----
===== Modes =====
Validation manuelle
Validation automatique
----
====== US-1704 : Configurer des règles tarifaires ======
===== Endpoint =====
POST /pricing-rules
----
===== Exemples =====
Occupation > 80%
↓
+15%
-------------------
Réservation J-2
↓
-20%
-------------------
Août
↓
+30%
----
====== US-1705 : Prioriser les règles ======
===== Objectif =====
Résoudre les conflits.
----
===== Exemple =====
Règle 1
Priorité 100
Règle 2
Priorité 50
----
====== Yield Management ======
===== US-1706 : Optimiser le taux d'occupation ======
===== Objectif =====
Équilibrer :
Prix
Occupation
Revenus
----
===== Indicateurs =====
ADR
RevPAR
Occupation
CA
----
===== ADR =====
Average Daily Rate :
:contentReference[oaicite:0]{index=0}
----
===== RevPAR =====
Revenue Per Available Room :
:contentReference[oaicite:1]{index=1}
----
====== US-1707 : Identifier les périodes creuses ======
===== Sources =====
Historique
Prévisions
Calendrier
----
===== Résultat =====
Liste périodes
Actions recommandées
Impact estimé
----
====== Simulation ======
===== US-1708 : Simuler un scénario ======
===== Endpoint =====
POST /revenue-management/simulations
----
===== Exemple =====
Prix +10%
↓
Occupation -3%
↓
CA +7%
----
===== Résultat =====
Revenus
Occupation
Bénéfices
Comparaison
----
====== US-1709 : Comparer plusieurs scénarios ======
===== Types =====
Conservateur
Standard
Agressif
----
====== Analyse concurrentielle ======
===== US-1710 : Analyser les concurrents ======
===== Sources =====
Données importées
OTA
Études marché
----
===== Critères =====
Prix
Occupation
Capacité
Localisation
----
====== US-1711 : Positionnement tarifaire ======
===== Résultat =====
Moins cher
Aligné
Plus cher
----
===== Score =====
Indice compétitivité
----
====== Prévisions ======
===== US-1712 : Prévoir les revenus ======
===== Endpoint =====
GET /forecast/revenue
----
===== Horizon =====
30 jours
90 jours
12 mois
----
====== US-1713 : Prévoir l'occupation ======
===== Endpoint =====
GET /forecast/occupancy
----
===== Résultat =====
Courbe prévisionnelle
Intervalle confiance
Scénarios
----
====== Alertes ======
===== US-1714 : Détecter une anomalie tarifaire ======
===== Exemples =====
Prix trop bas
Prix trop élevé
Occupation anormale
Écart concurrence
----
====== US-1715 : Alerte opportunité ======
===== Exemple =====
Festival local
↓
Demande forte
↓
Hausse recommandée
----
====== Modèle Prisma ======
===== PricingRule =====
model PricingRule {
id String @id @default(uuid())
propertyId String?
name String
priority Int
active Boolean
conditions Json
actions Json
}
----
===== DynamicPrice =====
model DynamicPrice {
id String @id @default(uuid())
propertyId String
date DateTime
basePrice Decimal
calculatedPrice Decimal
source String
}
----
===== RevenueSimulation =====
model RevenueSimulation {
id String @id @default(uuid())
name String
assumptions Json
result Json
}
----
===== CompetitorSnapshot =====
model CompetitorSnapshot {
id String @id @default(uuid())
propertyId String
competitorName String
observedPrice Decimal
observedAt DateTime
}
----
====== Architecture Backend ======
src/modules/revenue-management
├── pricing
│
├── rules
│
├── simulations
│
├── competitors
│
├── forecasting
│
└── recommendations
----
====== Domain Services ======
DynamicPricingService
RevenueSimulationService
CompetitorAnalysisService
ForecastRevenueService
RecommendationService
----
====== Événements métier ======
===== DynamicPriceCalculated =====
DynamicPriceCalculated
----
===== RecommendationPublished =====
RecommendationPublished
----
===== RevenueForecastGenerated =====
RevenueForecastGenerated
----
====== Swagger ======
===== Tags =====
RevenueManagement
DynamicPricing
PricingRules
CompetitorAnalysis
Forecasting
----
===== Volume API =====
Environ :
30 endpoints
----
====== Frontend ======
===== Pages =====
/revenue-management
/revenue-management/pricing
/revenue-management/rules
/revenue-management/simulations
/revenue-management/competitors
/revenue-management/forecasts
----
===== Composants =====
RevenueDashboard
DynamicPriceCalendar
PricingRuleBuilder
RevenueSimulator
CompetitorTable
ForecastGraph
----
====== Dashboard Revenue ======
===== KPI =====
ADR
RevPAR
Occupation
Prix moyen
CA prévisionnel
CA réalisé
----
====== Tests ======
===== Unitaires =====
DynamicPricingService
ForecastRevenueService
RecommendationService
CompetitorAnalysisService
----
===== Intégration =====
Occupation
↓
Calcul tarif
↓
Recommandation
↓
Validation
↓
Publication
----
===== E2E =====
Création règle
↓
Simulation
↓
Calcul dynamique
↓
Validation gestionnaire
↓
Publication tarif
----
====== Définition de terminé ======
Le Sprint 17 est terminé lorsque :
* Tarification dynamique opérationnelle
* Règles tarifaires opérationnelles
* Simulations opérationnelles
* Prévisions opérationnelles
* Analyse concurrentielle opérationnelle
* Alertes opérationnelles
* Swagger à jour
* Tests verts
* CI verte
----
====== Livrables ======
* RevenueManagementModule
* DynamicPricingModule
* YieldManagementModule
* CompetitorAnalysisModule
* PricingRulesModule
* ForecastRevenueModule
* DTO
* Swagger
* Tests
* Migrations Prisma
----
====== Bilan Release 3.3 ======
À l'issue du Sprint 17 :
* Revenue Management avancé
* Tarification dynamique
* Simulations financières
* Prévisions enrichies
* Optimisation du chiffre d'affaires
La plateforme atteint un niveau comparable aux solutions professionnelles de gestion locative et d'hôtellerie en matière d'optimisation des revenus.
----
====== Sprint suivant ======
===== Sprint 18 — Distribution, OTA & Channel Manager =====
Objectif :
Diffuser automatiquement les biens sur les plateformes partenaires et synchroniser les réservations.
Modules concernés :
ChannelManagerModule
OTAModule
DistributionModule
AvailabilitySyncModule
RateSyncModule
Fonctionnalités :
* Synchronisation Airbnb
* Synchronisation Booking.com
* Synchronisation Abritel / Vrbo
* Synchronisation calendriers
* Synchronisation tarifs
* Synchronisation réservations
* Gestion multi-canaux
À l'issue du Sprint 18, la plateforme deviendra un véritable Channel Manager.