last version

This commit is contained in:
Jalil Arfaoui 2025-03-17 23:32:16 +01:00
parent aa2df27bcc
commit a91ef7dd7f
19 changed files with 239 additions and 41 deletions

View file

@ -0,0 +1,18 @@
```yaml
dirigeant . indépendant . cotisations facultatives . plafond retraite complémentaire:
unité: €/an
formule:
le maximum de:
- barème:
assiette: revenu professionnel
multiplicateur: plafond sécurité sociale
tranches:
- taux: 10%
plafond: 1
- taux: 25%
plafond: 8
- produit:
- plafond sécurité sociale
- 10%
```
d

View file

@ -0,0 +1,41 @@
```yaml
salarié . cotisations:
description: Total des cotisations et contributions à la sécurité sociales
versées pour ce salarié. Il comprends une part employeur et une part
employé.
somme:
- employeur
- salarié
avec:
employeur:
titre: part employeur
somme:
- maladie . employeur
- prévoyances . santé . employeur
- ATMP
- vieillesse . plafonnée . employeur
- vieillesse . déplafonnée . employeur
- retraite complémentaire-CEG-CET . employeur
- allocations familiales
- assurance chômage
- APEC . employeur
- autres employeur
- prévoyances . incapacité invalidité décès . employeur
abattement: exonérations . employeur
salarié:
titre: part salarié
somme:
- maladie . salarié
- prévoyances . santé . salarié
- vieillesse . plafonnée . salarié
- vieillesse . déplafonnée . salarié
- retraite complémentaire-CEG-CET . salarié
- APEC . salarié
- CSG-CRDS . CSG . déductible
- CSG-CRDS . sur revenus imposables non déductible
- CSG-CRDS . sur revenus non imposables
- prévoyances . incapacité invalidité décès . salarié
abattement: exonérations . salarié
```

View file

@ -0,0 +1,27 @@
```yaml
employeur:
titre: part employeur
produit:
- cotisations . assiette
- taux
avec:
taux:
variations:
- si: taux réduit
alors: 7%
- sinon: 13%
taux réduit:
valeur: cotisations . assiette < plafond
avec:
plafond:
produit:
- 2.5
- SMIC
- temps de travail . effectif . quotité
références:
Code de la sécurité sociale - Article L241-2-1: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000048684728
Code de la sécurité sociale - Article L241-1-2: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000048807182
Code de la sécurité sociale - Article D241-7 II (salaire minimum de croissance): https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000048852497
```

BIN
src/images/alice.jpg Normal file

Binary file not shown.

After

(image error) Size: 28 KiB

Binary file not shown.

After

(image error) Size: 108 KiB

BIN
src/images/grégoire.jpg Normal file

Binary file not shown.

After

(image error) Size: 72 KiB

BIN
src/images/jalil.jpg Normal file

Binary file not shown.

After

(image error) Size: 16 KiB

BIN
src/images/veronique.jpg Normal file

Binary file not shown.

After

(image error) Size: 32 KiB

BIN
src/images/veroniquer.jpg Normal file

Binary file not shown.

After

(image error) Size: 69 KiB

View file

@ -29,6 +29,9 @@ import 'reveal.js/dist/theme/white.css';
<script>
import Reveal from 'reveal.js';
import RevealNotes from 'reveal.js/plugin/notes/notes'
Reveal.initialize();
Reveal.initialize({
plugins: [RevealNotes],
});
</script>

View file

@ -9,16 +9,20 @@ import Ouverture from "../slides/Ouverture.astro";
import Context from "../slides/Context.astro";
import HowDoesItWork from "../slides/HowDoesItWork.astro";
import RulesExamples from "../slides/RulesExamples.astro";
import TheDownsides from "../slides/TheDownsides.astro";
import ThankYou from "../slides/ThankYou.astro";
---
<RevealLayout>
<Ouverture/>
<Context/>
<RulesExamples/>
<Demonstration/>
<ExpertsAndUsers/>
<HowDoesItWork/>
<InteractiveDocumentation/>
<Demonstration/>
<RunningTheRules/>
<ExpertsAndUsers/>
<TheDownsides/>
<Conclusion/>
<ThankYou/>
</RevealLayout>

View file

@ -1,5 +1,10 @@
<section>
<h2>Conclusion</h2>
Publicodes has been a key enabler for writing all our tools
<ul>
<li class="fragment">Publicodes has been a key enabler</li>
<li class="fragment">Rules as Code approach brings transparency</li>
<li class="fragment">Our work continues to expand across more regulations and use cases</li>
<li class="fragment">Challenges remain: language limitations, maintainability tradeoffs, and debugging complexity</li>
</ul>
</section>

