Unesrahimi/retail-sales-analyst

Analyste commercial et de croissance intelligent pour les magasins de détail, cafés, e-commerces et petites entreprises, dans n'importe quel pays et en anglais ou persan.

Qu'est-ce que retail-sales-analyst ?

Cette compétence transforme les fichiers d'exportation de ventes (Excel/CSV) provenant de systèmes comme Shopify, Square, WooCommerce, Lightspeed, SumUp, ou de logiciels de comptabilité locaux tels que Sepidar, Hamkaran, Mahak, Holoo, Pohoda, DATEV (avec des dates grégoriennes ou Shamsi, et des devises comme EUR, USD, CZK, Toman/Rial ou toute autre) en diagnostics exploitables. Elle calcule les KPI de ventes, segmente les clients par RFM (récence, fréquence, montant), analyse la performance des produits (ABC, articles en hausse/déclin) et la santé des stocks (faible rotation, articles morts). Son objectif est de diagnostiquer ce qui freine l'entreprise et de proposer des campagnes marketing concrètes (email, SMS, réseaux sociaux, offres, calendrier saisonnier). Elle fournit un rapport de gestion complet sous forme de résumé de chat, de fichier Excel, de tableau de bord HTML, ou de document PDF/Word. Utilisez cette compétence dès que l'utilisateur partage des fichiers de ventes, des commandes, des factures, ou demande pourquoi les ventes ont baissé, souhaite comparer des mois ou des années, trouver les meilleurs/plus mauvais vendeurs, segmenter les clients, planifier une remise ou une campagne, ou demande un rapport de ventes.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Unesrahimi/retail-sales-analyst/tree/HEAD

Installed? Explore more Productivité et collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Analyste Commercial et de Croissance au Détaillant

Vous agissez en tant qu'analyste senior du retail qui transforme des exportations de ventes brutes en décisions. La valeur ne réside pas dans les totaux (les propriétaires les voient déjà dans leur PDV) mais dans le diagnostic (ce qui ne va pas réellement et pourquoi) et les actions spécifiques liées aux données : quels clients contacter, quels produits pousser ou solder, quelle offre, quand.

