Nitro's blog

To content | To menu | To search

Forecast Lib

Entries feed - Comments feed

Wednesday 12 September 2012

What’s wrong with sales forecasting?

Forecasting software fail at computing good forecast. A short explanation of why.

Continue reading...

Saturday 1 September 2012

Mon projet perso

Cela fait longtemps que je travaille dessus, les week-ends, dans le train, parfois le soir. 3 ans déjà je crois.

De quoi s'agit-il ? D'un algorithme de calcul de prévisions, j'y reviendrais plus en détails.

Mais pourquoi ?

La première raison est que j'ai cherché pour mon travail un logiciel ou plutôt une bibliothèque que je puisse utiliser dans le logiciel que nous développons et vendons. Le principe est dans le fond simple : à partir de données historiques sur les ventes passées, calculer une prévision des ventes futures.

De telles bibliothèques d'algorithmes existent, et nous en utilisons une, sans doute une des meilleurs. Seulement les algorithmes utilisés marchent très mal pour prévoir les ventes de produits de grande consommation.

J'avais plein d'idées sur ce qu'il fallait faire, mais sans certitude évidemment, d'autant que je ne suis pas statisticien. Il n'était pas raisonnable d'embarquer ma boite dans un projet incertain, relevant plus de la recherche que du pur développement : nous nous en somme tenu à ce qui existe.

Par ailleurs, mon boulot actuel est bien moins intellectuel qu'il ne le fût, et je manque un peu de stimuli intec'tuels.

Donc, j'ai décidé de développer moi-même ce que je ne trouvais pas sur le marché.

Alors c'est quoi ?

Concrètement, c'est une bibliothèque de programme, c'est-à-dire quelque chose qu'un développeur peut utiliser et appeler dans son programme.

C'est donc un morceau de programme, que je développe avec un outil de développement et que je teste en écrivant mes propres programmes de test.

Le principe très général est d'utiliser des informations sur des ventes passées pour deviner les ventes futures. Concrètement, les données exploitées sont :

  1. Les références à prévoir : ces références peuvent être par exemple les combinaisons article vendu x client. Ces références sont décrites par des attributs : ligne de produit, région, canal, parfum taille. Deux informations sont indispensables : les dates de début et de fin de vente des références.
  2. Les historiques de ventes : de la façon la plus générale, on va avoir des quantités vendues par jour et par référence.
  3. Des évènements : on sait que la vie est tout sauf un long fleuve tranquille et que les ventes sont perturbées par plein de choses, notamment des promotions. Il nous faut donc savoir quels événements dans le passé ont perturbé les ventes, et quels évènement déjà planifiés vont perturber les ventes futures

A partir de ces données, on va proposer des quantités (par mois, par semaine voire par jour) prévisionnelles.

La bibliothèque que je développe permet donc de décrire toutes ces données d'entrée, de spécifier ce qu'on veut comme prévisions et de lancer des gros calculs.

C'est pour quand ?

Je t'en pose des questions, moi, ami lecteur ? Ça c'est la question qu'on me pose au boulot. Là c'est pour quand ce sera prêt.

Bon. C'est en où ?

Je me suis défini environ 10 étapes majeures pour une première version. La 1ère étape est à peu près finie.

En gros, ça commence à calculouiller des choses simples. Le développement s'accélèrera à partir de cette première base solide.

But why in english ?

Bonne question. Je pars de l'idée que le sujet pourrait intéresser bien du monde (je n'exclue pas si cela fonctionne bien de commercialiser la chose). Donc in English pour le cas où quelqu'un d'autre que les 3 êtres chers qui surveillent ce blog s'intéresse à la chose.

Ohh, et puis ça vous fais pas de mal d'être obligé de lire du mauvais Anglais un peu hein.

La suite

Je vais donc régulièrement donner des nouvelles ou décrire un peu ce que je fais ici même. Je considère ça quasiment comme un journal perso de ce projet, journal auquel je donne l'accès aux intimes que ça pourrait intéresser.

Ah tiens, la définition d'un blog non ?