View file

@ -1,37 +1,68 @@
---
import { Image } from 'astro:assets';
import veroniqueImg from '../images/veronique.jpg';
import aliceImg from '../images/alice.jpg';
import jalilImg from '../images/jalil.jpg';
import gregoireImg from '../images/grégoire.jpg';
---
<section>
<section>
<h1>Context</h1>
</section>
<section>
<h2>The team</h2>
<div style="display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; text-align: center;">
<div class="fragment">
<Image src={veroniqueImg} alt="Véronique Rab" width={150} height={150} style="border-radius: 50%; object-fit: cover; box-shadow: 0 4px 8px rgba(0,0,0,0.1);" />
<h3 style="margin-bottom: 0; margin-top: 10px; font-size: 1em;">Véronique Rab</h3>
<p style="margin-top: 5px; font-size: 0.9em; color: #666;">Product Owner</p>
</div>
<div class="fragment">
<Image src={aliceImg} alt="Alice Dahan" width={150} height={150} style="border-radius: 50%; object-fit: cover; box-shadow: 0 4px 8px rgba(0,0,0,0.1);" />
<h3 style="margin-bottom: 0; margin-top: 10px; font-size: 1em;">Alice Dahan</h3>
<p style="margin-top: 5px; font-size: 0.9em; color: #666;">Developer</p>
</div>
<div class="fragment">
<Image src={jalilImg} alt="Jalil Arfaoui" width={150} height={150} style="border-radius: 50%; object-fit: cover; box-shadow: 0 4px 8px rgba(0,0,0,0.1);" />
<h3 style="margin-bottom: 0; margin-top: 10px; font-size: 1em;">Jalil Arfaoui</h3>
<p style="margin-top: 5px; font-size: 0.9em; color: #666;">Developer</p>
</div>
<div class="fragment">
<Image src={gregoireImg} alt="Grégoire Lopez-Rios" width={150} height={150} style="border-radius: 50%; object-fit: cover; box-shadow: 0 4px 8px rgba(0,0,0,0.1);" />
<h3 style="margin-bottom: 0; margin-top: 10px; font-size: 1em;">Grégoire Lopez-Rios</h3>
<p style="margin-top: 5px; font-size: 0.9em; color: #666;">Users Relations</p>
</div>
</div>
</section>
<section>
<h2>The problem</h2>
<ul>
<li>French legislation is complex</li>
<li>Wide variety of users and situations</li>
<li>Explicability (not an AI)</li>
<li class="fragment">French legislation is complex</li>
<li class="fragment">Wide variety of users and situations</li>
<li class="fragment">Explicability (not an AI)</li>
</ul>
</section>
<section>
<h2>The story of a state startup</h2>
Historique du projet
<ul>
<li class="fragment">2014: Started as «My company in France»</li>
<li class="fragment">2016: New version using Yaml rules</li>
<li class="fragment">2018: Publicodes was born</li>
<li class="fragment">2019: Transferred to Urssaf</li>
<li class="fragment">2020: Acceleration, new tools</li>
<li class="fragment">2024: New team</li>
</ul>
</section>
<section>
<h2>Rules as Code and Publicodes</h2>
<ul>
<li>Born within mon-entreprise</li>
<li>A language for describing executable rules</li>
<li>Now standalone open source project</li>
</ul>
</section>
<section>
<h2>Context & Background</h2>
<ul>
<li><strong>mon-entreprise.urssaf.fr</strong> project developed via beta.gouv.fr</li>
<li>Using <strong>Publicodes</strong> to formalize rules</li>
<li>Mature project, integrated into Urssaf</li>
<li class="fragment">Born within mon-entreprise</li>
<li class="fragment">A language for describing executable rules</li>
<li class="fragment">Now standalone open source project</li>
</ul>
</section>
</section>

View file

@ -2,8 +2,18 @@
<h2>Tool Demonstrations</h2>
<ul>
<li>Salary & contributions simulator</li>
<li>Status comparison tool</li>
<li>Retirement rights calculator</li>
<li class="fragment">Salary & contributions simulator</li>
<li class="fragment">Status comparison tool</li>
<li class="fragment">Retirement rights calculator</li>
</ul>
<aside class="notes">
<ul>
<li>Simulateur salarié : Saisir un salaire brut, montrer comment les objectifs sont interdépendants,
montrer le lien SMIC, montrer la doc du calcul des cotisations, montrer comment la réponse aux questions
influe sur le calcul, montrer la fiche de paie
</li>
<li>Comparateur de statuts : Bien montrer comment on donne les couts mais aussi les projections en matière de couvertures sociales</li>
<li>Simulateur auto-entrepreneureuse: Montrer les projections de montant de retraite</li>
</ul>
</aside>
</section>