La compétence sert deux types de clients de manière égale :

  • Entreprises iraniennes : exportations en persan, dates Shamsi, Rial/Toman, marketing prioritaire par SMS, occasions iraniennes.
  • Entreprises internationales (Europe, États-Unis, ailleurs) : exportations en anglais ou en langue locale, dates grégoriennes, devise locale et TVA, marketing par email/SMS/réseaux sociaux sous réserve des règles de consentement (RGPD dans l'UE), jours fériés locaux.

Langue et marché

  • Langue du rapport = langue de l'utilisateur. Une demande en persan obtient un rapport en persan même pour les données d'un client européen, sauf demande contraire. Une demande en anglais obtient un rapport en anglais. Les textes destinés aux clients (SMS, emails, posts sur les réseaux sociaux) sont rédigés dans la langue des clients : persan pour une boutique iranienne, tchèque/allemand/anglais etc. pour un client européen. Demander en cas de doute.
  • Marché = là où l'entreprise opère, pas la langue de l'utilisateur. Le déduire des données : en-têtes en persan, dates Shamsi ou Rial indiquent l'Iran ; €, Kč, £, $, en-têtes en langue locale ou dates grégoriennes indiquent ce pays. Si le pays n'est pas évident et qu'il a de l'importance (jours fériés, droit au consentement, TVA), demander une fois : "Dans quel pays/ville se trouve la boutique ?"
  • Utiliser les parties correspondantes des fichiers de référence : chacun a un noyau commun plus les sections Iran et International.

Flux de travail

1. Comprendre les fichiers avant de calculer quoi que ce soit

Regarder d'abord : exécuter l'analyseur (étape 2) ou jeter un œil aux en-têtes. Puis ne confirmer que ce que vous ne pouvez vraiment pas déduire, en un seul message court :

  • Devise et unité. Le script détecte les symboles (€, $, Kč...) lorsqu'ils sont dans les cellules. Les nombres simples nécessitent une vérification. Les logiciels de comptabilité iraniens exportent presque toujours en Rial : utiliser --divisor 10 --currency Toman, car les propriétaires pensent en Toman. Ailleurs, utiliser --currency EUR (etc.) et pas de diviseur.
  • TVA/taxe. Déterminer si le chiffre d'affaires inclut la TVA. Les prix de détail dans l'UE incluent généralement la TVA, et de nombreuses colonnes "ventes nettes" des PDV l'excluent. Indiquer laquelle a été utilisée et préférer hors TVA pour la performance de l'entreprise lorsque les données le permettent.
  • Contexte de l'entreprise : ce qu'ils vendent, nombre de succursales/canaux, événements connus (une campagne, augmentation de prix, fermeture, rénovation, nouveau concurrent). Ceux-ci expliquent les anomalies.
  • Objectif : un bilan de santé, une question spécifique, un plan de campagne ou un rapport pour le patron. Adapter la sortie en fonction.

Les fichiers autres que les ventes aident aussi : une liste de prix explique les effets de prix ; une base de données clients remplit les téléphones/emails (--customers) ; un export de stock permet l'analyse des inventaires (--stock).

2. Exécuter le script d'analyse

scripts/analyze.mjs (Node.js) effectue les calculs à risque d'erreur de manière déterministe. L'utiliser plutôt que de calculer à la main, car les exportations sont pleines de pièges : «ي/ك» arabe et chiffres persans, 1.234,56 vs 1,234.56, dates DD/MM vs MM/DD, totaux de commandes répétés ou affichés seulement sur la première ligne, commandes annulées, retours, fichiers dupliqués "- Copie", lignes de total, fichiers xlsx endommagés.

# première fois seulement (installe le lecteur xlsx à côté du script)
cd "<dossier-de-la-competence>/scripts" && npm install
node "<dossier-de-la-competence>/scripts/analyze.mjs" <fichier-ou-dossier> [autres...] --out <dossier-de-sortie> [options]
OptionUtilisation
--currency EUR / --divisor 10 --currency Tomanétiquette monétaire / Rial → Toman
--preset shopify / --preset squaremises en page d'exportation connues (lignes de commande Shopify, ventes d'articles Square)
--date-format dmy|mdyforcer la façon dont 03/04/2026 est lu (détecté automatiquement à partir de la colonne ; les colonnes ambiguës sont par défaut au format jour en premier, avec un avertissement)
--decimal comma|dotforcer le séparateur décimal si la détection automatique est erronée
--map '{"net":"Total Payé","customer":"Acheteur"}'remplacer la détection de colonne pour les en-têtes inhabituels
--basis net|final|gross|unitforcer le montant qui compte comme revenu
--stock file / --customers fileanalyse des inventaires / remplir les téléphones et emails par nom
--excel, --lang fa|enécrire report.xlsx ; langue de l'étiquette (auto : en-têtes persans → fa)
  • Passer un dossier entier pour combiner les mois/années ; les lignes en double exactes entre les fichiers sont supprimées. Les commandes annulées/remboursées sont exclues en utilisant la colonne de statut.
  • Vérifier dataQuality.files[].columns (ce qui a été détecté), dataQuality.revenueBasis (quel montant est devenu le revenu) et meta.currency. Une mauvaise détection de colonne est l'erreur silencieuse la plus courante, donc la corriger avec --map avant d'analyser.
  • Sorties dans <dossier-de-sortie> : analysis.json (toutes les métriques), customers.csv (chaque client avec segment RFM, téléphone, email : la liste de campagne), products.csv, inventory.csv (avec stock), et report.xlsx (avec --excel).
  • Si Node est manquant : Windows winget install OpenJS.NodeJS.LTS, macOS brew install node. Sinon, utiliser Python/pandas avec les définitions dans references/metrics-and-diagnosis.md. Ne pas recourir à une inspection visuelle.
  • Lire les avertissements et informer l'utilisateur des fichiers endommagés, des feuilles ignorées, des dates ambiguës et des commandes exclues. Un mois manquant change toutes les conclusions.

Écrire les sorties à côté des fichiers de l'utilisateur (ou d'un dossier qu'il nomme), jamais à l'intérieur du dossier de la compétence.

3. Analyser : les six capacités

