====== 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.