{"id":6,"date":"2026-08-30T10:54:49","date_gmt":"2026-08-30T10:54:49","guid":{"rendered":"http:\/\/vigie-code.com\/?page_id=6"},"modified":"2026-09-08T20:00:51","modified_gmt":"2026-09-08T20:00:51","slug":"accueil","status":"publish","type":"page","link":"https:\/\/vigie-code.com\/","title":{"rendered":"Accueil"},"content":{"rendered":"\n<div class=\"wp-block-group alignfull is-layout-flow wp-container-core-group-is-layout-cd7755c8 wp-block-group-is-layout-flow\" style=\"border-style:none;border-width:0px;margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n<title>Vigie<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Big+Shoulders+Display:wght@600;700;800&#038;family=Newsreader:ital,wght@0,400;0,500;0,600;1,400;1,500&#038;family=JetBrains+Mono:wght@400;500;700&#038;display=swap\" rel=\"stylesheet\">\n<style>\n  :root {\n    --ink: #0E141F;\n    --ink-raised: #161F2C;\n    --ink-raised-2: #1C2635;\n    --line: #2A3A50;\n    --line-soft: #1E2A3C;\n    --fg: #ECE6D6;\n    --fg-soft: #93A3B8;\n    --fg-faint: #8A9BB0;\n    --accent: #E2A63B;\n    --accent-soft: #8A6A2E;\n    --accent-wash: rgba(226, 166, 59, 0.1);\n    --good: #4C9C88;\n    --late: #C15C46;\n    --font-display: \"Big Shoulders Display\", \"Arial Narrow\", sans-serif;\n    --font-body: \"Newsreader\", Georgia, \"Times New Roman\", serif;\n    --font-mono: \"JetBrains Mono\", \"Courier New\", monospace;\n  }\n\n  * { box-sizing: border-box; }\n\n  html { color-scheme: dark; }\n\n  body {\n    margin: 0;\n    background: var(--ink);\n    color: var(--fg);\n    font-family: var(--font-body);\n    font-size: 17px;\n    line-height: 1.65;\n    -webkit-font-smoothing: antialiased;\n  }\n\n  ::selection { background: var(--accent-soft); color: var(--ink); }\n\n  img, svg { max-width: 100%; }\n\n  .wrap {\n    max-width: 1040px;\n    margin: 0 auto;\n    padding: 0 32px;\n  }\n\n  a { color: var(--accent); }\n\n  h1, h2, h3 { text-wrap: balance; margin: 0; }\n\n  .eyebrow {\n    font-family: var(--font-mono);\n    font-size: 16px;\n    line-height: 1.5;\n    letter-spacing: 0.09em;\n    text-transform: uppercase;\n    color: var(--fg-soft);\n    display: flex;\n    align-items: flex-start;\n    gap: 10px;\n  }\n\n  .eyebrow::before {\n    content: \"\";\n    width: 7px;\n    height: 7px;\n    margin-top: 8px;\n    border-radius: 50%;\n    background: var(--accent);\n    box-shadow: 0 0 8px 1px var(--accent-wash);\n    flex: none;\n  }\n\n  \/* ---------- Lien contact fixe, coin haut-droit ---------- *\/\n\n  .contact-pin {\n    position: fixed;\n    top: 22px;\n    right: 32px;\n    z-index: 10;\n    font-family: var(--font-mono);\n    font-size: 13px;\n    letter-spacing: 0.08em;\n    text-transform: uppercase;\n    color: var(--fg-soft);\n    text-decoration: none;\n    padding: 9px 16px;\n    border: 1px solid var(--line);\n    background: rgba(14, 20, 31, 0.78);\n    backdrop-filter: blur(4px);\n  }\n\n  .contact-pin:hover { color: var(--accent); border-color: var(--accent-soft); }\n\n  @media (max-width: 760px) {\n    .contact-pin { top: 14px; right: 14px; font-size: 12px; padding: 7px 12px; }\n  }\n\n  \/* ---------- Bulle \"reserver une demo\", coin bas-droit ---------- *\/\n\n  [hidden] { display: none !important; }\n\n  .demo-popup {\n    position: fixed;\n    bottom: 24px;\n    right: 24px;\n    z-index: 20;\n    max-width: 300px;\n    padding: 20px 22px;\n    border: 1px solid var(--line);\n    background: var(--ink-raised);\n    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4);\n    animation: demo-popup-in 0.4s ease-out;\n  }\n\n  @keyframes demo-popup-in {\n    from { opacity: 0; transform: translateY(12px); }\n    to { opacity: 1; transform: translateY(0); }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .demo-popup { animation: none; }\n  }\n\n  .demo-popup__close {\n    position: absolute;\n    top: 8px;\n    right: 10px;\n    background: none;\n    border: none;\n    color: var(--fg-faint);\n    font-size: 15px;\n    line-height: 1;\n    padding: 6px;\n    cursor: pointer;\n  }\n\n  .demo-popup__close:hover { color: var(--fg); }\n\n  .demo-popup__eyebrow {\n    font-family: var(--font-mono);\n    font-size: 12px;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n    color: var(--accent);\n    margin: 0 0 8px;\n  }\n\n  .demo-popup__text {\n    font-size: 15px;\n    line-height: 1.5;\n    color: var(--fg);\n    margin: 0 0 16px;\n  }\n\n  .demo-popup__cta {\n    display: inline-block;\n    font-family: var(--font-mono);\n    font-size: 13px;\n    letter-spacing: 0.04em;\n    text-transform: uppercase;\n    color: var(--ink);\n    background: var(--accent);\n    padding: 10px 16px;\n    text-decoration: none;\n  }\n\n  .demo-popup__cta:hover { background: var(--accent-soft); }\n\n  @media (max-width: 760px) {\n    .demo-popup { left: 14px; right: 14px; bottom: 14px; max-width: none; }\n  }\n\n  \/* ---------- Two-column layout : marque fixe a gauche, texte a droite ---------- *\/\n\n  .layout {\n    display: flex;\n    align-items: flex-start;\n  }\n\n  .brand {\n    position: sticky;\n    top: 0;\n    height: 100vh;\n    width: 42%;\n    min-width: 360px;\n    flex: none;\n    position: relative; \/* recree par sticky ci-dessous, voir override *\/\n    border-right: 1px solid var(--line);\n    overflow: hidden;\n  }\n\n  .brand {\n    position: sticky;\n    top: 0;\n  }\n\n  .brand__radar {\n    position: absolute;\n    inset: 0;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    pointer-events: none;\n    z-index: 0;\n  }\n\n  .radar {\n    position: relative;\n    width: min(72vh, 640px);\n    aspect-ratio: 1 \/ 1;\n  }\n\n  .radar__ring {\n    position: absolute;\n    inset: 0;\n    border: 1px solid var(--line-soft);\n    border-radius: 50%;\n  }\n  .radar__ring--2 { inset: 10%; }\n  .radar__ring--3 { inset: 20%; }\n  .radar__ring--4 { inset: 30%; }\n\n  .radar__sweep {\n    position: absolute;\n    inset: 0;\n    border-radius: 50%;\n    background: conic-gradient(from 0deg, var(--accent-wash), transparent 26%, transparent 100%);\n    animation: sweep 14s linear infinite;\n  }\n\n  @keyframes sweep {\n    to { transform: rotate(360deg); }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .radar__sweep { animation: none; }\n  }\n\n  .radar__blip {\n    position: absolute;\n    width: 7px;\n    height: 7px;\n    margin: -3.5px 0 0 -3.5px;\n    border-radius: 50%;\n    background: var(--accent);\n    box-shadow: 0 0 7px 2px var(--accent-wash);\n    animation: blip-pulse 2.6s ease-in-out infinite;\n  }\n\n  @keyframes blip-pulse {\n    0%, 100% { opacity: 0.3; transform: scale(0.75); }\n    50% { opacity: 1; transform: scale(1.2); }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .radar__blip { animation: none; opacity: 0.85; }\n  }\n\n  .brand__inner {\n    position: relative;\n    z-index: 1;\n    padding: 0 44px;\n  }\n\n  .brand__mark {\n    font-family: var(--font-display);\n    font-weight: 800;\n    font-size: clamp(64px, 11vw, 128px);\n    line-height: 0.86;\n    letter-spacing: 0.01em;\n    color: var(--fg);\n    margin: 22px 0 0;\n  }\n\n  .brand__mark span { color: var(--accent); }\n\n  \/* ---------- Colonne de contenu (defile) ---------- *\/\n\n  .content {\n    flex: 1;\n    min-width: 0;\n  }\n\n  .hero-text {\n    padding: 88px 0 56px;\n    border-bottom: 1px solid var(--line);\n  }\n\n  .hero__tagline {\n    font-family: var(--font-body);\n    font-style: italic;\n    font-weight: 500;\n    font-size: clamp(20px, 2.6vw, 27px);\n    color: var(--fg-soft);\n    max-width: 20ch;\n    margin: 0 0 26px;\n  }\n\n  .hero__tagline--brand {\n    margin: 18px 0 0;\n    max-width: 16ch;\n  }\n\n  .hero__lede {\n    max-width: 46ch;\n    font-size: 18px;\n    color: var(--fg);\n    margin: 0;\n  }\n\n  .hero__note {\n    margin-top: 28px;\n    font-family: var(--font-mono);\n    font-size: 14.5px;\n    letter-spacing: 0.02em;\n    color: var(--fg-faint);\n    border-left: 2px solid var(--line);\n    padding-left: 12px;\n    max-width: 42ch;\n  }\n\n  \/* ---------- Readout strip ---------- *\/\n\n  .readouts {\n    border-bottom: 1px solid var(--line);\n    background: var(--ink-raised);\n  }\n\n  .readouts__grid {\n    display: grid;\n    grid-template-columns: repeat(4, 1fr);\n    gap: 1px;\n    background: var(--line);\n  }\n\n  .readout {\n    background: var(--ink-raised);\n    padding: 28px 26px;\n  }\n\n  .readout__value {\n    font-family: var(--font-mono);\n    font-variant-numeric: tabular-nums;\n    font-weight: 700;\n    font-size: clamp(24px, 2.6vw, 30px);\n    color: var(--accent);\n  }\n\n  .readout__label {\n    margin-top: 6px;\n    font-family: var(--font-mono);\n    font-size: 13px;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n    color: var(--fg-soft);\n  }\n\n  \/* ---------- Sections ---------- *\/\n\n  .section {\n    padding: 72px 0;\n    border-bottom: 1px solid var(--line);\n  }\n\n  .section__head {\n    margin-bottom: 28px;\n    display: flex;\n    align-items: baseline;\n    gap: 16px;\n  }\n\n  .section__num {\n    font-family: var(--font-mono);\n    font-size: 14.5px;\n    letter-spacing: 0.14em;\n    color: var(--fg-soft);\n    flex: none;\n  }\n\n  .section h2 {\n    font-family: var(--font-display);\n    font-weight: 700;\n    font-size: clamp(28px, 3vw, 38px);\n    letter-spacing: 0.005em;\n  }\n\n  .section p {\n    max-width: 60ch;\n    color: var(--fg);\n  }\n\n  .section p + p { margin-top: 16px; }\n\n  \/* ---------- Illustrative table ---------- *\/\n\n  .table-frame {\n    margin-top: 28px;\n    border: 1px solid var(--line);\n    background: var(--ink-raised);\n  }\n\n  .table-frame__tag {\n    font-family: var(--font-mono);\n    font-size: 12.5px;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n    color: var(--accent);\n    padding: 12px 18px;\n    border-bottom: 1px solid var(--line);\n  }\n\n  table {\n    width: 100%;\n    border-collapse: collapse;\n    font-family: var(--font-mono);\n    font-size: 14px;\n  }\n\n  th, td {\n    text-align: left;\n    padding: 13px 18px;\n    border-bottom: 1px solid var(--line-soft);\n  }\n\n  th {\n    color: var(--fg-soft);\n    font-weight: 500;\n    letter-spacing: 0.04em;\n    text-transform: uppercase;\n    font-size: 13px;\n  }\n\n  td { color: var(--fg); font-variant-numeric: tabular-nums; }\n\n  tr:last-child td { border-bottom: none; }\n\n  .num-hi { color: var(--late); font-weight: 700; }\n  .num-lo { color: var(--good); font-weight: 700; }\n\n  \/* ---------- Weight bars ---------- *\/\n\n  .bars {\n    margin-top: 28px;\n    display: flex;\n    flex-direction: column;\n    gap: 16px;\n    max-width: 560px;\n  }\n\n  .bar-row {\n    display: grid;\n    grid-template-columns: 190px 1fr 52px;\n    align-items: center;\n    gap: 14px;\n  }\n\n  .bar-row__label {\n    font-family: var(--font-mono);\n    font-size: 14px;\n    color: var(--fg-soft);\n  }\n\n  .bar-track {\n    height: 8px;\n    background: var(--ink-raised-2);\n    border: 1px solid var(--line);\n    border-radius: 2px;\n    overflow: hidden;\n  }\n\n  .bar-fill {\n    height: 100%;\n    background: linear-gradient(90deg, var(--accent-soft), var(--accent));\n  }\n\n  .bar-row__pct {\n    font-family: var(--font-mono);\n    font-size: 14px;\n    color: var(--fg);\n    text-align: right;\n    font-variant-numeric: tabular-nums;\n  }\n\n  .caption {\n    margin-top: 14px;\n    font-family: var(--font-mono);\n    font-size: 14px;\n    color: var(--fg-faint);\n  }\n\n  \/* ---------- Benefit cards ---------- *\/\n\n  .benefits {\n    margin-top: 4px;\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 1px;\n    background: var(--line);\n    border: 1px solid var(--line);\n  }\n\n  .benefit-card {\n    background: var(--ink-raised);\n    padding: 26px 28px;\n  }\n\n  .benefit-card__label {\n    font-family: var(--font-mono);\n    font-size: 13px;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n    color: var(--accent);\n  }\n\n  .benefit-card__text {\n    margin-top: 10px;\n    font-size: 16px;\n    color: var(--fg);\n    max-width: 42ch;\n  }\n\n  .benefit-card--wide {\n    grid-column: 1 \/ -1;\n  }\n\n  .benefit-card--wide .benefit-card__text {\n    max-width: 68ch;\n  }\n\n  \/* ---------- Contact ---------- *\/\n\n  .contact-frame {\n    max-width: 420px;\n  }\n\n  .contact-frame__body {\n    padding: 22px 18px;\n  }\n\n  .contact-frame__email {\n    font-family: var(--font-mono);\n    font-size: 18px;\n    letter-spacing: 0.01em;\n    color: var(--accent);\n    text-decoration: none;\n  }\n\n  .contact-frame__email:hover { text-decoration: underline; }\n\n  \/* ---------- Footer ---------- *\/\n\n  .foot {\n    padding: 56px 0 64px;\n  }\n\n  .foot__grid {\n    display: flex;\n    justify-content: space-between;\n    align-items: flex-end;\n    flex-wrap: wrap;\n    gap: 24px;\n  }\n\n  .foot__mark {\n    font-family: var(--font-display);\n    font-weight: 700;\n    font-size: 22px;\n    letter-spacing: 0.02em;\n  }\n\n  .foot__mark span { color: var(--accent); }\n\n  .foot__meta {\n    font-family: var(--font-mono);\n    font-size: 14px;\n    color: var(--fg-faint);\n    letter-spacing: 0.04em;\n    text-align: right;\n  }\n\n  .foot__line {\n    margin-top: 34px;\n    padding-top: 22px;\n    border-top: 1px solid var(--line);\n    font-family: var(--font-body);\n    font-style: italic;\n    color: var(--fg-soft);\n    max-width: 52ch;\n  }\n\n  \/* ---------- Responsive : sous 900px, on empile normalement ---------- *\/\n\n  @media (max-width: 900px) {\n    .layout { flex-direction: column; }\n    .brand {\n      position: static;\n      height: auto;\n      width: 100%;\n      min-width: 0;\n      border-right: none;\n      border-bottom: 1px solid var(--line);\n      padding: 64px 0 48px;\n    }\n    .radar { width: min(60vw, 420px); }\n    .brand__inner { padding: 0 24px; }\n  }\n\n  @media (max-width: 760px) {\n    .wrap { padding: 0 20px; }\n    .brand__inner { padding: 0 20px; }\n    .hero-text .wrap, .readouts .wrap, .section .wrap, .foot .wrap { padding: 0 20px; }\n    .readouts__grid { grid-template-columns: repeat(2, 1fr); }\n    .section__head { flex-direction: column; gap: 6px; }\n    .bar-row { grid-template-columns: 1fr; gap: 6px; }\n    .bar-row__pct { text-align: left; }\n    .foot__meta { text-align: left; }\n    .benefits { grid-template-columns: 1fr; }\n  }\n<\/style>\n\n<a class=\"contact-pin\" href=\"mailto:contact@vigie-code.com\">Contact<\/a>\n\n<div class=\"layout\">\n  <aside class=\"brand\">\n    <div class=\"brand__radar\" aria-hidden=\"true\">\n      <div class=\"radar\">\n        <div class=\"radar__ring\"><\/div>\n        <div class=\"radar__ring radar__ring--2\"><\/div>\n        <div class=\"radar__ring radar__ring--3\"><\/div>\n        <div class=\"radar__ring radar__ring--4\"><\/div>\n        <div class=\"radar__sweep\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 15%; left: 50%; animation-delay: 0s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 20%; left: 65%; animation-delay: 0.19s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 30%; left: 78%; animation-delay: 0.38s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 50%; left: 85%; animation-delay: 0.57s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 70%; left: 78%; animation-delay: 0.76s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 80%; left: 65%; animation-delay: 0.95s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 85%; left: 50%; animation-delay: 1.14s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 80%; left: 35%; animation-delay: 1.33s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 70%; left: 22%; animation-delay: 1.52s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 50%; left: 15%; animation-delay: 1.71s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 30%; left: 22%; animation-delay: 1.9s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 20%; left: 35%; animation-delay: 2.09s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 35%; left: 50%; animation-delay: 2.28s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 45%; left: 60%; animation-delay: 2.47s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 55%; left: 42%; animation-delay: 2.66s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 62%; left: 58%; animation-delay: 2.85s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 42%; left: 40%; animation-delay: 3.04s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 35%; left: 68%; animation-delay: 3.23s;\"><\/div>\n        <div class=\"radar__blip\" style=\"top: 65%; left: 32%; animation-delay: 3.42s;\"><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"brand__inner\">\n      <p class=\"eyebrow\">Outil d&rsquo;aide \u00e0 la supervision et \u00e0 la prise de d\u00e9cision pour g\u00e9rer les transports en commun<\/p>\n      <h1 class=\"brand__mark\">VIG<span>I<\/span>E<\/h1>\n      <p class=\"hero__tagline hero__tagline--brand\">Voir venir, avant que \u00e7a n&rsquo;arrive.<\/p>\n    <\/div>\n  <\/aside>\n\n  <main class=\"content\">\n    <div class=\"hero-text\">\n      <div class=\"wrap\">\n        <p class=\"hero__lede\">Vigie rassemble la ponctualit\u00e9, les incidents et la pr\u00e9sence des \u00e9quipes en un seul rep\u00e8re lisible \u2014 pour piloter un r\u00e9seau de lignes de bus sans se noyer dans les fichiers d&rsquo;exploitation.<\/p>\n        <p class=\"hero__note\">Les chiffres de cette page sont illustratifs.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"readouts\">\n      <div class=\"wrap\">\n        <div class=\"readouts__grid\">\n          <div class=\"readout\">\n            <div class=\"readout__value\">19<\/div>\n            <div class=\"readout__label\">Lignes suivies<\/div>\n          <\/div>\n          <div class=\"readout\">\n            <div class=\"readout__value\">980<\/div>\n            <div class=\"readout__label\">Agents \u00e9ligibles<\/div>\n          <\/div>\n          <div class=\"readout\">\n            <div class=\"readout__value\">94,2 %<\/div>\n            <div class=\"readout__label\">Ponctualit\u00e9 moyenne<\/div>\n          <\/div>\n          <div class=\"readout\">\n            <div class=\"readout__value\">12 mois<\/div>\n            <div class=\"readout__label\">Profondeur d&rsquo;historique<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"section\">\n      <div class=\"wrap\">\n        <div class=\"section__head\">\n          <p class=\"section__num\">01<\/p>\n          <h2>Centraliser, sans noyer<\/h2>\n        <\/div>\n        <p>Chaque jour, l&rsquo;exploitation d&rsquo;un r\u00e9seau de bus produit ses propres relev\u00e9s : ponctualit\u00e9 arr\u00eat par arr\u00eat, incidents de service, pr\u00e9sences, accidents, rapports d&rsquo;attitude. Pris s\u00e9par\u00e9ment, ces fichiers ne disent rien \u00e0 personne.<\/p>\n        <p>Vigie les rapproche automatiquement \u2014 m\u00eame ligne, m\u00eame service, m\u00eame journ\u00e9e \u2014 et en tire des indicateurs qu&rsquo;un responsable d&rsquo;\u00e9quipe peut lire en une minute, plut\u00f4t qu&rsquo;en reconstituant un tableau crois\u00e9 \u00e0 la main chaque semaine.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"section\">\n      <div class=\"wrap\">\n        <div class=\"section__head\">\n          <p class=\"section__num\">02<\/p>\n          <h2>Le m\u00eame m\u00e8tre pour tout le monde<\/h2>\n        <\/div>\n        <p>Un agent qui travaille deux fois plus de jours a m\u00e9caniquement deux fois plus d&rsquo;occasions de cumuler des incidents. Comparer des nombres bruts entre deux profils aussi diff\u00e9rents serait injuste \u2014 Vigie compare donc des <em>taux<\/em>, jamais des comptes.<\/p>\n        <div class=\"table-frame\">\n          <p class=\"table-frame__tag\">Exemple illustratif<\/p>\n          <table>\n            <thead>\n              <tr><th>Profil<\/th><th>Jours travaill\u00e9s<\/th><th>Incidents<\/th><th>Taux<\/th><\/tr>\n            <\/thead>\n            <tbody>\n              <tr><td>Agent A<\/td><td>40<\/td><td>12<\/td><td class=\"num-hi\">0,30 \/ jour<\/td><\/tr>\n              <tr><td>Agent B<\/td><td>120<\/td><td>24<\/td><td class=\"num-lo\">0,20 \/ jour<\/td><\/tr>\n            <\/tbody>\n          <\/table>\n        <\/div>\n        <p class=\"caption\">Deux fois plus d&rsquo;incidents en valeur brute, mais un taux r\u00e9el plus favorable \u2014 c&rsquo;est ce second chiffre qui compte.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"section\">\n      <div class=\"wrap\">\n        <div class=\"section__head\">\n          <p class=\"section__num\">03<\/p>\n          <h2>Un rep\u00e8re, pas une sentence<\/h2>\n        <\/div>\n        <p>Le score de m\u00e9rite additionne ces taux selon une grille de poids discut\u00e9e avec les \u00e9quipes concern\u00e9es : un incident de s\u00e9curit\u00e9 p\u00e8se nettement plus qu&rsquo;un retard administratif, et un signalement positif fait remonter le score au lieu d&rsquo;\u00eatre simplement ignor\u00e9.<\/p>\n        <div class=\"bars\">\n          <div class=\"bar-row\">\n            <span class=\"bar-row__label\">Gravit\u00e9 de l&rsquo;incident<\/span>\n            <span class=\"bar-track\"><span class=\"bar-fill\" style=\"width: 92%\"><\/span><\/span>\n            <span class=\"bar-row__pct\">\u00e9lev\u00e9<\/span>\n          <\/div>\n          <div class=\"bar-row\">\n            <span class=\"bar-row__label\">R\u00e9gularit\u00e9 de pr\u00e9sence<\/span>\n            <span class=\"bar-track\"><span class=\"bar-fill\" style=\"width: 22%\"><\/span><\/span>\n            <span class=\"bar-row__pct\">faible<\/span>\n          <\/div>\n          <div class=\"bar-row\">\n            <span class=\"bar-row__label\">Signalement positif<\/span>\n            <span class=\"bar-track\"><span class=\"bar-fill\" style=\"width: 48%\"><\/span><\/span>\n            <span class=\"bar-row__pct\">bonus<\/span>\n          <\/div>\n        <\/div>\n        <p class=\"caption\">Pond\u00e9ration illustrative \u2014 la grille r\u00e9elle est fix\u00e9e avec l&rsquo;encadrement, jamais devin\u00e9e.<\/p>\n      <\/div>\n    <\/div>\n\n    <div class=\"section\">\n      <div class=\"wrap\">\n        <div class=\"section__head\">\n          <p class=\"section__num\">04<\/p>\n          <h2>Ce que \u00e7a change pour l&rsquo;entreprise<\/h2>\n        <\/div>\n        <p>Un score juste sert d&rsquo;abord les agents. Mais le m\u00eame travail \u2014 rapprocher les fichiers, v\u00e9rifier les taux, documenter la m\u00e9thode \u2014 profite directement \u00e0 l&rsquo;entreprise qui pilote le r\u00e9seau.<\/p>\n        <div class=\"benefits\">\n          <div class=\"benefit-card\">\n            <p class=\"benefit-card__label\">Temps rendu<\/p>\n            <p class=\"benefit-card__text\">Des heures de tableau crois\u00e9 ramen\u00e9es \u00e0 un clic. Les donn\u00e9es sont d\u00e9j\u00e0 rapproch\u00e9es \u2014 plus besoin de reconstituer un rapport \u00e0 la main chaque semaine.<\/p>\n          <\/div>\n          <div class=\"benefit-card\">\n            <p class=\"benefit-card__label\">D\u00e9cisions d\u00e9fendables<\/p>\n            <p class=\"benefit-card__text\">Chaque classement s&rsquo;appuie sur une m\u00e9thode \u00e9crite et des taux v\u00e9rifiables \u2014 plus facile \u00e0 expliquer, et \u00e0 justifier, qu&rsquo;un ressenti.<\/p>\n          <\/div>\n          <div class=\"benefit-card\">\n            <p class=\"benefit-card__label\">Anomalies rep\u00e9r\u00e9es plus t\u00f4t<\/p>\n            <p class=\"benefit-card__text\">Les incoh\u00e9rences dans les donn\u00e9es d&rsquo;exploitation remontent avant de fausser un chiffre, plut\u00f4t que d&rsquo;\u00eatre corrig\u00e9es apr\u00e8s coup.<\/p>\n          <\/div>\n          <div class=\"benefit-card\">\n            <p class=\"benefit-card__label\">Les bons profils valoris\u00e9s<\/p>\n            <p class=\"benefit-card__text\">Un agent r\u00e9gulier et fiable, mais peu visible au quotidien, ressort dans le classement au lieu de rester dans l&rsquo;ombre.<\/p>\n          <\/div>\n          <div class=\"benefit-card\">\n            <p class=\"benefit-card__label\">Classement objectif des agents<\/p>\n            <p class=\"benefit-card__text\">Le classement s&rsquo;appuie sur des taux comparables entre tous, jamais sur un ressenti \u2014 un agent est jug\u00e9 sur ce qu&rsquo;il fait, pas sur le nombre de jours o\u00f9 il a pu le faire.<\/p>\n          <\/div>\n          <div class=\"benefit-card\">\n            <p class=\"benefit-card__label\">Des statistiques pour la rentabilit\u00e9<\/p>\n            <p class=\"benefit-card__text\">En croisant ponctualit\u00e9, incidents et pr\u00e9sence, Vigie fait ressortir ce qui p\u00e8se vraiment sur l&rsquo;exploitation \u2014 de quoi prioriser les actions qui am\u00e9liorent la rentabilit\u00e9 du r\u00e9seau, pas seulement l&rsquo;affichage.<\/p>\n          <\/div>\n          <div class=\"benefit-card benefit-card--wide\">\n            <p class=\"benefit-card__label\">Des TPI recalcul\u00e9s, moins de p\u00e9nalit\u00e9s<\/p>\n            <p class=\"benefit-card__text\">Quand un temps de parcours interm\u00e9diaire est trop g\u00e9n\u00e9reux, les conducteurs se retrouvent en avance malgr\u00e9 eux. Vigie recalcule un TPI r\u00e9aliste \u00e0 partir des temps r\u00e9ellement observ\u00e9s, pour faire baisser le nombre de situations inacceptables \u2014 et les p\u00e9nalit\u00e9s qui vont avec.<\/p>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"section\" style=\"border-bottom: none;\">\n      <div class=\"wrap\">\n        <div class=\"section__head\">\n          <p class=\"section__num\">05<\/p>\n          <h2>Contact<\/h2>\n        <\/div>\n        <p>Une question, une d\u00e9monstration, une ligne \u00e0 ajouter au p\u00e9rim\u00e8tre ? \u00c9crivez directement \u00e0 l&rsquo;adresse ci-dessous.<\/p>\n        <div class=\"table-frame contact-frame\">\n          <p class=\"table-frame__tag\">\u00c9crire \u00e0 Vigie<\/p>\n          <div class=\"contact-frame__body\">\n            <a class=\"contact-frame__email\" href=\"mailto:contact@vigie-code.com\">contact@vigie-code.com<\/a>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"foot\">\n      <div class=\"wrap\">\n        <div class=\"foot__grid\">\n          <div class=\"foot__mark\">VIG<span>I<\/span>E<\/div>\n          <div class=\"foot__meta\">Outil interne \u2014 r\u00e9seau de surface<br>Page de pr\u00e9sentation \u2014 ao\u00fbt 2026<\/div>\n        <\/div>\n        <p class=\"foot__line\">Un outil pens\u00e9 pour les \u00e9quipes qui le vivent au quotidien.<\/p>\n      <\/div>\n    <\/div>\n  <\/main>\n<\/div>\n\n<div class=\"demo-popup\" id=\"demoPopup\" hidden>\n  <button class=\"demo-popup__close\" id=\"demoPopupClose\" aria-label=\"Fermer\">\u2715<\/button>\n  <p class=\"demo-popup__eyebrow\">Vigie<\/p>\n  <p class=\"demo-popup__text\">Envie de voir Vigie sur vos propres donn\u00e9es ? R\u00e9servez une courte d\u00e9monstration.<\/p>\n  <a class=\"demo-popup__cta\" href=\"mailto:contact@vigie-code.com?subject=Demande%20de%20d%C3%A9monstration%20Vigie&amp;body=Bonjour%2C%0A%0AJe%20souhaiterais%20r%C3%A9server%20une%20d%C3%A9monstration%20de%20Vigie.%0A%0A\">R\u00e9server une d\u00e9mo<\/a>\n<\/div>\n<script>\n(function () {\n  \/\/ n'affiche la bulle qu'une fois par session de navigation (pas a\n  \/\/ chaque page\/rechargement pendant la meme visite) \u2014 persiste via\n  \/\/ sessionStorage, jamais gene si indisponible (navigation privee...)\n  var dejaAffichee = false;\n  try { dejaAffichee = sessionStorage.getItem('vigieDemoPopupShown') === '1'; } catch (e) {}\n  if (dejaAffichee) return;\n\n  var popup = document.getElementById('demoPopup');\n  var fermer = document.getElementById('demoPopupClose');\n  if (!popup || !fermer) return;\n\n  window.setTimeout(function () {\n    popup.hidden = false;\n    try { sessionStorage.setItem('vigieDemoPopupShown', '1'); } catch (e) {}\n  }, 6000);\n\n  fermer.addEventListener('click', function () {\n    popup.hidden = true;\n  });\n})();\n<\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Vigie Contact Outil d&rsquo;aide \u00e0 la supervision et \u00e0 la prise de d\u00e9cision pour g\u00e9rer les transports en commun VIGIE Voir venir, avant que \u00e7a n&rsquo;arrive. Vigie rassemble la ponctualit\u00e9, les incidents et la pr\u00e9sence des \u00e9quipes en un seul rep\u00e8re lisible \u2014 pour piloter un r\u00e9seau de lignes de bus sans se noyer dans [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"vitrine-pleine-page","meta":{"footnotes":""},"class_list":["post-6","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vigie-code.com\/index.php\/wp-json\/wp\/v2\/pages\/6","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vigie-code.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vigie-code.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vigie-code.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vigie-code.com\/index.php\/wp-json\/wp\/v2\/comments?post=6"}],"version-history":[{"count":11,"href":"https:\/\/vigie-code.com\/index.php\/wp-json\/wp\/v2\/pages\/6\/revisions"}],"predecessor-version":[{"id":31,"href":"https:\/\/vigie-code.com\/index.php\/wp-json\/wp\/v2\/pages\/6\/revisions\/31"}],"wp:attachment":[{"href":"https:\/\/vigie-code.com\/index.php\/wp-json\/wp\/v2\/media?parent=6"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}