{"id":44469,"date":"2026-06-08T17:42:00","date_gmt":"2026-06-08T12:12:00","guid":{"rendered":"https:\/\/www.verdantis.com\/?p=44469"},"modified":"2026-06-12T14:53:09","modified_gmt":"2026-06-12T09:23:09","slug":"maintenance-demand-forecasting","status":"publish","type":"post","link":"https:\/\/www.verdantis.com\/fr\/mro360\/maintenance-demand-forecasting\/","title":{"rendered":"Logiciel de pr\u00e9vision de la demande de maintenance"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"44469\" class=\"elementor elementor-44469\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7a38daa e-flex e-con-boxed e-con e-parent\" data-id=\"7a38daa\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1cbd999 elementor-widget elementor-widget-html\" data-id=\"1cbd999\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\r\n     MRO360 | Maintenance Demand Forecasting \u2014 SECTION 01: HERO\r\n     Elementor: paste into a single Custom HTML widget.\r\n     All CSS scoped under .vd-mdf-hero (no :root).\r\n     Target keyword: maintenance demand forecasting (H1)\r\n============================================================ -->\r\n<div class=\"vd-mdf-hero\">\r\n  <style>\r\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Open+Sans:wght@400;500;600;700;800&family=Roboto+Slab:wght@500;700&display=swap');\r\n\r\n    .vd-mdf-hero{\r\n      margin-left:calc(50% - 50vw);\r\n      margin-right:calc(50% - 50vw);\r\n      width:100vw;\r\n      box-sizing:border-box;\r\n      font-family:'Open Sans',Arial,sans-serif;\r\n      background:\r\n        radial-gradient(1100px 520px at 78% -10%, rgba(250,132,26,.18), transparent 60%),\r\n        linear-gradient(135deg,#024089 0%,#004DA9 58%,#003a82 100%);\r\n      color:#fff;\r\n      padding:0;\r\n      overflow:hidden;\r\n    }\r\n    .vd-mdf-hero *{box-sizing:border-box;}\r\n    .vd-mdf-hero .wrap{\r\n      max-width:1180px;margin:0 auto;\r\n      padding:88px 24px 96px;\r\n      display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;\r\n    }\r\n    .vd-mdf-hero .eyebrow{\r\n      display:inline-flex;align-items:center;gap:9px;\r\n      font-size:13px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;\r\n      color:#FFC619;margin:0 0 18px;\r\n    }\r\n    .vd-mdf-hero .eyebrow::before{content:\"\";width:26px;height:2px;background:#FA841A;border-radius:2px;}\r\n    .vd-mdf-hero h1{\r\n      font-size:clamp(33px,4.4vw,52px);line-height:1.08;font-weight:800;margin:0 0 20px;letter-spacing:-.01em;\r\n    }\r\n    .vd-mdf-hero h1 span{color:#FDA300;}\r\n    .vd-mdf-hero p.lead{\r\n      font-size:clamp(16px,1.7vw,19px);line-height:1.62;color:#e8eefb;max-width:560px;margin:0 0 30px;\r\n    }\r\n    .vd-mdf-hero .cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:34px;}\r\n    .vd-mdf-hero a.btn{\r\n      text-decoration:none;font-weight:700;font-size:15px;border-radius:9px;padding:15px 28px;display:inline-flex;align-items:center;gap:9px;transition:transform .15s ease,box-shadow .15s ease;\r\n    }\r\n    .vd-mdf-hero a.btn-primary{background:#FA841A;color:#1A2434;box-shadow:0 10px 26px rgba(250,132,26,.34);}\r\n    .vd-mdf-hero a.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(250,132,26,.45);}\r\n    .vd-mdf-hero a.btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.45);}\r\n    .vd-mdf-hero a.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);}\r\n    .vd-mdf-hero .chips{display:flex;flex-wrap:wrap;gap:10px;}\r\n    .vd-mdf-hero .chip{\r\n      font-size:12.5px;font-weight:600;color:#dbe6fb;background:rgba(255,255,255,.10);\r\n      border:1px solid rgba(255,255,255,.18);border-radius:30px;padding:7px 15px;\r\n    }\r\n\r\n    \/* Right-side forecast panel *\/\r\n    .vd-mdf-hero .panel{\r\n      background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.16);\r\n      border-radius:18px;padding:24px;backdrop-filter:blur(6px);\r\n      box-shadow:0 24px 60px rgba(0,0,0,.28);\r\n    }\r\n    .vd-mdf-hero .panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}\r\n    .vd-mdf-hero .panel-head .t{font-size:14px;font-weight:700;color:#fff;}\r\n    .vd-mdf-hero .panel-head .t small{display:block;font-weight:500;color:#aebfe0;font-size:11.5px;margin-top:2px;}\r\n    .vd-mdf-hero .toggle{display:flex;background:rgba(0,0,0,.22);border-radius:7px;padding:3px;}\r\n    .vd-mdf-hero .toggle span{font-size:11px;font-weight:700;padding:5px 11px;border-radius:5px;color:#aebfe0;}\r\n    .vd-mdf-hero .toggle span.on{background:#FA841A;color:#1A2434;}\r\n    .vd-mdf-hero .bars{display:flex;align-items:flex-end;gap:10px;height:148px;padding:6px 2px 0;}\r\n    .vd-mdf-hero .bars .b{flex:1;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#4d8ce0,#1f63bd);position:relative;}\r\n    .vd-mdf-hero .bars .b.high{background:linear-gradient(180deg,#FFC619,#FA841A);}\r\n    .vd-mdf-hero .bars .b .lab{position:absolute;top:-19px;left:0;right:0;text-align:center;font-size:10px;font-weight:700;color:#FFC619;}\r\n    .vd-mdf-hero .months{display:flex;gap:10px;margin-top:8px;}\r\n    .vd-mdf-hero .months span{flex:1;text-align:center;font-size:10.5px;color:#9fb2da;font-weight:600;}\r\n    .vd-mdf-hero .legend{display:flex;gap:16px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12);}\r\n    .vd-mdf-hero .legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px;}\r\n    .vd-mdf-hero .legend div{font-size:11.5px;color:#cdd9f2;font-weight:600;}\r\n\r\n    @media(max-width:900px){\r\n      .vd-mdf-hero .wrap{grid-template-columns:1fr;gap:40px;padding:64px 22px 70px;}\r\n      .vd-mdf-hero .panel{order:2;}\r\n    }\r\n  <\/style>\r\n\r\n  <div class=\"wrap\">\r\n    <div class=\"copy\">\r\n      <p class=\"eyebrow\">MRO360 \u00b7 AI-Native MRO Intelligence<\/p>\r\n      <h1 id=\"maintenance-demand-forecasting-that-reads-the-full-failure-signal-not-just-history\">Maintenance Demand Forecasting that reads the <span>full failure signal<\/span>, not just history<\/h1>\r\n      <p class=\"lead\">MRO360 forecasts spare-parts demand from equipment maintenance history, root-cause notes, operating hours and live work orders, then projects both preventive and corrective requirements per SKU, per plant.<\/p>\r\n      <div class=\"cta-row\">\r\n        <a class=\"btn btn-primary\" href=\"#vd-mdf-demo\">See a 6-month forecast \u2192<\/a>\r\n        <a class=\"btn btn-ghost\" href=\"#vd-mdf-engine\">How the engine works<\/a>\r\n      <\/div>\r\n      <div class=\"chips\">\r\n        <span class=\"chip\">Multivariate, not historical-only<\/span>\r\n        <span class=\"chip\">Preventive + corrective demand<\/span>\r\n        <span class=\"chip\">Auto-selected AI model<\/span>\r\n        <span class=\"chip\">Works above your ERP \/ CMMS<\/span>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"panel\" aria-hidden=\"true\">\r\n      <div class=\"panel-head\">\r\n        <div class=\"t\">Forecasted demand \u00b7 SKU 10-BRG-4471<small>Next 6 months \u00b7 units<\/small><\/div>\r\n        <div class=\"toggle\"><span class=\"on\">Mensuel<\/span><span>Weekly<\/span><\/div>\r\n      <\/div>\r\n      <div class=\"bars\">\r\n        <div class=\"b\" style=\"height:46%\"><\/div>\r\n        <div class=\"b high\" style=\"height:88%\"><span class=\"lab\">HIGH<\/span><\/div>\r\n        <div class=\"b\" style=\"height:52%\"><\/div>\r\n        <div class=\"b\" style=\"height:34%\"><\/div>\r\n        <div class=\"b high\" style=\"height:78%\"><span class=\"lab\">HIGH<\/span><\/div>\r\n        <div class=\"b\" style=\"height:40%\"><\/div>\r\n      <\/div>\r\n      <div class=\"months\"><span>Jul<\/span><span>Aug<\/span><span>Sep<\/span><span>Oct<\/span><span>Nov<\/span><span>Dec<\/span><\/div>\r\n      <div class=\"legend\">\r\n        <div><i style=\"background:#1f63bd\"><\/i>Baseline demand<\/div>\r\n        <div><i style=\"background:#FA841A\"><\/i>Forecasted peak<\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b5a5772 elementor-widget elementor-widget-html\" data-id=\"b5a5772\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\r\n     SECTION 02: WHAT IS MAINTENANCE DEMAND FORECASTING\r\n     Captures informational semantic relevance (\"what is demand\r\n     forecasting\") in a CONTAINED way, then internal-links to the\r\n     full pillar article. Scoped under .vd-mdf-what\r\n     INTERNAL LINK TODO: confirm slug for the demand-forecasting pillar article.\r\n============================================================ -->\r\n<div class=\"vd-mdf-what\">\r\n  <style>\r\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Open+Sans:wght@400;500;600;700;800&display=swap');\r\n    .vd-mdf-what{font-family:'Open Sans',Arial,sans-serif;background:#ffffff;padding:78px 0;}\r\n    .vd-mdf-what *{box-sizing:border-box;}\r\n    .vd-mdf-what .wrap{max-width:1060px;margin:0 auto;padding:0 24px;}\r\n    .vd-mdf-what .grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}\r\n    .vd-mdf-what .eyebrow{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#FA841A;margin:0 0 14px;}\r\n    .vd-mdf-what h2{font-size:clamp(26px,3vw,34px);line-height:1.16;font-weight:800;color:#1A2434;margin:0 0 18px;letter-spacing:-.01em;}\r\n    .vd-mdf-what p{font-size:16px;line-height:1.68;color:#384152;margin:0 0 16px;}\r\n    .vd-mdf-what p a{color:#004DA9;font-weight:700;text-decoration:none;border-bottom:2px solid rgba(0,77,169,.25);}\r\n    .vd-mdf-what p a:hover{border-bottom-color:#004DA9;}\r\n    .vd-mdf-what .def{\r\n      background:linear-gradient(180deg,#f4f8ff,#eef4fe);border:1px solid #d8e4f7;border-left:4px solid #FA841A;\r\n      border-radius:12px;padding:24px 26px;\r\n    }\r\n    .vd-mdf-what .def h3{font-size:15px;font-weight:800;color:#024089;margin:0 0 10px;text-transform:uppercase;letter-spacing:.04em;}\r\n    .vd-mdf-what .def p{font-size:15.5px;color:#2b3445;margin:0;}\r\n    .vd-mdf-what .vs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px;}\r\n    .vd-mdf-what .vs .card{background:#fff;border:1px solid #e1e3e7;border-radius:10px;padding:16px 16px 14px;}\r\n    .vd-mdf-what .vs .card .tag{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px;}\r\n    .vd-mdf-what .vs .card.gen .tag{color:#8a93a3;}\r\n    .vd-mdf-what .vs .card.mro .tag{color:#FA841A;}\r\n    .vd-mdf-what .vs .card p{font-size:13.5px;line-height:1.55;color:#46505f;margin:0;}\r\n    @media(max-width:840px){.vd-mdf-what .grid{grid-template-columns:1fr;gap:32px;}.vd-mdf-what .vs{grid-template-columns:1fr;}}\r\n  <\/style>\r\n\r\n  <div class=\"wrap\">\r\n    <div class=\"grid\">\r\n      <div>\r\n        <p class=\"eyebrow\">The fundamentals<\/p>\r\n        <h2 id=\"what-is-maintenance-demand-forecasting\">What is maintenance demand forecasting?<\/h2>\r\n        <p>Maintenance demand forecasting is the process of predicting how many spare parts and consumables a facility will need over a future period, so inventory is available the moment a work order calls for it, without tying up working capital in parts that sit idle.<\/p>\r\n        <p>In an MRO context it is harder than retail or production forecasting, because demand is driven by equipment failure and maintenance events, not steady consumption. Two identical parts can carry very different demand depending on the asset they support, its age and its failure history.<\/p>\r\n      <\/div>\r\n\r\n      <div>\r\n        <div class=\"def\">\r\n          <h3 id=\"in-one-line\">In one line<\/h3>\r\n          <p>Demand forecasting predicts <strong>future part consumption<\/strong>; in maintenance, that consumption is a function of <strong>asset condition and maintenance activity<\/strong>, not just past usage.<\/p>\r\n        <\/div>\r\n        <div class=\"vs\">\r\n          <div class=\"card gen\">\r\n            <p class=\"tag\">General forecasting<\/p>\r\n            <p>Projects future demand from historical sales or usage trends and seasonality.<\/p>\r\n          <\/div>\r\n          <div class=\"card mro\">\r\n            <p class=\"tag\">MRO forecasting<\/p>\r\n            <p>Adds failure modes, work orders, operating hours and criticality to predict when a part is actually needed.<\/p>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a403a1f elementor-widget elementor-widget-html\" data-id=\"a403a1f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\r\n     SECTION 03: WHY HISTORICAL-ONLY FORECASTING FAILS IN MRO\r\n     Problem framing \/ differentiation. Scoped under .vd-mdf-why\r\n============================================================ -->\r\n<div class=\"vd-mdf-why\">\r\n  <style>\r\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Open+Sans:wght@400;500;600;700;800&display=swap');\r\n    .vd-mdf-why{\r\n      margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;\r\n      font-family:'Open Sans',Arial,sans-serif;background:#1A2434;color:#fff;padding:84px 0;\r\n    }\r\n    .vd-mdf-why *{box-sizing:border-box;}\r\n    .vd-mdf-why .wrap{max-width:1140px;margin:0 auto;padding:0 24px;}\r\n    .vd-mdf-why .head{max-width:720px;margin:0 0 44px;}\r\n    .vd-mdf-why .eyebrow{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#FFC619;margin:0 0 14px;}\r\n    .vd-mdf-why h2{font-size:clamp(26px,3.2vw,38px);line-height:1.14;font-weight:800;margin:0 0 16px;letter-spacing:-.01em;}\r\n    .vd-mdf-why h2 em{font-style:normal;color:#FDA300;}\r\n    .vd-mdf-why .head p{font-size:16.5px;line-height:1.64;color:#c3cbd9;margin:0;}\r\n    .vd-mdf-why .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}\r\n    .vd-mdf-why .card{\r\n      background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:26px 24px;\r\n      transition:transform .18s ease,border-color .18s ease;\r\n    }\r\n    .vd-mdf-why .card:hover{transform:translateY(-4px);border-color:rgba(250,132,26,.6);}\r\n    .vd-mdf-why .card .n{font-family:'Open Sans';font-size:13px;font-weight:800;color:#FA841A;letter-spacing:.08em;margin:0 0 14px;}\r\n    .vd-mdf-why .card h3{font-size:18px;font-weight:700;margin:0 0 10px;color:#fff;}\r\n    .vd-mdf-why .card p{font-size:14.5px;line-height:1.6;color:#aeb8c7;margin:0;}\r\n    .vd-mdf-why .pull{\r\n      margin-top:36px;padding:22px 26px;border-radius:12px;\r\n      background:linear-gradient(120deg,rgba(0,77,169,.4),rgba(250,132,26,.16));\r\n      border:1px solid rgba(255,255,255,.14);font-size:17px;line-height:1.55;font-weight:600;color:#fff;\r\n    }\r\n    .vd-mdf-why .pull strong{color:#FFC619;}\r\n    @media(max-width:860px){.vd-mdf-why .cards{grid-template-columns:1fr;}}\r\n  <\/style>\r\n\r\n  <div class=\"wrap\">\r\n    <div class=\"head\">\r\n      <p class=\"eyebrow\">The core problem<\/p>\r\n      <h2 id=\"a-parts-history-rarely-predicts-when-it-will-fail-next\">A part's history rarely predicts <em>when it will fail next<\/em><\/h2>\r\n      <p>Traditional demand planning leans on time-series models built on past consumption. That works for steady, predictable usage. Maintenance demand is not steady: it is driven by failure events, turnarounds and asset condition, so history alone consistently misses the spikes that matter.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"cards\">\r\n      <div class=\"card\">\r\n        <p class=\"n\">01<\/p>\r\n        <h3 id=\"spikes-hide-in-the-average\">Spikes hide in the average<\/h3>\r\n        <p>Smoothed historical models flatten the corrective-maintenance spikes that actually cause stockouts, so safety stock is set against a demand curve the equipment never follows.<\/p>\r\n      <\/div>\r\n      <div class=\"card\">\r\n        <p class=\"n\">02<\/p>\r\n        <h3 id=\"identical-parts-different-demand\">Identical parts, different demand<\/h3>\r\n        <p>The same SKU behaves differently on an ageing single-train asset than on a redundant one. Usage history cannot see that context; failure data and criticality can.<\/p>\r\n      <\/div>\r\n      <div class=\"card\">\r\n        <p class=\"n\">03<\/p>\r\n        <h3 id=\"planned-and-unplanned-are-blended\">Planned and unplanned are blended<\/h3>\r\n        <p>Lumping preventive and corrective consumption into one number obscures both. The reorder logic ends up wrong for each because it was right for neither.<\/p>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"pull\">Most stockouts are not inventory failures. They are <strong>information failures<\/strong>: the data to forecast the demand already exists in your ERP, CMMS and maintenance records.<\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4214a99 elementor-widget elementor-widget-html\" data-id=\"4214a99\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\r\n     SECTION 04: THE MULTIVARIATE SIGNAL ENGINE\r\n     The heart of the page. Pulls directly from the demo script:\r\n     maintenance history, long\/short tag, maintenance notes, RCA,\r\n     install date, operating hours + ERP consumption signals.\r\n     Scoped under .vd-mdf-engine  (anchor id=\"vd-mdf-engine\")\r\n============================================================ -->\r\n<div class=\"vd-mdf-engine\" id=\"vd-mdf-engine\">\r\n  <style>\r\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Open+Sans:wght@400;500;600;700;800&display=swap');\r\n    .vd-mdf-engine{font-family:'Open Sans',Arial,sans-serif;background:#f6f8fb;padding:84px 0;}\r\n    .vd-mdf-engine *{box-sizing:border-box;}\r\n    .vd-mdf-engine .wrap{max-width:1140px;margin:0 auto;padding:0 24px;}\r\n    .vd-mdf-engine .head{text-align:center;max-width:760px;margin:0 auto 50px;}\r\n    .vd-mdf-engine .eyebrow{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#FA841A;margin:0 0 14px;}\r\n    .vd-mdf-engine h2{font-size:clamp(26px,3.2vw,36px);line-height:1.14;font-weight:800;color:#1A2434;margin:0 0 16px;letter-spacing:-.01em;}\r\n    .vd-mdf-engine .head p{font-size:16.5px;line-height:1.64;color:#46505f;margin:0;}\r\n\r\n    .vd-mdf-engine .flow{display:grid;grid-template-columns:1fr auto 1fr;gap:30px;align-items:center;}\r\n    .vd-mdf-engine .signals{display:grid;grid-template-columns:1fr 1fr;gap:12px;}\r\n    .vd-mdf-engine .sig{background:#fff;border:1px solid #e1e3e7;border-radius:11px;padding:15px 15px 13px;box-shadow:0 2px 10px rgba(26,36,52,.04);}\r\n    .vd-mdf-engine .sig .ico{width:34px;height:34px;border-radius:8px;background:#eef4fe;display:flex;align-items:center;justify-content:center;margin-bottom:10px;}\r\n    .vd-mdf-engine .sig .ico svg{width:18px;height:18px;stroke:#004DA9;fill:none;stroke-width:2;}\r\n    .vd-mdf-engine .sig h4{font-size:14px;font-weight:700;color:#1A2434;margin:0 0 4px;}\r\n    .vd-mdf-engine .sig p{font-size:12.5px;line-height:1.5;color:#5a6472;margin:0;}\r\n\r\n    .vd-mdf-engine .arrow{display:flex;flex-direction:column;align-items:center;gap:10px;}\r\n    .vd-mdf-engine .arrow .core{\r\n      width:120px;height:120px;border-radius:22px;\r\n      background:linear-gradient(140deg,#024089,#004DA9);color:#fff;\r\n      display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;\r\n      box-shadow:0 18px 40px rgba(0,77,169,.34);padding:12px;\r\n    }\r\n    .vd-mdf-engine .arrow .core b{font-size:13px;font-weight:800;line-height:1.2;}\r\n    .vd-mdf-engine .arrow .core span{font-size:10.5px;color:#cfe0fb;margin-top:5px;}\r\n    .vd-mdf-engine .arrow .dash{font-size:22px;color:#FA841A;font-weight:800;}\r\n\r\n    .vd-mdf-engine .out{background:#fff;border:1px solid #d8e4f7;border-top:4px solid #FA841A;border-radius:14px;padding:24px;}\r\n    .vd-mdf-engine .out h3{font-size:16px;font-weight:800;color:#024089;margin:0 0 14px;}\r\n    .vd-mdf-engine .out .line{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed #e6ebf3;}\r\n    .vd-mdf-engine .out .line:last-child{border-bottom:0;}\r\n    .vd-mdf-engine .out .line b{font-size:14px;color:#1A2434;font-weight:700;}\r\n    .vd-mdf-engine .out .line span{font-size:12.5px;color:#6a7585;margin-left:auto;font-weight:600;}\r\n    .vd-mdf-engine .out .dot{width:9px;height:9px;border-radius:50%;background:#FA841A;flex:none;}\r\n\r\n    @media(max-width:920px){\r\n      .vd-mdf-engine .flow{grid-template-columns:1fr;gap:26px;}\r\n      .vd-mdf-engine .arrow{flex-direction:row;}\r\n      .vd-mdf-engine .arrow .dash{transform:rotate(90deg);}\r\n    }\r\n    @media(max-width:520px){.vd-mdf-engine .signals{grid-template-columns:1fr;}}\r\n  <\/style>\r\n\r\n  <div class=\"wrap\">\r\n    <div class=\"head\">\r\n      <p class=\"eyebrow\">How MRO360 forecasts<\/p>\r\n      <h2 id=\"a-multivariate-engine-not-a-usage-chart\">A multivariate engine, not a usage chart<\/h2>\r\n      <p>MRO360 looks well beyond historical consumption. It reads the equipment's maintenance record, the engineer's own notes, root-cause analyses, age and runtime, then combines every signal into a demand figure per SKU.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"flow\">\r\n      <!-- inputs -->\r\n      <div class=\"signals\">\r\n        <div class=\"sig\">\r\n          <div class=\"ico\"><svg viewbox=\"0 0 24 24\"><path d=\"M3 3v18h18\"\/><path d=\"M7 14l4-4 3 3 5-6\"\/><\/svg><\/div>\r\n          <h4>Consommation historique<\/h4>\r\n          <p>Goods movement and usage from the materials and inventory modules.<\/p>\r\n        <\/div>\r\n        <div class=\"sig\">\r\n          <div class=\"ico\"><svg viewbox=\"0 0 24 24\"><path d=\"M4 4h16v4H4z\"\/><path d=\"M4 12h10M4 16h7\"\/><\/svg><\/div>\r\n          <h4>Equipment maintenance history<\/h4>\r\n          <p>Past failures, repairs and replacement events on each asset.<\/p>\r\n        <\/div>\r\n        <div class=\"sig\">\r\n          <div class=\"ico\"><svg viewbox=\"0 0 24 24\"><path d=\"M14 3v5h5\"\/><path d=\"M5 3h9l5 5v13H5z\"\/><path d=\"M8 13h7M8 17h5\"\/><\/svg><\/div>\r\n          <h4>Long &amp; short tag \u00b7 notes<\/h4>\r\n          <p>Free-text maintenance notes describing why the equipment failed.<\/p>\r\n        <\/div>\r\n        <div class=\"sig\">\r\n          <div class=\"ico\"><svg viewbox=\"0 0 24 24\"><circle cx=\"11\" cy=\"11\" r=\"7\"\/><path d=\"M21 21l-4-4\"\/><\/svg><\/div>\r\n          <h4>Root-cause analysis<\/h4>\r\n          <p>Documented failure causes that signal recurrence risk.<\/p>\r\n        <\/div>\r\n        <div class=\"sig\">\r\n          <div class=\"ico\"><svg viewbox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"17\" rx=\"2\"\/><path d=\"M3 9h18M8 2v4M16 2v4\"\/><\/svg><\/div>\r\n          <h4>Installation date<\/h4>\r\n          <p>Asset age and lifecycle position relative to expected failure.<\/p>\r\n        <\/div>\r\n        <div class=\"sig\">\r\n          <div class=\"ico\"><svg viewbox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 3\"\/><\/svg><\/div>\r\n          <h4>Operating hours<\/h4>\r\n          <p>Actual runtime that drives wear and time-to-failure estimates.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- core -->\r\n      <div class=\"arrow\">\r\n        <div class=\"dash\">\u2192<\/div>\r\n        <div class=\"core\"><b>MRO360<br>Forecast Engine<\/b><span>Agentic AI over statistical baseline<\/span><\/div>\r\n        <div class=\"dash\">\u2192<\/div>\r\n      <\/div>\r\n\r\n      <!-- output -->\r\n      <div class=\"out\">\r\n        <h3 id=\"demand-forecast-per-sku\">Demand forecast per SKU<\/h3>\r\n        <div class=\"line\"><span class=\"dot\"><\/span><b>Preventive demand<\/b><span>scheduled<\/span><\/div>\r\n        <div class=\"line\"><span class=\"dot\"><\/span><b>Corrective demand<\/b><span>failure-driven<\/span><\/div>\r\n        <div class=\"line\"><span class=\"dot\"><\/span><b>6-month projection<\/b><span>monthly + weekly<\/span><\/div>\r\n        <div class=\"line\"><span class=\"dot\"><\/span><b>Highs &amp; lows flagged<\/b><span>per period<\/span><\/div>\r\n        <div class=\"line\"><span class=\"dot\"><\/span><b>Plant-level &amp; global<\/b><span>roll-up<\/span><\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e26f8f0 elementor-widget elementor-widget-html\" data-id=\"e26f8f0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\r\n     SECTION 05: DUAL-ENGINE + MULTIPLE AI MODELS, AUTO-SELECTED\r\n     From script: \"multiple AI models available... system auto\r\n     recommends the best available AI model for your domain.\"\r\n     Plus PDF Module 06 dual-engine framing. Scoped .vd-mdf-models\r\n============================================================ -->\r\n<div class=\"vd-mdf-models\">\r\n  <style>\r\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Open+Sans:wght@400;500;600;700;800&display=swap');\r\n    .vd-mdf-models{\r\n      margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;\r\n      font-family:'Open Sans',Arial,sans-serif;\r\n      background:linear-gradient(135deg,#024089,#004DA9);color:#fff;padding:84px 0;\r\n    }\r\n    .vd-mdf-models *{box-sizing:border-box;}\r\n    .vd-mdf-models .wrap{max-width:1140px;margin:0 auto;padding:0 24px;}\r\n    .vd-mdf-models .head{max-width:740px;margin:0 0 46px;}\r\n    .vd-mdf-models .eyebrow{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#FFC619;margin:0 0 14px;}\r\n    .vd-mdf-models h2{font-size:clamp(26px,3.2vw,36px);line-height:1.14;font-weight:800;margin:0 0 16px;letter-spacing:-.01em;}\r\n    .vd-mdf-models .head p{font-size:16.5px;line-height:1.64;color:#d6e2f7;margin:0;}\r\n\r\n    .vd-mdf-models .duo{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:34px;}\r\n    .vd-mdf-models .eng{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:26px;}\r\n    .vd-mdf-models .eng .badge{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:5px 11px;border-radius:20px;margin-bottom:14px;}\r\n    .vd-mdf-models .eng.stat .badge{background:rgba(255,255,255,.16);color:#fff;}\r\n    .vd-mdf-models .eng.ai .badge{background:#FA841A;color:#1A2434;}\r\n    .vd-mdf-models .eng h3{font-size:19px;font-weight:700;margin:0 0 10px;}\r\n    .vd-mdf-models .eng p{font-size:14.5px;line-height:1.6;color:#cdd9ef;margin:0;}\r\n\r\n    .vd-mdf-models .auto{\r\n      background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.14);border-radius:14px;\r\n      padding:28px;display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:center;\r\n    }\r\n    .vd-mdf-models .auto h3{font-size:21px;font-weight:800;margin:0 0 12px;}\r\n    .vd-mdf-models .auto h3 span{color:#FFC619;}\r\n    .vd-mdf-models .auto p{font-size:15px;line-height:1.6;color:#d6e2f7;margin:0;}\r\n    .vd-mdf-models .picker{background:#fff;border-radius:11px;padding:16px;color:#1A2434;box-shadow:0 16px 40px rgba(0,0,0,.3);}\r\n    .vd-mdf-models .picker .pk{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:8px;margin-bottom:8px;border:1px solid #e1e3e7;font-size:13px;font-weight:600;}\r\n    .vd-mdf-models .picker .pk:last-child{margin-bottom:0;}\r\n    .vd-mdf-models .picker .pk.best{border-color:#FA841A;background:#fff7ee;}\r\n    .vd-mdf-models .picker .pk .mname{flex:1;}\r\n    .vd-mdf-models .picker .pk .acc{font-size:12px;font-weight:800;color:#024089;}\r\n    .vd-mdf-models .picker .pk.best .acc{color:#FA841A;}\r\n    .vd-mdf-models .picker .pk .star{color:#FA841A;font-weight:800;}\r\n    .vd-mdf-models .picker .pk .mut{color:#9aa3b1;}\r\n    .vd-mdf-models .picker .cap{font-size:11px;color:#8a93a3;margin:10px 2px 0;font-weight:600;}\r\n    @media(max-width:860px){.vd-mdf-models .duo{grid-template-columns:1fr;}.vd-mdf-models .auto{grid-template-columns:1fr;gap:22px;}}\r\n  <\/style>\r\n\r\n  <div class=\"wrap\">\r\n    <div class=\"head\">\r\n      <p class=\"eyebrow\">The forecasting models<\/p>\r\n      <h2 id=\"two-engines-working-together-with-the-right-ai-model-chosen-for-you\">Two engines working together, with the right AI model chosen for you<\/h2>\r\n      <p>A statistical engine sets the structural baseline. An AI engine adds context and pattern recognition: turnaround spikes, correlated failures and seasonal signals the math alone would miss.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"duo\">\r\n      <div class=\"eng stat\">\r\n        <span class=\"badge\">Engine 1<\/span>\r\n        <h3 id=\"statistical-baseline\">Statistical baseline<\/h3>\r\n        <p>Proven time-series and consumption-based models establish the structural demand pattern from historical usage, the dependable floor every forecast builds on.<\/p>\r\n      <\/div>\r\n      <div class=\"eng ai\">\r\n        <span class=\"badge\">Engine 2<\/span>\r\n        <h3 id=\"agentic-ai-context-layer\">Agentic AI context layer<\/h3>\r\n        <p>Purpose-trained models overlay failure history, maintenance notes and work-order signals, refining the baseline with the operational context unique to your plants.<\/p>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"auto\">\r\n      <div>\r\n        <h3 id=\"multiple-models-one-auto-recommended-fit\">Multiple models. <span>One auto-recommended fit.<\/span><\/h3>\r\n        <p>MRO360 carries multiple AI models and evaluates which performs best for your domain and your data, then recommends it automatically. No manual model tuning required, and the choice is always transparent.<\/p>\r\n      <\/div>\r\n      <div class=\"picker\" aria-hidden=\"true\">\r\n        <div class=\"pk best\"><span class=\"star\">\u2605<\/span><span class=\"mname\">Auto-recommended for your domain<\/span><span class=\"acc\">Best fit<\/span><\/div>\r\n        <div class=\"pk\"><span class=\"mut\">\u25cb<\/span><span class=\"mname\">Gradient-boosted model<\/span><span class=\"acc\">Alt<\/span><\/div>\r\n        <div class=\"pk\"><span class=\"mut\">\u25cb<\/span><span class=\"mname\">Time-series + intermittent demand<\/span><span class=\"acc\">Alt<\/span><\/div>\r\n        <p class=\"cap\">System auto-selects \u00b7 override available to your planners<\/p>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2149e53 elementor-widget elementor-widget-html\" data-id=\"2149e53\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\r\n     SECTION 06: PREVENTIVE + CORRECTIVE DEMAND\r\n     From script: forecast \"consists not only for preventive as\r\n     well as corrective orders\". PDF: planned\/corrective\/emergency\r\n     forecasted independently. Scoped under .vd-mdf-types\r\n============================================================ -->\r\n<div class=\"vd-mdf-types\">\r\n  <style>\r\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Open+Sans:wght@400;500;600;700;800&display=swap');\r\n    .vd-mdf-types{font-family:'Open Sans',Arial,sans-serif;background:#ffffff;padding:84px 0;}\r\n    .vd-mdf-types *{box-sizing:border-box;}\r\n    .vd-mdf-types .wrap{max-width:1120px;margin:0 auto;padding:0 24px;}\r\n    .vd-mdf-types .head{max-width:740px;margin:0 0 44px;}\r\n    .vd-mdf-types .eyebrow{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#FA841A;margin:0 0 14px;}\r\n    .vd-mdf-types h2{font-size:clamp(26px,3.2vw,36px);line-height:1.14;font-weight:800;color:#1A2434;margin:0 0 16px;letter-spacing:-.01em;}\r\n    .vd-mdf-types .head p{font-size:16.5px;line-height:1.64;color:#46505f;margin:0;}\r\n    .vd-mdf-types .row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}\r\n    .vd-mdf-types .t{border-radius:14px;padding:26px 24px;border:1px solid #e1e3e7;position:relative;overflow:hidden;}\r\n    .vd-mdf-types .t::before{content:\"\";position:absolute;top:0;left:0;right:0;height:4px;}\r\n    .vd-mdf-types .t.prev::before{background:#004DA9;}\r\n    .vd-mdf-types .t.corr::before{background:#FA841A;}\r\n    .vd-mdf-types .t.emer::before{background:#FFC619;}\r\n    .vd-mdf-types .t .tag{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;margin:0 0 12px;}\r\n    .vd-mdf-types .t.prev .tag{color:#004DA9;}\r\n    .vd-mdf-types .t.corr .tag{color:#FA841A;}\r\n    .vd-mdf-types .t.emer .tag{color:#d99500;}\r\n    .vd-mdf-types .t h3{font-size:19px;font-weight:700;color:#1A2434;margin:0 0 10px;}\r\n    .vd-mdf-types .t p{font-size:14.5px;line-height:1.6;color:#4d5765;margin:0 0 14px;}\r\n    .vd-mdf-types .t .basis{font-size:12.5px;color:#6a7585;background:#f6f8fb;border-radius:8px;padding:10px 12px;font-weight:600;}\r\n    .vd-mdf-types .note{\r\n      margin-top:30px;text-align:center;font-size:15.5px;line-height:1.6;color:#384152;max-width:840px;margin-left:auto;margin-right:auto;\r\n    }\r\n    .vd-mdf-types .note strong{color:#024089;}\r\n    @media(max-width:820px){.vd-mdf-types .row{grid-template-columns:1fr;}}\r\n  <\/style>\r\n\r\n  <div class=\"wrap\">\r\n    <div class=\"head\">\r\n      <p class=\"eyebrow\">Forecast by maintenance type<\/p>\r\n      <h2 id=\"preventive-and-corrective-demand-forecasted-independently\">Preventive and corrective demand, forecasted independently<\/h2>\r\n      <p>A single blended number is wrong for both. MRO360 separates scheduled from failure-driven demand, then combines them into one accurate total per SKU, so reorder logic reflects how each part is actually consumed.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"row\">\r\n      <div class=\"t prev\">\r\n        <p class=\"tag\">Pr\u00e9ventif<\/p>\r\n        <h3 id=\"scheduled-demand\">Scheduled demand<\/h3>\r\n        <p>Driven by the maintenance calendar and PM plans, not just historical averages. Predictable, time-based consumption that can be planned tightly.<\/p>\r\n        <div class=\"basis\">Basis: PM schedule \u00b7 job plans \u00b7 calendar<\/div>\r\n      <\/div>\r\n      <div class=\"t corr\">\r\n        <p class=\"tag\">Correctif<\/p>\r\n        <h3 id=\"failure-driven-demand\">Failure-driven demand<\/h3>\r\n        <p>Estimated from failure history, root-cause patterns, asset age and operating hours, the spikes a usage-only model cannot anticipate.<\/p>\r\n        <div class=\"basis\">Basis: failure modes \u00b7 RCA \u00b7 runtime \u00b7 MTBF<\/div>\r\n      <\/div>\r\n      <div class=\"t emer\">\r\n        <p class=\"tag\">Urgence<\/p>\r\n        <h3 id=\"unplanned-exposure\">Unplanned exposure<\/h3>\r\n        <p>Surfaced where condition or predictive signals point to imminent failure, so a buffer exists before the breakdown, not after.<\/p>\r\n        <div class=\"basis\">Basis: condition signals \u00b7 criticality<\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <p class=\"note\">Because each stream is modelled separately, <strong>safety stock and reorder points<\/strong> can be set against the real demand curve for every part.<\/p>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-23a3d42 elementor-widget elementor-widget-html\" data-id=\"23a3d42\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\r\n     SECTION 07: THE FORECAST OUTPUT (product UI)\r\n     From script: 6-month expected demand, monthly + weekly view,\r\n     highs and lows highlighted per material. CSS-only toggle so it\r\n     works inside Elementor without relying on external JS.\r\n     Scoped under .vd-mdf-demo  (anchor id=\"vd-mdf-demo\")\r\n============================================================ -->\r\n<div class=\"vd-mdf-demo\" id=\"vd-mdf-demo\">\r\n  <style>\r\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Open+Sans:wght@400;500;600;700;800&display=swap');\r\n    .vd-mdf-demo{\r\n      margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;\r\n      font-family:'Open Sans',Arial,sans-serif;background:#f6f8fb;padding:84px 0;\r\n    }\r\n    .vd-mdf-demo *{box-sizing:border-box;}\r\n    .vd-mdf-demo .wrap{max-width:1080px;margin:0 auto;padding:0 24px;}\r\n    .vd-mdf-demo .head{text-align:center;max-width:720px;margin:0 auto 40px;}\r\n    .vd-mdf-demo .eyebrow{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#FA841A;margin:0 0 14px;}\r\n    .vd-mdf-demo h2{font-size:clamp(26px,3.2vw,36px);line-height:1.14;font-weight:800;color:#1A2434;margin:0 0 16px;letter-spacing:-.01em;}\r\n    .vd-mdf-demo .head p{font-size:16.5px;line-height:1.64;color:#46505f;margin:0;}\r\n\r\n    \/* app frame *\/\r\n    .vd-mdf-demo .app{background:#fff;border:1px solid #dde3ec;border-radius:16px;box-shadow:0 26px 60px rgba(26,36,52,.12);overflow:hidden;}\r\n    .vd-mdf-demo .topbar{display:flex;align-items:center;gap:8px;padding:13px 18px;background:#1A2434;}\r\n    .vd-mdf-demo .topbar i{width:11px;height:11px;border-radius:50%;display:inline-block;}\r\n    .vd-mdf-demo .topbar .url{margin-left:14px;font-size:12.5px;color:#aeb8c7;font-weight:600;}\r\n    .vd-mdf-demo .topbar .url b{color:#fff;}\r\n    .vd-mdf-demo .body{padding:26px 28px 30px;}\r\n    .vd-mdf-demo .barhead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:22px;}\r\n    .vd-mdf-demo .barhead .meta .sku{font-size:18px;font-weight:800;color:#1A2434;margin:0;}\r\n    .vd-mdf-demo .barhead .meta .sub{font-size:13px;color:#6a7585;margin:4px 0 0;font-weight:600;}\r\n    .vd-mdf-demo .barhead .total{text-align:right;}\r\n    .vd-mdf-demo .barhead .total .v{font-size:26px;font-weight:800;color:#004DA9;line-height:1;}\r\n    .vd-mdf-demo .barhead .total .l{font-size:11.5px;color:#8a93a3;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-top:5px;}\r\n\r\n    \/* CSS toggle *\/\r\n    .vd-mdf-demo .switch{display:inline-flex;background:#eef2f8;border-radius:9px;padding:4px;margin-bottom:24px;}\r\n    .vd-mdf-demo .switch label{font-size:13px;font-weight:700;color:#6a7585;padding:8px 18px;border-radius:6px;cursor:pointer;transition:.15s;}\r\n    .vd-mdf-demo input[name=\"vd-mdf-view\"]{position:absolute;opacity:0;pointer-events:none;}\r\n    .vd-mdf-demo #vd-mdf-m:checked ~ .body label[for=\"vd-mdf-m\"]{background:#FA841A;color:#1A2434;}\r\n    .vd-mdf-demo #vd-mdf-w:checked ~ .body label[for=\"vd-mdf-w\"]{background:#FA841A;color:#1A2434;}\r\n    .vd-mdf-demo .view{display:none;}\r\n    .vd-mdf-demo #vd-mdf-m:checked ~ .body .view.monthly{display:block;}\r\n    .vd-mdf-demo #vd-mdf-w:checked ~ .body .view.weekly{display:block;}\r\n\r\n    \/* chart *\/\r\n    .vd-mdf-demo .chart{position:relative;border-left:2px solid #e1e3e7;border-bottom:2px solid #e1e3e7;padding:34px 4px 0;}\r\n    .vd-mdf-demo .bars{display:flex;align-items:flex-end;gap:10px;height:200px;}\r\n    .vd-mdf-demo .weekly .bars{gap:5px;}\r\n    .vd-mdf-demo .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;position:relative;}\r\n    .vd-mdf-demo .col .bar{width:78%;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#4d8ce0,#1f63bd);transition:.2s;}\r\n    .vd-mdf-demo .col.high .bar{background:linear-gradient(180deg,#FFC619,#FA841A);}\r\n    .vd-mdf-demo .col.low .bar{background:linear-gradient(180deg,#cdd9ef,#9fb6df);}\r\n    .vd-mdf-demo .col .pill{position:absolute;top:-22px;font-size:9.5px;font-weight:800;letter-spacing:.04em;padding:2px 7px;border-radius:20px;white-space:nowrap;}\r\n    .vd-mdf-demo .col.high .pill{background:#fff2dc;color:#d97a00;}\r\n    .vd-mdf-demo .col.low .pill{background:#eef2f8;color:#5a6472;}\r\n    .vd-mdf-demo .col .xl{position:absolute;bottom:-26px;font-size:11px;font-weight:600;color:#6a7585;}\r\n    .vd-mdf-demo .chart{margin-bottom:34px;}\r\n    .vd-mdf-demo .legend{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;padding-top:8px;}\r\n    .vd-mdf-demo .legend div{font-size:12.5px;color:#46505f;font-weight:600;}\r\n    .vd-mdf-demo .legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:7px;vertical-align:-1px;}\r\n    .vd-mdf-demo .caption{text-align:center;font-size:13px;color:#8a93a3;margin-top:18px;font-weight:600;}\r\n    @media(max-width:560px){.vd-mdf-demo .weekly{display:none !important;}.vd-mdf-demo .switch label[for=\"vd-mdf-w\"]{opacity:.4;}}\r\n  <\/style>\r\n\r\n  <div class=\"wrap\">\r\n    <div class=\"head\">\r\n      <p class=\"eyebrow\">See it in the product<\/p>\r\n      <h2 id=\"six-months-of-demand-by-month-and-by-week\">Six months of demand, by month and by week<\/h2>\r\n      <p>Pick any material and MRO360 generates its expected demand for the coming six months, with the highs and lows flagged so planners know exactly when pressure builds.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"app\">\r\n      <input type=\"radio\" name=\"vd-mdf-view\" id=\"vd-mdf-m\" checked>\r\n      <input type=\"radio\" name=\"vd-mdf-view\" id=\"vd-mdf-w\">\r\n\r\n      <div class=\"topbar\">\r\n        <i style=\"background:#FA841A\"><\/i><i style=\"background:#FDA300\"><\/i><i style=\"background:#FFC619\"><\/i>\r\n        <span class=\"url\">MRO360 \u00b7 <b>Demand Forecast<\/b><\/span>\r\n      <\/div>\r\n\r\n      <div class=\"body\">\r\n        <div class=\"barhead\">\r\n          <div class=\"meta\">\r\n            <p class=\"sku\">SKU 10-BRG-4471 \u00b7 High-pressure shaft bearing<\/p>\r\n            <p class=\"sub\">Plant: Refinery A \u00b7 Auto-recommended model applied<\/p>\r\n          <\/div>\r\n          <div class=\"total\"><div class=\"v\">142 units<\/div><div class=\"l\">6-month forecast<\/div><\/div>\r\n        <\/div>\r\n\r\n        <div class=\"switch\">\r\n          <label for=\"vd-mdf-m\">Monthly view<\/label>\r\n          <label for=\"vd-mdf-w\">Weekly view<\/label>\r\n        <\/div>\r\n\r\n        <!-- MONTHLY -->\r\n        <div class=\"view monthly\">\r\n          <div class=\"chart\">\r\n            <div class=\"bars\">\r\n              <div class=\"col\"><div class=\"bar\" style=\"height:44%\"><\/div><span class=\"xl\">Jul<\/span><\/div>\r\n              <div class=\"col high\"><div class=\"pill\">PEAK<\/div><div class=\"bar\" style=\"height:90%\"><\/div><span class=\"xl\">Aug<\/span><\/div>\r\n              <div class=\"col\"><div class=\"bar\" style=\"height:55%\"><\/div><span class=\"xl\">Sep<\/span><\/div>\r\n              <div class=\"col low\"><div class=\"pill\">LOW<\/div><div class=\"bar\" style=\"height:28%\"><\/div><span class=\"xl\">Oct<\/span><\/div>\r\n              <div class=\"col high\"><div class=\"pill\">PEAK<\/div><div class=\"bar\" style=\"height:80%\"><\/div><span class=\"xl\">Nov<\/span><\/div>\r\n              <div class=\"col\"><div class=\"bar\" style=\"height:42%\"><\/div><span class=\"xl\">Dec<\/span><\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"legend\">\r\n            <div><i style=\"background:#1f63bd\"><\/i>Baseline demand<\/div>\r\n            <div><i style=\"background:#FA841A\"><\/i>Forecasted high<\/div>\r\n            <div><i style=\"background:#9fb6df\"><\/i>Forecasted low<\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- WEEKLY -->\r\n        <div class=\"view weekly\">\r\n          <div class=\"chart\">\r\n            <div class=\"bars\">\r\n              <div class=\"col\"><div class=\"bar\" style=\"height:30%\"><\/div><span class=\"xl\">W1<\/span><\/div>\r\n              <div class=\"col\"><div class=\"bar\" style=\"height:38%\"><\/div><span class=\"xl\">W2<\/span><\/div>\r\n              <div class=\"col\"><div class=\"bar\" style=\"height:52%\"><\/div><span class=\"xl\">W3<\/span><\/div>\r\n              <div class=\"col high\"><div class=\"pill\">PEAK<\/div><div class=\"bar\" style=\"height:92%\"><\/div><span class=\"xl\">W4<\/span><\/div>\r\n              <div class=\"col\"><div class=\"bar\" style=\"height:60%\"><\/div><span class=\"xl\">W5<\/span><\/div>\r\n              <div class=\"col\"><div class=\"bar\" style=\"height:48%\"><\/div><span class=\"xl\">W6<\/span><\/div>\r\n              <div class=\"col low\"><div class=\"pill\">LOW<\/div><div class=\"bar\" style=\"height:22%\"><\/div><span class=\"xl\">W7<\/span><\/div>\r\n              <div class=\"col\"><div class=\"bar\" style=\"height:36%\"><\/div><span class=\"xl\">W8<\/span><\/div>\r\n              <div class=\"col\"><div class=\"bar\" style=\"height:50%\"><\/div><span class=\"xl\">W9<\/span><\/div>\r\n              <div class=\"col high\"><div class=\"pill\">PEAK<\/div><div class=\"bar\" style=\"height:84%\"><\/div><span class=\"xl\">W10<\/span><\/div>\r\n              <div class=\"col\"><div class=\"bar\" style=\"height:44%\"><\/div><span class=\"xl\">W11<\/span><\/div>\r\n              <div class=\"col\"><div class=\"bar\" style=\"height:32%\"><\/div><span class=\"xl\">W12<\/span><\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"legend\">\r\n            <div><i style=\"background:#1f63bd\"><\/i>Baseline demand<\/div>\r\n            <div><i style=\"background:#FA841A\"><\/i>Forecasted high<\/div>\r\n            <div><i style=\"background:#9fb6df\"><\/i>Forecasted low<\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <p class=\"caption\">Illustrative view. Forecasts are generated per SKU from your own ERP, CMMS and maintenance data.<\/p>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29986fd elementor-widget elementor-widget-html\" data-id=\"29986fd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\r\n     SECTION 08: DEMAND FORECASTING METHODS\r\n     Targets informational keyword \"demand forecasting methods\"\r\n     within a commercial page, then routes depth to the pillar\r\n     article via internal link. Scoped under .vd-mdf-methods\r\n     INTERNAL LINK TODO: confirm pillar slug.\r\n============================================================ -->\r\n<div class=\"vd-mdf-methods\">\r\n  <style>\r\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Open+Sans:wght@400;500;600;700;800&display=swap');\r\n    .vd-mdf-methods{font-family:'Open Sans',Arial,sans-serif;background:#fff;padding:84px 0;}\r\n    .vd-mdf-methods *{box-sizing:border-box;}\r\n    .vd-mdf-methods .wrap{max-width:1100px;margin:0 auto;padding:0 24px;}\r\n    .vd-mdf-methods .head{max-width:740px;margin:0 0 42px;}\r\n    .vd-mdf-methods .eyebrow{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#FA841A;margin:0 0 14px;}\r\n    .vd-mdf-methods h2{font-size:clamp(26px,3.2vw,36px);line-height:1.14;font-weight:800;color:#1A2434;margin:0 0 16px;letter-spacing:-.01em;}\r\n    .vd-mdf-methods .head p{font-size:16.5px;line-height:1.64;color:#46505f;margin:0;}\r\n    .vd-mdf-methods .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}\r\n    .vd-mdf-methods .m{border:1px solid #e1e3e7;border-radius:13px;padding:24px;background:#fbfcfe;}\r\n    .vd-mdf-methods .m h3{font-size:17px;font-weight:700;color:#024089;margin:0 0 8px;display:flex;align-items:center;gap:10px;}\r\n    .vd-mdf-methods .m h3 .num{width:28px;height:28px;border-radius:8px;background:#eef4fe;color:#004DA9;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;}\r\n    .vd-mdf-methods .m p{font-size:14px;line-height:1.6;color:#4d5765;margin:0 0 12px;}\r\n    .vd-mdf-methods .m .use{font-size:12.5px;font-weight:700;color:#6a7585;}\r\n    .vd-mdf-methods .m .use span{color:#FA841A;}\r\n    .vd-mdf-methods .m.flag{background:linear-gradient(150deg,#fff7ee,#fff);border-color:#fad9b3;border-left:4px solid #FA841A;}\r\n    .vd-mdf-methods .m.flag h3{color:#1A2434;}\r\n    .vd-mdf-methods .m.flag h3 .num{background:#FA841A;color:#1A2434;}\r\n    .vd-mdf-methods .closer{\r\n      margin-top:30px;background:#1A2434;border-radius:13px;padding:26px 28px;color:#fff;\r\n      display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;\r\n    }\r\n    .vd-mdf-methods .closer p{margin:0;font-size:15.5px;line-height:1.5;max-width:640px;color:#dbe3ef;}\r\n    .vd-mdf-methods .closer p b{color:#FFC619;}\r\n    .vd-mdf-methods .closer a{flex:none;text-decoration:none;background:#FA841A;color:#1A2434;font-weight:700;font-size:14px;border-radius:8px;padding:13px 22px;}\r\n    @media(max-width:780px){.vd-mdf-methods .grid{grid-template-columns:1fr;}}\r\n  <\/style>\r\n\r\n  <div class=\"wrap\">\r\n    <div class=\"head\">\r\n      <p class=\"eyebrow\">The approaches<\/p>\r\n      <h2 id=\"demand-forecasting-methods-and-which-one-mro360-uses\">Demand forecasting methods, and which one MRO360 uses<\/h2>\r\n      <p>Most demand forecasting methods fall into a few families. Each has a place; the difference in maintenance is how much operational context the method can absorb. Here is the short version.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"grid\">\r\n      <div class=\"m\">\r\n        <h3 id=\"1time-series-statistical\"><span class=\"num\">1<\/span>Time-series &amp; statistical<\/h3>\r\n        <p>Moving averages, exponential smoothing and ARIMA-style models project forward from historical consumption and seasonality.<\/p>\r\n        <p class=\"use\">Best for: <span>stable, predictable usage<\/span><\/p>\r\n      <\/div>\r\n      <div class=\"m\">\r\n        <h3 id=\"2consumption-based-planning\"><span class=\"num\">2<\/span>Consumption-based planning<\/h3>\r\n        <p>ERP-native logic (such as MRP \/ MM-CBP) reorders against past goods movement and lead times across the materials network.<\/p>\r\n        <p class=\"use\">Best for: <span>high-volume, steady parts<\/span><\/p>\r\n      <\/div>\r\n      <div class=\"m\">\r\n        <h3 id=\"3movement-classification\"><span class=\"num\">3<\/span>Movement classification<\/h3>\r\n        <p>ABC-XYZ and fast \/ slow \/ non-moving segmentation right-sizes policy by velocity and variability, surfacing dead stock and surplus.<\/p>\r\n        <p class=\"use\">Best for: <span>portfolio-level rationalization<\/span><\/p>\r\n      <\/div>\r\n      <div class=\"m flag\">\r\n        <h3 id=\"4ai-native-multivariate\"><span class=\"num\">4<\/span>AI-native multivariate<\/h3>\r\n        <p>MRO360's approach: the statistical baseline overlaid with agentic AI that reads failure history, maintenance notes, asset age and work orders, splitting preventive from corrective demand.<\/p>\r\n        <p class=\"use\">Best for: <span>failure-driven MRO demand<\/span><\/p>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"closer\">\r\n      <p>The right method depends on the part. MRO360 applies <b>statistical and AI methods together<\/b> and auto-selects the best fit per domain, rather than forcing every SKU through one model.<\/p>\r\n      <a href=\"https:\/\/www.verdantis.com\/contact\/\">Learn More \u2192<\/a>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cbb4f5e elementor-widget elementor-widget-html\" data-id=\"cbb4f5e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\r\n     SECTION 09: VALUE + CTA\r\n     Outcomes are mechanism-based. The two percentage figures tie\r\n     directly to demand forecasting (emergency spend, stockouts)\r\n     and are taken from the MRO360 deck.\r\n     >>> VERIFY: confirm these ranges with product\/legal before\r\n         external publication (standing Verdantis caveat). <<<\r\n     Scoped under .vd-mdf-value\r\n============================================================ -->\r\n<div class=\"vd-mdf-value\">\r\n  <style>\r\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Open+Sans:wght@400;500;600;700;800&display=swap');\r\n    .vd-mdf-value{\r\n      margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;\r\n      font-family:'Open Sans',Arial,sans-serif;\r\n      background:\r\n        radial-gradient(900px 480px at 18% 0%, rgba(250,132,26,.18), transparent 60%),\r\n        linear-gradient(135deg,#024089,#003a82);color:#fff;padding:84px 0;\r\n    }\r\n    .vd-mdf-value *{box-sizing:border-box;}\r\n    .vd-mdf-value .wrap{max-width:1100px;margin:0 auto;padding:0 24px;}\r\n    .vd-mdf-value .head{max-width:720px;margin:0 0 40px;}\r\n    .vd-mdf-value .eyebrow{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#FFC619;margin:0 0 14px;}\r\n    .vd-mdf-value h2{font-size:clamp(26px,3.2vw,36px);line-height:1.14;font-weight:800;margin:0 0 16px;letter-spacing:-.01em;}\r\n    .vd-mdf-value .head p{font-size:16.5px;line-height:1.62;color:#d6e2f7;margin:0;}\r\n\r\n    .vd-mdf-value .outcomes{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:44px;}\r\n    .vd-mdf-value .o{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:13px;padding:22px 20px;}\r\n    .vd-mdf-value .o .v{font-size:30px;font-weight:800;color:#FDA300;line-height:1;margin:0 0 8px;}\r\n    .vd-mdf-value .o .l{font-size:13px;font-weight:700;color:#fff;margin:0 0 6px;}\r\n    .vd-mdf-value .o .d{font-size:12px;line-height:1.45;color:#bcccea;margin:0;}\r\n\r\n    .vd-mdf-value .cta{\r\n      background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.16);border-radius:16px;\r\n      padding:36px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;\r\n    }\r\n    .vd-mdf-value .cta h3{font-size:clamp(20px,2.4vw,27px);font-weight:800;margin:0 0 8px;}\r\n    .vd-mdf-value .cta p{font-size:15px;color:#d6e2f7;margin:0;max-width:520px;line-height:1.55;}\r\n    .vd-mdf-value .cta .btns{display:flex;flex-wrap:wrap;gap:12px;}\r\n    .vd-mdf-value .cta a{text-decoration:none;font-weight:700;font-size:15px;border-radius:9px;padding:15px 26px;transition:transform .15s ease;}\r\n    .vd-mdf-value .cta a.p{background:#FA841A;color:#1A2434;box-shadow:0 10px 26px rgba(250,132,26,.35);}\r\n    .vd-mdf-value .cta a.p:hover{transform:translateY(-2px);}\r\n    .vd-mdf-value .cta a.g{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.45);}\r\n    .vd-mdf-value .cta a.g:hover{border-color:#fff;}\r\n    .vd-mdf-value .disc{font-size:12px;color:#9fb2da;margin:20px 2px 0;}\r\n    @media(max-width:860px){.vd-mdf-value .outcomes{grid-template-columns:1fr 1fr;}}\r\n    @media(max-width:520px){.vd-mdf-value .outcomes{grid-template-columns:1fr;}.vd-mdf-value .cta{flex-direction:column;align-items:flex-start;}}\r\n  <\/style>\r\n\r\n  <div class=\"wrap\">\r\n    <div class=\"head\">\r\n      <p class=\"eyebrow\">Why accurate forecasting pays back<\/p>\r\n      <h2 id=\"forecast-the-demand-and-the-downstream-problems-stop-compounding\">Forecast the demand, and the downstream problems stop compounding<\/h2>\r\n      <p>When the forecast separates preventive from corrective demand and reads the full failure signal, planners stop reacting to stockouts and start managing them as rare, flagged exceptions.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"outcomes\">\r\n      <div class=\"o\">\r\n        <p class=\"v\">50-70%<\/p>\r\n        <p class=\"l\">R\u00e9duction des d\u00e9penses d'urgence<\/p>\r\n        <p class=\"d\">Fewer last-minute orders at premium prices within 12 months.<\/p>\r\n      <\/div>\r\n      <div class=\"o\">\r\n        <p class=\"v\">90%+<\/p>\r\n        <p class=\"l\">Stockouts eliminated<\/p>\r\n        <p class=\"d\">Critical parts available when the work order calls for them.<\/p>\r\n      <\/div>\r\n      <div class=\"o\">\r\n        <p class=\"v\">Per-SKU<\/p>\r\n        <p class=\"l\">Forecast granularity<\/p>\r\n        <p class=\"d\">Demand modelled by part, plant, and maintenance type.<\/p>\r\n      <\/div>\r\n      <div class=\"o\">\r\n        <p class=\"v\">Self-learning<\/p>\r\n        <p class=\"l\">Accuracy compounds<\/p>\r\n        <p class=\"d\">Every planner override is captured and improves the model.<\/p>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"cta\">\r\n      <div>\r\n        <h3 id=\"see-your-own-demand-forecast\">See your own demand forecast<\/h3>\r\n        <p>Bring a sample of your maintenance and inventory data. We will show the six-month forecast MRO360 produces for your most troublesome SKUs.<\/p>\r\n      <\/div>\r\n      <div class=\"btns\">\r\n        <a class=\"p\" href=\"\/contact\/\">Request a demo<\/a>\r\n        <a class=\"g\" href=\"\/mro360\/\">Explore MRO360<\/a>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <p class=\"disc\">Outcome ranges reflect MRO360 deployments in heavy-asset environments and vary by data quality, asset profile, and current maturity.<\/p>\r\n  <\/div>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Demand forecasting for spare parts is different from sales or production forecasting. See the methods that work, where the standard formula fails in MRO, and how MRO360 forecasts consumption at plant level.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[308],"tags":[],"class_list":["post-44469","post","type-post","status-publish","format-standard","hentry","category-page"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.verdantis.com\/fr\/wp-json\/wp\/v2\/posts\/44469","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.verdantis.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.verdantis.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.verdantis.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.verdantis.com\/fr\/wp-json\/wp\/v2\/comments?post=44469"}],"version-history":[{"count":0,"href":"https:\/\/www.verdantis.com\/fr\/wp-json\/wp\/v2\/posts\/44469\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.verdantis.com\/fr\/wp-json\/wp\/v2\/media?parent=44469"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.verdantis.com\/fr\/wp-json\/wp\/v2\/categories?post=44469"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.verdantis.com\/fr\/wp-json\/wp\/v2\/tags?post=44469"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}