Affichage des articles dont le libellé est gestion fine. Afficher tous les articles
Affichage des articles dont le libellé est gestion fine. Afficher tous les articles

dimanche 23 octobre 2011

Composition de segments

Pour l'instant je n'ai parlé que de prix pour des voyages sans correspondance. Quand un trajet comporte une ou plusieurs correspondances, le voyage est dit être composé de plusieurs segments.

Pour faire court, pour un voyage donné il est intéressant de mettre le plus de trajets simples sur un même billet afin de bénéficier de la dégréssivité de bout en bout[0]. Ce qui suit concerne donc la tarification des voyages à plusieurs segments. Elle est assez compliquée, je vais essayer d'être exhaustif.

Comme toujours il s'agit de l'état actuel de la tarification. Je ne sais pas combien de temps les choses resteront en l'état. En fait je ne garantis même pas que ce que je raconte corresponde à la réalité.

Tarifs différents

Quand le code tarif n'est pas le même entre les différents segments, en général il n'est pas possible d'émettre un seul billet (ne pas oublier qu'un billet peut nécéssiter plusieurs pages). Ce cas se produit généralement quand on veut effectuer un voyage et qu'on dispose d'un abonnement valable uniquement sur une partie du trajet.

Lorsqu'on fait apparaître une fausse correspondance, c'est à dire qu'un trajet sur le même train se trouve séparé en deux billets distincts, on dit qu'une soudure a été effectuée. (Par exemple, je souhaite prendre un TGV entre Bordeaux et Paris alors que je dispose d'un abonnement demi-tarif pour la section Poitiers-Paris : je vais avoir envie de faire une soudure à Poitiers.) En fonction des cas, elle est autorisée ou non. Si la soudure se situe à un arrêt effectif du train, il suffit juste de sortir pour composter le second billet. Sinon elle n'est en général pas autorisée. En théorie une soudure n'est pas intéressante si les deux trajets sont au plein tarif à cause de la dégressivité, mais ça n'est pas toujours vrai pour les trajets internationaux, où une soudure au niveau du dernier arrêt en France est souvent intéressante.

Segments compatibles

Un autre cas simple est le cas où les segments sont compatibles, c'est-à-dire que les classes de service et la période correspondent (je crois que c'est le seul cas possible). Dans ce cas la tarification est faite de bout en bout (i.e on fait comme si l'arrêt intermédiaire n'existait pas), ce qui compte tenu de la dégressivité importante sur TGV est favorable à l'usager.

Sur les trains à gestion fine, il faut aussi que l'arrêt soit un arrêt raisonnable au regard du trajet. Par exemple, si vous voulez combiner Paris → Nice et Nice → Lyon, le tarif appliqué ne sera pas le tarif Paris → Lyon de bout en bout. La condition technique doit certainement être que la somme des kilomètres doit être inférieure ou égale au kilométrage de référence du prix de bout en bout. En réalité ces cas sont rares, la SNCF privilégiant les relations sans correspondances.

Deux remarques intéressantes :

  • Je ne crois pas que la SNCF applique ce qui s'appelle dans le monde aérien la tarification par « classes virtuelles » ou par « bid price ». On pourrait imaginer pouvoir combiner deux trajets même si les classes de service ne sont pas égales, en considérant la classe de service du segment assurant le maximum de revenu (dans une classe de confort donnée). Du coup, comme la dégressivité sur TGV est nettement supérieure à la dégressivité générale, on peut avoir intérêt à effectuer une réservation dans une classe de service moins restreinte (comprendre : plus chère) que celle qui est disponible au moment de l'achat de façon à avoir un tarif de bout en bout. Je ne pense pas que voyages-sncf.com le fasse, ou que beaucoup de guichetiers soient au courant de cette subtilité.
  • Sur les trains sans gestion fine, le tarif de bout en bout est évidemment le tarif général, mais en fonction des détails du billet, le prix peut être légèrement différent. Sur les billets ouverts (type DT)[1] sans mention d'horaire le prix est réellement le prix au kilomètre sur la somme des kilomètres. Sur les billets à train désigné (type DV notamment), une correspondance a tendance à faire un billet moins cher de 10 centimes d'euros, certainement sous l'effet d'arrondis.

Segments incompatibles (ou hétérogènes)

Les segments compatibles sont d'abord regroupés entre eux et traités comme un seul segment par la suite.

Ce qui suit correspond au cas général, qui est le plus fréquent.

