# Spécification d'import — GESTION IRADA_1.xlsx (cartographie du 02/08/2026)

Carte exhaustive du classeur, établie par lecture directe (openpyxl, data_only=True).
Sert de spécification à `irada:reprendre`. Compléter avec les 6 rapports MD du dossier
`annexes app irada/` (le rapport « RAS + FACTURES » est la source primaire des factures).

## 1. Feuilles (12)

| Feuille | État | Dimensions utiles |
|---|---|---|
| JOURNAL | visible | données L9→L1366 (1 358 écritures) |
| DASHBOARD | visible | 69 × 12 |
| MODE D'EMPLOI | visible | 36 × 2 |
| primes | visible | grille L1→L28 |
| INIT | visible | calcul, blocs jusqu'à L217 — NE PAS IMPORTER |
| Salaires 2025 | **masquée** | personnes L3-L8, totaux L20-23 |
| Salaires 2026 | visible | personnes L3-L17, totaux L18-21 |
| Time management | visible | données L3→L637 (635 lignes) |
| SUIVI AO 2025 | visible | L3→L28 (26 AO) |
| SUIVI AO 2026 | visible | L3→L21 (17 AO) |
| Feuille 12 | visible | brouillon dettes diverses — à ignorer (mais consigner en anomalie ?) |
| LISTES | visible | référentiels A2:D24 |

## 2. JOURNAL

En-têtes L8 : A=`Horodateur` (datetime de saisie Google Form), B=`libellé`, G=`Débit +++`,
H=`Crédit ---`, I=`CATÉGORIE`, J=`MONTANT` (récupération de dette), M=`SOURCE`,
N=`RECUPERATION DETTE DE FIANCEMENT ?` (SL/JAW/ATIF), O=`SOUS-CATÉGORIE`,
P=`MARCHÉ (CA/RAS)`. C-F, K-L, Q vides ; R = notes en marge (12 montants épars).

Dates d'opération : de 2024-08-24 à 2026-08-01. **La date d'opération est l'horodateur A**
(pas de colonne date dédiée séparée dans ce classeur — A est la référence temporelle).

### Compteurs L1-L7 (à extraire dans controle-reprise.json)
- E2=0 (D.F Jawad) · G2=250 200 (D.F Slaoui) · I2=450 737 (D.F Atif)
- K2=1 215 869 (CA encaissé) · S2=187 612,75 (RAS TVA) · U2=43 460,50 (RAS IS)
- W2=1 446 942,25 (CA TTC) · Y2=1 205 785,21 (CA HT)
- M2=13 332 (solde ATTIJARI, **saisi à la main**) · O2=−4 547,20 (ESPECE, bouclage)
- Q2=50 000 (CCA sal. SL) · Q4=50 000 (ATIF) · Q6=45 000 (JAW) — **manuels** ; R2=R4=R6=0
- A2=88 000 (caution prov) · C2=134 372,20 (CAUTION DEF)
- L4/L6 : compteurs par marché (net débit−crédit) : A4 MinAgri=289 305, C4 indh taourirt=54 212,
  E4 indh khemisat=41 412, G4 sdr=72 846, I4 indh ifrane=175 956, K4 PNI=78 537,
  M4 GO Siyaha=5 706, O4 add=79 555 · A6 fonctionnement=240 357, C6 materiel=109 347,
  E6 salaires=619 908, G6 banque=23 125, I6 PNI PROD=11 448, K6 SMIT Rural=18 359,
  M6 Formation Khemisset=9 544, O6 Medina Fes=1 032, S6 Signalétique Haouz=0.
  Colonnes paires adjacentes (B4, D4, …) = cumul coûts directs + RH ventilée (INIT).
- L7 : D7=247 200 (investisseurs) · F7=3 000 (df sl net) · **G7=4 243 192,05 · H7=3 320 597,25 ·
  J7=1 058 660 · M7=−136 065,20 (=G7−H7−J7)**

