Skill — Contrôle de Gestion & Comptabilité française
Important : Ce skill produit des analyses financières à partir de vos données. Toute valeur affichée provient d'un calcul traçable. Les résultats ne remplacent pas la validation d'un expert-comptable.
Règles d'or
- Aucun chiffre inventé. Si une donnée manque → le dire, jamais estimer.
- Méthode toujours montrée : formule + colonnes utilisées → résultat auditable.
- Formats français : montants
1 234,56 €· pourcentages12,34 %· datesJJ/MM/AAAA. - HT/TTC : ne jamais mélanger. Toujours préciser la base.
- Confidentialité : ne pas reproduire les données brutes dans la réponse sauf nécessité.
Workflow en 4 étapes
Étape 1 — Charger et nettoyer les données
Utiliser scripts/charger_donnees.py ou le module shared.fr_finance.cleaning :
python scripts/charger_donnees.py --resume mon_export.csv
python scripts/charger_donnees.py --to-sqlite mon_export.csv --table factures
Le pipeline de nettoyage gère automatiquement :
- Encodages sales (latin-1, cp1252, mojibake
é→é) - Montants texte (
"1 234,56 €"→1234.56) - Dates françaises (
JJ/MM/AAAA→YYYY-MM-DD) - Colonnes dupliquées (dédoublonnage SQL-safe insensible à la casse)
- Jours de retard sur les colonnes d'échéance
Après chargement, toujours afficher le résumé métier : nb lignes · nb tiers · période · total facturé/payé/impayé · nb lignes en retard.
Étape 2 — Choisir le ou les indicateurs
| Besoin | Indicateur | Script/module |
|---|---|---|
| Rentabilité produit | taux_marge, taux_marque |
metrics.py |
| Recouvrement | DSO, balance âgée | metrics.py |
| Budget vs réel | ecart_budgetaire |
metrics.py |
| Vue d'ensemble P&L | SIG (marge_commerciale, VA, EBE) | metrics.py |
| Besoin de trésorerie | BFR | metrics.py |
| Croiser deux fichiers | Détection de clés | scripts/jointures.py |
Étape 3 — Calculer
Appeler les fonctions de shared/fr_finance/metrics.py.
Toujours montrer la formule avant le résultat.
Pièges à signaler systématiquement :
- Marge ≠ Marque : taux_marge base = coût ; taux_marque base = prix de vente
- Marges négatives ou > 100 % → avertissement explicite
- jours_retard = 0 ≠ payé : zéro signifie "pas encore échu"
- Vérification : payé + impayé = facturé (tolérance centimes)
Étape 4 — Produire le livrable
| Format | Déclencheur | Outil |
|---|---|---|
| Chat | Par défaut | Markdown structuré |
| Excel | "export Excel", "fichier .xlsx" | openpyxl via scripts |
| "PDF", "rapport imprimable" | weasyprint + assets/modele_rapport.html |
|
| Word | "Word", "note de synthèse" | python-docx |
Format de réponse chat
Structurer chaque analyse en trois blocs :
### Méthode
[Formule utilisée + colonnes source]
### Tableau
[Résultat en Markdown]
### Interprétation
[Analyse en langage naturel, alertes, recommandations]
Garde-fous confidentialité
- Ne pas reproduire les SIREN/SIRET, noms de personnes physiques, ou montants individuels identifiants dans la réponse si non demandé.
- Anonymiser les exemples dans les messages d'erreur.
Ressources
| Fichier | Contenu |
|---|---|
references/nettoyage_donnees.md |
Cas particuliers : balance âgée, multi-feuilles, TVA |
references/indicateurs.md |
Catalogue complet avec exemples chiffrés |
references/jointures.md |
Procédure de jointure et pièges |
scripts/charger_donnees.py |
CLI de nettoyage |
scripts/indicateurs.py |
Démo des indicateurs |
scripts/jointures.py |
CLI de détection de clés |
assets/modele_rapport.html |
Gabarit HTML→PDF A4 |