html
Simulateur de Paie au Mali
Simulateur de Paie au Mali (2026)
Ce simulateur est basé sur les règles du Code du Travail malien et les taux en vigueur en 2026. Il est fourni à titre indicatif. Les cotisations INPS et AMO sont incluses pour le calcul du net et du coût total employeur.
Onglet Simulateur
Onglet Bulletin de Paie
Onglet Brut vers Net et Vice Versa
Onglet Règles
| Règle/Législation | Description | Taux/Barème | Source |
|---|---|---|---|
| Cotisations Sociales Salariales (INPS) | Cotisation retraite salarié | 3.6% du brut (plafonné à 750 000 FCFA) | INPS 2026 |
| Cotisations Sociales Salariales (AMO) | Assurance Maladie Obligatoire salarié | 3.06% du brut | AMO Mali |
| Cotisations Sociales Patronales (INPS) | Retraite employeur: 3.4%, Invalidité: 2%, Allocations familiales: 8%, Accidents du travail: 1-4% (moyenne 2.5%) | Total ~16.9-19.9% du brut | INPS 2026 |
| Cotisations Sociales Patronales (AMO) | Assurance Maladie Obligatoire employeur | 3.5% du brut | AMO Mali |
| Total Cotisations Sociales | Salarié: ~6.66%, Employeur: ~20.4-23.4% | Coût total employeur = Brut + Cotisations patronales | Code du Travail |
| ITS (Impôt sur Traitements et Salaires) | Progressif sur base imposable (brut - cotisations sociales - non imposables + 50% avantages). Abattement familial: 10% si marié + 2.5%/enfant (max 10 enfants) | Barème annuel: 0-330k: 0%; 330k-578k: 5%; etc. (voir détails) | CGI Mali, DGI |
| Barème ITS Annuel | Tranches progressives | 0-330k: 0%; 330k-578k: 5%; 578k-1.176M: 12%; 1.176M-1.789M: 18%; 1.789M-2.384M: 26%; 2.384M-3.494M: 31%; >3.494M: 37% | DGI Mali 2026 |
| Autres Taxes Employeur | CFE (Contribution Forfaitaire Employeur): 3.5%, TEJ/TFP/ANPE: 2% chacun, TL: 1%, CNPM: 1% | Sur base ajustée (brut + avantages) | CGI Mali |
Onglet Formules
# Formules Python pour Simulateur de Paie Mali 2026 - Inclus Cotisations INPS/AMO Salariales et Patronales
def calculate_social_employee(gross):
"""Calcule cotisations sociales employé: INPS retraite 3.6% (plafonné) + AMO 3.06%"""
inps = min(gross, 750000) * 0.036
amo = gross * 0.0306
return inps + amo
def calculate_social_employer(gross):
"""Calcule cotisations sociales employeur: INPS (3.4% retraite + 2% invalidité + 8% familiales + 2.5% accidents moyen) + AMO 3.5%"""
inps_employer = gross * (0.034 + 0.02 + 0.08 + 0.025)
amo_employer = gross * 0.035
return inps_employer + amo_employer
def calculate_other_employer_taxes(gross):
"""Autres taxes employeur: CFE 3.5%, TEJ/TFP/ANPE 2% chacun, TL 1%, CNPM 1% ≈ 12.5%"""
return gross * 0.125
def calculate_taxable_base(gross, social_employee, non_taxable, benefits):
"""Base imposable = gross - social_employee - non_taxable + 0.5 * benefits"""
return gross - social_employee - non_taxable + 0.5 * benefits
def family_abatement_rate(married, children):
"""Taux abattement familial: 10% si marié + 2.5% par enfant (max 10 enfants)"""
rate = 0.1 if married else 0
rate += 0.025 * min(children, 10)
return min(rate, 0.35) # Limite raisonnable
def calculate_its_annual(taxable_monthly):
"""Annualise la base, applique barème ITS, retourne ITS annuel"""
annual = taxable_monthly * 12 // 1000 * 1000 # Arrondi au 1000 inf
brackets = [
(0, 330000, 0.0, 0),
(330001, 578400, 0.05, 0),
(578401, 1176400, 0.12, 12420),
(1176401, 1789733, 0.18, 84180),
(1789734, 2384195, 0.26, 194580),
(2384196, 3494130, 0.31, 349139),
(3494131, float('inf'), 0.37, 693219)
]
its = 0
prev_high = 0
for low, high, rate, fixed in brackets:
if annual > prev_high:
slice_amount = min(annual, high) - max(annual, low) + (annual - prev_high if annual < low else low - prev_high)
its += slice_amount * rate + fixed if annual > high else 0
prev_high = high
return its
def calculate_net(gross, married, children, non_taxable, benefits):
"""Calcule salaire net et coût employeur"""
social_employee = calculate_social_employee(gross)
social_employer = calculate_social_employer(gross)
other_taxes = calculate_other_employer_taxes(gross)
total_employer_cost = gross + social_employer + other_taxes
taxable = calculate_taxable_base(gross, social_employee, non_taxable, benefits)
abat_rate = family_abatement_rate(married, children)
taxable_after_abat = taxable * (1 - abat_rate)
its_annual = calculate_its_annual(taxable_after_abat)
its_monthly = its_annual / 12
net = gross - social_employee - its_monthly
return net, total_employer_cost, social_employee, social_employer, its_monthly, abat_rate
# Exemple d'utilisation:
gross = 600000
net, employer_cost, _, _, _, _ = calculate_net(gross, True, 2, 2000, 0)
print(f"Net: {net} FCFA | Coût Employeur: {employer_cost} FCFA")