### Valeurs distinctes (avec occurrences)
- CATÉGORIE (22 en usage, 23 dans LISTES) : fonctionnement autre 274, dettes +/- 177,
  banque 154, salaires 146, caution prov 100, MinAgri 86, PNI 71, sdr 59, indh ifrane 54,
  indh khemisat 39, materiel 36, indh taourirt 32, SMIT Rural 32, PNI PROD 24,
  Formation Khemisset 21, add 15, CAUTION DEF 13, GO Siyaha 11, CA 6, RAS TVA 5, RAS IS 2,
  Medina Fes 1 (+ Signalétique Haouz, 0 écriture).
- SOURCE (6) : Caisse CASH 693, COMPTE BANCAIRE ATTIJARI 520, Dette financement Atif 76,
  Dette financement Slaoui 34, Dette financement Jawad 25, CA 10.
- SOUS-CATÉGORIE (16 en usage, 14 dans LISTES) : Outils & abonnements informatiques 100,
  Loyer & charges locaux 42, Déplacements & véhicules (non affectés) 33, Fournitures &
  impressions bureau 26, Télécom & internet 26, Divers fonctionnement 18, Frais marchés
  publics & administratif 8, Honoraires & sous-traitance 6, Assurances & sinistres 3,
  Restauration & vie de bureau 3, TVA due versée (DGI) 3, IS — acomptes & régularisations 3,
  Impôts & taxes d'exploitation 2, Marketing & communication IRADA 1,
  **inv mokhlis medina fes 1, inv adnane rural 1 (hors LISTES → anomalies de reprise)**.
- MARCHÉ (P) : indh taourirt 5, MinAgri 4, sdr 2, indh ifrane 2 (13 lignes CA/RAS).
- N (récup) : SL 21, JAW 12, ATIF 9 — 42 lignes avec J rempli.

### Conventions de lecture
- Apport associé : montant en G, I=`dettes +/-`, M=`Dette financement X`.
- Récupération de dette : montant en **J** (pas G/H), N=SL/JAW/ATIF, M=compte payeur.
- RAS : **G=H=montant**, I=`RAS TVA`/`RAS IS`, M=`CA`, P=marché, rattachée à une facture.
- Encaissement décompte : G, I=`CA`, M=`CA`, P=marché.
- Paie : écritures agrégées ou par personne, I=`salaires` — ne pas éclater les lots ;
  relier les fiches de paie individuelles aux lots par le mois.

## 3. LISTES
- A2:A24 — 23 catégories (10 génériques + 13 marchés).
- B2:B15 — 14 sous-catégories (les 2 fiscales marquées « non répartie » : TVA due versée
  (DGI), IS — acomptes & régularisations).
- C2:C14 — 13 marchés : MinAgri, indh taourirt, indh khemisat, sdr, indh ifrane, PNI,
  PNI PROD, add, SMIT Rural, Formation Khemisset, Medina Fes, Signalétique Haouz, GO Siyaha.
- D2:D7 — 6 sources : Caisse CASH, COMPTE BANCAIRE ATTIJARI, Dette financement Slaoui,
  Dette financement Jawad, Dette financement Atif, CA.

## 4. Salaires 2025 (masquée) & 2026
L1 = périodes (3 colonnes/mois : Brut | Net | Primes, sous-en-têtes L2), lignes = personnes.
- 2025 (L3-L8) : Meryem Bouchgara (3000→4825/4500 dès juin), Ilham Bouzani (fév–sept),
  Mohammed Bachriou (avr, 7000 puis 10000/9506), Zineb Osfori (juin–nov),
  Hanane Faiz (sept–déc, 4252/4000), ZAKARIA (oct–déc). Totaux L20-L23.
- 2026 (L3-L17) : Meryem Bouchgara, Mohammed Bachriou, Hanane Faiz, Zakaria (janv-fév),
  Abdo, Mounaim (scission ÷2 : 1500/1000/1000/1000/1500/2000/2000 janv→juil chacun, brut=net,
  ANAPEC), Issam (fév-mars), Imane (fév-mars), Meryem Bouraid (mars-mai), Btissame (avr-juin),
  Salma (juil), Hamza (juil), Slaoui (6000 net, brut 7000 dès juin, CNSS ~1000/mois),
  Jawad (5000), Atif (5000). Totaux L18-L21. Données jusqu'à juillet 2026.

