mirror of
https://github.com/R0m1k3/CollectFlow.git
synced 2026-10-11 17:26:32 +02:00
feat: Implement AI copilot v4 analysis engine with refined rules and product context profiling.
This commit is contained in:
1 parent
2edf6202ab
commit
3ba16d0895
2 files changed
+7
-4
No files matched your search
@@ -26,7 +26,7 @@ IMPORTANT : La gamme C est RÉSERVÉE aux produits saisonniers et gérée MANUEL
|
||||
Cependant, si les performances réelles du produit sont clairement insuffisantes (CA dérisoire, marge nulle ou négative), tu PEUX passer outre la protection et recommander Z avec justification.
|
||||
|
||||
2. SEUIL PLANCHER ABSOLU (règle critique) :
|
||||
Si isLowContribution = true [poids CA < 0.5% ET poids QTÉ < 0.5% du fournisseur]
|
||||
Si isLowContribution = true [percentile CA <= 30 ET percentile QTÉ <= 30 du fournisseur]
|
||||
ET score composite < 35
|
||||
ET scoreCritique = true [score brut < 20]
|
||||
→ Z DIRECT. Ce produit est marginal et sous-performant.
|
||||
@@ -48,6 +48,7 @@ IMPORTANT : La gamme C est RÉSERVÉE aux produits saisonniers et gérée MANUEL
|
||||
Sinon → A si actif (inactivité < 3 mois), Z si inactif ≥ 3 mois.
|
||||
— Quadrant WATCH ⚠️ : Signal négatif.
|
||||
Si poids CA rayon > 5% ou poids QTÉ rayon > 5% → A (surveiller).
|
||||
Si percentileCa >= 50 ou percentileQty >= 50 → A (produit trop important au fournisseur).
|
||||
Sinon → Z si inactivité ≥ 2 mois, A si actif.
|
||||
|
||||
--- COHÉRENCE INTER-PRODUITS ---
|
||||
@@ -116,7 +117,7 @@ JSON uniquement, sans markdown.
|
||||
|
||||
// Signal rouge prioritaire
|
||||
if (ctx.isLowContribution) {
|
||||
lines.push(`[⛔ CONTRIBUTION FAIBLE] Poids CA réseau : ${ctx.weightCaFournisseur}% et Poids QTÉ réseau : ${ctx.weightQtyFournisseur}% → produit marginal pour le fournisseur`);
|
||||
lines.push(`[⛔ CONTRIBUTION FAIBLE] Percentiles CA (${ctx.percentileCa}) et QTÉ (${ctx.percentileQty}) dans les 30% inférieurs → produit marginal`);
|
||||
}
|
||||
if (ctx.scoreCritique) {
|
||||
lines.push(`[⛔ SCORE CRITIQUE] Score brut < 20 → sous-seuil absolu`);
|
||||
|
||||
@@ -92,7 +92,7 @@ export interface ProductContextProfile {
|
||||
|
||||
// Signal négatif fort
|
||||
/**
|
||||
* Le produit pèse moins de 0.5% du CA ET des QTÉ du fournisseur.
|
||||
* Le produit appartient aux 30% les moins performants en CA et Quantité.
|
||||
*/
|
||||
isLowContribution: boolean;
|
||||
|
||||
@@ -226,7 +226,9 @@ export class ContextProfiler {
|
||||
// Bug fix : un produit dans le top 30% de marge du lot apporte une valeur
|
||||
// réelle en rentabilité. L'exclure du signal isLowContribution évite de le
|
||||
// pénaliser uniquement parce que son volume/CA est faible (profil 💎 pur).
|
||||
const isLowContribution = weightCaFournisseur < 0.5 && weightQtyFournisseur < 0.5 && pMarge <= 70;
|
||||
// Le seuil de faible contribution utilise désormais des percentiles plutôt
|
||||
// que des valeurs absolues pour ne pas pénaliser les gros fournisseurs.
|
||||
const isLowContribution = pCa <= 30 && pQty <= 30 && pMarge <= 70;
|
||||
|
||||
// 6. Signaux Trafic / Marge + Quadrant (sur valeurs PAR MAGASIN)
|
||||
// Médianes calculées ici pour être disponibles dans les sections 6 ET 7.
|
||||
|
||||
Reference in new issue
Block a user