View file

@ -1,19 +1,42 @@
<section>
<section>
<h2>Collaboration with Experts & Users</h2>
<h1>Collaboration with Experts & Users</h1>
How we interact with Urssaf experts and users to refine rules.
</section>
<section>
Nos interactions avec les directions métiers
<h2>Our interactions with Urssaf departments</h2>
<ul>
<li class="fragment">Incoming requests</li>
<li class="fragment">Outgoing requests</li>
<li class="fragment">Demonstrations</li>
</ul>
<aside class="notes">
<li>Parler des différents types dinteractions avec les équipes Urssaf</li>
<li>Faire la différence entre ce quon nous demande (roadmap) et les moments où nous on va chercher linfo</li>
<li>Parler des démos</li>
<li>Utilisation des outils existants aussi</li>
</aside>
</section>
<section>
Nos interactions avec les experts hors Urssaf
<h2>Our interactions with other expertise</h2>
<ul>
<li class="fragment">Rules and law research</li>
<li class="fragment">Try to have access to direct contacts</li>
</ul>
<aside class="notes">
<li>BPI, Impôts, INSEE …</li>
</aside>
</section>
<section>
Nos interactions avec les usagers
<h2>Our interactions with users</h2>
<ul>
<li class="fragment">Multiple channels: Crisp, Github</li>
<li class="fragment">Multiple issues: Calculations errors, missing uses cases, UX issues …</li>
<li class="fragment">Multiple outcomes: Calculations adjustments, new tools, interface clarifications …</li>
</ul>
</section>
</section>

View file

@ -1,12 +1,9 @@
---
import { Image } from "astro:assets"
import documentation from "../images/documentation.png"
---
<section>
<section>
<h1>Interactive Documentation</h1>
</section>
<section>
<h2>Automatic Documentation</h2>
capture décran de la documentation automatique
Ou démonstration plutôt ?
</section>
<h2>Automatic Interactive Documentation</h2>
<Image src={documentation} alt="documentation" />
</section>

View file

@ -1,15 +1,27 @@
---
import PublicodesSalarieCotisations from "../code-examples/PublicodesSalarieCotisations.md"
import PublicodesSalarieMaladie from "../code-examples/PublicodesSalarieMaladie.md"
import Bareme from "../code-examples/Bareme.md"
---
<section>
<section>
<h1>Rules examples</h1>
</section>
<section>
<h2>Example modele-social 1</h2>
<h2>Employee contributions</h2>
<PublicodesSalarieCotisations />
</section>
<section>
<h2>Example modele-social 2</h2>
<h2>Health insurance</h2>
<PublicodesSalarieMaladie />
</section>
<section>
<h2>Example modele-social 3</h2>
<h2>Advanced computations mechanisms</h2>
<Bareme />
</section>
</section>

17
src/slides/ThankYou.astro Normal file
View file

@ -0,0 +1,17 @@
<section>
<h1>Thank You!</h1>
<div style="margin-top: 40px;">
<p class="fragment" style="font-size: 1.2em;">Questions?</p>
<div class="fragment" style="margin-top: 50px;">
<p style="font-size: 0.9em; margin-bottom: 5px;">Contact us:</p>
<p style="font-size: 0.9em; margin-bottom: 5px;">
<a href="mailto:contact@mon-entreprise.beta.gouv.fr">contact@mon-entreprise.beta.gouv.fr</a>
</p>
<p style="font-size: 0.9em; margin-top: 20px;">
<a href="https://mon-entreprise.urssaf.fr" target="_blank" style="margin-right: 20px;">
https://mon-entreprise.urssaf.fr
</a>
</p>
</div>
</div>
</section>

View file

@ -0,0 +1,10 @@
<section>
<h2>The Downsides</h2>
<ul>
<li class="fragment">You can't express what the language can't express</li>
<li class="fragment">Simplicity to read vs maintainability</li>
<li class="fragment">No encapsulation: Implementation is the API</li>
<li class="fragment">Difficult to debug</li>
</ul>
</section>