Source des données : sell-through SQDC (ventes réelles en magasin), une ligne par magasin × produit × jour, ~2,5 ans d'historique. La vue contient tous les producteurs, ce qui permet de calculer une vraie part de marché. Mise à jour quotidienne (~4 h).
Deux périmètres distincts :
- Part de marché (A, B) : calculée sur tout le marché (tous producteurs).
- Alertes & watchlist (C, D) : limitées à notre catalogue actif (les SKU présents dans DBMaster), pour éviter que des produits discontinués faussent les ruptures.
« Semaine » = 7 jours glissants. « Sem. préc. » = jours 8 à 14.
A Part de marché globale & santé
part % = (nos unités ÷ unités totales du marché) sur 7 jours
En mode % ventes ($), on remplace les unités par les dollars de ventes. La grande valeur affichée agrège les 7 derniers jours (plus stable qu'une seule journée).
Deltas (en points de %) :
- vs hier : part du dernier jour − part de l'avant-dernier jour.
- vs mois : part des 7 derniers jours − part des 7 premiers jours de la fenêtre de 35 jours.
- vs an : part des 7 derniers jours − part de la même semaine il y a ~1 an.
Santé globale : Bonne par défaut · Moyenne si ≥1 alerte critique ou part en baisse vs mois · Faible si ≥3 critiques ou part en forte baisse (< −0,5 pt).
La courbe montre l'évolution de la part sur les 30 derniers jours.
B Part de marché par format
Même calcul que A, mais segmenté par catégorie × format (ex. « Fleurs séchées · 3,5 g »). On n'affiche que les formats où l'on a vendu cette semaine.
- Nos SKU / marché : nombre de produits distincts (les nôtres / tout le marché) sur ce format.
- vs sem. : part de cette semaine − part de la semaine précédente (en points).
- Statut : en hausse · stable · en baisse.
D Watchlist — vélocité & ruptures
vélocité = unités vendues (7 j) ÷ (7 × nombre de magasins actifs)
C'est la vitesse de vente par magasin par jour — comparable entre produits, peu importe leur nombre de points de vente.
- Δ : variation de la vélocité vs la semaine précédente (en %).
- Tendance : ▲ hausse / ▼ baisse si |Δ| ≥ 8 %, sinon — stable.
- Magasins actifs (rupt. 7j) : nombre de magasins qui ont vendu le produit, et entre parenthèses combien ont connu au moins un jour de rupture (stock de fin de journée = 0) sur les 7 jours. Pour le détail par magasin et par période, voir l'onglet Ruptures.
- La mini-courbe = unités vendues par jour sur 7 jours.
C Alertes du jour
Générées automatiquement à partir de la watchlist :
- CRITIQUE baisse de vélocité ≤ −18 %.
- IMPORTANT baisse de vélocité ≤ −15 %, ou ≥ 5 magasins ayant connu une rupture cette semaine.
- NOUVEAU produit sans ventes la semaine précédente et qui démarre cette semaine.
Règle d'or : toujours vérifier l'OOS avant de conclure à une baisse de demande — une chute de vélocité accompagnée de ruptures est souvent un problème d'approvisionnement, pas de demande.
Onglet « Santé SKU »
Vue détaillée par produit de notre catalogue. Le badge santé résume l'état :
- À risque baisse de vélocité ≤ −15 % ou rupture dans > 40 % des magasins actifs.
- Surveiller légère baisse, rupture > 20 %, ou aucune vente cette semaine.
- Sain sinon.
Part du format = unités du SKU ÷ unités totales du marché sur sa catégorie × format (notre poids exact sur ce segment).
Onglet « Diagnostic & compétiteurs »
Pour chaque catégorie × format où l'on vend, on classe tous les producteurs par unités vendues (sell-through 7 j). Chaque carte montre :
- Notre rang sur le nombre total de producteurs présents.
- Notre part du segment, et le détail des 5 premiers producteurs (★ = nous).
C'est possible parce que la donnée SQDC/OCS couvre l'ensemble du marché, pas seulement nos produits.
Onglet « Marché & portfolio »
Synthèse de notre catalogue (7 j) :
- Unités vendues = somme des ventes de nos SKU, avec la croissance vs la semaine précédente.
- Répartition par catégorie = poids de chaque catégorie dans notre volume.
- Pénétration = nos unités ÷ unités totales du marché, par grande catégorie (notre part agrégée).
- Top SKU et mouvements de vélocité (plus fortes hausses/baisses).
Onglet « Ruptures »
Pour un produit et une période (dates de/à), on compte par succursale le nombre de jours en rupture = jours où le stock de fin de journée était à 0.
- % du temps en rupture = jours OOS ÷ jours avec données sur la période.
- On n'affiche que les succursales qui distribuent réellement le produit sur la période (au moins un jour avec du stock ou une vente) — pour ne pas compter les magasins qui le listent sans jamais le stocker.
Requête en direct sur Snowflake à chaque analyse (pas de cache), donc toujours à jour.
Onglet « Ventes détaillées »
Ventes de nos produits, croisées sur la période choisie :
- Par produit → magasins : pour un produit, les unités/$ vendus dans chaque succursale.
- Par magasin → produits : pour une succursale, les unités/$ par produit.
« Jours avec vente » = nombre de jours où au moins une unité s'est vendue. Requête en direct (toujours à jour).