Il est indiqué dans les tarifs voyageurs (point 1.7 de la gamme tarifaire) que « le prix de chaque segment ou chaque ensemble homogène de segments est affecté d'un coefficient intégrant, sur l'ensemble du trajet (…), la dégressivité de prix contenue dans la formule de calcul du tarif de base général. ». Au pire, donc, on profite d'une dégressivité semblable au tarif normal.

On pouvait imaginer plusieurs possibilités pour coller à cette formulation. Manifestement il faut faire appel à la formule du tarif normal :

  1. Pour chaque segment, prendre son kilométrage et faire le rapport entre le prix au kilomètre du tarif normal pour ce kilométrage et le prix au kilomètre du tarif normal pour la somme des kilomètres. Appliquer ce coefficient au prix initial du segment. Cette formule a l'avantage que si tous les segments sont effectivement au tarif normal, alors le prix total est effectivement le tarif normal.
  2. Pour chaque segment, prendre son kilométrage et faire le rapport entre le tarif normal pour ce kilométrage et le tarif normal pour la somme des kilométres. Appliquer ce coefficient au prix initial du segment. Cette configuration serait gênante pour le cas de segments de petit kilométrage mais très chers. Leur prix se ferait diluer par des segments longs et peu chers.
  3. Multiplier le prix de chaque segment par le rapport entre le prix du tarif normal pour la somme des kilomètres et la somme des prix du tarif normal pour les kilométrages de chaque segment. De même que pour la première formule, on a la propriété que si tous les segments sont effectivement au tarif normal, alors le prix total est effectivement le tarif normal.
En prenant l'exemple de deux segments de prix P1 et P2, de kilométrage 1 et 2, et P() la fonction du tarif normal en fonction du kilométrage, les trois possibilités donneraient (navigateur supportant MathML nécéssaire) :
  1. P 1 ( P ( 1 + 2 ) ( 1 + 2 ) 1 P ( 1 ) ) + P 2 ( P ( 1 + 2 ) ( 1 + 2 ) 2 P ( 2 ) )
  2. P 1 P ( 1 ) P ( 1 + 2 ) + P 2 P ( 2 ) P ( 1 + 2 )
  3. P 1 P ( 1 + 2 ) P ( 1 ) + P ( 2 ) + P 2 P ( 1 + 2 ) P ( 1 ) + P ( 2 )

Sauf qu'en fait ce n'est pas ce qui est fait. Après plusieurs essais, je pense que l'idée est de calculer les kilométrages fictifs correspondant au prix de chaque segment comme s'ils étaient au tarif normal, de sommer les kilométrages fictifs et de calculer le prix correspondant avec le tarif normal. Ce qui donnerait, P-1() représentant la fonction inverse du tarif normal (toujours avec MathML) : P ( P - 1 ( P 1 ) + P - 1 ( P 2 ) )

Plus en détails, si l'on veut que ça marche en vrai, il faut changer un peu P() et P-1(). Je pense qu'il s'agit bien d'un tarif normal, mais qu'il s'agit du tarif normal datant de l'introduction des tarifs de marchés et qu'elle n'a pas été changée depuis. Pour la simuler, j'ai cherché un facteur γ[2] qui pourrait correspondre. Après divers essais je pense qu'il vaut γ=0,795. On remarquera que c'est légèrement moins dégressif que le tarif normal (pour lequel γ=0,78). Sauf que ce n'est pas encore exactement ça. Même si ça marche relativement bien pour les trajets au plein tarif, ça ne marche pas pour les tarifs réduits, notamment pour les trajets incluant des réductions en pourcentage sur des trains à réservation facultative. J'exposerai une autre fois mes théories sur comment améliorer la formule.

[0] Au maximum 8 par billet, et souvent cela nécéssite de passer par un humain, voyages-sncf.com étant actuellement incapable de proposer des trajets avec plus que trois segments.

[1] Je parlerai une (en fait probablement plusieurs tant le sujet est vaste) autre(s) fois des détails de billetterie.

[2] Comme expliqué dans la première entrée, le tarif normal est très proche d'une loi de puissance paramétrée par un facteur γ.

dimanche 2 octobre 2011

Principes généraux de yield management, le cas de la SNCF

