Disponible · Ouagadougou

Je transforme les données commerciales en décisions.

Développeur de formation, analyste par passion. J'écris le SQL, l'automatisation Python et le reporting qui permettent à une direction commerciale de repérer une alerte avant qu'elle coûte.

◆ SQL avancé (MySQL / MariaDB) ◆ Python · pandas ◆ Reporting Excel automatisé
0lignes de données analysées (ventes, paiements, prospects)
0requêtes SQL de pilotage, du schéma aux scores de risque
0/3anomalies cachées retrouvées, sans fausse alerte
0tests automatisés : chaque calcul est vérifié
01 — ÉTUDE DE CAS

Piloter la performance commerciale d'un fournisseur fibre

FibreNet Faso est un fournisseur d'accès Internet fibre fictif à Ouagadougou : 12 quartiers, 5 canaux de vente, 30 agents terrain, 21 mois d'activité. J'ai simulé ses données de façon réaliste et y ai caché trois anomalies, puis j'ai construit la chaîne d'analyse qu'utiliserait une Direction Commerciale pour les retrouver.

La question

Où la performance décroche-t-elle, pourquoi, et quelles actions lancer en priorité ?

Les données

21 000 ventes, 132 000 paiements mensuels, prospects et objectifs par canal. Aucune donnée personnelle : les clients sont pseudonymisés.

La méthode

Modèle MariaDB, 6 requêtes analytiques (CTE, fenêtrage), analyses Python (cohortes, CUSUM), rapport Excel automatique.

🧪
SimulationPython · numpy
🗄️
Base MariaDB8 tables · clés étrangères
⚡
Requêtes SQLKPIs · alertes · scores
🐍
Analyses Pythoncohortes · CUSUM
📊
RestitutionExcel · tableau de bord

Tout se reconstruit en une commande : python run_all.py · moins de 20 secondes

1.1

Les KPIs commerciaux

Ventes, contribution par canal, atteinte des objectifs, parc actif, réabonnement et revenu, calculés en SQL avec des fonctions de fenêtrage (LAG, moyennes mobiles, parts du total).

CTELAG()SUM() OVERAVG() ROWS BETWEEN
Le terrain porte 41,5 % des ventes. En septembre, deux canaux sur cinq seulement atteignent leur objectif.
Ventes mensuelles par canal
janv. 2025 → sept. 2026
Atteinte des objectifs · septembre 2026
sql/01_kpi_ventes_canal.sql SQL
sql/02_parc_reabonnement.sql SQL
1.2

Alertes & signaux faibles

L'agrégat national paraît sain : les Distributeurs remontent même de +31,6 % en septembre. Pourtant, deux quartiers décrochent. Deux méthodes complémentaires :

SQL : chaque canal × zone comparé à sa moyenne des 3 derniers mois, avec un seuil statistique (écart > 2σ, loi de Poisson) pour ignorer le bruit.

Python · CUSUM : accumule les petits écarts et repère les dérives qui s'installent, que la moyenne mobile finit par absorber.

Le SQL attrape Tampouy. Le CUSUM retrouve Tampouy et Tanghin, les deux zones sabotées dans la simulation, et rien d'autre.
Part de la zone dans les ventes Distributeurs
référence = moyenne 2025
sql/03_alertes.sql SQL
analysis/ruptures.py — CUSUM Python
def cusum_lower(z_scores, k=0.5, h=5.0):
    """CUSUM unilatéral : renvoie le premier mois où la dérive cumulée dépasse h."""
    statistic = 0.0
    for i, z in enumerate(z_scores):
        statistic = max(0.0, statistic - z - k)
        if statistic > h:
            return i
    return None

# Ventes attendues ~ Binomiale(total du canal, part historique de la zone)
expected = watch["channel_total"] * ref_share
z = (watch["sales"] - expected) / np.sqrt(expected * (1 - ref_share))
idx = cusum_lower(z.to_numpy())
1.3

Réabonnement & valeur des canaux

Chaque ligne est une cohorte de clients activés le même mois. On lit combien paient encore 1, 2, … 12 mois plus tard.

La découverte : le Digital atteint son objectif de ventes (100,5 %), mais seuls 21,6 % de ses clients sont encore là à 12 mois, contre 49,9 % en boutique. Piloter ce canal au volume de ventes masque une perte de valeur.
Rétention par cohorte d'activation
% de clients encore payants
0 %100 %
Clients encore actifs, par canal d'acquisition
1.4

L'entonnoir, du prospect au client fidèle

Prospects → ventes → activations → clients encore actifs 3 mois plus tard, sur les ventes d'avril à juin 2026.

Sur 100 prospects, les Boutiques produisent 34 clients durables, le Digital moins de 5. Le Digital génère beaucoup de contacts : c'est sa qualification qu'il faut travailler.
Taux de bout en bout par canal
prospect → actif à M+3
sql/04_entonnoir_conversion.sql SQL
1.5

Potentiel par zone & priorités de prospection

Score de priorité par quartier : 45 % marge de conquête (foyers raccordables non abonnés), 25 % pouvoir d'achat, 20 % fidélité, 10 % dynamique récente. Normalisation min-max en SQL.

Les cibles prioritaires pour la force de vente sont Ouaga 2000, Pissy et Tampouy. Tampouy a un fort potentiel mais une distribution en panne : c'est une urgence.
Score de priorité par quartier
sur 100
sql/06_potentiel_zones.sql SQL
1.6

Détection des ventes suspectes

Quatre signaux par agent, chacun comparé aux autres agents (z-score) : ventes jamais activées, clients réutilisés, concentration en fin de mois, résiliations précoces. Un agent n'est signalé que s'il dévie sur plusieurs signaux à la fois.

