Glossaire des données

Source de vérité pour comprendre comment chaque chiffre est calculé. Fait pour qu'un nouvel arrivant (direction, futur recrue marketing) puisse lire le pilote en autonomie.

22 entrées

Atterrissage

Projection atterrissage exercice

#projection-atterrissage
Projection = CA HT cumulé exercice ÷ ratio_jours_écoulés
Extrapolation linéaire du CA actuel sur la durée totale de l'exercice fiscal (01/04 → 31/03). Le ratio jours_écoulés = (jour actuel − 1er avril) / (365). On suppose que le rythme de vente actuel se maintient jusqu'à fin mars 2027. Cette projection est volontairement naïve : elle ne corrige pas la saisonnalité (ski en hiver beaucoup plus fort que sportswear été). Pour un atterrissage saisonnalisé, il faudrait pondérer chaque mois par sa cible vault P&L.
ExempleAu 4 mai 2026 : 19 377 € sur 34 jours d'exercice. Projection = 19 377 / (34/365) = 208 K€ → 35% de la cible.
Source
  • PrestaShop /api/orders (commandes valides exercice en cours)
  • Cible vault P&L 2026/2027 = 600 K€ HT exercice

Cible exercice 600 K€

#cible-exercice
Somme des cibles mensuelles HT du vault P&L 2026/2027. Ventilation mensuelle (vault P&L) : • Avr 24K · Mai 30K · Juin 36K · Juil 48K • Août 18K · Sept 24K · Oct 42K · Nov 72K • Déc 108K · Jan 90K · Fév 72K · Mars 36K Total = 600 K€ HT pour l'exercice. La saisonnalité forte (Q4 → Q1 = 47% du CA annuel) reflète l'identité hiver/ski de Sun Valley.
Source
  • Vault Obsidian · 09 - Plan d'actions / P&L e-commerce 2026-2027.md

Écart projeté vs cible

#gap-projection
Écart = Projection - Cible exercice (600 K€)
Différence en € entre l'atterrissage projeté et la cible 600 K€. Négatif = sous-cible, positif = sur-cible.
Source
  • Calculé depuis Projection atterrissage + Cible exercice

Run-rate quotidien

#run-rate-quotidien
Run-rate = CA HT exercice ÷ jours écoulés
Vitesse de génération de CA observée depuis le début de l'exercice. Ne tient pas compte de la saisonnalité. Comparé au "rythme requis" pour évaluer si on tient le cap.
Source
  • PrestaShop /api/orders

Rythme requis pour cible

#rythme-requis
Rythme requis = (Cible - CA actuel) ÷ jours restants
Ce qu'il faudrait vendre par jour à partir de maintenant pour atteindre la cible 600 K€ à fin mars 2027. Sert à évaluer la marche à monter.
Source
  • Calculé depuis CA exercice + Cible + jours restants

Périmètre temporel

CA HT MTD

