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

ParamètreValeur

Onglet Bulletin de Paie

Onglet Brut vers Net et Vice Versa

ParamètreValeur

Onglet Règles

Règle/LégislationDescriptionTaux/BarèmeSource
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 brutAMO 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 brutINPS 2026
Cotisations Sociales Patronales (AMO)Assurance Maladie Obligatoire employeur3.5% du brutAMO Mali
Total Cotisations SocialesSalarié: ~6.66%, Employeur: ~20.4-23.4%Coût total employeur = Brut + Cotisations patronalesCode 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 AnnuelTranches progressives0-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 EmployeurCFE (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")