Spécifications Techniques - SocialGouv/egapro GitHub Wiki

Règles métier et spécifications fonctionnelles complètes

Version: 1.0
Date: 5 novembre 2025
Statut: Document de référence technique

📚 Voir aussi :


Table des matières

  1. Règles métier - 6 premiers indicateurs
  2. Règles métier - 7ème indicateur
  3. Règles métier - Avis CSE
  4. Workflows et parcours utilisateurs
  5. Spécifications fonctionnelles

1. Règles métier - 6 premiers indicateurs

1.1 Calcul et mise à disposition

  • Responsable du calcul: GIP-MDS
  • Base de calcul: Données Sociales Nominatives (DSN)
  • Mise à disposition: Mars de chaque année
  • Deadline déclaration: Juin (date pouvant évoluer)
  • Période de référence: Année civile N-1 (fixe)
  • Format: PDF pré-rempli avec méthodologie de calcul

⚠️ Précision sur les écarts A à D (corrections)

Pour les indicateurs A, B, C, D, la restitution comprend deux écarts :

  • un écart calculé sur la rémunération annuelle
  • un écart calculé sur la rémunération horaire

⚠️ Important : Il existe un décalage de ~15 mois entre la fin de la période de référence (31/12/N-1) et la deadline de déclaration (juin N). Ce délai est nécessaire pour permettre au GIP-MDS de collecter, consolider et calculer les indicateurs à partir des données DSN de l'année complète.

Exemple :

  • Période de référence : 01/01/2026 - 31/12/2026
  • Mise à disposition GIP : Mars 2027
  • Déclaration entreprise : Avant juin 2027

1.2 Parcours entreprises assujetties (≥ 50 salariés)

sequenceDiagram
    participant E as Entreprise
    participant P as Portail EGAPRO
    participant G as GIP-MDS
    
    Note over G: Mars année N
    G->>P: Calcul 6 indicateurs<br/>(données DSN)
    
    E->>P: Connexion ProConnect
    P->>E: Accès 6 indicateurs
    
    alt Validation des données
        E->>P: Consultation + Validation
        P->>E: Déclaration transmise
    else Modification nécessaire
        E->>P: Modification indicateurs
        E->>P: Déclaration
        P->>E: Déclaration transmise
    end
    
    P->>E: Accusé réception + PDF
Loading

1.3 Parcours entreprises non assujetties (< 50 salariés)

sequenceDiagram
    participant E as Entreprise
    participant P as Portail EGAPRO
    
    E->>P: Connexion ProConnect
    E->>P: Saisie manuelle 6 indicateurs
    
    Note over E,P: Possibilité d'enregistrer<br/>Conservation brouillon: 2 mois
    
    E->>P: Validation et déclaration
    P->>E: Accusé réception + PDF
Loading

1.4 Règles de validation

Contrôles automatiques:

  • Calcul automatique des totaux
  • Calcul automatique des écarts en %
  • Cohérence effectifs (total = femmes + hommes)

Période de référence:

  • Fixe: Année civile précédant l'année de déclaration
  • Exemple: Déclaration 2027 = Données 2026 (01/01/2026 - 31/12/2026)

2. Règles métier - 7ème indicateur

2.1 Première déclaration

Responsable du calcul: Entreprise

Période de référence:

  • Année civile précédant l'année de déclaration
  • Non modifiable
  • Exemple: Déclaration 2027 = Données 01/01/2026 - 31/12/2026

Catégories d'emplois:

  • Définies par: Accord d'entreprise, de groupe, de branche, ou décision unilatérale
  • Nombre: Libre (autant que nécessaire)
  • Champs obligatoires par catégorie:
    • Libellé de la catégorie
    • Détail des emplois
    • Nombre de salariés (F/H)
    • Rémunération annuelle brute (salaire base + composantes variables)
    • Rémunération horaire brute (salaire base + composantes variables)

Calculs automatiques:

  • Total salariés (F + H)
  • Total rémunérations (base + variables)
  • Écarts en % entre F et H
  • Alerte visuelle: Écarts ≥ 5% affichés en rouge