Le yield management (ou « gestion fine » dans le jargon SNCF) c'est quoi ? L'idée générale est d'extraire le plus d'argent possible étant donné qu'on dispose d'une ressource limitée et périssable. Le yield management est donc particulièrement adapté aux cas des transports (une place vide est une place perdue dès que l'avion décolle) ou des prestations hôtelières. La discussion qui suit part du cas du rail façon SNCF, mais les concepts généraux s'adaptent facilement au cas de l'aérien et dans une moindre mesure à l'hôtellerie. Je tenterai de rester général, les détails techniques viendront une autre fois.

Au delà de la phrase volontairement provocatrice, le yield management recouvre en fait plusieurs concepts :

  1. Augmenter le nombre de clients, soit par report (on veut attirer la clientèle qui prend sa voiture au lieu de prendre l'avion), soit qui ne voyage pas.
  2. Parmis sa clientèle aquise, obtenir un report des trains pleins vers les trains vides afin de libérer des places pour la clientèle prête à payer plus.
  3. Être rentable.
Ces objectifs peuvent s'opposer. Par exemple si on ne garde que le premier objectif en vue on risque de voir les profits s'effondrer et d'avoir une mauvaise satisfaction client.

Je vais parler de deux outils utilisables pour réaliser ces objectifs. Notez qu'ils sont indépendants et peuvent être mis en œuvre séparément l'un de l'autre.

La segmentation de la clientèle

L'un des premiers outils à disposition pour réaliser ces objectifs est la segmentation de la clientèle, c'est à dire de réussir à proposer à la clientèle (ou enfermer celle-ci) des services/tarifs en fonction de ce que l'on estime être ses besoins. Deux exemples mis en place à la SNCF[0] :

  • Exemple n°1 : pour toucher les gens qui ne prennent pas trop le train ont été mis en place les Prem's[1], et plus récemment les Prem's Promotionnels qui font l'objet de campagnes de publicité et dont l'objectif est clairement d'attirer le chaland. Outre leur prix réduit, ils sont non échangeables et non remboursables pour éviter que ce segment ne soit envahi par la clientèle à priori plus aisée des "Loisir", ce qui rendrait le procédé inutile. Leur faible disponibilité s'explique de la même façon.
  • Exemple n°2 : la dissociation entre la gamme PRO et Loisir. Le nom indique plus ou moins quelle clientèle est visée. Dans la gamme PRO (qui comporte outre le Tarif Pro, les abonnements Fréquence, Forfait et les militaires) le billet est flexible et accompagné de différents services (échange facilité, réservation de taxi, repas à la place etc.). La gamme loisir regroupe le reste des tarifs, qui est elle-même segmentée en plusieurs gammes. Par exemple pour tenter d'éviter d'offrir des prix réduits aux voyageurs en déplacement professionnels qui se décident souvent vers le tard (et peu sensibles au prix) il a été créé le tarif loisir week-end où il faut inclure la nuit du samedi au dimanche; sans cette condition[2] il faut s'y prendre plus de 10 jours à l'avance. Le même principe se retrouve (multiplié par dix) dans les tarifs des compagnies aériennes classiques. Dans un autre registre les cartes de réduction commerciales (12/25, escapades, senior) fidélisent le client et segmentent par l'utilisation plus importante des transports.

Gestion dynamique des stocks

Le deuxième objectif est rempli en faisant varier le prix en fonction du remplissage du train, de manière à inciter la clientèle moins rentable à se reporter sur les trains moins remplis, libérant de la place pour les clients plus rentables (dits « à forte contribution »). En gros, moins le train est rempli, moins c'est cher et inversement. En fait c'est plus compliqué que ça, le remplissage est indépendant pour chaque catégorie de clients (donc segment de clientèle pour ceux qui suivent).

Pour chaque segmentation (et éventuellement sous-segmentation) de clientèle on définit un groupe de classes de contingences (ou classe de service)[3] dont on fait varier la quantité en fonction des besoins de sorte que les trains plus remplis soient moins attirants que les trains moins remplis. Un tarif donné n'est donc valable que dans certaines classes de service et vaut d'autant moins cher que la classe est restreinte. Par exemple tous les tarifs PRO se partagent la même classe de service unique (dans une classe de confort donnée : 1ère, 2nde, couchette etc..), alors que les tarifs à carte de réduction se partagent plusieurs classes de service communes. Au fur et à mesure du remplissage du train les places dans les classes restreintes (avec leur tarif faible) disparaîssent et il ne reste plus que des places dans les classes moins restreintes. Grosso-modo, si vous avez une attaque de clients avec carte de réduction sur un train, à priori les tarifs loisirs sans carte ne seront pas impactés. En réalité comme la gestion est faite en temps réel il y aura peut-être un algorithme (ou un humain) qui réduira aussi la disponibilité pour les voyageurs sans carte[4].

La SNCF se réserve aussi la possibilité d'augmenter en bloc (c'est la période du train) tous les tarifs pour les trains qui sont typiquement plus demandés, ou qui se remplissent aussi vite dans tous les segments.

Au final le nombre de paramètres d'ajustement est assez faible, le reste est déterminé de manière automatique par les tarifs. L'ajustement est fait d'après des modèles d’élasticité de la demande et/ou par le pifomètre de l'analyste. Quelques règles sont néanmoins pratiquement toujours observées. Par exemple une classe de service épuisée ou fermée n'est en principe pas ré-ouverte, ce qui assure que les tarifs ne font qu'augmenter. Ceci est en partie dû au fait que une grande partie des billets sont échangeables, ce qui fait qu'il y a un loophole évident pour les passagers ayant un billet plus cher que le prix du moment

Dans l'aérien cela fonctionne plus ou moins de la même manière : toutes sortes de tarifs automatiques sont définis (selon la durée de séjour, l'anticipation etc.). Leur prix dépend du prix maximum fixé et de la classe de contingence. Le levier habituel est donc de jouer sur les quantités de places dans les différentes classes de contingence, éventuellement sur le prix maximum, le tout sans toucher aux règles ou aux prix des différents tarifs. Dans un certain sens le travail est plus facile dans l'aérien, car une relation donnée est sans escales et possède une clientèle bien plus homogène que dans le rail.

