Le sujet laisse quelques points ouverts. Voici comment je les ai tranchés, et pourquoi.
01Les offres illimitées sont exclues de la moyenne de data
653 offres « Illimité » n'ont pas de volume (data_gb vide). Leur attribuer une valeur arbitraire fausserait la moyenne : elles sont exclues du calcul et leur nombre est affiché à côté du résultat.
02« Plus de 100 € » s'entend au sens strict
Une offre à exactement 100,00 € ne serait pas comptée. Aucune offre du catalogue actuel n'est à ce prix exact : le choix ne change pas le résultat aujourd'hui.
03EU, AS, NA et WW sont des régions, pas des pays
Ces codes désignent des forfaits multi-pays (Europe, Asie, Amérique du Nord, Monde). AS n'est pas les Samoa américaines et NA n'est pas la Namibie. Ils sont comptés à part dans la couverture et filtrables via « Zone ».
04Les prix sont pris tels quels, en euros
Tous les fichiers sont en EUR. Une ligne dans une autre devise serait rejetée et signalée plutôt que convertie avec un taux de change inventé.
05Le rapport qualité/prix utilise la médiane du prix au Go
Le prix au Go n'a de sens que pour un volume chiffré. La médiane résiste mieux que la moyenne aux forfaits extrêmes (1 Go très cher au Go, 50 Go très bon marché).
06Les doublons sont comptés, mais signalés
219 produits identiques apparaissent sous plusieurs SKU chez un même fournisseur, parfois à des prix différents. Le sujet demande le nombre de produits du catalogue : je les compte tous, et je les liste dans les contrôles métier plutôt que de choisir à la place de l'équipe lequel garder.
07Une offre « battue » l'est sur tous les critères
Une offre est battue quand la même destination propose moins cher avec au moins autant de data, une durée au moins égale, un réseau au moins aussi bon (5G ≥ 4G) et la recharge si elle l'a. Critère strict, sans pondération arbitraire entre data et durée.
08Les forfaits régionaux couvrent les pays habituels
Les CSV ne listent pas la couverture des forfaits Europe, Asie ou Amérique du Nord. Le simulateur suppose la couverture usuelle (UE + Royaume-Uni, Suisse, Norvège pour l'Europe ; Asie de l'Est et du Sud-Est ; États-Unis, Canada, Mexique) et l'indique sur chaque résultat. La case « forfaits régionaux » permet de s'en passer.
09Rien n'est corrigé en silence
Chaque ligne est validée (colonnes, types, devise, réseau, cohérence volume/libellé, SKU unique). Une ligne invalide est écartée et listée dans le rapport de qualité, et la CI bloque le déploiement.