[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"footer-root-categories-fr-FR":3,"tool-content-indemnite-ouvriers-des-travaux-publics-fr":83,"footer-cities-fr":146},[4,14,22,30,38,45,53,60,67,75],{"seo_content":5,"id":8,"name":9,"slug":10,"parentId":7,"lang":11,"_count":12},[6],{"page_slug":7},null,"cmkzhl7xm00dbulbc93h4qog5","Juridique","avocats","fr-FR",{"experts":13},8,{"seo_content":15,"id":17,"name":18,"slug":19,"parentId":7,"lang":11,"_count":20},[16],{"page_slug":7},"cmkzhl84700djulbcbv6pzu9e","Informatique","informaticiens",{"experts":21},3,{"seo_content":23,"id":25,"name":26,"slug":27,"parentId":7,"lang":11,"_count":28},[24],{"page_slug":7},"cmkzhlaos00gnulbc07i9jrco","Amélioration de la Maison","artisans",{"experts":29},4,{"seo_content":31,"id":33,"name":34,"slug":35,"parentId":7,"lang":11,"_count":36},[32],{"page_slug":7},"cmkzhlaqg00gpulbcx38bwoc2","Général","divers-generalistes",{"experts":37},0,{"seo_content":39,"id":41,"name":42,"slug":43,"parentId":7,"lang":11,"_count":44},[40],{"page_slug":7},"cmkzhlbvq00i3ulbcutdbcz50","Électronique Grand Public","techniciens-electronique",{"experts":21},{"seo_content":46,"id":48,"name":49,"slug":50,"parentId":7,"lang":11,"_count":51},[47],{"page_slug":7},"cmkzhlcaw00ilulbc38pxoogr","Santé","medecins",{"experts":52},5,{"seo_content":54,"id":56,"name":57,"slug":58,"parentId":7,"lang":11,"_count":59},[55],{"page_slug":7},"cmkzhlcmi00izulbcxva1m47f","Gestion de Patrimoine","conseillers-patrimoniaux",{"experts":21},{"seo_content":61,"id":63,"name":64,"slug":65,"parentId":7,"lang":11,"_count":66},[62],{"page_slug":7},"cmkzhldcv00jvulbcmcd5a7mk","Animaux et Vétérinaires","veterinaires",{"experts":21},{"seo_content":68,"id":70,"name":71,"slug":72,"parentId":7,"lang":11,"_count":73},[69],{"page_slug":7},"cmkzhldrr00kdulbchxfo67eg","Mécanique et Réparation","mecaniciens",{"experts":74},1,{"seo_content":76,"id":78,"name":79,"slug":80,"parentId":7,"lang":11,"_count":81},[77],{"page_slug":7},"cmkzhl9l300fbulbcv3i8q8p3","Aide aux Devoirs","professeurs-particuliers",{"experts":82},6,{"slug":84,"title":85,"page_title":86,"description":87,"content_md":88,"local_slug":84,"json_ld":89,"faq":109,"tool_html":140,"source":141,"category":142,"audience":143,"publish_mode":144,"hero_image":145,"hero_image_alt":85},"indemnite-ouvriers-des-travaux-publics","Indemnité de licenciement — ouvriers des travaux publics","Indemnité licenciement CCN Ouvriers Travaux Publics IDCC 1702 | Expert Zoom","Calculez votre indemnité de licenciement selon la CCN des ouvriers des travaux publics (IDCC 1702) : formule 1\u002F10 puis 3\u002F20, bonus 55 ans, complément économique, comparaison avec le droit commun.","Calculateur dédié à l'indemnité de licenciement des ouvriers des travaux publics (IDCC 1702). La convention prévoit une formule spécifique : 1\u002F10 de mois par année d'ancienneté jusqu'à 5 ans, puis 3\u002F20 par année au-delà, avec un bonus de 10 % pour les salariés de 55 ans ou plus et un complément forfaitaire en cas de licenciement économique.",[90],{"name":91,"@type":92,"about":93,"author":97,"@context":100,"isPartOf":101,"inLanguage":104,"description":105,"operatingSystem":106,"applicationCategory":107,"isAccessibleForFree":108},"Calculateur indemnité de licenciement — Ouvriers des travaux publics IDCC 1702","WebApplication",{"name":94,"@type":95,"identifier":96},"Convention collective des ouvriers des travaux publics","Thing","IDCC 1702",{"name":98,"@type":99},"Expert-Zoom","Organization","https:\u002F\u002Fschema.org",{"url":102,"@type":103},"\u002Ffr\u002Fmagazine\u002Fjuridique\u002Fles-conventions-collectives-en-france","Article","fr","Calculez votre indemnité de licenciement selon la convention collective des ouvriers des travaux publics (IDCC 1702) : formule 1\u002F10 puis 3\u002F20, bonus 55+, complément économique, comparaison avec L1234-9.","All","FinanceApplication",true,[110,113,116,119,122,125,128,131,134,137],{"a":111,"q":112},"La convention collective IDCC 1702 applique un taux de 1\u002F10 de mois par année d'ancienneté pour les 5 premières années, puis de 3\u002F20 de mois par année à partir de 5 ans d'ancienneté (taux appliqué à toute la carrière). Par exemple, avec 8 ans d'ancienneté et 2 800 € de salaire mensuel de référence, l'indemnité s'élève à 2 800 × 3\u002F20 × 8 = 3 360 €. Le résultat ne peut jamais être inférieur à l'indemnité légale minimale.","Comment calcule-t-on l'indemnité de licenciement des ouvriers des travaux publics (IDCC 1702) ?",{"a":114,"q":115},"Cela dépend de l'ancienneté. Pour moins de 5 ans d'ancienneté, la formule CCN (1\u002F10 par an) est moins favorable que la formule légale (1\u002F4 par an). Au-delà de 5 ans, le taux conventionnel de 3\u002F20 appliqué à toute la carrière peut devenir plus avantageux. Dans tous les cas, le principe de faveur s'applique : si l'indemnité légale est supérieure, c'est elle qui est due.","L'indemnité de licenciement est-elle plus favorable dans la CCN travaux publics qu'en droit commun ?",{"a":117,"q":118},"Les ouvriers des travaux publics âgés de 55 ans ou plus au moment de leur licenciement bénéficient d'une majoration de 10 % de leur indemnité conventionnelle de base. Ce bonus s'applique au montant calculé selon la formule CCN (avant comparaison avec le minimum légal).","Quel est le bonus d'indemnité pour les salariés de 55 ans et plus dans la CCN IDCC 1702 ?",{"a":120,"q":121},"Oui. En cas de licenciement économique avec au moins 5 ans d'ancienneté, un complément forfaitaire de 35\u002F100 de mois de salaire brut est ajouté à l'indemnité de base. Pour les salariés ayant entre 2 et 5 ans d'ancienneté, un complément de 70 % de l'indemnité de base s'applique. Ces compléments s'ajoutent à l'indemnité conventionnelle et au bonus âge éventuel.","Y a-t-il un complément d'indemnité en cas de licenciement économique dans la CCN travaux publics ?",{"a":123,"q":124},"L'indemnité de licenciement n'est pas imposable à l'impôt sur le revenu dans la limite du montant prévu par la convention collective ou la loi (le plus élevé des deux), plafonné à 2 fois le plafond annuel de la Sécurité sociale (PASS). La fraction dépassant ce plafond est soumise à l'impôt et aux cotisations sociales. Consultez un conseiller fiscal pour votre situation spécifique.","L'indemnité de licenciement est-elle imposable pour un ouvrier des travaux publics ?",{"a":126,"q":127},"Non. L'indemnité de licenciement ne s'applique qu'aux salariés en CDI. En fin de CDD (sauf renouvellement ou embauche en CDI), le salarié perçoit une indemnité de fin de contrat (prime de précarité) égale à 10 % de la rémunération brute totale. L'inaptitude professionnelle peut toutefois ouvrir droit à une indemnité spécifique, même en CDD.","Un ouvrier en CDD a-t-il droit à l'indemnité de licenciement CCN IDCC 1702 ?",{"a":129,"q":130},"La CCN IDCC 1702 retient la base la plus favorable entre deux méthodes : soit le 12e de la rémunération brute totale (salaire + primes) perçue lors des 12 derniers mois précédant le licenciement, soit le tiers de la rémunération brute des 3 derniers mois (hors primes exceptionnelles). Pour un salarié à temps partiel, la base est calculée proportionnellement au temps de travail effectif.","Quelle est la base salariale retenue pour calculer l'indemnité dans la CCN des ouvriers des travaux publics ?",{"a":132,"q":133},"Non. Aucune indemnité de licenciement — légale ou conventionnelle — n'est due en cas de licenciement pour faute grave ou faute lourde. En cas de faute grave, le salarié perd également droit au préavis. La faute lourde supprime en outre l'indemnité compensatrice de préavis et peut engager la responsabilité personnelle du salarié.","L'indemnité est-elle due en cas de faute grave ou faute lourde ?",{"a":135,"q":136},"Il faut au moins 8 mois d'ancienneté ininterrompue dans l'entreprise pour avoir droit à l'indemnité légale de licenciement (depuis la loi Avenir professionnel de 2017). La CCN IDCC 1702 ne fixe pas de seuil différent : le droit à l'indemnité s'ouvre dès 8 mois d'ancienneté, même si le montant conventionnel basé sur 1\u002F10 par an reste modeste pour ces courtes durées.","Combien d'années d'ancienneté faut-il pour avoir droit à l'indemnité de licenciement dans les travaux publics ?",{"a":138,"q":139},"Comparez les deux montants : (1) Indemnité CCN : 1\u002F10 × salaire × années si ≤ 5 ans, ou 3\u002F20 × salaire × années si > 5 ans ; (2) Indemnité légale L1234-9 : 1\u002F4 × salaire × années (≤ 10 ans) + 1\u002F3 × salaire × années supplémentaires (> 10 ans). Le salarié perçoit toujours le montant le plus élevé des deux (principe de faveur). Notre calculateur ci-dessus effectue cette comparaison automatiquement.","Comment vérifier si l'indemnité CCN est plus avantageuse que l'indemnité légale pour un ouvrier TP ?","\u003C!DOCTYPE html>\n\u003Chtml lang=\"fr\">\n\u003Chead>\n  \u003Cmeta charset=\"utf-8\">\n  \u003Cmeta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n  \u003Ctitle>Indemnité de licenciement — Ouvriers des Travaux Publics IDCC 1702\u003C\u002Ftitle>\n  \u003Cscript src=\"https:\u002F\u002Funpkg.com\u002Flucide@latest\u002Fdist\u002Fumd\u002Flucide.min.js\">\u003C\u002Fscript>\n  \u003Cstyle>\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n    :root {\n      --bg: #fafaf9;\n      --surface: #ffffff;\n      --border: #e7e5e4;\n      --accent: #2563eb;\n      --accent-light: #eff6ff;\n      --accent-dark: #1d4ed8;\n      --text: #1c1917;\n      --text-muted: #78716c;\n      --warning-bg: #fffbeb;\n      --warning-border: #fcd34d;\n      --warning-text: #92400e;\n      --success-bg: #f0fdf4;\n      --success-border: #86efac;\n      --success-text: #166534;\n      --info-bg: #eff6ff;\n      --info-border: #93c5fd;\n      --info-text: #1e40af;\n      --orange-bg: #fff7ed;\n      --orange-border: #fdba74;\n      --orange-text: #9a3412;\n      --radius: 0.75rem;\n      --radius-sm: 0.5rem;\n      --shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.06);\n    }\n    body {\n      font-family: system-ui, -apple-system, sans-serif;\n      background: var(--bg);\n      color: var(--text);\n      line-height: 1.5;\n      padding: 1rem;\n    }\n    .tool-root { max-width: 720px; margin: 0 auto; }\n\n    \u002F* Header *\u002F\n    .tool-header {\n      background: var(--surface);\n      border: 1px solid var(--border);\n      border-radius: var(--radius);\n      padding: 1.25rem 1.5rem;\n      margin-bottom: 1rem;\n      box-shadow: var(--shadow);\n    }\n    .tool-header-top {\n      display: flex;\n      align-items: flex-start;\n      justify-content: space-between;\n      gap: 1rem;\n      margin-bottom: 0.75rem;\n    }\n    .tool-header h1 { font-size: 1.125rem; font-weight: 700; color: var(--text); line-height: 1.3; }\n    .tool-header .subtitle { font-size: 0.8125rem; color: var(--text-muted); margin-top: 0.25rem; }\n    .idcc-badge {\n      background: var(--accent-light);\n      color: var(--accent);\n      font-size: 0.75rem;\n      font-weight: 700;\n      padding: 0.25rem 0.625rem;\n      border-radius: 999px;\n      white-space: nowrap;\n      border: 1px solid var(--info-border);\n      flex-shrink: 0;\n    }\n    .intro-text {\n      font-size: 0.875rem;\n      color: var(--text-muted);\n      line-height: 1.65;\n      border-top: 1px solid var(--border);\n      padding-top: 0.75rem;\n    }\n    .intro-text strong { color: var(--text); }\n\n    \u002F* Rule callout *\u002F\n    .rule-callout {\n      display: flex;\n      gap: 0.75rem;\n      align-items: flex-start;\n      background: var(--info-bg);\n      border: 1px solid var(--info-border);\n      border-radius: var(--radius-sm);\n      padding: 0.875rem 1rem;\n      margin-bottom: 1.25rem;\n    }\n    .rule-callout svg { color: var(--accent); flex-shrink: 0; margin-top: 0.125rem; width: 16px; height: 16px; }\n    .rule-callout p { font-size: 0.875rem; color: var(--info-text); line-height: 1.55; }\n    .rule-callout strong { font-weight: 700; }\n\n    \u002F* Formula box *\u002F\n    .formula-box {\n      background: var(--accent-light);\n      border: 1px solid var(--info-border);\n      border-radius: var(--radius-sm);\n      padding: 0.875rem 1rem;\n      margin-bottom: 1.25rem;\n    }\n    .formula-box h3 { font-size: 0.8125rem; font-weight: 700; color: var(--accent-dark); margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.375rem; }\n    .formula-box h3 svg { width: 14px; height: 14px; }\n    .formula-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }\n    @media (max-width: 480px) { .formula-grid { grid-template-columns: 1fr; } }\n    .formula-item { font-size: 0.8rem; color: var(--info-text); line-height: 1.5; }\n    .formula-item strong { color: var(--accent-dark); }\n\n    \u002F* Form *\u002F\n    .form-card {\n      background: var(--surface);\n      border: 1px solid var(--border);\n      border-radius: var(--radius);\n      padding: 1.25rem;\n      margin-bottom: 1rem;\n      box-shadow: var(--shadow);\n    }\n    .form-grid {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 1rem;\n    }\n    @media (max-width: 520px) { .form-grid { grid-template-columns: 1fr; } }\n    .form-group { display: flex; flex-direction: column; gap: 0.375rem; }\n    .form-group.full { grid-column: 1 \u002F -1; }\n    label { font-size: 0.8125rem; font-weight: 600; color: var(--text); }\n    .label-hint { font-weight: 400; color: var(--text-muted); font-size: 0.75rem; margin-left: 0.25rem; }\n    input[type=\"range\"] { width: 100%; accent-color: var(--accent); cursor: pointer; height: 4px; }\n    .range-val { font-size: 0.8125rem; font-weight: 600; color: var(--accent); font-variant-numeric: tabular-nums; }\n\n    \u002F* Pills *\u002F\n    .pills { display: flex; flex-wrap: wrap; gap: 0.375rem; }\n    .pill {\n      padding: 0.375rem 0.75rem;\n      border: 1.5px solid var(--border);\n      border-radius: 999px;\n      font-size: 0.8125rem;\n      cursor: pointer;\n      transition: all 0.12s;\n      background: var(--surface);\n      color: var(--text-muted);\n      font-weight: 500;\n    }\n    .pill.selected { background: var(--accent); border-color: var(--accent); color: #fff; }\n    .pill:hover:not(.selected) { border-color: var(--accent); color: var(--accent); }\n\n    \u002F* Result *\u002F\n    .result-card {\n      background: var(--surface);\n      border: 2px solid var(--accent);\n      border-radius: var(--radius);\n      padding: 1.25rem 1.5rem;\n      box-shadow: var(--shadow);\n    }\n    .result-label { font-size: 0.8125rem; color: var(--text-muted); font-weight: 500; }\n    .result-value {\n      font-size: 2rem;\n      font-weight: 800;\n      color: var(--accent);\n      font-variant-numeric: tabular-nums;\n      line-height: 1.2;\n      margin: 0.25rem 0;\n    }\n    .result-breakdown {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n      gap: 0.625rem;\n      margin-top: 0.875rem;\n      padding-top: 0.875rem;\n      border-top: 1px solid var(--border);\n    }\n    .breakdown-item {\n      background: var(--bg);\n      border: 1px solid var(--border);\n      border-radius: var(--radius-sm);\n      padding: 0.5rem 0.75rem;\n    }\n    .breakdown-item .lbl { font-size: 0.72rem; color: var(--text-muted); }\n    .breakdown-item .val { font-size: 0.9375rem; font-weight: 700; color: var(--text); font-variant-numeric: tabular-nums; }\n    .compare-row {\n      display: flex;\n      align-items: flex-start;\n      gap: 0.5rem;\n      margin-top: 0.875rem;\n      padding-top: 0.875rem;\n      border-top: 1px solid var(--border);\n    }\n    .compare-row svg { flex-shrink: 0; margin-top: 2px; width: 14px; height: 14px; color: var(--success-text); }\n    .compare-row p { font-size: 0.8125rem; color: var(--success-text); }\n    .compare-row.warn svg { color: var(--orange-text); }\n    .compare-row.warn p { color: var(--orange-text); }\n\n    \u002F* Info note *\u002F\n    .info-note {\n      display: flex;\n      gap: 0.625rem;\n      background: var(--success-bg);\n      border: 1px solid var(--success-border);\n      border-radius: var(--radius-sm);\n      padding: 0.75rem 1rem;\n      margin-bottom: 1rem;\n    }\n    .info-note svg { color: var(--success-text); flex-shrink: 0; margin-top: 2px; width: 14px; height: 14px; }\n    .info-note p { font-size: 0.8125rem; color: var(--success-text); line-height: 1.5; }\n\n    \u002F* Disclaimer *\u002F\n    .disclaimer {\n      margin-top: 1.25rem;\n      padding: 0.875rem 1rem;\n      background: var(--warning-bg);\n      border: 1px solid var(--warning-border);\n      border-radius: var(--radius-sm);\n      font-size: 0.8rem;\n      color: var(--warning-text);\n      line-height: 1.55;\n    }\n    .disclaimer a { color: var(--warning-text); font-weight: 600; }\n  \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n\u003C!-- CCN IDCC 1702 — Indemnité de licenciement — standalone\n     Source: Convention collective nationale des ouvriers des travaux publics du 15 décembre 1992 (Brochure JO 3005 Tome 2)\n     Formule CCN: 1\u002F10 mois × années ≤5 ans, puis 3\u002F20 mois × toutes les années au-delà de 5 ans\n     Bonus âge 55+ : +10% de l'indemnité conventionnelle\n     Licenciement économique 5+ ans : +35\u002F100 mois (complément forfaitaire)\n     Base de calcul : meilleure des deux entre 1\u002F12 des 12 derniers mois et 1\u002F3 des 3 derniers mois -->\n\u003Cdiv class=\"tool-root\">\n  \u003Cdiv class=\"tool-header\">\n    \u003Cdiv class=\"tool-header-top\">\n      \u003Cdiv>\n        \u003Ch1>Indemnité de licenciement — ouvriers des travaux publics\u003C\u002Fh1>\n        \u003Cp class=\"subtitle\">Calculateur basé sur la convention collective IDCC 1702 (2026)\u003C\u002Fp>\n      \u003C\u002Fdiv>\n      \u003Cspan class=\"idcc-badge\">IDCC 1702\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cp class=\"intro-text\">\n      La convention collective nationale des \u003Cstrong>ouvriers des travaux publics\u003C\u002Fstrong> (IDCC 1702) prévoit\n      une formule d'indemnité de licenciement distincte du code du travail. Pour les salariés ayant\n      jusqu'à 5 ans d'ancienneté, le calcul s'effectue à raison de \u003Cstrong>1\u002F10 de mois par année\u003C\u002Fstrong>.\n      À partir de 5 ans, le taux passe à \u003Cstrong>3\u002F20 de mois par année\u003C\u002Fstrong>, appliqué à l'ensemble de la carrière.\n      Des majorations spécifiques s'appliquent en cas de licenciement économique ou lorsque le salarié\n      est âgé de 55 ans ou plus au moment du licenciement. Le calcul retient toujours la base salariale\n      la plus favorable entre le douzième des 12 derniers mois et le tiers des 3 derniers mois.\n    \u003C\u002Fp>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv class=\"formula-box\">\n    \u003Ch3>\u003Ci data-lucide=\"file-text\">\u003C\u002Fi> Formule conventionnelle — IDCC 1702\u003C\u002Fh3>\n    \u003Cdiv class=\"formula-grid\">\n      \u003Cdiv class=\"formula-item\">\u003Cstrong>≤ 5 ans :\u003C\u002Fstrong> 1\u002F10 × salaire × années\u003C\u002Fdiv>\n      \u003Cdiv class=\"formula-item\">\u003Cstrong>&gt; 5 ans :\u003C\u002Fstrong> 3\u002F20 × salaire × toutes les années\u003C\u002Fdiv>\n      \u003Cdiv class=\"formula-item\">\u003Cstrong>55 ans + :\u003C\u002Fstrong> + 10 % de l'indemnité\u003C\u002Fdiv>\n      \u003Cdiv class=\"formula-item\">\u003Cstrong>Éco (5+ ans) :\u003C\u002Fstrong> + 35\u002F100 de mois\u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv class=\"rule-callout\">\n    \u003Ci data-lucide=\"info\">\u003C\u002Fi>\n    \u003Cp>\n      Pour les anciennetés \u003Cstrong>inférieures à 5 ans\u003C\u002Fstrong>, la formule CCN (1\u002F10) est moins favorable\n      que la formule légale (1\u002F4). La CCN devient plus avantageuse à partir de \u003Cstrong>5 ans\u003C\u002Fstrong> avec\n      le taux 3\u002F20 appliqué à toute la carrière. Vérifiez toujours que l'indemnité conventionnelle\n      est au moins égale à l'indemnité légale minimale — en cas de doute, le salarié conserve le bénéfice du montant le plus élevé.\n    \u003C\u002Fp>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv class=\"form-card\">\n    \u003Cdiv class=\"form-grid\">\n      \u003Cdiv class=\"form-group\">\n        \u003Clabel>Salaire brut mensuel de référence \u003Cspan class=\"label-hint\">(1\u002F12 des 12 derniers mois)\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"salaire\" min=\"1600\" max=\"8000\" step=\"50\" value=\"2800\">\n        \u003Cspan class=\"range-val\" id=\"salaire-val\">2 800 €\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"form-group\">\n        \u003Clabel>Ancienneté dans l'entreprise\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"anciennete\" min=\"0\" max=\"40\" step=\"1\" value=\"8\">\n        \u003Cspan class=\"range-val\" id=\"anciennete-val\">8 ans\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"form-group full\">\n        \u003Clabel>Motif du licenciement\u003C\u002Flabel>\n        \u003Cdiv class=\"pills\" id=\"motif\">\n          \u003Cdiv class=\"pill selected\" data-val=\"perso\">Motif personnel\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"eco\">Licenciement économique\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"inaptitude\">Inaptitude\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"form-group full\">\n        \u003Clabel>Âge au moment du licenciement\u003C\u002Flabel>\n        \u003Cdiv class=\"pills\" id=\"age\">\n          \u003Cdiv class=\"pill selected\" data-val=\"lt55\">Moins de 55 ans\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"gte55\">55 ans ou plus\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"form-group full\">\n        \u003Clabel>Contrat à temps partiel ?\u003C\u002Flabel>\n        \u003Cdiv class=\"pills\" id=\"partiel\">\n          \u003Cdiv class=\"pill selected\" data-val=\"non\">Temps plein\u003C\u002Fdiv>\n          \u003Cdiv class=\"pill\" data-val=\"oui\">Temps partiel\u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"form-group full\" id=\"partiel-ratio-group\" style=\"display:none\">\n        \u003Clabel>Ratio temps partiel \u003Cspan class=\"label-hint\">(ex: 80 % pour un 4\u002F5e)\u003C\u002Fspan>\u003C\u002Flabel>\n        \u003Cinput type=\"range\" id=\"partiel-ratio\" min=\"20\" max=\"95\" step=\"5\" value=\"80\">\n        \u003Cspan class=\"range-val\" id=\"partiel-ratio-val\">80 %\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv class=\"result-card\">\n    \u003Cdiv class=\"result-label\">Indemnité conventionnelle estimée (brut)\u003C\u002Fdiv>\n    \u003Cdiv class=\"result-value\" id=\"montant\">–\u003C\u002Fdiv>\n    \u003Cdiv class=\"result-breakdown\" id=\"breakdown\">\n      \u003Cdiv class=\"breakdown-item\">\n        \u003Cdiv class=\"lbl\">Base CCN\u003C\u002Fdiv>\n        \u003Cdiv class=\"val\" id=\"r-base\">–\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"breakdown-item\" id=\"r-age-box\" style=\"display:none\">\n        \u003Cdiv class=\"lbl\">Bonus 55+\u003C\u002Fdiv>\n        \u003Cdiv class=\"val\" id=\"r-age\">–\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"breakdown-item\" id=\"r-eco-box\" style=\"display:none\">\n        \u003Cdiv class=\"lbl\">Complément éco\u003C\u002Fdiv>\n        \u003Cdiv class=\"val\" id=\"r-eco\">–\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"breakdown-item\">\n        \u003Cdiv class=\"lbl\">Légale L1234-9\u003C\u002Fdiv>\n        \u003Cdiv class=\"val\" id=\"r-legale\">–\u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"compare-row\" id=\"compare-row\">\n      \u003Ci data-lucide=\"trending-up\">\u003C\u002Fi>\n      \u003Cp id=\"compare-text\">\u003C\u002Fp>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\n  \u003Cdiv class=\"disclaimer\">\n    \u003Ci data-lucide=\"triangle-alert\" style=\"display:inline;vertical-align:-3px;width:14px;height:14px;margin-right:4px;\">\u003C\u002Fi>\n    Calcul indicatif fondé sur la CCN des ouvriers des travaux publics (IDCC 1702), brochure JO 3005.\n    En dessous de 1 an d'ancienneté, aucune indemnité n'est due. L'indemnité conventionnelle ne peut\n    jamais être inférieure à l'indemnité légale minimale (principe de faveur). Sont exclues : la faute grave\n    et la faute lourde. Source : \u003Ca href=\"https:\u002F\u002Fwww.legifrance.gouv.fr\u002Fconv_coll\u002Fid\u002FKALISCTA000005704263\u002F\" target=\"_blank\" rel=\"noopener\">Legifrance\u003C\u002Fa>.\n    Pour valider votre situation\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\n\u003Cscript>\n(function () {\n  'use strict';\n\n  const fmtEur = v => new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 0 }).format(v);\n\n  const state = {\n    salaire: 2800,\n    anciennete: 8,\n    motif: 'perso',\n    age: 'lt55',\n    partiel: 'non',\n    partielRatio: 80,\n  };\n\n  function compute(s) {\n    if (s.anciennete \u003C 1) return null;\n    const sal = s.partiel === 'oui' ? s.salaire * (s.partielRatio \u002F 100) : s.salaire;\n\n    \u002F\u002F CCN formula\n    let base = 0;\n    if (s.anciennete \u003C= 5) {\n      base = sal * (1 \u002F 10) * s.anciennete;\n    } else {\n      base = sal * (3 \u002F 20) * s.anciennete;\n    }\n\n    const ageBonus = s.age === 'gte55' ? base * 0.10 : 0;\n\n    let ecoSupplement = 0;\n    if (s.motif === 'eco') {\n      if (s.anciennete >= 5) {\n        ecoSupplement = sal * (35 \u002F 100);\n      } else if (s.anciennete >= 2) {\n        ecoSupplement = base * 0.70;\n      }\n    }\n\n    const total = base + ageBonus + ecoSupplement;\n\n    \u002F\u002F Legal baseline L1234-9\n    let baseline = 0;\n    if (s.anciennete \u003C= 10) {\n      baseline = sal * (1 \u002F 4) * s.anciennete;\n    } else {\n      baseline = sal * (1 \u002F 4) * 10 + sal * (1 \u002F 3) * (s.anciennete - 10);\n    }\n\n    \u002F\u002F Apply principle of favor\n    const effective = Math.max(total, baseline);\n\n    return { base, ageBonus, ecoSupplement, total, baseline, effective };\n  }\n\n  function render() {\n    const s = state;\n    const r = compute(s);\n\n    if (!r) {\n      document.getElementById('montant').textContent = 'Ancienneté \u003C 1 an — aucune indemnité';\n      ['r-base', 'r-age', 'r-eco', 'r-legale'].forEach(id => { document.getElementById(id).textContent = '–'; });\n      document.getElementById('compare-text').textContent = '';\n      return;\n    }\n\n    document.getElementById('montant').textContent = fmtEur(r.effective);\n    document.getElementById('r-base').textContent = fmtEur(r.base);\n    document.getElementById('r-legale').textContent = fmtEur(r.baseline);\n\n    const ageBox = document.getElementById('r-age-box');\n    if (r.ageBonus > 0) {\n      ageBox.style.display = '';\n      document.getElementById('r-age').textContent = '+' + fmtEur(r.ageBonus);\n    } else {\n      ageBox.style.display = 'none';\n    }\n\n    const ecoBox = document.getElementById('r-eco-box');\n    if (r.ecoSupplement > 0) {\n      ecoBox.style.display = '';\n      document.getElementById('r-eco').textContent = '+' + fmtEur(r.ecoSupplement);\n    } else {\n      ecoBox.style.display = 'none';\n    }\n\n    const diff = r.total - r.baseline;\n    const compareRow = document.getElementById('compare-row');\n    const compareText = document.getElementById('compare-text');\n    const icon = compareRow.querySelector('svg');\n\n    if (r.effective > r.baseline) {\n      compareRow.className = 'compare-row';\n      compareText.textContent = `La CCN est plus favorable de +${fmtEur(Math.abs(diff))} par rapport à L1234-9. Indemnité retenue : ${fmtEur(r.effective)}.`;\n    } else if (r.effective === r.baseline && r.total \u003C r.baseline) {\n      compareRow.className = 'compare-row warn';\n      compareText.textContent = `La formule CCN (${fmtEur(r.total)}) est inférieure à L1234-9 (${fmtEur(r.baseline)}) — principe de faveur appliqué, l'indemnité légale est due.`;\n    } else {\n      compareRow.className = 'compare-row';\n      compareText.textContent = `Montant identique à l'indemnité légale minimale L1234-9.`;\n    }\n  }\n\n  \u002F\u002F Bindings\n  function bindRange(id, key, valId, fmt) {\n    const el = document.getElementById(id);\n    el.addEventListener('input', () => { state[key] = +el.value; document.getElementById(valId).textContent = fmt(+el.value); render(); });\n    document.getElementById(valId).textContent = fmt(+el.value);\n  }\n\n  function bindPills(containerId, key) {\n    const c = document.getElementById(containerId);\n    if (!c) return;\n    c.querySelectorAll('.pill').forEach(p => {\n      p.addEventListener('click', () => {\n        c.querySelectorAll('.pill').forEach(x => x.classList.remove('selected'));\n        p.classList.add('selected');\n        state[key] = p.dataset.val;\n        if (key === 'partiel') {\n          document.getElementById('partiel-ratio-group').style.display = p.dataset.val === 'oui' ? '' : 'none';\n        }\n        render();\n      });\n    });\n  }\n\n  const fmtEurSimple = v => new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 0 }).format(v);\n\n  bindRange('salaire', 'salaire', 'salaire-val', v => new Intl.NumberFormat('fr-FR', { style: 'currency', currency: 'EUR', maximumFractionDigits: 0 }).format(v));\n  bindRange('anciennete', 'anciennete', 'anciennete-val', v => `${v} an${v > 1 ? 's' : ''}`);\n  bindRange('partiel-ratio', 'partielRatio', 'partiel-ratio-val', v => `${v} %`);\n  bindPills('motif', 'motif');\n  bindPills('age', 'age');\n  bindPills('partiel', 'partiel');\n\n  render();\n\n  if (window.lucide) lucide.createIcons();\n\n  const ro = new ResizeObserver(() => {\n    const h = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n    parent.postMessage({ type: 'resize', height: h }, '*');\n  });\n  ro.observe(document.documentElement);\n})();\n\u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n","generated","juridique","consumer","both","https:\u002F\u002Fpub-bdebbd2dad294475a2da0eb657815b6b.r2.dev\u002Ftools\u002Findemnite-ouvriers-des-travaux-publics-2961513861.webp",[]]