[0] Ces deux exemples sont en réalité l'essentiel des segments de clientèle que les gens sont amenés à observer sur TGV. Mais pas chez iDTGV : chez eux, pas de segmentation de clientèle, tout le monde est à la même enseigne.

[1] Et dont l'introduction date d'avant la refonte tarifaire de 2007. Clairement le yield management n'est pas tant une nouveauté que ça.

[2] Ça n'est pas toujours vrai. On voit parfois, surtout en fin de semaine des trains où les paliers loisir réduit sont accessibles sans condition d'A/R. Mais quand on joue à ça il y a un risque de dé-segmenter la clientèle et d'avoir une fuite des tarifs PRO à la marge plus confortable vers les tarifs loisir par effet d'aubaine. Tout est donc dans l'art de ne pas abuser du procédé.

[3] En anglais "fare bucket".

[4] Et parfois cela peut avoir comme conséquence que le prix en première est moins cher que en seconde. Il peut rester du Prem's en première alors qu'il n'en reste plus en seconde. Autre exemple où cela se produit souvent est les trains internationaux quand on s'en sert pour faire un trajet national. La première ne suit pas exactement les mêmes règles pour les trajets trans-frontières et l’aberration de tarif ne se corrige pas toute seule car l'essentiel de la clientèle va à l'étranger. Il va de soi que dans l'aérien ce deuxième cas n'est pas possible car pas d'escales.

jeudi 8 septembre 2011

Ensuite vinrent les tarifs de marché

Comme je le disais la dernière fois, le tarif normal souffre de limitations quand il s'agit de gérer les flux de voyageurs. Notamment il n'y a quasiment aucune modulation pour les voyageurs sans carte et pour les porteurs de carte la modulation est décidée un an à l'avance par la mise en place de périodes bleues et blanches.

