{"id":4269,"date":"2026-01-02T13:19:41","date_gmt":"2026-01-02T13:19:41","guid":{"rendered":"https:\/\/www.documap.it\/?page_id=4269"},"modified":"2026-01-02T19:13:53","modified_gmt":"2026-01-02T19:13:53","slug":"calcolatore-roi-documap","status":"publish","type":"page","link":"https:\/\/www.documap.io\/en\/calcolatore-roi-documap\/","title":{"rendered":"Calcolatore ROI Documap"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:48px;--awb-margin-bottom:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_2 1_2 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:50%;--awb-margin-top-large:0px;--awb-spacing-right-large:3.456%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:3.84%;--awb-width-medium:50%;--awb-order-medium:0;--awb-spacing-right-medium:3.456%;--awb-spacing-left-medium:3.84%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-title title fusion-title-1 fusion-sep-none fusion-title-text fusion-title-size-one\"><h1 class=\"fusion-title-heading title-heading-left\" style=\"margin:0;\">Calcola quanto risparmi con DocuMap<\/h1><\/div><div class=\"fusion-text fusion-text-1\" style=\"--awb-font-size:18px;\"><p>Inserisci i dati principali che descrivono la tua organizzazione e potrai facilmente realizzare:<\/p>\n<\/div><ul style=\"--awb-iconcolor:var(--awb-color4);--awb-line-height:27.2px;--awb-icon-width:27.2px;--awb-icon-height:27.2px;--awb-icon-margin:11.2px;--awb-content-margin:38.4px;--awb-circlecolor:var(--awb-color2);--awb-circle-yes-font-size:14.08px;\" class=\"fusion-checklist fusion-checklist-1 fusion-checklist-default type-icons\"><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-yes\"><i class=\"fusion-li-icon fa-angle-right fas\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>Il costo nascosto della gestione documentale: tempo e soldi<\/p>\n<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-yes\"><i class=\"fusion-li-icon fa-angle-right fas\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>In quanto tempo rientrerai nell&#8217;investimento<\/p>\n<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-yes\"><i class=\"fusion-li-icon fa-angle-right fas\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>Quanto risparmi con DocuMap<\/p>\n<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-yes\"><i class=\"fusion-li-icon fa-angle-right fas\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>Il ROI di DocuMap<\/p>\n<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-2\" style=\"--awb-margin-top:24px;\"><p>Se vuoi ottenere stime pi\u00f9 dettagliate basate sulle tue esigenze, contattaci!<strong><\/strong><\/p>\n<\/div><div ><a class=\"fusion-button button-flat fusion-button-default-size button-custom fusion-button-default button-1 fusion-button-default-span fusion-button-default-type\" style=\"--button_accent_color:var(--awb-color4);--button_border_color:var(--awb-color4);--button_accent_hover_color:var(--awb-color1);--button_border_hover_color:var(--awb-color1);--button-border-radius-top-left:8px;--button-border-radius-top-right:8px;--button-border-radius-bottom-right:8px;--button-border-radius-bottom-left:8px;--button_gradient_top_color:var(--awb-color2);--button_gradient_bottom_color:var(--awb-color2);--button_gradient_top_color_hover:hsla(var(--awb-color7-h),calc(var(--awb-color7-s) - 5%),calc(var(--awb-color7-l) - 10%),var(--awb-color7-a));--button_gradient_bottom_color_hover:hsla(var(--awb-color7-h),calc(var(--awb-color7-s) - 5%),calc(var(--awb-color7-l) - 10%),var(--awb-color7-a));--button_padding-top:12px;--button_padding-right:24px;--button_padding-bottom:12px;--button_padding-left:24px;--button_margin-top:-10px;\" target=\"_self\"><span class=\"fusion-button-text\">Contatta un nostro esperto<\/span><\/a><\/div><div class=\"fusion-text fusion-text-3 fusion-no-small-visibility fusion-no-medium-visibility fusion-text-no-margin\" style=\"--awb-font-size:20px;--awb-margin-top:50px;\"><p><strong>Forse non sapevi che:<\/strong><\/p>\n<\/div><div class=\"fusion-builder-row fusion-builder-row-inner fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"width:104% !important;max-width:104% !important;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column_inner fusion-builder-nested-column-0 fusion_builder_column_inner_1_1 1_1 fusion-flex-column fusion-no-small-visibility fusion-no-medium-visibility\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-4 fusion-text-no-margin\" style=\"--awb-font-size:32px;--awb-text-color:var(--awb-color7);\"><p><b>Pi\u00f9 di 3 giorni al mese<\/b><\/p>\n<\/div><div class=\"fusion-text fusion-text-5\"><p>Secondo una recente ricerca di (McKinsey, 2025) sono pi\u00f9 di 400 i minuti persi da <u>ogni collaboratore<\/u> ogni settimana nella sola gestione documentale (ricerca e archiviazione). <u><a href=\"https:\/\/www.crownrms.com\/insights\/your-employees-are-spending-hours-looking-for-documents-why\/\" target=\"_blank\" rel=\"noopener\">Link<\/a><\/u> alla ricerca.<\/p>\n<p><b>Sono pi\u00f9 di 3 giorni al mese. Tempo e soldi. Totalmente persi.<\/b> E molto spesso si sottovaluta o non si conosce l&#8217;origine di questa inefficienza.<\/p>\n<p>In questo contatore troverai pre-impostato 45 minuti a settimana per fare stime pi\u00f9 conservative. Secondo la ricerca di McKinsey, sarebbe pi\u00f9 realistico impostare 400.<\/p>\n<\/div><\/div><\/div><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_2 1_2 fusion-flex-column\" style=\"--awb-padding-top:12px;--awb-padding-right:12px;--awb-padding-bottom:12px;--awb-padding-left:12px;--awb-overflow:hidden;--awb-bg-color:var(--awb-custom_color_15);--awb-bg-color-hover:var(--awb-custom_color_15);--awb-bg-size:cover;--awb-border-color:var(--awb-color4);--awb-border-style:solid;--awb-border-radius:8px 8px 8px 8px;--awb-width-large:50%;--awb-margin-top-large:0px;--awb-spacing-right-large:2.112%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:13.44%;--awb-width-medium:50%;--awb-order-medium:0;--awb-spacing-right-medium:2.112%;--awb-spacing-left-medium:13.44%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"dm-roi-calculator\">\n  <style>\n    .dm-roi-calculator {\n      font-family: Arial, \"Helvetica Neue\", Helvetica, sans-serif;\n      color: #111827;\n      background: #ffffff;\n    }\n\n    .dm-roi-calculator * {\n      box-sizing: border-box;\n    }\n\n    .dm-roi-container {\n      max-width: 900px;\n      margin: 0 auto;\n      background: #ffffff;\n      border-radius: 16px;\n      padding: 24px 20px 30px;\n    }\n\n    .dm-input-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));\n      gap: 24px;\n      margin-top: 4px;\n    }\n\n    .dm-field-group {\n      margin-top: 4px;\n    }\n\n    .dm-field-label {\n      display: block;\n      font-weight: 600;\n      margin-bottom: 8px;\n      color: #111827;\n      font-size: 14px;\n      line-height: 1.3;\n    }\n\n    .dm-number-control {\n      display: flex;\n      align-items: stretch;\n      border-radius: 999px;\n      border: 1px solid #e5e7eb;\n      overflow: hidden;\n      background: #f9fafb;\n    }\n\n    .dm-number-btn {\n      width: 40px;\n      min-width: 40px;\n      border: none;\n      background: #f3f4f6;\n      color: #111827;\n      font-size: 18px;\n      font-weight: 600;\n      cursor: pointer;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n\n    .dm-number-btn:hover {\n      background: #e5e7eb;\n    }\n\n    .dm-number-input {\n      flex: 1;\n      border: none;\n      padding: 8px 10px;\n      text-align: center;\n      font-size: 14px;\n      font-family: inherit;\n      background: #ffffff;\n      border-left: 1px solid #e5e7eb;\n      border-right: 1px solid #e5e7eb;\n      min-width: 0;\n    }\n\n    .dm-number-input:focus {\n      outline: none;\n    }\n\n    .dm-input-hint {\n      margin-top: 4px;\n      font-size: 12px;\n      color: #6b7280;\n    }\n\n    .dm-results {\n      margin-top: 32px;\n      padding-top: 18px;\n      border-top: 1px solid #e5e7eb;\n    }\n\n    .dm-section-title {\n      margin: 0 0 14px;\n      font-size: 18px;\n      font-weight: 700;\n      color: #111827;\n    }\n\n    .dm-results-grid {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 14px;\n      margin-top: 4px;\n    }\n\n    .dm-card {\n      background: #f9fafb;\n      border-radius: 12px;\n      padding: 12px 14px;\n      border: 1px solid #e5e7eb;\n    }\n\n    .dm-card.highlight {\n      background: #ecfdf3;\n      border-color: #bbf7d0;\n    }\n\n    .dm-card-title {\n      font-size: 12px;\n      text-transform: uppercase;\n      letter-spacing: 0.06em;\n      color: #6b7280;\n      margin-bottom: 4px;\n    }\n\n    .dm-card-value {\n      font-size: 24px;\n      font-weight: 600;\n      color: #111827;\n    }\n\n    .dm-roi-positive {\n      color: #16a34a;\n    }\n    .dm-roi-negative {\n      color: #b91c1c;\n    }\n\n    \/* Testo nascosto: bianco su bianco *\/\n    .dm-hidden-text {\n      margin-top: 12px;\n      font-size: 12px;\n      color: #ffffff; \/* stesso colore dello sfondo *\/\n      user-select: text;\n    }\n\n    @media (max-width: 640px) {\n      .dm-roi-container {\n        padding: 20px 14px 24px;\n        border-radius: 12px;\n      }\n      .dm-section-title {\n        font-size: 17px;\n      }\n      .dm-results-grid {\n        grid-template-columns: 1fr;\n      }\n      .dm-card-value {\n        font-size: 22px;\n      }\n    }\n  <\/style>\n\n  <div class=\"dm-roi-container\">\n    <div class=\"dm-input-grid\">\n      <div class=\"dm-field-group\">\n        <span class=\"dm-field-label\">Numero di collaboratori che gestiscono documenti<\/span>\n        <div class=\"dm-number-control\">\n          <button type=\"button\" class=\"dm-number-btn\" data-target=\"dm-collaboratori\" data-step=\"-1\">\u2013<\/button>\n          <input\n            type=\"number\"\n            id=\"dm-collaboratori\"\n            class=\"dm-number-input\"\n            inputmode=\"numeric\"\n          >\n          <button type=\"button\" class=\"dm-number-btn\" data-target=\"dm-collaboratori\" data-step=\"1\">+<\/button>\n        <\/div>\n        <div class=\"dm-input-hint\">Min 1 \u2013 Max 300 collaboratori.<\/div>\n      <\/div>\n\n      <div class=\"dm-field-group\">\n        <span class=\"dm-field-label\">Tempo a settimana per collaboratore sulla gestione documentale<\/span>\n        <div class=\"dm-number-control\">\n          <button type=\"button\" class=\"dm-number-btn\" data-target=\"dm-minuti\" data-step=\"-5\">\u2013<\/button>\n          <input\n            type=\"number\"\n            id=\"dm-minuti\"\n            class=\"dm-number-input\"\n            inputmode=\"numeric\"\n          >\n          <button type=\"button\" class=\"dm-number-btn\" data-target=\"dm-minuti\" data-step=\"5\">+<\/button>\n        <\/div>\n        <div class=\"dm-input-hint\">Min 30 \u2013 Max 420 minuti (7 ore) a settimana.<\/div>\n      <\/div>\n\n      <div class=\"dm-field-group\">\n        <span class=\"dm-field-label\">Costo orario medio di un collaboratore (\u20ac)<\/span>\n        <div class=\"dm-number-control\">\n          <button type=\"button\" class=\"dm-number-btn\" data-target=\"dm-costo-orario\" data-step=\"-5\">\u2013<\/button>\n          <input\n            type=\"number\"\n            id=\"dm-costo-orario\"\n            class=\"dm-number-input\"\n            inputmode=\"decimal\"\n          >\n          <button type=\"button\" class=\"dm-number-btn\" data-target=\"dm-costo-orario\" data-step=\"5\">+<\/button>\n        <\/div>\n        <div class=\"dm-input-hint\">Tipicamente tra 20 \u20ac e 100 \u20ac l'ora.<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"dm-results\" id=\"dm-results\" style=\"display:none;\">\n      <div class=\"dm-section-title\">Riepilogo annuale<\/div>\n      <div class=\"dm-results-grid\">\n        <div class=\"dm-card\">\n          <div class=\"dm-card-title\">Ore totali annue di gestione documentale<\/div>\n          <div class=\"dm-card-value\" id=\"dm-ore-annue\"><\/div>\n        <\/div>\n\n        <div class=\"dm-card\">\n          <div class=\"dm-card-title\">Costo attuale gestione documentale (annuo)<\/div>\n          <div class=\"dm-card-value\" id=\"dm-costo-annuo-totale\"><\/div>\n        <\/div>\n\n        <div class=\"dm-card highlight\">\n          <div class=\"dm-card-title\">Risparmio annuo stimato con DocuMap<\/div>\n          <div class=\"dm-card-value\" id=\"dm-risparmio-annuo\"><\/div>\n        <\/div>\n\n        <div class=\"dm-card\">\n          <div class=\"dm-card-title\">ROI annuo stimato con DocuMap<\/div>\n          <div class=\"dm-card-value\" id=\"dm-roi-annuo\"><\/div>\n        <\/div>\n\n        <div class=\"dm-card\">\n          <div class=\"dm-card-title\">Tempo di rientro dell'investimento in DocuMap<\/div>\n          <div class=\"dm-card-value\" id=\"dm-payback-anni\"><\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Testo nascosto: costo annuo DocuMap bianco su bianco -->\n      <div class=\"dm-hidden-text\" id=\"dm-costo-annuo-documap-hidden\">\n        Costo annuo DocuMap: <span id=\"dm-costo-annuo-documap\"><\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <script>\n    \/***********************\n     * CONFIGURAZIONE FACILE\n     ***********************\/\n    const dmConfig = {\n      defaultHourlyCost: 40, \/\/ \u20ac costo orario iniziale\n\n      collaborators: {\n        min: 1,\n        max: 300,\n        default: 25\n      },\n\n      weeklyMinutesPerCollab: {\n        min: 40,   \/\/ minimo 30 minuti\n        max: 700,  \/\/ massimo 7 ore\n        default: 45,\n        step: 5\n      },\n\n      \/\/ Documenti creati a settimana per collaboratore (fisso, non modificabile da UI)\n      weeklyDocsPerCollab: 10,\n\n      pricing: {\n        baseMonthly: 60,          \/\/ 60 \u20ac\/mese base\n        includedCollaborators: 5, \/\/ fino a 5 collaboratori inclusi\n        extraPerCollaborator: 10, \/\/ +10 \u20ac\/mese per collaboratore oltre gli inclusi\n\n        includedDocuments: 2500,      \/\/ primi 2.500 documenti annui inclusi\n        documentBlockSize: 1000,      \/\/ blocchi da 1.000 documenti\n        extraPerDocumentBlock: 30     \/\/ +30 \u20ac\/mese per ogni blocco oltre i 2.500\n      }\n    };\n\n    \/***************\n     * FUNZIONI BASE\n     ***************\/\n    function dmFormatEuro(value) {\n      return value.toLocaleString('it-IT', {\n        minimumFractionDigits: 0,\n        maximumFractionDigits: 2\n      }) + ' \u20ac';\n    }\n\n    function dmFormatNumber(value, decimals = 2) {\n      return value.toLocaleString('it-IT', {\n        minimumFractionDigits: decimals,\n        maximumFractionDigits: decimals\n      });\n    }\n\n    function dmCalcolaCostoDocumap(collaboratori, documentiAnnui) {\n      const p = dmConfig.pricing;\n      let costo = p.baseMonthly;\n\n      if (collaboratori > p.includedCollaborators) {\n        costo += (collaboratori - p.includedCollaborators) * p.extraPerCollaborator;\n      }\n\n      if (documentiAnnui > p.includedDocuments) {\n        const extraDocs = documentiAnnui - p.includedDocuments;\n        const blocchi = Math.ceil(extraDocs \/ p.documentBlockSize);\n        costo += blocchi * p.extraPerDocumentBlock;\n      }\n\n      return costo;\n    }\n\n    function dmClamp(value, min, max) {\n      return Math.max(min, Math.min(max, value));\n    }\n\n    function dmCalcolaROI() {\n      const settimaneAnno = 52;\n      const settimaneMese = 4.33;\n\n      const collabEl = document.getElementById('dm-collaboratori');\n      const minEl = document.getElementById('dm-minuti');\n      const costoOrarioEl = document.getElementById('dm-costo-orario');\n\n      if (!collabEl || !minEl || !costoOrarioEl) return;\n\n      let collaboratori = parseInt(collabEl.value, 10);\n      let minutiSettimanali = parseFloat(minEl.value);\n      let costoOrario = parseFloat(costoOrarioEl.value);\n      const docPerCollabSett = dmConfig.weeklyDocsPerCollab; \/\/ fisso = 10\n\n      if (isNaN(collaboratori)) collaboratori = dmConfig.collaborators.default;\n      if (isNaN(minutiSettimanali)) minutiSettimanali = dmConfig.weeklyMinutesPerCollab.default;\n      if (isNaN(costoOrario) || costoOrario <= 0) costoOrario = dmConfig.defaultHourlyCost;\n\n      collaboratori = dmClamp(collaboratori, dmConfig.collaborators.min, dmConfig.collaborators.max);\n      minutiSettimanali = dmClamp(minutiSettimanali, dmConfig.weeklyMinutesPerCollab.min, dmConfig.weeklyMinutesPerCollab.max);\n\n      collabEl.value = collaboratori;\n      minEl.value = minutiSettimanali;\n      costoOrarioEl.value = costoOrario;\n\n      const resWrap = document.getElementById('dm-results');\n      if (!resWrap) return;\n\n      const oreSettimanaliPerCollab = minutiSettimanali \/ 60;\n      const oreAnnueTotali = oreSettimanaliPerCollab * settimaneAnno * collaboratori;\n\n      const docSettimanaliTotali = collaboratori * docPerCollabSett;\n      const documentiAnnui = docSettimanaliTotali * settimaneAnno;\n\n      const costoMensilePerCollab = oreSettimanaliPerCollab * settimaneMese * costoOrario;\n      const costoMensileAttuale = costoMensilePerCollab * collaboratori;\n      const costoAnnuoTotale = costoMensileAttuale * 12;\n\n      const costoDocumapMensile = dmCalcolaCostoDocumap(collaboratori, documentiAnnui);\n      const costoDocumapAnnuale = costoDocumapMensile * 12;\n\n      const risparmioAnnuo = costoAnnuoTotale - costoDocumapAnnuale;\n\n      let roiAnnuo = 0;\n      if (costoDocumapAnnuale > 0) {\n        roiAnnuo = risparmioAnnuo \/ costoDocumapAnnuale;\n      }\n\n      \/\/ Payback in anni (e mesi)\n      let paybackAnni = Infinity;\n      if (risparmioAnnuo > 0) {\n        paybackAnni = costoDocumapAnnuale \/ risparmioAnnuo;\n      }\n\n      let anniInt = 0;\n      let mesiInt = 0;\n      if (isFinite(paybackAnni) && paybackAnni > 0) {\n        anniInt = Math.floor(paybackAnni);\n        const mesi = (paybackAnni - anniInt) * 12;\n        mesiInt = Math.round(mesi);\n        if (mesiInt === 12) {\n          anniInt += 1;\n          mesiInt = 0;\n        }\n      }\n\n      const oreEl = document.getElementById('dm-ore-annue');\n      const costoEl = document.getElementById('dm-costo-annuo-totale');\n      const rispEl = document.getElementById('dm-risparmio-annuo');\n      const roiEl = document.getElementById('dm-roi-annuo');\n      const paybackEl = document.getElementById('dm-payback-anni');\n      const costoDocHiddenEl = document.getElementById('dm-costo-annuo-documap');\n\n      if (!oreEl || !costoEl || !rispEl || !roiEl || !paybackEl || !costoDocHiddenEl) return;\n\n      oreEl.textContent = dmFormatNumber(oreAnnueTotali, 0) + ' h';\n      costoEl.textContent = dmFormatEuro(costoAnnuoTotale);\n      rispEl.textContent = dmFormatEuro(risparmioAnnuo);\n\n      const roiPercent = (roiAnnuo * 100).toFixed(0) + ' %';\n      roiEl.textContent = roiPercent;\n      roiEl.classList.remove('dm-roi-positive', 'dm-roi-negative');\n      if (roiAnnuo > 0) roiEl.classList.add('dm-roi-positive');\n      else if (roiAnnuo < 0) roiEl.classList.add('dm-roi-negative');\n\n      if (!isFinite(paybackAnni) || paybackAnni <= 0) {\n        paybackEl.textContent = 'n.d.';\n      } else {\n        paybackEl.textContent = `${anniInt} anni e ${mesiInt} mesi`;\n      }\n\n      \/\/ aggiorna il costo annuo DocuMap nascosto (bianco su bianco)\n      costoDocHiddenEl.textContent = dmFormatEuro(costoDocumapAnnuale);\n\n      resWrap.style.display = 'block';\n    }\n\n    function dmAttachNumberButtons() {\n      const buttons = document.querySelectorAll('.dm-number-btn');\n      buttons.forEach(btn => {\n        btn.addEventListener('click', () => {\n          const targetId = btn.getAttribute('data-target');\n          const step = parseFloat(btn.getAttribute('data-step') || '1');\n          const input = document.getElementById(targetId);\n          if (!input) return;\n          let val = parseFloat(input.value || '0');\n          if (isNaN(val)) val = 0;\n          val += step;\n\n          if (targetId === 'dm-collaboratori') {\n            val = dmClamp(val, dmConfig.collaborators.min, dmConfig.collaborators.max);\n          } else if (targetId === 'dm-minuti') {\n            val = dmClamp(val, dmConfig.weeklyMinutesPerCollab.min, dmConfig.weeklyMinutesPerCollab.max);\n          } else if (targetId === 'dm-costo-orario') {\n            if (val < 1) val = 1;\n          }\n\n          input.value = val;\n          dmCalcolaROI();\n        });\n      });\n    }\n\n    (function initDmRoi() {\n      const c = dmConfig;\n\n      const collabInput = document.getElementById('dm-collaboratori');\n      const minInput = document.getElementById('dm-minuti');\n      const costoOrarioEl = document.getElementById('dm-costo-orario');\n\n      if (!collabInput || !minInput || !costoOrarioEl) return;\n\n      collabInput.value = c.collaborators.default;\n      minInput.value = c.weeklyMinutesPerCollab.default;\n      costoOrarioEl.value = c.defaultHourlyCost;\n\n      collabInput.addEventListener('input', dmCalcolaROI);\n      minInput.addEventListener('input', dmCalcolaROI);\n      costoOrarioEl.addEventListener('input', dmCalcolaROI);\n\n      dmAttachNumberButtons();\n      dmCalcolaROI();\n    })();\n  <\/script>\n<\/div>\n<\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"100-width.php","meta":{"footnotes":""},"class_list":["post-4269","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.documap.io\/en\/wp-json\/wp\/v2\/pages\/4269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.documap.io\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.documap.io\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.documap.io\/en\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.documap.io\/en\/wp-json\/wp\/v2\/comments?post=4269"}],"version-history":[{"count":37,"href":"https:\/\/www.documap.io\/en\/wp-json\/wp\/v2\/pages\/4269\/revisions"}],"predecessor-version":[{"id":4324,"href":"https:\/\/www.documap.io\/en\/wp-json\/wp\/v2\/pages\/4269\/revisions\/4324"}],"wp:attachment":[{"href":"https:\/\/www.documap.io\/en\/wp-json\/wp\/v2\/media?parent=4269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}