## 5. Time management
En-têtes L2. Colonnes heures : D=MIN AGRI, E=PNI, F=ADD, G=TAOURIRT, H=KHEMISSET,
I=INDH IFRANE, J=IRADA, K=BHALIL FARM HOUSE, L=APPELS D'OFFRES, M=MOUKAWALA SIYAHIA,
N=PNI PROD, O=SMIT Rural, P=SMIT Rural 2, Q=Formation Khemisset, **U=MEDINA FES**.
R=WEEKEND (OUI/NON), S=REMARQUE, T=TOTAL (**ne jamais s'y fier — recalculer Σ D→Q + U**).
- 635 lignes (L3→L637), dates 2025-07-23 → 2026-07-31.
- L583-L637 : régularisations rétroactives du 02/08/2026 (horodateur 2026-08-02, date=15 du
  mois régularisé, heures mensuelles en bloc) — légitimes, à reprendre ; L634-637 = associés.
- Personnes (occurrences) : Hanan Faiz 217, Meryem Bouchgara 157, Mohammed Bachriou 102,
  Zineb Osfouri 62, Zakaria 27, Ilham Bouzani 21, Abdo 7, Mounaim 7, Slaoui 7, Jawad 7,
  Atif 7, Meryem Bouraid 4, Btissame 3, Issam 2, Imane 2, Maryam Al Echhab 1, Hamza 1, Salma 1.
- ⚠️ Orthographes hétérogènes entre feuilles : Hanan/Hanane Faiz, Osfouri/Osfori,
  Ilham/Ilhame — table de correspondance nécessaire.
- Conventions ventilation : heures AO (L) et IRADA (J) non affectées aux marchés ;
  SMIT Rural = O + P ; Medina Fes sans RH avant mars 2026.

## 6. SUIVI AO 2025 / 2026
En-têtes L1 : A=Date de dépot, B=Réference / Drive, C=Objet, D=Durée, E=Prix de marché,
F=Caution, G=Offre Finanaciere (sic), H=Etape, I=Statut, J=Total des soumissions,
K/L/M=Écartés (admin/technique/financière), N=Concurrents Retenus, O=Offre la plus
avantageuse, P=Etat de caution, Q=Etat de Marché. L2 = ligne descriptive à sauter.
- 2025 : 26 AO. Statuts : `' Retenu'` (⚠️ espace de tête) 3, `Ecarté` 19, `Annuler` 1.
  Étapes : Financière 18, Techniques 2, Administr 3. Cautions : Restituées 19, Non restituées 4.
- 2026 : 17 AO. Statuts : Préparation 1, `' Retenu'` 9, Ecarté 4.
  Etat marché : `En cours d'exexution` (sic) 7.

## 7. primes
Grille L1-L28 : col A=projet (12 sections marché), lignes filles = décomptes.
D/E/F = décompte/montant HT/date. Bloc soumission G→Q : H=montant total (= caution prov,
ex. 5000), I/L/O=% SL/JAW/AT, J/M/P=montants, K/N/Q=versé (formules TRUE()/FALSE(), lues
booléen). Bloc gestion R→AB : S=E×0,03 (3 % du HT), T/W/Z=%, U/X/AA=montants, V/Y/AB=versé.
Sections : L3 indh ifrane · L4-7 sdr azilal (m1-4) · L8 min agri (E=770 200, H=22 000,
I=0,4/L=0,6) · L9-10 indh taourirt (S1-2) · L11 add · L12-15 com khemisset (T1-4) ·
L16-18 formation khemisset (m1-3) · L19-21 pni smit (m1-3) · L22 pni prod smit ·
L23 villages smit · L24-27 Medina Fes (B24=660 000, C24=18 000, m1-4) ·
L28 Signalétique Haouz (B28=2 306 950, C28=62 000).

## 8. DASHBOARD (modèle de la fiche marché)
L3 en-têtes : Marché | Montant marché TTC (réf. contrat) | CA encaissé | RAS TVA | RAS IS |
CA TTC | CA HT | Coûts directs | Salaires ventilés (RH) | Charges structure allouées |
Coût total | Marge. L4-L16 = 13 marchés. L17 TOTAL. L18 IRADA interne (RH non affectée).
L20 pool structure = 333 647. Allocation J = `B20 × (0,5 × RH/RH_total + 0,5 × CATTC/CATTC_total)`.
L23-L42 charges par sous-catégorie (contrôle B42=0). L44-L50 bloc FISCALITÉ :
TVA versée 31 518 + RAS TVA 187 612,75 ; IS acomptes 7 664 + RAS IS 43 460,50.
Notes : clé 50/50 ; Haouz part groupement 2 768 340 TTC / offre 3 306 228 ;
ventilation associés depuis janv 2026.

## 9. Anomalies connues (CDC §5 — reprendre TEL QUEL, consigner dans reprise_anomalies)
Écart caisse −4 547,20 · doublons non tranchés (location voiture 3 500 ×4, disque dur ×2,
formation ifrane ×2, alimentation atif ×2, we raise ×2 légitimes) · « bachirou avril » 7 000 ·
Q2/Q4/Q6 vs primes tracées (Atif 50 000 sans écriture) · n° facture 05-2026 utilisé 2 fois ·
facture décompte INDH Ifrane absente du PDF · AO ODCO sans suivi · saut CNSS ~1 875→~2 903 ·
sous-catégories hors LISTES (inv mokhlis medina fes, inv adnane rural) ·
statuts AO avec espace de tête · orthographes de noms hétérogènes · Feuille 12 (brouillon).

## 10. Contrôle de reprise — valeurs attendues au 02/08
CA encaissé 1 215 869 · CA TTC 1 446 942,25 · RAS TVA 187 612,75 · RAS IS 43 460,50 ·
trésorerie espèces −4 547,20 (écart connu, repris tel quel) · G7=4 243 192,05 ·
H7=3 320 597,25 · J7=1 058 660 · M7=−136 065,20 · pool structure 333 647 ·
facturé total 2 352 235,20 TTC dont 905 293,20 non encaissé · CCA : E2=0, G2=250 200,
I2=450 737 · CCA salaires-primes : SL 50 000 / ATIF 50 000 / JAW 45 000.

## 11. Mapping d'import (décisions irada:reprendre)

### JOURNAL → transactions (import sous Transaction::withoutEvents — pas de double paire)
- **G (Débit=entrée)** : direction In.
  - M=`Dette financement X` → flow `cca_contribution`, contact=associé X, compte=Caisse espèces
    (alimentations de caisse par les associés). Compteur CCA = Σ ces G − Σ récup J (fidèle E2/G2/I2).
  - I=`CA` → catégorie `ca`, compte=Banque Attijari (encaissements marchés par virement ;
    r876 « encaissement min agri » SOURCE Caisse CASH → anomalie consignée), projet=P.
  - I=`caution prov`/`CAUTION DEF` → flow `guarantee_in` (libération), compte selon M.
  - Autres G → In, compte selon M.
- **H (Crédit=sortie)** : direction Out.
  - M=`Caisse CASH` → Caisse espèces ; M=`COMPTE BANCAIRE ATTIJARI` → Banque Attijari ;
    M=`Dette financement X` → compte NULL + paid_with_contact_id=X (informatif, PAS de paire
    auto à l'import — le compteur Excel ne les compte pas en apport).
  - I=marché → catégorie marché (13 catégories marchés seedées) + project_id.
  - I=`fonctionnement autre` + O → catégorie enfant (sous-catégorie) par nom ;
    O hors LISTES (`inv mokhlis medina fes`, `inv adnane rural`) → parent + anomalie.
  - I=`caution prov`/`CAUTION DEF` → flow `guarantee_out`.
- **RAS (G=H)** : DEUX transactions liées, compte NULL : In (catégorie ras-tva/ras-is,
  projet=P, invoice_id lié) + Out (même catégorie, SANS projet — ne pollue pas les coûts).
  G7=Σ In ; H7=Σ Out hors récup ; neutres en trésorerie (compte NULL).
- **J + N (récupération)** : direction Out, flow `cca_withdrawal`, contact selon N
  (SL/JAW/ATIF), compte selon M. J7 = Σ flow cca_withdrawal.
- Horodateur A = date d'opération (datetime), stocké date + note horodatage.
- Contrôles app : K2=Σ In cat ca · S2/U2=Σ In cat ras · W2=K2+S2+U2 ·
  G7=Σ In · H7=Σ Out hors cca_withdrawal · J7=Σ cca_withdrawal · M7=G7−H7−J7.

### Time management → timesheets (recalcul total = Σ D→Q + U, jamais la colonne T)
Colonnes : D=MinAgri · E=PNI · F=add · G=indh taourirt · H=indh khemisat · I=indh ifrane ·
J=IRADA→interne · K=BHALIL FARM HOUSE→interne (prospect, non affecté) ·
L=APPELS D'OFFRES→interne · M=MOUKAWALA SIYAHIA→GO Siyaha · N=PNI PROD ·
O=SMIT Rural · P=SMIT Rural 2→SMIT Rural · Q=Formation Khemisset · U=Medina Fes.
Statut Approved. Orthographes : Hanan Faiz=Hanane Faiz · Zineb Osfouri=Zineb Osfori ·
Ilham/Ilhame Bouzani. Maryam Al Echhab (1 ligne, non salariée) → importée + anomalie.

### Salaires → employees + payrolls
2025 L3-8 + 2026 L3-17 (dont associés L15-17). Actifs : Bouchgara, Bachriou, Faiz,
Abdo, Mounaim, Salma, Hamza + 3 associés. Anciens inactifs. Payroll par personne-mois
(net par mois travaillé, brut si distinct), statut Payée, note « lot JOURNAL du mois » —
les lots agrégés du journal ne sont PAS éclatés.

### SUIVI AO → tenders (+ guarantees provisoires)
Statuts : ` Retenu` (espace)→retenu · Ecarté→ecarte · Annuler→annule · Préparation→
en_preparation · vide+date passée→depose. J-N → total_bidders/rejected_*/winner.
F=caution → Guarantee provisoire ; P : Restituées→restituee · Non restituées→en_cours.

### primes → bonus_rules + bonuses ; décomptes → project_milestones
Par section : prime soumission (H, % I/L/O — vides conservés « à compléter ») ;
prime gestion 3 % par décompte (S=E×0,03, % T/W/Z). Versé K/N/Q/V/Y/AB → statut payé.
Décomptes D/E/F → project_milestones (HT, date, facturé/encaissé selon JOURNAL).

### CCA salaires-primes (reprise)
3 écritures cca_salary_accrual datées 02/08/2026 : Slaoui 50 000 · Atif 50 000 ·
Jawad 45 000 (compteurs Q2/Q4/Q6 saisis manuellement dans le fichier).

### Factures (source primaire : RAPPORT RAS + FACTURES, contrôle : PDF)
Dataset structuré dans la commande (inventaire §2 du rapport). Encaissées : 02-2025,
01-2025, (Ifrane absente du PDF — créée avec note), 06-2025, 05-2025, 07-2026.
Non encaissées : 05-2026, 08-2026, 12-2026, série UNIVERS STARTUP (04-2025, 01→04,
06, 09, 10, 11, 13, 14, 15-2026 = 120 817,20), 03-2025 TERITECH, 03bis-2025 MOBDIE,
05-2026bis LAAROUSSI. Total 2 352 235,20 TTC dont 905 293,20 non encaissé.
N° 05-2026 en double → anomalie. Écritures RAS r443/r507/r701/r839/r840/r882/r883
liées aux factures via invoice_id.

### Anomalies (reprise_anomalies, statuts a_trancher/justifiee/corrigee)
Écart caisse −4 547,20 · doublons (voiture 3 500 ×4 l.602-605, disque dur ×2 l.808-809,
formation ifrane ×2 l.184+186, alimentation atif ×2 l.599+608, we raise ×2 LÉGITIMES
r893-894, frais virement 18 ×2, récup jawad vides l.569+576) · bachirou avril 7 000 ·
Q2/Q4/Q6 vs primes tracées (SL 38 806, JAW 27 730, ATIF 0) · n° 05-2026 ×2 · facture
Ifrane absente du PDF · AO ODCO sans suivi (caution 82 500 + récup 19 000) · saut CNSS
1 875→2 903 (expliqué : CNSS Slaoui depuis juin — justifiée) · sous-cat hors LISTES ×2 ·
taourirt S2 encaissé 37 890 vs 40 800 HT · r876 source Caisse CASH suspecte ·
ruptures de chronologie listées · Btissame juillet non payée · U4/U10/X3 primes ≠ 3 %.
