Aller au contenu

PT0CE - Pricing Tier 0 Corridor Engine

Version Python Oracle Status

Le moteur de calcul des corridors de prix basé sur l'analyse statistique des marges nettes

🎯 Vue d'ensemble

PT0CE est le premier niveau du système de pricing Sysco France. Il calcule des corridors de prix optimaux en analysant les marges nettes historiques sur les 4 derniers trimestres fiscaux.

graph LR
    A[Données<br/>historiques] --> B[PT0CE<br/>Corridors]
    B --> C[PT1CE<br/>Nouveaux prix]
    B --> D[PT2QE<br/>Recommandations]

    style B fill:#F97316,stroke:#EA580C,color:#fff,stroke-width:3px
    style C fill:#10B981,stroke:#059669,color:#fff
    style D fill:#8B5CF6,stroke:#7C3AED,color:#fff

🔑 Concepts clés

Corridors de prix

PT0CE génère 6 bornes de prix (PL1 à PLX) basées sur les percentiles de marge :

Borne Percentile Utilisation
PL1/PL2 P90 PVC
PL2/PL3 P80 Paliers intermédiaires
PL3/PL4 P60 Paliers intermédiaires
PL4/PL5 P50 Paliers intermédiaires
PL5/PL6 P30 Paliers intermédiaires
PL6/PLX P10 Seuil de dérogation

Les 3 univers tarifaires

ZOOM1 - Indépendants
ZOOM2 - Grands comptes régionaux + RSI Marché
ZOOM3 - Grands comptes nationaux

Types de cubes

📦 Cubes MASTER
- Données spécifiques par combinaison de dimensions
- Remontée hiérarchique si données insuffisantes

📦 Cubes NATIONAL
- Agrégation globale par article
- Vision de référence toutes transactions
- Pas de remontée nécessaire

📊 Fonctionnalités principales

1. Analyse statistique avancée

  • Calcul de percentiles de marge (P10 à P90)
  • Détection automatique des outliers
  • Gestion des données insuffisantes par remontée hiérarchique

2. Segmentation intelligente

  • 3 univers : ZOOM1, ZOOM2, ZOOM3
  • 4 dimensions : Article × Type Client × Type Restaurant × Géographie
  • 7 niveaux de hiérarchie produit

3. Sensibilité prix - Utilisée seulement dans le module offre de prix (PT2QE)

Matrice bidimensionnelle pour identifier les articles critiques :

  • HIGH - Impact fort
  • MEDIUM - Impact modéré
  • LOW - Impact faible

4. Contraintes métier

  • Borne minimale ≥ PAS (Prix d'Achat Standard)
  • Borne maximale ≤ PRB (Prix de Référence Brut)
  • Exclusion des marges négatives pour ZOOM1

🚀 Démarrage rapide

Prérequis

  • Python 3.8+ (64-bit)
  • Oracle Database avec accès DWH
  • Fichiers CSV obligatoires dans inputs/
  • Type_Client.csv
  • Type_Restaurant.csv

Structure des données

PT0CE/
├── inputs/
│   ├── Type_Client.csv       # Mapping types clients
│   └── Type_Restaurant.csv    # Mapping types restaurants
├── config/
│   └── pt0ce_config.json      # Configuration
├── pt0ce_main.py              # Point d'entrée
└── docs/                      # Documentation complète

📈 Workflow en 6 phases

graph TB
    A[Phase 1<br/>Extraction PAS/PRB] --> B[Phase 2<br/>Enrichissement]
    B --> C[Phase 3<br/>Calcul cubes]
    C --> D[Phase 4<br/>Calcul corridors]
    D --> E[Phase 5<br/>Sensibilité prix]
    E --> F[Phase 6<br/>Tables finales]

    style A fill:#FFF7ED,stroke:#F97316,stroke-width:2px
    style B fill:#FED7AA,stroke:#EA580C,stroke-width:2px
    style C fill:#FDBA74,stroke:#F97316,stroke-width:2px
    style D fill:#FB923C,stroke:#EA580C,stroke-width:2px
    style E fill:#F97316,stroke:#EA580C,stroke-width:2px,color:#fff
    style F fill:#EA580C,stroke:#C2410C,stroke-width:2px,color:#fff

📊 Tables de sortie

Tables finales permanentes

  • PT0CE_CORRIDOR_HISTORY_ZOOM1 : Corridors univers ZOOM1
  • PT0CE_CORRIDOR_HISTORY_ZOOM2 : Corridors univers ZOOM2
  • PT0CE_CORRIDOR_HISTORY_ZOOM3 : Corridors univers ZOOM3

Table conservée pour PT1CE

  • PT0CE_DIMENSION_MAPPING_YYYYMMDD : Mapping dimensions → codes SAP

🔍 Points clés techniques

Remontée hiérarchique

Quand un cube n'a pas assez de données (< 30 marges distinctes) :

Niveau 1 : Article × toutes dimensions
    ↓ Pas assez de données
Niveau 2-3 : Article × dimensions réduites
    ↓ Pas assez de données
Niveau 4-21 : Hiérarchie produit (HIE_N6 → HIE_N1)
    ↓ Pas assez de données
Niveau 22 : NO_DATA

Performance

  • Traitement parallèle : PARALLEL(8) sur les requêtes
  • Insertion par batch : 5M lignes par chunk
  • Keep-alive Oracle : Ping toutes les 2 minutes
  • Optimisation mémoire : Libération après chaque phase

Qualité des données

  • Validation des CSV à chaque exécution
  • Exclusion automatique des hors référentiel
  • Contraintes de cohérence sur les bornes
  • Logs détaillés pour traçabilité

📚 Documentation complète

🤝 Intégration

PT0CE s'intègre dans l'écosystème pricing Sysco :

Application Rôle Données échangées
PT1CE Calcul des nouveaux prix Corridors + Mapping dimensions
PT2QE Recommandations personnalisées Bornes + Sensibilité

📊 Métriques clés

4 Trimestres analysés
3 Univers tarifaires
6 Bornes de prix
7 Niveaux de hiérarchie
30 Marges minimum par cube

Points clés

  • Période analysée : 4 derniers trimestres fiscaux complets
  • Seuil données : Minimum 30 marges distinctes pour calculer les statistiques
  • Fichiers CSV obligatoires : Type_Client.csv et Type_Restaurant.csv dans inputs/
  • Calculs Python : Utilisation de pandas/numpy pour les statistiques
  • Insertion Oracle : Par batches de 5M lignes

PT0CE - Pricing Tier 0 Corridor Engine v1.0.0
© 2024 Sysco France - Direction Pricing