Calculer la note moyenne pondérée d’un produit
Transformez une répartition d’avis sur cinq étoiles en deux indicateurs essentiels pour les acheteurs et les équipes e-commerce : la note moyenne pondérée et le nombre total d’avis.
Lancer gratuitement
Saisissez l’effectif correspondant à chaque niveau, d’une à cinq étoiles. Le calculateur multiplie chaque effectif par sa valeur en étoiles, additionne ces scores pondérés, puis divise le résultat par le nombre complet d’avis. Il additionne également toutes les catégories pour fournir le total exact. Le calcul est déterministe, ne demande aucun identifiant de produit et refuse une répartition vide afin de ne pas afficher une note nulle trompeuse.
Saisissez la répartition complète des notes
Commencez par les cinq effectifs fournis par votre boutique, votre export de place de marché, votre prestataire d’avis ou votre base de reporting. Indiquez le nombre d’avis à une étoile dans le premier champ, puis procédez de même pour deux, trois, quatre et cinq étoiles. Chaque effectif doit être un nombre entier positif ou nul, puisqu’il représente des avis réels et non un pourcentage ou une note déjà calculée. Inscrivez zéro pour une catégorie sans avis ; ne l’omettez pas. Le calcul convient aussi bien à un nouvel article avec un seul avis qu’à une référence établie qui en compte des millions, tant que chaque valeur reste un entier sûr. Utilisez des données portant sur le même produit, le même périmètre de variantes, le même canal et la même date de relevé. Mélanger un cumul historique de cinq étoiles avec un effectif mensuel d’une étoile produit un nombre mathématiquement valide, mais sans population réelle correspondante. Si la source ne donne que des pourcentages, récupérez si possible les effectifs d’origine, car des pourcentages arrondis ne permettent pas toujours de retrouver le véritable total. Envoyez ensuite les cinq valeurs compatibles comme une seule répartition.
Comprenez le calcul pondéré
Une moyenne simple des cinq effectifs répondrait à une autre question. Le calculateur attribue à chaque catégorie sa valeur en étoiles : chaque avis à une étoile apporte un point, chaque avis à deux étoiles en apporte deux, et ainsi de suite jusqu’aux cinq points d’un avis à cinq étoiles. Il additionne ces contributions pour obtenir un score pondéré, puis le divise par le nombre total d’avis des cinq catégories. Ainsi, dix avis à cinq étoiles influencent cinq fois plus le résultat que dix avis à une étoile, car ils apportent cinquante points au lieu de dix. La moyenne renvoyée est arrondie à six décimales au maximum, ce qui stabilise la sortie tout en conservant davantage de précision qu’un affichage commercial habituel. Le nombre total d’avis est renvoyé séparément et n’est jamais déduit de la moyenne. Lorsque les cinq effectifs sont nuls, aucune population n’existe et la moyenne pondérée n’est donc pas définie. La capacité signale alors une entrée invalide au lieu de fabriquer une note de zéro étoile susceptible d’être prise pour une véritable opinion des clients.
Exploitez le résultat de manière cohérente
La note moyenne peut servir aux contrôles qualité d’un catalogue, aux tableaux de bord internes, à l’enrichissement des flux produits, au rapprochement avec les places de marché et aux règles d’affichage. Déterminez séparément sa présentation dans votre boutique : une ou deux décimales, ou encore un remplissage graphique des étoiles, tout en conservant la valeur précise pour vos comparaisons. Gardez toujours le nombre total d’avis à côté de la moyenne, car une note fondée sur deux avis n’a ni la même fiabilité ni la même portée commerciale que la même note fondée sur vingt mille avis. Pour comparer plusieurs canaux, calculez d’abord chacun à partir de ses cinq catégories. Pour obtenir une note globale, additionnez les effectifs de même niveau avant de traiter la répartition combinée ; faire directement la moyenne des moyennes peut surpondérer un canal comptant très peu d’avis. Dans un traitement automatisé, conservez l’horodatage de la source et la référence produit avec le résultat, même s’ils ne font pas partie des entrées. L’utilisation dans le navigateur est gratuite et une requête API coûte $0.002. La même arithmétique déterministe garantit des résultats identiques pour des effectifs identiques.
Cas d’usage
Créer un résumé pour la boutique
Convertissez les cinq catégories enregistrées pour un produit en une moyenne et un total à afficher près de son nom.
Contrôler les rapports des places de marché
Recalculez une note à partir des effectifs exportés et repérez les résumés incompatibles avec leur répartition.
Regrouper plusieurs canaux d’avis
Additionnez les catégories correspondantes de plusieurs canaux, puis calculez une note correctement pondérée pour l’ensemble.
Questions fréquentes
Quel est le coût du calcul ?
Vous pouvez l’exécuter gratuitement dans le navigateur sur cette page. Chaque requête API coûte $0.002.
Pourquoi les cinq effectifs ne peuvent-ils pas être nuls ?
Une population sans avis n’a pas de moyenne définie. Renvoyer zéro laisserait croire à tort que les clients ont attribué une note de zéro étoile.
Un effectif peut-il comporter des décimales ?
Non. Les effectifs représentent des avis individuels et doivent être des nombres entiers positifs ou nuls.
Comment la moyenne est-elle arrondie ?
Le résultat est arrondi à six décimales au maximum afin de rester stable et précis. Votre boutique peut appliquer son propre arrondi d’affichage.
Comment regrouper les notes de plusieurs boutiques ?
Additionnez séparément les avis à une étoile, puis ceux à deux étoiles, et ainsi de suite. Calculez ensuite la note avec ces cinq catégories regroupées, sans moyenner les moyennes des boutiques.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/ecom/review-rating-average \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"one_star_count":4,"two_star_count":6,"three_star_count":10,"four_star_count":30,"five_star_count":50}'const res = await fetch("https://api.kit.forhosting.com/ecom/review-rating-average", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"one_star_count": 4,
"two_star_count": 6,
"three_star_count": 10,
"four_star_count": 30,
"five_star_count": 50
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ecom/review-rating-average",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"one_star_count": 4,
"two_star_count": 6,
"three_star_count": 10,
"four_star_count": 30,
"five_star_count": 50
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ecom/review-rating-average", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"one_star_count":4,"two_star_count":6,"three_star_count":10,"four_star_count":30,"five_star_count":50}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"one_star_count":4,"two_star_count":6,"three_star_count":10,"four_star_count":30,"five_star_count":50}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ecom/review-rating-average", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"one_star_count": 4,
"two_star_count": 6,
"three_star_count": 10,
"four_star_count": 30,
"five_star_count": 50
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ecom.review_rating_average",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |