La page Mon ROI (Outils SLOXO → Mon ROI) affiche le ROIWidget qui te montre les économies et gains réalisés grâce à l'optimisation des trajets.

Indicateur en haut à droite : point vert pulsant + "Temps réel".

Étape 1 — Le bandeau hero (4 métriques mois en cours)

Au chargement, SLOXO appelle `/api/roi/month` et affiche 4 cartes colorées :

  • CA ce mois (violet) — `revenueReal` : revenu réel du mois en cours, basé sur tes RDV confirmés. Sous-titre : "X RDV confirmés".
  • Temps gagné (violet clair) — `timeSavedMinutes` : temps gagné sur la route ce mois (vs scénario sans optimisation). Affiché en `Xh` ou `XhYY`.
  • Économies trajets (vert) — `fuelCostSaved` : carburant économisé en €.
  • RDV supplémentaires (bleu) — `extraBookings` : nombre de RDV en plus que tu aurais pu prendre grâce au temps gagné. Sous-titre : "+X € potentiel" si applicable.

Étape 2 — Les 3 vues (Semaine, Mois, Année)

Sous le bandeau hero, des onglets :

  • Semaine (composant `ROIWeekView`)
  • Mois (`ROIMonthView`)
  • Année (`ROIYearView`)
Chaque vue charge ses propres données via `/api/roi/week`, `/api/roi/month`, `/api/roi/year`.

Étape 3 — Indicateurs détaillés (par vue)

Chaque vue affiche :

  • `kmSaved` : km économisés sur la période
  • `timeSavedMinutes` : temps gagné en minutes
  • `fuelCostSaved` : économie carburant €
  • `extraBookings` : RDV supplémentaires possibles
  • `revenueGain` : gain € lié aux RDV supplémentaires
  • `totalGain` : gain total estimé €
  • `kmWith` / `kmWithout` : km parcourus avec / sans optimisation
  • `bookingsWith` / `bookingsWithout` : nombre de RDV avec / sans
Pour la vue Année, un calcul ROI multiplier est affiché : `Math.round(totalGain / (19 × 12))` — soit le multiplicateur de gain par rapport au coût mensuel de base 19€.

Étape 4 — Navigation temporelle

Sur les vues Semaine, Mois et Année, des flèches ◀ ▶ permettent de naviguer dans le passé / futur. Tu peux remonter dans l'historique pour comparer.

Étape 5 — Cas "Aucun RDV"

Si tu n'as pas encore de RDV confirmés sur la période, un message s'affiche : "Aucun RDV en {année}. Les données apparaîtront avec vos premiers rendez-vous."

Le bandeau hero ne s'affiche que si `noData` est false.

Légende

En bas du widget, une légende rappelle les 4 grandes catégories d'indicateurs :

  • 🚗 Kilomètres
  • Temps gagné
  • 💰 Euros économisés
  • 📍 Optimisations

Questions fréquentes

Le ROI est-il calculé en temps réel ? À chaque chargement de la page, les données sont fraîches (pas de cache long côté serveur). Le badge "Temps réel" en haut le rappelle.

Comment SLOXO calcule le scénario "sans optimisation" ? Le scénario "naïf" ordonne les RDV par `client_requested_time` ou `first_available_slot_time` (l'ordre que la cliente aurait initialement choisi), puis calcule la distance résultante. La différence avec l'ordre optimisé donne `kmSaved`.

Mes RDV pending sont-ils comptés ? Non. Seuls les RDV `confirmed` (et `completed`) sont inclus dans les calculs ROI.

Les distances utilisent Google Maps ou vol d'oiseau ? La logique précise dépend de chaque endpoint `/api/roi/*`. Le fichier `/lib/geo` fournit haversine — généralement utilisée pour les calculs ROI. Pas Google Maps Distance Matrix dans ces calculs (qui serait coûteux à grande échelle).

Y a-t-il un export CSV de mes données ROI ? Pas de fonction d'export native dans la version actuelle. Voir Exporter mes statistiques.