Pipeline RL pour la tarification dynamique
Marketplace SaaS B2B (anonymisé)
Migration d'une tarification statique vers une boucle de renforcement online, avec garde-fous économiques et A/B continu.
- Revenu / client
- +18%
- Latence p99
- 23ms
- Couverture tests
- 94%
- Time-to-deploy
- 4min
Le contexte
Le client opérait une marketplace SaaS avec une grille de prix figée depuis 18 mois. Les prix étaient déconnectés de la disposition à payer réelle, et chaque tentative d’évolution prenait des semaines de comité.
Ce qu’on a fait
- Mesurer avant d’agir : instrumentation complète des parcours de conversion (Cloudflare Workers + Queues → BigQuery), pour disposer d’un baseline propre.
- Politique en Python, agent de bandit contextuel entraîné offline puis déployé en shadow pendant deux semaines.
- Décision en Rust à l’edge, pour servir la tarification en moins de 30ms p99 sans dépendance externe.
- Garde-fous économiques : plancher, plafond, et règle de désactivation automatique si l’écart au baseline dépasse 2σ.
Résultats
En 6 mois, la tarification est devenue un sous-système qui apprend chaque jour, surveillé en continu. Le revenu par client a augmenté de 18% sans dégradation de NPS, et chaque changement de politique se déploie en moins de 5 minutes en restant testable.
Ce qu’on a appris
Le plus difficile n’est pas l’algorithme : c’est l’instrumentation amont et les garde-fous aval. Sans eux, n’importe quel modèle peut tout casser en silence.