Il a donc été créé des trains à gestion fine, c'est à dire où le prix est modulé en fonction de la demande et du remplissage (dudit train ou des autres trains). Par ailleurs ces trains étant généralement rapides, avec peu d'arrêts ou plus confortables, la SNCF a l'autorisation de faire payer plus cher, y compris pour le plein tarif. Jusqu'à la refonte des tarifs de la fin 2007 ce tarif s'appellait encore « Tarif Normal », et était modulé par la « période » qui pouvait être « de pointe » ou « normale » (mais uniquement en seconde, le plein tarif de la première classe n'est pas modulé en fonction de la période.). Depuis la refonte des tarifs de 2007, ce plein tarif est devenu « Tarif Loisir » et s'est retrouvé accompagné d'une floppée de paliers réduits appellés aussi jusqu'à récemment par le même nom[0]. La confusion règnant, les tarifs ont été renommés en « Plein Tarif Loisir » et « Loisir Réduit » pour indiquer aux gens quand il bénéficiaient de réductions. La refonte a aussi amené des tarifs plus cher, nommés « Pro », destinés à la clientèle ayant besoin de flexibilité, mais il n'en sera pas vraiment question ici. Les trains sur lesquels on trouve ces tarifs sont principalement les TGV, les Téoz et les Lunéa (l'essentiel des trains de nuits), trains sur lesquels la réservation est obligatoire et pour lesquels il faut avoir une réservation pour le train dans lequel on monte, sauf exceptions.

Pour récapituler, si vous voyagez en TGV, que vous vous y prenez mal (au dernier moment, ou lors des grosses pointes), le tarif le plus faible proposé sera le Plein Tarif Loisir. Il n'est pas contingenté.

À priori, le « Plein Tarif Loisir » est donc un tarif de marché, il n'y a donc pas de relation aussi simple entre le kilométrage et le prix payé que pour le Tarif Normal. Et en effet, pour les TGV circulant sur ligne à grande vitesse (LGV) c'est le cas. On trouve dans le volume 6 des tarifs voyageurs[1], section 1.2.3 probablement l'ensemble des prix pratiqués pour les relations directes desservies par TGV et avec emprunt de ligne à grande vitesse. À titre d'exemple, on y lit que le plein tarif 2011 en 1ère pour Paris - Nantes vaut 109,70 EUR, et que pour Paris - Bordeaux il vaut 113,80 EUR, pour des kilométrages reportés[2] de 396 km et 581 km. En considérant qu'il existe un facteur γ entre les kilomètres et le prix, on obtient γ = (Log(113,80)-Log(109,70))/(Log(581)-Log(396)) = 0,096. Peu probable. Ceci indique quand même que la dégressivité est très importante sur TGV.

Mais qu'en est-il des relations sans parcours à grande vitesse ? Prenons le cas de la ligne entre Nîmes et Bordeaux, qui a l'avantage de posséder beaucoup d'arrêts, d'être longue et de voir du traffic TGV et Téoz[3]. Pour avoir les distances j'ai cherché les TER parcourant cette ligne et inversé la fonction de prix (j'aurais pu aussi consulter un vieux manuel Chaix ou encore l'article Wikipédia : Ligne_Bordeaux - Sète).

Et voici donc le plein tarif loisir 2nde en fonction de la distance pour les TGV[4] :

Pour les Téoz :

Il s'agit donc bien d'une fonction du même type que le tarif normal, le TGV étant légèrement plus cher (mais avec probablement la même dégressivité) que les Téoz. Pas de tarifs de marché[5]. On ne le voit pas sur le graphique, mais on peut aussi remarquer que le plein tarif sur TGV ne dépend pas de la période du train. La période ne sert donc que pour des parcours avec utilisation de ligne à grande vitesse (en tout cas pour le plein tarif, je ne me prononce pas pour les tarifs réduits).

On peut même s'amuser à retrouver les paliers pour prédire le prix au centime près, mais je ne vais pas vous l'imposer.

On peut dire le même genre de choses sur le tarif PRO : sur Téoz il s'agit d'une somme fixe ajoutée au tarif loisir. En revanche sur TGV le montant n'est pas fixe (dépend de la distance j'imagine), il y a en plus un arrondi au ½ centime près ce qui complique un peu l'analyse, mais ça reste très simple, et ça tend vers 5% en plus pour les longs trajets.

Pour ceux que ça intéresse, le fichier openoffice est disponible ici : teoz_tgv_non_lgv.ods. Remarquez notamment comme les prix des relations Montauban - Agen et Sète - Narbonne sont identiques, pour un kilométrage identique. Si les graphiques ne suffisaient pas, ceci achève de convaincre.

[0] Mais pas forcément le même code tarif. J'en parlerai plus tard.

[1] C'est loin d'être la dernière fois que je ferai référence aux "Tarifs Voyageurs" ! On peut les trouver sur la page du guide du voyageur SNCF.

[2] Généralement le kilométrage reporté est celui que ferait un train classique faisant le trajet le plus court entre les deux gares. Ainsi, sur un TGV Paris - Marseille le nombre de kilomètres annoncés est de 863km, ce qui correspond exactement à la longueur de la ligne classique Paris - Marseille via Lyon.

[3] L'année dernière il n'y avait pas de différence entre TGV et Téoz, le prix dépendait uniquement de la paire (non ordonnée) de gares. Maintenant les prix sont différents et j'ai donc du refaire une étude. C'est la dernière fois que je la fais à la main !

[4] Notez l'aberration, qui concerne la liaison Nîmes - Agen. Ne voyant pas pourquoi cette relation particulière devrait être plus chère que les autres, je penche pour l'erreur de report (il y aurait une entrée manuelle de tous les tarifs dans la base de données ???). Et comme elle impacte aussi le tarif PRO, je pense que le plein tarif PRO est calculé à partir du tarif Loisir, et non pas du kilométrage.

[5] On peut quand même imaginer que la constante ou le facteur de puissance varie avec les régions, mais il ne faut pas oublier que dans cette étude sont mis dans le même panier des trajets comme Montpellier - Nîmes avec des Bordeaux - Agen qui à priori n'ont pas le même marché.