AG-017 sort avec un score de 16, contre 2 pour le suivant : 40 % de ventes jamais activées et 65 % des ventes dans les 5 derniers jours du mois. Sans lui, le terrain passerait sous son objectif.
Score de risque des 30 agents terrain
6 derniers mois
sql/05_ventes_suspectes.sql SQL
02 — AIDE À LA DÉCISION

Le plan d'actions que je présenterais au comité commercial

Une analyse ne vaut que par les décisions qu'elle déclenche. Chaque action est chiffrée et accompagnée d'un indicateur de suivi.

Relancer la distribution à Tampouy et Tanghin

Les deux zones ont perdu environ 85 % de leur part dans le canal Distributeurs depuis août, soit à peu près 25 ventes par mois. Il faut une visite terrain sous 7 jours (rupture de stock de box, départ d'un distributeur, concurrence ?) et deux agents terrain en renfort pendant ce temps.

Suivi : part de la zone ≥ 8 % sous 2 mois

Auditer les ventes de l'agent AG-017

Il faut rappeler un échantillon de clients pour vérifier les ventes et suspendre les commissions sur les ventes non activées. Plus largement, la commission ne devrait être versée qu'après l'activation et le premier paiement.

Suivi : ventes jamais activées < 5 % par agent

Piloter le Digital au client fidèle, pas à la vente

L'objectif du Digital devrait porter sur le nombre de clients encore actifs à 3 mois. Il faut aussi un appel de bienvenue au 7e jour et un renouvellement automatique par mobile money.

Suivi : rétention Digital à M3 de 63 % à 72 %

Recentrer la prospection sur le top 3 des quartiers

Ouaga 2000, Pissy et Tampouy concentrent plus de 37 000 foyers raccordables non abonnés. La sectorisation des agents devrait être revue en fonction du score, chaque trimestre.

Suivi : taux de pénétration par zone, chaque mois
03 — REPORTING AUTOMATISÉ

Le rapport du comité, généré en 1 seconde

Un script Python produit chaque mois un classeur Excel prêt à présenter. Personne n'a de copier-coller à faire, et il n'y a pas de risque d'erreur de saisie.

  • 5 onglets : Synthèse, Canaux, Alertes, Zones, Contrôle des ventes
  • Mise en forme conditionnelle : objectifs en rouge, orange ou vert, barres de score
  • Graphique natif Excel des ventes par canal
  • Les points d'attention sont rédigés automatiquement en français
04 — PARCOURS

Un développeur qui parle aussi le langage des chiffres

Mes projets réels m'ont amené à manipuler des données bien avant ce portfolio. Cette double compétence permet de construire soi-même les outils d'analyse, au lieu d'en dépendre.

Projet data · Python

NexaPredict : moteur d'analyse statistique de matchs de football

Un projet personnel complet, de la collecte des données à la mesure honnête des résultats.

  • Environ 14 500 matchs réels sur 5 championnats, avec des variables construites sans fuite d'information
  • Deux modèles (loi de Poisson, régression logistique) et un backtest « walk-forward »
  • Une conclusion assumée : le modèle ne bat pas le marché, et je l'ai mesuré et documenté plutôt que de l'enjoliver
  • Une suite de tests automatisés sur le moteur, l'API Spring Boot et l'application mobile Flutter
Pythonpandasscikit-learnFastAPIpytestSpring BootFlutter
Logiciel de gestion · en production

GestiCommerce

Un logiciel de gestion commerciale multi-entreprises : ventes, factures, paiements, stock, devis, dépenses et journal d'audit. Le modèle de données relationnel compte plus de 170 entités, avec des tableaux de bord par activité.

MariaDBSpring BootAngularVPS Linux
Missions freelance

Applications pour clients particuliers et PME

Une plateforme de transactions avec bot WhatsApp, reçus PDF et statistiques d'administration (BS Services). Une agence de voyage en version web et mobile (Travel Express). Un site BTP avec calculateur de devis. Plusieurs sites vitrines.

Spring BootAngularReactFlutterMySQL
2025 → aujourd'hui

Développeur indépendant · NexaSoft International

Conception et mise en production d'applications de gestion pour des clients. Projets data personnels.

Juin 2024 → Février 2025

Développeur Full Stack · YAMEKA Solutions

Front-end, back-end, intégration et déploiement.

Janvier → Mars 2024

Responsable Informatique · Tropic Café

Application de gestion des ventes avec rapports détaillés pour les réunions de direction, site e-commerce, réseau.

2022 → 2023

Maintenance informatique · AMTHAMOUR Group · Djago International

Gestion du parc informatique et support aux utilisateurs.

2019 → 2022

Licence en Informatique de gestion · Université de l'Unité Africaine (ex-IAM)

Bases de données, gestion, statistiques, développement.

05 — COMPÉTENCES

Ma boîte à outils

Ce que je maîtrise, et ce que je suis en train d'apprendre. Je préfère être précis plutôt que d'en promettre trop.

Données & SQL

SQL : CTE, fenêtrage, optimisation
MySQL / MariaDB · Oracle
Modélisation relationnelle · UML

Analyse & Python

Python · pandas · numpy
Statistiques appliquées · KPIs
Automatisation du reporting (openpyxl)

Restitution & BI

Excel : tableaux, mise en forme, graphiques
Tableaux de bord web (Chart.js, Angular)
Power BI · AppSheeten apprentissage

Ce que mon profil de développeur apporte à l'analyse

J'automatise ce qui se fait à la main, je fiabilise les chiffres avec des tests, et je sais aller chercher la donnée à la source (API, base de production, CRM). Je peux aussi faire évoluer moi-même les outils de reporting. Java, Spring Boot, Angular, JavaScript, Git, Linux.

06 — CONTACT

Parlons de vos chiffres.

Basé à Ouagadougou · disponible immédiatement.