À propos
Je m'appelle Manuel, je suis en 4e année d'école d'ingénieur à CPE Lyon (Informatique et Réseaux de Communication), en alternance. PumpCast est un projet perso que j'ai fait pour apprendre des outils que je n'avais jamais utilisés : Go, GraphQL, MongoDB, Redis, Next.js et le machine learning avec scikit-learn.
L'idée de départ est une question que tout le monde se pose devant une pompe : je fais le plein maintenant, ou j'attends quelques jours ? Les applis de prix montrent le prix du jour, pas ce qu'il va devenir. J'ai voulu voir jusqu'où on pouvait aller avec les données publiques.
Ce que j'ai appris en fouillant les données
- Une station change son prix environ un jour sur quatre, souvent de 1 ou 2 centimes. Presque jamais le dimanche, et le vendredi est le jour des baisses.
- Le « fais le plein le lundi, c'est moins cher » ne se vérifie pas : l'écart entre les jours de la semaine est d'environ 0,1 centime, soit 5 centimes sur un plein.
- La pompe suit le pétrole avec du retard : la moitié d'une hausse du Brent arrive en 5 jours, presque tout en deux semaines. Les hausses passent un peu plus vite que les baisses.
- Sur autoroute, le gazole coûte en moyenne 17 centimes de plus.
- Je m'attendais à voir les prix monter avant les vacances scolaires. Dans les données, ce n'est pas le cas, même sur autoroute.
Le modèle de prévision part de tout ça. Ses résultats sont détaillés ici, y compris là où il ne fait pas mieux que « le prix ne bouge pas ».
Ce que PumpCast ne sait pas faire
- Les prix actuels couvrent toute la France, mais l'historique et les prévisions seulement l'Auvergne-Rhône-Alpes. L'hébergement gratuit de la base de données est limité à 512 Mo, il a fallu choisir.
- Le nom des enseignes (Total, Leclerc...) n'est pas dans les données officielles. Je ne l'ai pas deviné, PumpCast affiche l'adresse.
- Les prix sont déclarés par les stations elles-mêmes. Certaines ne les mettent pas à jour, d'autres font des fautes de frappe (un gazole à 8,82 € dans les archives). Les valeurs absurdes sont retirées, mais il peut en rester.
- L'outre-mer n'est pas dans le flux officiel des prix.
D'où viennent les données
- Prix des carburants, flux instantané et archives annuelles : prix-carburants.gouv.fr (Licence Ouverte 2.0)
- Cours du Brent : FRED, Federal Reserve Bank of St. Louis
- Taux de change euro / dollar : Banque centrale européenne
- Jours fériés : calendrier.api.gouv.fr
- Vacances scolaires : data.education.gouv.fr
- Recherche de ville : Géoplateforme de l'IGN
- Contours des départements : IGN Admin Express (Licence Ouverte)
- Fond de carte : © les contributeurs OpenStreetMap
Le code
Tout est sur GitHub, avec un README qui explique les choix techniques : API en Go avec GraphQL, MongoDB, Redis, front en Next.js, modèle en Python. Si tu vois une erreur ou un prix bizarre, tu peux ouvrir une issue.