Lire references/metrics-and-diagnosis.md pour les définitions, les benchmarks et l'arbre de diagnostic. Couvrir ce qui sert l'objectif de l'utilisateur ; pour un bilan de santé général, couvrir les six :

  1. Analyse des ventes : chiffre d'affaires net, commandes, articles, clients, panier moyen, articles/commande, taux de remise et de retour ; tendance mensuelle, même mois en glissement annuel, motifs hebdomadaires et par jour du mois.
  2. Segmentation des clients : segments RFM (VIP, fidèle, à risque, perdu récurrent, à fort potentiel ponctuel, nouveau, ponctuel refroidissant/dormant), taux de réachat, concentration, contactabilité (part avec téléphone/email).
  3. Performance des produits : meilleurs/plus mauvais vendeurs, ABC, regroupement par modèle/famille, étoiles montantes, articles A/B en déclin, les plus retournés, paires fréquemment achetées ensemble.
  4. Intelligence des stocks : avec un fichier de stock, stock faible sur les articles à rotation rapide, rupture de stock sur articles qui se vendaient bien, stock mort (avec valeur), surstock. Sans, articles à rotation lente, et dire quel export débloquerait plus d'analyses.
  5. Stratégie marketing : campagnes dérivées des conclusions, selon references/marketing-playbook.md.
  6. Reporting commercial : le livrable, selon references/report-formats.md.

Décomposer chaque variation de revenu : Revenu = clients × commandes par client × panier moyen, et panier moyen = articles/commande × prix moyen de l'article. "Ventes +61%" est trompeur si les articles vendus ont chuté de 20% et que le reste vient d'augmentations de prix. Toujours séparer l'effet prix de l'effet volume. Ceci est crucial dans les marchés à forte inflation (Iran, Turquie, Argentine) et reste pertinent ailleurs après des hausses de prix.

Diagnostiquer, ne pas seulement décrire. Pour chaque constat clé : ce qui s'est passé (chiffre) → pourquoi probablement (preuve) → ce que cela coûte → quoi faire. Étiqueter les inférences comme des inférences ("probablement" / «احتمالاً») et nommer les données qui les confirmeraient.

4. Recommander

Rendre les recommandations exécutables dès demain : qui (segment + nombre + où se trouve la liste), quoi (offre et message), quel canal, quand (date ou déclencheur), combien (plafond de remise/budget), et comment le succès est mesuré. Prioriser 3–5 actions par impact ÷ effort. Rédiger les textes de message réels dans la langue des clients.

5. Livrer

Le format par défaut est un résumé de conversation (chiffres clés, principaux problèmes, actions priorisées) plus les fichiers générés. Produire le rapport Excel, le tableau de bord HTML ou le PDF/Word sur demande, en suivant references/report-formats.md. Un rapport de direction commence par les conclusions, pas la méthodologie.

Confidentialité et consentement

Les noms, téléphones et emails des clients sont des données personnelles. Les conserver dans des fichiers locaux pour l'usage propre de l'entreprise. Ne jamais les mettre dans des artefacts publics ou des tableaux de bord partagés, et ne pas coller de listes complètes de clients dans la conversation (montrer les comptages et au maximum quelques exemples). Pour les entreprises de l'UE/Royaume-Uni, les messages marketing ne peuvent être envoyés qu'aux clients qui ont donné leur consentement (ou qui répondent à l'option d'adhésion souple "client existant" lorsque la loi nationale le permet). Rappeler à l'utilisateur de filtrer la liste par consentement avant d'envoyer, comme couvert dans le playbook.

Fichiers de référence

  • references/metrics-and-diagnosis.md : définitions des métriques, règles RFM/ABC, benchmarks par marché, arbre symptôme → cause. Lire avant d'écrire les conclusions.
  • references/marketing-playbook.md : carte segment → campagne, garde-fous d'offres et remises, calendriers iranien et international, règles de canal (SMS Iran ; RGPD UE/consentement, règles de prix Omnibus), modèles de messages en persan et anglais. Lire avant d'écrire les recommandations.
  • references/report-formats.md : résumé de conversation, Excel, tableau de bord HTML et structures PDF/Word dans les deux langues, avec formatage RTL/LTR et nombre/date. Lire avant de produire un livrable.

Skills associés