Fiche de travail — Semaine 4

Exercices pratiques : sinistralité et CI/CD

Auteur·rice

François Boussengui

Date de publication

25 mars 2026


📦 Livrables à produire

:::{.livrable-title}📊 Livrable 1 — Tableau d’indicateurs de sinistralité::: :::{.livrable-status .required}Obligatoire:::

Objectif : Calculer les indicateurs clés sur des données simulées.

  • Générer un jeu de données de sinistres (1 000+ lignes)
  • Calculer : fréquence, sévérité, prime pure, S/P
  • Présenter les résultats dans un tableau par segment (âge, zone, type de véhicule)
  • Commenter les écarts entre segments

:::{.livrable-title}📈 Livrable 2 — Analyse de l’évolution du S/P::: :::{.livrable-status .required}Obligatoire:::

Objectif : Produire un graphique d’évolution du S/P sur 5 ans avec commentaire.

  • Simuler des données sur 5 années
  • Graphique matplotlib montrant la tendance
  • Identifier les années atypiques et en expliquer les causes possibles

:::{.livrable-title}🔄 Livrable 3 — Pipeline CI/CD fonctionnel::: :::{.livrable-status .required}Obligatoire:::

Objectif : Mettre en place un pipeline GitHub Actions sur ton repo.

  • Workflow .github/workflows/ci.yml
  • Tests pytest (au moins 5 tests)
  • Linting avec black et flake8
  • Badge “CI passing” dans le README

:::{.livrable-title}🌟 Livrable 4 — Réflexions::: :::{.livrable-status .bonus}Bonus:::

Prépare 2-3 questions pour le débriefing sur le lien entre indicateurs de sinistralité et qualité du code.


🏋️ Exercices métier

📝 Exercice M1 — Calcul d’indicateurs

Un portefeuille auto compte 8 000 contrats, 10 500 véhicules-année d’exposition, 840 sinistres pour une charge totale de 2 520 000 € et des primes acquises de 3 150 000 €.

Calcule : fréquence, sévérité, prime pure, S/P.

  • Fréquence = 840 / 10 500 = 8.0%
  • Sévérité = 2 520 000 / 840 = 3 000 €
  • Prime pure = 0.08 × 3 000 = 240 €
  • S/P = 2 520 000 / 3 150 000 = 80%

Le S/P de 80% laisse une marge de 20% pour les frais et le bénéfice. C’est un résultat correct mais il faut vérifier que les frais ne dépassent pas 20%.

📝 Exercice M2 — Diagnostic de dégradation

Un assureur observe les S/P suivants : N = 68%, N+1 = 75%, N+2 = 85%. Les primes ont augmenté de 3% par an mais la charge sinistres de 10% par an.

Analyse la situation et propose des actions.

La sinistralité se dégrade : la charge sinistres croît 3× plus vite que les primes.

Causes possibles : inflation des coûts de réparation, hausse de la fréquence, anti-sélection (les bons risques partent).

Actions recommandées :

  1. Revoir la tarification (+10-15% ciblés sur les segments déficitaires)
  2. Resegmenter le portefeuille pour identifier les segments les plus dégradés
  3. Renforcer la sélection à la souscription
  4. Analyser le taux de résiliation par profil de risque

🏋️ Exercices techniques

🔄 Exercice T1 — Premier workflow

Crée un workflow GitHub Actions qui exécute pytest à chaque push sur main.

# .github/workflows/ci.yml
name: Tests
on:
  push:
    branches: [main]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.10'
      - run: pip install -r requirements.txt
      - run: pytest tests/ -v

🔄 Exercice T2 — Tests de sinistralité

Écris 5 tests pytest pour valider les fonctions calculer_frequence(), calculer_sp() et calculer_prime_pure().

import pytest

def test_frequence():
    assert calculer_frequence(100, 1000) == 0.1

def test_sp():
    assert calculer_sp(70000, 100000) == 0.7

def test_prime_pure():
    assert calculer_prime_pure(0.08, 2500) == 200.0

def test_frequence_zero():
    with pytest.raises(ZeroDivisionError):
        calculer_frequence(10, 0)

def test_sp_parfait():
    assert calculer_sp(100000, 100000) == 1.0

🔗 Pont métier-technique

🤔 Réflexion

  1. Comment le CI/CD peut-il sécuriser tes calculs de sinistralité ? (indice : que se passe-t-il si quelqu’un modifie une formule par erreur ?)
  2. Quels tests écrirais-tu pour valider un modèle de provisionnement ? (plages de valeurs, cohérence temporelle…)
  3. Comment intégrer les indicateurs de sinistralité dans le dashboard de ton projet central ?

✅ Checklist de fin de semaine

  • Module Métier 4 terminé et auto-évaluation faite
  • Module Technique 4 terminé
  • Livrable 1 produit (tableau d’indicateurs)
  • Livrable 2 produit (évolution S/P)
  • Livrable 3 produit (pipeline CI/CD)
  • Au moins 2 exercices métier réalisés
  • Au moins 2 exercices techniques réalisés
  • Questions préparées pour le débriefing

← Retour à la Semaine 4 Module Métier 4 Module Technique 4