Table des matières
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.