#ca-mtd
Chiffre d'affaires Hors Taxes du 1er du mois courant à aujourd'hui inclus. Filtre : commandes en statut payé (valid=1 ou current_state ∈ {2,3,4,5,11,19,37,54,64,65,83,84,85,86,87,88}). Ne contient PAS : panier abandonné, commandes en attente paiement, commandes annulées/remboursées.
Source
  • PrestaShop /api/orders avec filter[date_add]=[1er-mois, aujourd'hui]

CA HT exercice

#ca-exercice
Chiffre d'affaires HT cumulé depuis le 1er avril 2026 jusqu'à aujourd'hui inclus. Même filtre statut payé que MTD. Source de vérité PrestaShop.
Source
  • PrestaShop /api/orders

% cible mois

#pct-cible-mois
% cible = CA MTD ÷ Cible mensuelle vault
Pourcentage du CA MTD vs la cible du mois en cours selon le vault P&L. Reflète si on est en avance/retard sur le mois.
Source
  • PrestaShop /api/orders + Vault MONTHLY_TARGET

Comparaison

Delta vs N-1

#delta-yoy
Delta = (CA actuel − CA même période N-1) ÷ CA N-1
Variation en % vs la même fenêtre temporelle un an plus tôt. Permet de neutraliser la saisonnalité pour évaluer la performance pure.
Source
  • PrestaShop /api/orders, fenêtre N-1 = même dates calendaires année précédente

Édition

Verdict de la semaine

#verdict-direction
Phrase forte rédigée par Enzo (revue hebdo lundi/vendredi). Synthèse de l'état du business en une ligne. Stockée dans Supabase → table direction_briefs (singleton id=1). Édition via Supabase Studio pour le moment, CRUD intégré en V2. Tone : 'good' (vert), 'warn' (orange), 'bad' (rouge), 'neutral' (gris).
Source
  • Supabase direction_briefs.verdict + verdict_tone

Signaux de la semaine

#signaux-semaine
3 cartes éditoriales : ce qui va bien (good vert), à surveiller (warn orange), critique (bad rouge). Chaque signal contient : titre court, métrique chiffrée, commentaire 1-2 phrases pour contextualiser. Édité par Enzo en revue hebdo.
Source
  • Supabase direction_briefs.signals (jsonb array)

Acquisition Meta

ROAS Meta

#roas-meta
ROAS = Revenue attribué ÷ Spend
Return On Ad Spend Meta. Combien d'€ de CA attribué pour 1 € dépensé. Attribution : preference 'purchase' (web pixel), fallback 'omni_purchase' (cross-device). Seuils Sun Valley : • Breakeven (panier 91,49€ HT) ≈ 2,35 • Scale objectif ≥ 4,0 • ROAS blended (Meta + Google) cible ≥ 4,0
Source
  • Meta Marketing API /act_X/insights · action_values.purchase / spend

CPA Meta

#cpa-meta
CPA = Spend ÷ Nombre de conversions (purchase)
Cost Per Acquisition Meta. Combien Meta coûte par achat généré. À comparer au panier moyen (91,49€ HT) pour évaluer la marge restante.
Source
  • Meta Marketing API /act_X/insights

CRM Brevo

CA email attribué Brevo

#roas-brevo
Revenue attribué aux campagnes email Brevo via le tracker e-commerce Brevo (script JS posé sur le site). Si le tracker n'est pas activé, ce KPI affiche "non disponible" et on bascule sur le plan B (attribution UTM côté PrestaShop). Inclut : achats post-clic email, fenêtre attribution Brevo (souvent 7-14j).
Source
  • Brevo /v3/emailCampaigns/{id}?statistics=globalStats champs revenue/orders

Cartographie clients

CA 12 mois par région/dept/ville

#ca-12m-region
Somme CA HT des commandes payées sur les 12 derniers mois, attribué via la jointure : order.id_customer → customer.id → addresses.id_customer (1ère adresse du client) → postcode → département/région. Limite : un client peut avoir plusieurs adresses, on prend la 1ère insérée. La géolocalisation est donc celle de la 1ère adresse (souvent l'adresse principale).
Source
  • PS /api/orders × /api/customers × /api/addresses, jointure côté serveur

LTV moyenne segment

#ltv-segment
LTV = CA cumulé du segment ÷ Nombre de clients du segment
Lifetime Value moyenne. Représente le revenu moyen par client sur la période 12 mois. Pour le segment "Tous", inclut TOUS les clients du fichier (même ceux qui n'ont pas commandé sur les 12 derniers mois) → LTV très basse trompeuse. Pour les segments "Nouveaux <1 an" / "Réguliers 1-3 ans" / "Anciens 3+ ans", LTV beaucoup plus représentative car restreinte à des clients actifs.
Source
  • PS /api/orders × /api/customers, agrégation par segment

Comportement d'achat

Matrice genre client × super-cat

#matrice-genre-supercat
Pour chaque combinaison (genre client × super-catégorie produit) sur 12 mois : CA HT, quantités, nb clients distincts, panier moyen. ATTENTION : un produit peut être dans plusieurs super-cats (ex: une parka ski peut être Skiwear + Outlet + Soldes). Donc la somme des CA par super-cat dépasse le CA total client. Ce n'est PAS un bug mais une réalité du tagging PS. % du genre = CA cat ÷ CA total du genre (pas additif à 100% par genre) % de la cat = CA cat × genre ÷ CA total cat (additif à 100% par cat)
Source
  • PS /api/orders avec rows × /api/products (catégories) × /api/customers (id_gender)

Vestiaire acheté (cross gender)

#cross-gender
Croise le genre du CLIENT (qui paie) avec le genre du RAYON acheté (Femme / Homme / Mixte / Non classé). La diagonale (femme client → rayon femme, homme client → rayon homme) = achats "pour soi". Les colonnes opposées = achats cadeau / pour le partenaire. Insight stratégique pour le ciblage Meta : si 24% du CA femmes va sur le rayon homme, les femmes sont aussi une cible pour les pubs sportswear/skiwear homme.
Source
  • PS /api/orders × /api/products (genre détecté via catégories ID 12/13 + super-cats)

Stocks

Valeur stock HT

#valeur-stock-ht
Valeur HT = Stock unitaire × prix d'achat (wholesale)
Si le prix d'achat (wholesale_price) est renseigné côté PS, on l'utilise. Sinon on estime à priceHT × 0,5 (marge brute conservative ~50%). Représente le cash immobilisé en stock — utile pour évaluer le risque de cash bloqué sur les dormants.
Source
  • PS /api/products + /api/stock_availables

Urgent · best mover

#urgent-best-mover
Produit qui se vend bien (≥ 5 ventes sur 30j) mais dont le stock est inférieur ou égal aux ventes 30j. → Stock épuisé sous 30 jours au rythme actuel → réapprovisionnement urgent pour ne pas tomber en rupture sur un best-seller.
Source
  • PS /api/products avec stock + ventes 30j

Dormant

#dormant
Produit avec du stock disponible (>0) mais 0 vente sur les 90 derniers jours. Cash bloqué. À traiter par : promo ciblée, déstockage, vente privée, retour fournisseur ou archivage.
Source
  • PS /api/products avec stock + ventes 90j

Technique

Fraîcheur des données

#cache-fraicheur
Chaque page indique l'heure de génération (champ "MAJ" en haut à droite). Caches en place : • Aujourd'hui & FD : cache CDN 60s + auto-refresh 2 min • Direction : cache mémoire 2 min • Brevo : cache mémoire 5 min (rate limit Brevo strict) • Cartographie clients : cache mémoire 30 min (pull lourd ~60s) • Meta Ads : cache mémoire 3 min • Comportement : cache mémoire 30 min Bouton ↻ Forcer disponible sur Cartographie / Brevo / Meta pour bypasser le cache.
Source
  • Cache logique côté Vercel serverless