⚠️ Précision sur les écarts du 7ème indicateur (corrections)

Pour chaque catégorie d'emplois, la restitution comprend :

  • Rémunération annuelle :
    • écart (%) sur le salaire de base
    • écart (%) sur les composantes variables ou complémentaires
  • Rémunération horaire :
    • écart (%) sur le salaire de base
    • écart (%) sur les composantes variables ou complémentaires

2.2 Deuxième déclaration (si écarts ≥ 5%)

Conditions d'accès:

  • Entreprise ≥ 100 salariés
  • Au moins un écart ≥ 5% dans la 1ère déclaration (en valeur absolue)
  • Mise en place de mesures de correction
  • Délai: Dans les 6 mois suivant la 1ère déclaration

Période de référence:

  • FLEXIBLE (définie par l'entreprise)
  • Contraintes:
    • Date début ≥ Date de 1ère déclaration
    • Date fin ≤ 31 décembre de l'année de déclaration
  • Exemples:
    • 1ère déclaration 15/03/2027 → Période 2ème déclaration: 15/03/2027 - 31/12/2027
    • 1ère déclaration 15/03/2027 → Période 2ème déclaration: 01/09/2027 - 31/12/2027
graph LR
    D1[1ère déclaration<br/>15 mars 2027]
    MESURES[Mesures de<br/>correction<br/>6 mois max]
    D2[2ème déclaration<br/>Avant 31 déc 2027]
    
    D1 -->|Période| MESURES
    MESURES -->|Recalcul| D2
    
    style MESURES fill:#fff3cd
Loading

Nouveautés par rapport à la 1ère déclaration:

  • Champ "Période de référence" éditable
  • Possibilité de modifier les catégories d'emplois
  • Nouveau calcul complet

2.3 Règles de contrôle

Blocages:

  1. Limite 2 déclarations par an:

    • Compteur par entreprise/année
    • Message: "Vous avez déjà effectué 2 déclarations pour le 7ème indicateur cette année"
  2. Pré-requis 2ème déclaration:

    • Vérification existence 1ère déclaration avec écart ≥ 5%
    • Message si non respecté: "Vous devez d'abord effectuer une 1ère déclaration"
  3. Période de référence 2ème déclaration:

    • Date début < Date fin
    • Date début ≥ Date 1ère déclaration
    • Date fin ≤ 31/12/année_en_cours
    • Messages d'erreur adaptés

Conservation brouillon:

  • Durée: 2 mois
  • Suppression automatique après expiration

3. Règles métier - Avis CSE

3.1 Règles d'accès

Qui peut déposer ?

graph TD
    TAILLE{Taille entreprise}
    
    TAILLE -->|< 100 salariés| INTERDIT[❌ Dépôt INTERDIT<br/>Information uniquement]
    TAILLE -->|≥ 100 salariés| AUTORISE[✅ Dépôt AUTORISÉ<br/>Info-consultation]
    
    style INTERDIT fill:#f8d7da
    style AUTORISE fill:#d4edda
Loading

Timing:

  • ❌ Pas de dépôt AVANT déclaration des indicateurs
  • ✅ Dépôt possible APRÈS déclaration
  • ⏰ Dépôt obligatoire dans l'année civile de la déclaration

3.2 Nombre d'avis possibles

Maximum: 3 avis par année

Avis Concerne Obligatoire ?
Avis 1 Info-consultation sur exactitude données 6 indicateurs + 7ème (1ère déclaration) Si entreprise fait info-consultation
Avis 2 Info-consultation sur justification écarts (7ème indicateur) Si entreprise justifie écarts
Avis 3 Info-consultation sur exactitude données + justification écarts (2ème déclaration) Si 2ème déclaration

Flexibilité:

  • Possibilité de déposer 1 avis global
  • Ou jusqu'à 3 avis distincts selon les besoins

3.3 Workflow dépôt avis CSE

sequenceDiagram
    participant E as Entreprise
    participant CSE as CSE
    participant P as Portail EGAPRO
    
    Note over E: Après déclaration indicateurs
    
    E->>CSE: Info-consultation<br/>sur exactitude données
    CSE->>E: Avis (F/PF/D)
    E->>P: Upload PDF avis 1
    
    opt Si écarts ≥5% et justification
        E->>CSE: Info-consultation<br/>sur justification écarts
        CSE->>E: Avis (F/PF/D)
        E->>P: Upload PDF avis 2
    end
    
    opt Si 2ème déclaration
        E->>CSE: Info-consultation<br/>exactitude + justification
        CSE->>E: Avis (F/PF/D)
        E->>P: Upload PDF avis 3
    end
    
    Note over E,P: Tous les avis avant<br/>31 décembre année N
Loading

Types d'avis:

  • F: Favorable
  • PF: Partiellement favorable
  • D: Défavorable

3.4 Spécifications techniques

Format:

  • PDF uniquement
  • 1 fichier par avis

Informations à saisir:

  • Pour chaque info-consultation, indiquer:
    • A-t-elle eu lieu ? (Oui/Non)
    • Si oui, quel est l'avis ? (F/PF/D)

Contrôles:

  • Blocage si entreprise < 100 salariés
  • Maximum 3 uploads
  • Format PDF obligatoire
  • Upload après déclaration indicateurs
  • Upload avant 31/12 année N

4. Workflows et parcours utilisateurs

4.1 Parcours complet - 6 premiers indicateurs

4.1.1 Entreprise assujettie - Validation sans modification

flowchart TD
    START([Entreprise se connecte])
    CONN[Page Connexion<br/>ProConnect]
    COMM[Page Commencer]
    INFO[Page Informations entreprise]
    CONSULT[Page Consultation<br/>6 indicateurs calculés GIP]
    
    DECISION{Données<br/>correctes ?}
    
    DECL[Page Déclaration]
    DECLAR[Page Informations déclarant]
    VALID[Page Validation]
    CONF[Page Confirmation]
    
    PDF[Téléchargement<br/>récapitulatif PDF]
    MAIL[Accusé de réception<br/>par email]
    
    START --> CONN
    CONN --> COMM
    COMM --> INFO
    INFO --> CONSULT
    CONSULT --> DECISION
    
    DECISION -->|OUI| DECL
    
    DECL --> DECLAR
    DECLAR --> VALID
    VALID --> CONF
    
    CONF --> PDF
    CONF --> MAIL
    
    style CONSULT fill:#d4edda
    style CONF fill:#d4edda
Loading

4.1.2 Entreprise assujettie - Modification des données

flowchart TD
    START([Entreprise se connecte])
    CONN[Page Connexion<br/>ProConnect]
    COMM[Page Commencer]
    INFO[Page Informations entreprise]
    CONSULT[Page Consultation<br/>6 indicateurs calculés GIP]
    
    DECISION{Données<br/>correctes ?}
    
    MODIF[Page Modification<br/>des indicateurs]
    
    SALARIES[Page Nombre salariés]
    INDA[Page Indicateur A]
    INDB[Page Indicateur B]
    INDC[Page Indicateur C]
    INDD[Page Indicateur D]
    INDE[Page Indicateur E]
    INDF[Page Indicateur F]
    
    ENREG{Enregistrer<br/>brouillon ?}
    
    DECL[Page Déclaration]
    DECLAR[Page Informations déclarant]
    VALID[Page Validation]
    CONF[Page Confirmation]
    
    START --> CONN
    CONN --> COMM
    COMM --> INFO
    INFO --> CONSULT
    CONSULT --> DECISION
    
    DECISION -->|NON| MODIF
    
    MODIF --> SALARIES
    SALARIES --> INDA
    INDA --> INDB
    INDB --> INDC
    INDC --> INDD
    INDD --> INDE
    INDE --> INDF
    
    INDF --> ENREG
    ENREG -->|OUI| MODIF
    ENREG -->|NON - Suivant| DECL
    
    DECL --> DECLAR
    DECLAR --> VALID
    VALID --> CONF
    
    style MODIF fill:#fff3cd
    style ENREG fill:#d1ecf1
Loading

4.1.3 Entreprise non assujettie - Saisie complète

flowchart TD
    START([Entreprise < 50 salariés<br/>volontaire])
    CONN[Page Connexion<br/>ProConnect]
    COMM[Page Commencer]
    INFO[Page Informations entreprise]
    
    SAISIE[Page Saisie<br/>6 indicateurs]
    
    SALARIES[Page Nombre salariés]
    INDA[Page Indicateur A]
    INDB[Page Indicateur B]
    INDC[Page Indicateur C]
    INDD[Page Indicateur D]
    INDE[Page Indicateur E]
    INDF[Page Indicateur F]
    
    ENREG{Enregistrer<br/>brouillon ?}
    
    DECL[Page Déclaration]
    DECLAR[Page Informations déclarant]
    VALID[Page Validation]
    CONF[Page Confirmation]
    
    START --> CONN
    CONN --> COMM
    COMM --> INFO
    INFO --> SAISIE
    
    SAISIE --> SALARIES
    SALARIES --> INDA
    INDA --> INDB
    INDB --> INDC
    INDC --> INDD
    INDD --> INDE
    INDE --> INDF
    
    INDF --> ENREG
    ENREG -->|OUI| SAISIE
    ENREG -->|NON - Suivant| DECL
    
    DECL --> DECLAR
    DECLAR --> VALID
    VALID --> CONF
    
    style SAISIE fill:#fff3cd
Loading

4.2 Parcours complet - 7ème indicateur (1ère déclaration)

flowchart TD
    START([Entreprise se connecte])
    CONN[Page Connexion<br/>ProConnect]
    COMM[Page Commencer<br/>7ème indicateur]
    INFO[Page Informations entreprise]
    METHO[Page Méthodologie]
    
    CALC[Page Calcul<br/>7ème indicateur]
    
    CAT1[1ère catégorie emplois]
    AJOUT{Ajouter<br/>catégorie ?}
    CAT2[Catégorie suivante]
    
    ENREG{Enregistrer<br/>brouillon ?}
    
    DECL[Page Déclaration]
    DECLAR[Page Informations déclarant]
    VALID[Page Validation]
    CONF[Page Confirmation]
    
    ECART{Écart<br/>≥ 5% ?}
    
    CONF_NO[Confirmation<br/>sans obligation]
    CONF_YES[Confirmation<br/>+ obligations]
    
    START --> CONN
    CONN --> COMM
    COMM --> INFO
    INFO --> METHO
    METHO --> CALC
    
    CALC --> CAT1
    CAT1 --> AJOUT
    AJOUT -->|OUI| CAT2
    CAT2 --> AJOUT
    
    AJOUT -->|NON| ENREG
    ENREG -->|OUI| CALC
    ENREG -->|NON - Suivant| DECL
    
    DECL --> DECLAR
    DECLAR --> VALID
    VALID --> ECART
    
    ECART -->|NON| CONF_NO
    ECART -->|OUI| CONF_YES
    
    style CALC fill:#fff3cd
    style CONF_YES fill:#f8d7da
    style CONF_NO fill:#d4edda
Loading

4.3 Parcours complet - 7ème indicateur (2ème déclaration)

flowchart TD
    START([Entreprise ≥ 100 salariés<br/>avec écart ≥ 5%])
    
    MESURES[Mise en place<br/>mesures correction<br/>6 mois]
    
    CONN[Page Connexion<br/>ProConnect]
    COMM[Page Commencer<br/>2ème déclaration]
    INFO[Page Informations entreprise]
    METHO[Page Méthodologie<br/>+ Période référence éditable]
    
    CALC[Page Calcul<br/>7ème indicateur]
    
    PERIODE[Saisie période<br/>de référence]
    CAT[Saisie catégories<br/>emplois]
    
    DECL[Page Déclaration<br/>2ème déclaration]
    DECLAR[Page Informations déclarant]
    VALID[Page Validation<br/>seconde déclaration]
    
    ECART{Écart<br/>≥ 5% ?}
    
    CONF_NO[Confirmation<br/>Écarts résorbés]
    CONF_YES[Confirmation<br/>Obligation évaluation conjointe]
    
    START --> MESURES
    MESURES --> CONN
    CONN --> COMM
    COMM --> INFO
    INFO --> METHO
    
    METHO --> PERIODE
    PERIODE --> CALC
    CALC --> CAT
    
    CAT --> DECL
    DECL --> DECLAR
    DECLAR --> VALID
    VALID --> ECART
    
    ECART -->|NON ou justifiés| CONF_NO
    ECART -->|OUI non justifiés| CONF_YES
    
    style MESURES fill:#fff3cd
    style PERIODE fill:#d1ecf1
    style CONF_NO fill:#d4edda
    style CONF_YES fill:#f8d7da
Loading

Points clés 2ème déclaration:

  • Période de référence libre (entre date 1ère déclaration et 31/12)
  • Possibilité de redéfinir les catégories d'emplois
  • Si écarts persistent non justifiés → Évaluation conjointe obligatoire

4.4 Parcours dépôt avis CSE

flowchart TD
    START([Entreprise ≥ 100 salariés<br/>après déclaration])
    
    CONN[Page Connexion<br/>ProConnect]
    COMM[Page Commencer<br/>dépôt avis CSE]
    INFO[Page Informations entreprise]
    
    INFOCSE[Page Informations avis CSE]
    
    Q1{Info-consultation<br/>exactitude données<br/>6 indicateurs ?}
    A1[Saisie avis]
    
    Q2{Info-consultation<br/>exactitude données<br/>7ème indicateur ?}
    A2[Saisie avis]
    
    Q3{Info-consultation<br/>justification écarts ?}
    A3[Saisie avis]
    
    Q4{Info-consultation<br/>2ème déclaration ?}
    A4[Saisie avis]
    
    DEPOT[Page Dépôt<br/>Upload PDF]
    
    UPLOAD{Nombre<br/>d'avis à<br/>déposer ?}
    
    UP1[Upload avis 1]
    UP2[Upload avis 2]
    UP3[Upload avis 3]
    
    DECLAR[Page Informations déclarant]
    VALID[Page Validation]
    CONF[Page Confirmation]
    
    START --> CONN
    CONN --> COMM
    COMM --> INFO
    INFO --> INFOCSE
    
    INFOCSE --> Q1
    Q1 -->|OUI| A1
    Q1 -->|NON| Q2
    A1 --> Q2
    
    Q2 -->|OUI| A2
    Q2 -->|NON| Q3
    A2 --> Q3
    
    Q3 -->|OUI| A3
    Q3 -->|NON| Q4
    A3 --> Q4
    
    Q4 -->|OUI| A4
    Q4 -->|NON| DEPOT
    A4 --> DEPOT
    
    DEPOT --> UPLOAD
    
    UPLOAD -->|1| UP1
    UPLOAD -->|2| UP2
    UPLOAD -->|3| UP3
    
    UP1 --> DECLAR
    UP2 --> DECLAR
    UP3 --> DECLAR
    
    DECLAR --> VALID
    VALID --> CONF
    
    style INFOCSE fill:#d1ecf1
    style DEPOT fill:#fff3cd
Loading

Points clés:

  • Blocage si entreprise < 100 salariés
  • Dépôt après déclaration indicateurs uniquement
  • Maximum 3 avis PDF
  • Tous les avis avant 31/12 année N

5. Spécifications fonctionnelles

5.1 Contrôles et validations

5.1.1 Contrôles sur les 6 premiers indicateurs

Champs numériques:

Type: Nombre entier pour effectifs
Type: Nombre décimal (2 décimales) pour rémunérations
Validation: Champs obligatoires marqués *
Message erreur: "Le champ est requis"
Message erreur: "La valeur doit être un entier"

Calculs automatiques:

// Exemple pseudo-code
total = femmes + hommes
// Référence GIP (corrections) : salaire des hommes
// L'écart peut être négatif si la rémunération des femmes est supérieure à celle des hommes.
ecart_pct = ((hommes - femmes) / hommes) * 100

Cohérence des données:

  • Total effectifs = Somme F + H
  • Rémunération moyenne cohérente avec effectifs

5.1.2 Contrôles sur le 7ème indicateur

Période de référence (1ère déclaration):

Fixe: 01/01/(année-1) - 31/12/(année-1)
Non modifiable

Période de référence (2ème déclaration):

Règle 1: date_debut >= date_1ere_declaration
Règle 2: date_fin <= 31/12/annee_en_cours
Règle 3: date_debut < date_fin

Erreurs:
- "La date de début ne peut être antérieure à la date de 1ère déclaration"
- "La date de fin ne peut être postérieure au 31/12/[année]"
- "La date de début doit être antérieure à la date de fin"

Catégories d'emplois:

Minimum: 1 catégorie
Maximum: Illimité
Champs obligatoires par catégorie:
- Libellé *
- Détail emplois *
- Nb salariés F *
- Nb salariés H *
- Rémunération annuelle base F *
- Rémunération annuelle base H *
- Composantes variables F *
- Composantes variables H *
- Rémunération horaire base F *
- Rémunération horaire base H *
- Composantes variables horaires F *
- Composantes variables horaires H *

Alerte écarts ≥ 5%:

/* Affichage visuel */
background-color: #f8d7da;
color: #721c24;
font-weight: bold;

/* Message */
"⚠️ Vous avez obtenu au moins un écart égal ou supérieur à 5%"

5.1.3 Contrôles sur les déclarations

Limite 2 déclarations/an (7ème indicateur):

SELECT COUNT(*) FROM declarations 
WHERE siren = :siren 
AND annee = :annee 
AND type = '7eme_indicateur'

IF count >= 2 THEN
  BLOQUER avec message:
  "Vous avez déjà effectué 2 déclarations pour le 7ème indicateur cette année"
END IF

Pré-requis 2ème déclaration:

SELECT * FROM declarations 
WHERE siren = :siren 
AND annee = :annee 
AND type = '7eme_indicateur'
AND ordre = 1
AND EXISTS (SELECT 1 FROM ecarts WHERE ABS(ecart_pct) >= 5)

IF NOT EXISTS THEN
  BLOQUER avec message:
  "Une 2ème déclaration nécessite une 1ère déclaration avec écart ≥ 5%"
END IF

Impact fréquence annuelle:

IF 2_declarations_cette_annee THEN
  prochaine_declaration = annee + 1
  // 2 déclarations ne dispensent PAS de déclarer l'année suivante
END IF

5.1.4 Contrôles sur les avis CSE

Blocage entreprises < 100 salariés:

IF effectif < 100 THEN
  BLOQUER accès module dépôt CSE
  Message: "Le dépôt d'avis CSE est réservé aux entreprises de 100 salariés et plus"
END IF

Limite 3 avis:

SELECT COUNT(*) FROM avis_cse 
WHERE siren = :siren 
AND annee = :annee

IF count >= 3 THEN
  BLOQUER upload
  Message: "Vous avez atteint le maximum de 3 avis CSE pour cette année"
END IF

Vérification déclaration préalable:

IF NOT EXISTS (
  SELECT 1 FROM declarations 
  WHERE siren = :siren AND annee = :annee
) THEN
  BLOQUER dépôt CSE
  Message: "Vous devez d'abord déclarer vos indicateurs"
END IF

Format fichier:

Type MIME autorisé: application/pdf
Taille max: À définir (ex: 10 Mo)
Message erreur: "Seuls les fichiers PDF sont acceptés"

5.2 Calculs automatiques

5.2.1 Indicateurs A, B, C, D

Écart en pourcentage:

function calculEcartPourcentage(remunerationFemmes, remunerationHommes) {
  // Référence GIP (corrections) : salaire des hommes
  // L'écart peut être négatif si la rémunération des femmes est supérieure à celle des hommes.
  if (remunerationHommes === 0) {
    return null; // ou message d'erreur
  }
  
  const ecart = ((remunerationHommes - remunerationFemmes) / remunerationHommes) * 100;
  return Math.round(ecart * 100) / 100; // 2 décimales
}

5.2.2 Indicateur E

Pourcentages:

function calculPourcentage(nombreBeneficiaires, nombreTotal) {
  if (nombreTotal === 0) {
    return 0;
  }
  
  const pct = (nombreBeneficiaires / nombreTotal) * 100;
  return Math.round(pct * 100) / 100; // 2 décimales
}

pct_femmes = calculPourcentage(nb_femmes_beneficiaires, nb_total_femmes);
pct_hommes = calculPourcentage(nb_hommes_beneficiaires, nb_total_hommes);

5.2.3 Indicateur F

Quartiles et pourcentages:

// Pour chaque quartile
pct_femmes_quartile = (nb_femmes_quartile / nb_total_salaries_quartile) * 100;
pct_hommes_quartile = (nb_hommes_quartile / nb_total_salaries_quartile) * 100;

// Arrondi 2 décimales
pct_femmes_quartile = Math.round(pct_femmes_quartile * 100) / 100;
pct_hommes_quartile = Math.round(pct_hommes_quartile * 100) / 100;

5.2.4 7ème indicateur

Totaux et écarts (corrections):

// Par catégorie d'emplois
total_salaries = nb_femmes + nb_hommes;
total_remuneration_annuelle = salaire_base_annuel + composantes_variables_annuelles;
total_remuneration_horaire = salaire_base_horaire + composantes_variables_horaires;

// Écarts par composante
ecart_salaire_base_annuel_pct = calculEcartPourcentage(
  salaire_base_annuel_femmes,
  salaire_base_annuel_hommes
);
ecart_variables_annuel_pct = calculEcartPourcentage(
  composantes_variables_annuelles_femmes,
  composantes_variables_annuelles_hommes
);

ecart_salaire_base_horaire_pct = calculEcartPourcentage(
  salaire_base_horaire_femmes,
  salaire_base_horaire_hommes
);
ecart_variables_horaire_pct = calculEcartPourcentage(
  composantes_variables_horaires_femmes,
  composantes_variables_horaires_hommes
);

// Alerte si >= 5%
if (
  Math.abs(ecart_salaire_base_annuel_pct) >= 5 ||
  Math.abs(ecart_variables_annuel_pct) >= 5 ||
  Math.abs(ecart_salaire_base_horaire_pct) >= 5 ||
  Math.abs(ecart_variables_horaire_pct) >= 5
) {
  afficherAlerte();
}

5.3 Messages d'erreur et d'information

5.3.1 Messages d'erreur

Code Message Contexte
ERR_CHAMP_REQUIS "Le champ est requis" Champ obligatoire vide
ERR_TYPE_ENTIER "La valeur doit être un entier" Saisie effectif invalide
ERR_TYPE_DECIMAL "La valeur doit être un nombre décimal" Saisie rémunération invalide
ERR_DATE_INVALIDE "La date est invalide" Format date incorrect
ERR_PERIODE_INVALIDE "La date de début doit être antérieure à la date de fin" Période incohérente
ERR_DATE_TROP_TOT "La date de début ne peut être antérieure à la date de 1ère déclaration" 2ème déclaration
ERR_DATE_TROP_TARD "La date de fin ne peut être postérieure au 31/12/[année]" 2ème déclaration
ERR_MAX_DECLARATIONS "Vous avez déjà effectué 2 déclarations pour le 7ème indicateur cette année" Limite atteinte
ERR_PAS_PREMIERE_DECL "Vous devez d'abord effectuer une 1ère déclaration" 2ème déclaration sans 1ère
ERR_CSE_INTERDIT "Le dépôt d'avis CSE est réservé aux entreprises de 100 salariés et plus" Entreprise < 100
ERR_MAX_AVIS_CSE "Vous avez atteint le maximum de 3 avis CSE pour cette année" Limite atteinte
ERR_DECLARER_AVANT_CSE "Vous devez d'abord déclarer vos indicateurs" Dépôt CSE avant déclaration
ERR_FORMAT_PDF "Seuls les fichiers PDF sont acceptés" Upload mauvais format
ERR_TELEPHONE "Le numéro de téléphone est invalide et doit être saisi sous le format 0122334455" Format téléphone incorrect

5.3.2 Messages d'information

Type Message Contexte
INFO_BROUILLON "Le brouillon de votre saisie sera conservé uniquement pendant 2 mois, passé ce délai il sera supprimé" Enregistrement brouillon
INFO_ECART_5 "⚠️ Vous avez obtenu au moins un écart égal ou supérieur à 5%" Validation avec écart
INFO_MODIFIABLE "Cette déclaration a été validée et transmise. Vous pouvez la modifier, une fois validée et transmise, elle remplacera la déclaration actuelle" Récapitulatif dans délai
INFO_NON_MODIFIABLE "Cette déclaration a été validée et transmise. Elle n'est plus modifiable car le délai est écoulé" Récapitulatif hors délai
INFO_ACCUSE "Vous allez recevoir un accusé de réception de cette déclaration sur votre adresse email" Confirmation
INFO_SPAM "Si vous ne recevez pas cet accusé, vérifiez que celui-ci n'est pas dans vos courriers indésirables ou SPAM" Confirmation

5.3.3 Messages de confirmation

Message Contexte
"Votre déclaration a été transmise" Confirmation déclaration
"Votre dépôt du ou des avis CSE a été transmis" Confirmation dépôt CSE
"L'administration du travail accuse réception par le présent message de votre due transmission" Email accusé réception

5.4 Gestion des brouillons

Fonctionnement:

Action: Bouton "Enregistrer" sur pages de saisie
Durée conservation: 2 mois
Suppression: Automatique après expiration
Restauration: Automatique à la reconnexion

Structure données brouillon:
{
  siren: "123456789",
  type: "6_indicateurs" | "7eme_indicateur",
  annee: 2027,
  date_creation: "2027-03-15T10:30:00Z",
  date_expiration: "2027-05-15T10:30:00Z",
  donnees: {
    // Données saisies partielles
  }
}

5.5 Gestion des modifications

Délai de modification:

  • Durée: À ARBITRER (recommandation: 15 jours)
  • Périmètre: Dernière déclaration uniquement
  • Notification: Nouvel accusé de réception envoyé

Après expiration du délai:

  • Modification impossible via interface
  • Contact support nécessaire
  • Justification demandée

5.6 Consultation publique

Données accessibles:

  • ✅ 6 premiers indicateurs (A-F)
  • ❌ 7ème indicateur (G) - Confidentiel

Critères de recherche:

  • Par SIREN
  • Par nom entreprise
  • Par région
  • Par département
  • Par secteur d'activité (NAF niveau 1)

Historique:

  • Données annuelles consultables
  • À partir de: Juin 2027 (à confirmer)
  • Format: Tableaux comparatifs multi-années

Export:

  • Format: Excel
  • Contenu: Ensemble des données publiques
  • Mise à jour: Quotidienne

Résumé technique

Ce document constitue la référence technique complète pour le développement d'EGAPRO V2. Il regroupe :

Toutes les règles métier des 6 indicateurs + 7ème indicateur + Avis CSE
Tous les workflows détaillés avec diagrammes Mermaid
Toutes les validations et contrôles à implémenter
Tous les calculs automatiques avec pseudo-code
Tous les messages d'erreur et d'information

Pour aller plus loin :


Document généré dans le cadre de l'analyse des spécifications EGAPRO V2
Pour toute question: [email protected]

⚠️ **GitHub.com Fallback** ⚠️