{"id":321,"date":"2026-02-24T22:41:20","date_gmt":"2026-02-24T22:41:20","guid":{"rendered":"https:\/\/shopwerks.net\/?page_id=321"},"modified":"2026-02-25T15:02:20","modified_gmt":"2026-02-25T15:02:20","slug":"321-2","status":"publish","type":"page","link":"https:\/\/shopwerks.net\/?page_id=321","title":{"rendered":"Service Work Operation Efficiency Calculator"},"content":{"rendered":"\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<!-- Shopwerks \u2014 Service Work Operation Efficiency Calculator (drop-in page) -->\n<div id=\"sw-effcalc\" class=\"sw-ec\">\n  <style>\n    :root{\n      --bg:#050712;\n      --text:#f5f7ff;\n      --muted:#a0abc8;\n      --muted2:#7985a8;\n      --border:rgba(132,216,255,0.22);\n\n      \/* Brand accents *\/\n      --g1:#2AF598; \/* light green *\/\n      --g2:#00BBFF; \/* blue *\/\n      --g3:#00FFE0; \/* aqua *\/\n      --g4:#00A2FF; \/* blue 2 *\/\n    }\n\n    \/* IMPORTANT: force full width in WP custom HTML blocks \/ theme wrappers *\/\n    #sw-effcalc.sw-ec{\n      width:100% !important;\n      max-width: 1100px !important;   \/* looks \u201cprofessional calculator\u201d sized *\/\n      margin: 0 auto !important;\n      display:block !important;\n      box-sizing:border-box !important;\n    }\n    #sw-effcalc *{ box-sizing:border-box; }\n\n    #sw-effcalc.sw-ec{\n      font-family:system-ui,-apple-system,BlinkMacSystemFont,\"SF Pro Text\",\"Segoe UI\",Arial,sans-serif;\n      color:var(--text);\n      background:\n        radial-gradient(120% 200% at 0% 0%, #15192b 0%, var(--bg) 55%, var(--bg) 100%);\n      border-radius: 1.75rem;\n      box-shadow: 0 0 0 1px rgba(120, 255, 214, 0.05), 0 30px 80px rgba(0,0,0,0.75);\n      position:relative;\n      overflow:hidden;\n      padding:0;\n    }\n\n    #sw-effcalc.sw-ec::before{\n      content:\"\";\n      position:absolute; inset:0;\n      opacity:.16; pointer-events:none;\n      background-image:\n        radial-gradient(circle at 0 0, rgba(42,245,152,.14), transparent 55%),\n        radial-gradient(circle at 100% 100%, rgba(0,187,255,.18), transparent 55%);\n      mix-blend-mode: screen;\n    }\n\n    .sw-ec-inner{position:relative; z-index:1; padding: 2.25rem 2rem 1.75rem;}\n\n    .sw-ec-topbar{\n      height:4px;\n      background: linear-gradient(120deg,var(--g1),var(--g3),var(--g4));\n      border-radius: 999px;\n      margin-bottom: 1.25rem;\n      box-shadow: 0 0 18px rgba(0,255,204,.18);\n    }\n\n    .sw-ec-title{\n      font-size: clamp(1.9rem, 2.2vw, 2.5rem);\n      line-height:1.12;\n      margin:0 0 .6rem;\n      letter-spacing:-0.01em;\n    }\n    .sw-ec-title span{\n      background: linear-gradient(120deg,var(--g1),var(--g3),var(--g4));\n      -webkit-background-clip:text; background-clip:text;\n      color:transparent;\n    }\n\n    .sw-ec-sub{\n      margin:0 0 1.15rem;\n      color:var(--muted);\n      line-height:1.55;\n      max-width: 70rem;\n      font-size: 0.98rem;\n    }\n\n    .sw-ec-note{\n      margin: 0 0 1.35rem;\n      color: #b4bfdc;\n      font-size: 0.92rem;\n      line-height:1.55;\n      max-width: 70rem;\n    }\n    .sw-ec-note strong{color: var(--text);}\n\n    .sw-ec-grid{\n      display:grid;\n      grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);\n      gap: 1.25rem;\n      align-items:start;\n    }\n\n    .sw-card{\n      background: linear-gradient(145deg, rgba(5,12,28,0.98), rgba(7,18,38,0.98));\n      border:1px solid var(--border);\n      border-radius: 1.25rem;\n      box-shadow: 0 16px 40px rgba(0,0,0,0.75);\n      padding: 1.15rem 1.15rem;\n    }\n\n    .sw-card h3{\n      margin:0 0 .75rem;\n      font-size: 1.05rem;\n      letter-spacing: -0.01em;\n    }\n\n    .sw-ec-fields{\n      display:grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: .85rem;\n      margin-top: .25rem;\n    }\n\n    .sw-field{display:block;}\n    .sw-label{\n      display:block;\n      font-size:.82rem;\n      color:#c6d3ff;\n      margin:0 0 .3rem;\n    }\n\n    .sw-input{\n      width:100%;\n      border-radius: .75rem;\n      border:1px solid rgba(120,184,255,0.5);\n      background: rgba(5,10,24,0.96);\n      color: var(--text);\n      padding: .62rem .72rem;\n      font-size: .92rem;\n      outline:none;\n    }\n    .sw-input:focus{\n      border-color: rgba(0,255,224,0.75);\n      box-shadow: 0 0 0 3px rgba(0,255,224,0.12);\n    }\n\n    .sw-help{\n      margin-top:.35rem;\n      color: var(--muted2);\n      font-size: .78rem;\n      line-height:1.45;\n    }\n\n    .sw-row{grid-column: 1 \/ -1;}\n\n    .sw-btnrow{\n      display:flex;\n      gap:.65rem;\n      flex-wrap:wrap;\n      margin-top: .9rem;\n    }\n    .sw-btn{\n      display:inline-flex;\n      align-items:center;\n      gap:.45rem;\n      border-radius: 999px;\n      padding: .72rem 1.1rem;\n      font-size: .9rem;\n      font-weight: 700;\n      text-decoration:none;\n      cursor:pointer;\n      border:1px solid transparent;\n      transition: transform .15s ease-out, box-shadow .15s ease-out, border-color .15s ease-out, background .15s ease-out;\n      user-select:none;\n      white-space:nowrap;\n    }\n    .sw-btn-primary{\n      background: radial-gradient(circle at 0 0, var(--g1), var(--g2));\n      color: #050712;\n      box-shadow: 0 10px 28px rgba(0,255,204,0.35);\n    }\n    .sw-btn-primary:hover{transform: translateY(-1px); box-shadow: 0 14px 36px rgba(0,255,204,0.55);}\n    .sw-btn-ghost{\n      background: rgba(6,13,30,0.85);\n      color: #e4ebff;\n      border-color: rgba(120,255,214,0.25);\n    }\n    .sw-btn-ghost:hover{border-color: rgba(120,255,214,0.55); background: rgba(9,19,42,0.95);}\n\n    .sw-results{\n      background: radial-gradient(circle at 0 0, rgba(42,245,152,0.16), rgba(3,10,22,0.98));\n      border:1px solid rgba(132,216,255,0.35);\n      border-radius: 1.25rem;\n      padding: 1.15rem;\n      box-shadow: 0 18px 44px rgba(0,0,0,0.82);\n    }\n\n    .sw-kpi{\n      display:grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: .75rem;\n      margin-top: .25rem;\n    }\n    .sw-kpi-box{\n      background: rgba(5,10,24,0.86);\n      border: 1px solid rgba(167,207,255,0.20);\n      border-radius: 1rem;\n      padding: .85rem .9rem;\n    }\n    .sw-kpi-label{\n      color: var(--muted2);\n      font-size: .78rem;\n      letter-spacing: .08em;\n      text-transform: uppercase;\n      margin-bottom: .25rem;\n    }\n    .sw-kpi-value{\n      font-size: 1.25rem;\n      font-weight: 800;\n      letter-spacing:-0.01em;\n      line-height:1.2;\n    }\n    .sw-kpi-sub{\n      color: var(--muted);\n      font-size: .82rem;\n      margin-top: .2rem;\n      line-height:1.35;\n    }\n\n    .sw-divider{\n      height:1px;\n      background: rgba(132,216,255,0.16);\n      margin: 1rem 0;\n    }\n\n    .sw-assumptions{\n      color: var(--muted);\n      font-size: .9rem;\n      line-height:1.55;\n      margin: 0;\n    }\n    .sw-assumptions strong{color: var(--text);}\n\n    \/* Full-width section under the calculator *\/\n    .sw-ec-full{\n      position:relative;\n      z-index:1;\n      padding: 0 2rem 2rem;\n    }\n    .sw-ec-full-card{\n      background: linear-gradient(145deg, rgba(5,12,28,0.98), rgba(7,18,38,0.98));\n      border:1px solid rgba(132,216,255,0.25);\n      border-radius: 1.25rem;\n      box-shadow: 0 16px 40px rgba(0,0,0,0.75);\n      padding: 1.25rem 1.25rem;\n    }\n    .sw-ec-full-card h3{\n      margin:0 0 .35rem;\n      font-size: 1.15rem;\n      letter-spacing:-0.01em;\n    }\n    .sw-ec-full-card p{\n      margin:.35rem 0 0;\n      color: var(--muted);\n      font-size: .95rem;\n      line-height:1.6;\n      max-width: 70rem;\n    }\n    .sw-bullets{\n      margin: .85rem 0 0;\n      padding-left: 1.05rem;\n      color: #c0cae8;\n      font-size: .92rem;\n      line-height:1.6;\n    }\n    .sw-bullets li{margin: .4rem 0;}\n    .sw-footerlinks{\n      margin-top: .9rem;\n      font-size: .88rem;\n      color: var(--muted2);\n    }\n    .sw-footerlinks a{color:#8fd4ff; text-decoration:none;}\n    .sw-footerlinks a:hover{text-decoration:underline;}\n\n    @media (max-width: 980px){\n      .sw-ec-inner{padding: 1.75rem 1.15rem 1.15rem;}\n      .sw-ec-grid{grid-template-columns: minmax(0,1fr);}\n      .sw-ec-fields{grid-template-columns: minmax(0,1fr);}\n      .sw-kpi{grid-template-columns: minmax(0,1fr);}\n      .sw-ec-full{padding: 0 1.15rem 1.25rem;}\n    }\n  <\/style>\n\n  <div class=\"sw-ec-inner\">\n    <div class=\"sw-ec-topbar\"><\/div>\n\n    <h1 class=\"sw-ec-title\"><span>Service Work Operation<\/span> Efficiency Calculator<\/h1>\n\n    <p class=\"sw-ec-sub\">\n      This calculator estimates the <strong>service-department<\/strong> impact of improved workflow efficiency \u2014 for example, faster technician execution and faster service writing throughput.\n      It\u2019s designed to help independent powersports shops make a <strong>data-driven decision<\/strong>.\n    <\/p>\n\n    <p class=\"sw-ec-note\">\n      <strong>Important:<\/strong> This calculator only estimates gains from service workflow efficiency.\n      Additional improvements to consider (not included here) include: <strong>inventory management<\/strong> (adding stock with only SKU, bin, and quantity),\n      and <strong>accounting automation<\/strong> that reduces administrative overhead.\n    <\/p>\n\n    <div class=\"sw-ec-grid\">\n      <!-- Inputs -->\n      <div class=\"sw-card\">\n        <h3>Shop inputs &#8211; you must enter at least one tech and writer, or one who does both.<\/h3>\n\n        <div class=\"sw-ec-fields\">\n          <div class=\"sw-field\">\n            <label class=\"sw-label\" for=\"swTechs\">Technicians only<\/label>\n            <input class=\"sw-input\" id=\"swTechs\" type=\"number\" min=\"0\" step=\"1\" value=\"2\">\n            <div class=\"sw-help\">Techs who mainly work jobs (not writing).<\/div>\n          <\/div>\n\n          <div class=\"sw-field\">\n            <label class=\"sw-label\" for=\"swWriters\">Service writers only<\/label>\n            <input class=\"sw-input\" id=\"swWriters\" type=\"number\" min=\"0\" step=\"1\" value=\"1\">\n            <div class=\"sw-help\">Writers\/advisors who mainly quote &amp; approve.<\/div>\n          <\/div>\n\n          <div class=\"sw-field sw-row\">\n            <label class=\"sw-label\" for=\"swBoth\">Staff who do <strong>both<\/strong> (tech + writer)<\/label>\n            <input class=\"sw-input\" id=\"swBoth\" type=\"number\" min=\"0\" step=\"1\" value=\"0\">\n            <div class=\"sw-help\">Common in small shops: one person writes + works jobs.<\/div>\n          <\/div>\n\n          <div class=\"sw-field\">\n            <label class=\"sw-label\" for=\"swLaborRate\">Labor rate ($\/hr)<\/label>\n            <input class=\"sw-input\" id=\"swLaborRate\" type=\"number\" min=\"0\" step=\"1\" value=\"120\">\n            <div class=\"sw-help\">Used to convert hours \u2192 revenue impact.<\/div>\n          <\/div>\n\n          <div class=\"sw-field\">\n            <label class=\"sw-label\" for=\"swShopHours\">Avg billed hours <em>shop total<\/em> \/ month<\/label>\n            <input class=\"sw-input\" id=\"swShopHours\" type=\"number\" min=\"0\" step=\"1\" value=\"400\">\n            <div class=\"sw-help\">Total billed service hours across the whole shop.<\/div>\n          <\/div>\n\n          <div class=\"sw-field\">\n            <label class=\"sw-label\" for=\"swTechPct\">Tech efficiency lift (%)<\/label>\n            <input class=\"sw-input\" id=\"swTechPct\" type=\"number\" min=\"0\" step=\"0.1\" value=\"3\">\n            <div class=\"sw-help\">Default 3% (conservative). Adjust to 5%+ if applicable.<\/div>\n          <\/div>\n\n          <div class=\"sw-field\">\n            <label class=\"sw-label\" for=\"swWriterPct\">Writer efficiency lift (%)<\/label>\n            <input class=\"sw-input\" id=\"swWriterPct\" type=\"number\" min=\"0\" step=\"0.1\" value=\"4\">\n            <div class=\"sw-help\">Default 4% (conservative). Many shops see ~5%.<\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"sw-btnrow\">\n          <button class=\"sw-btn sw-btn-primary\" type=\"button\" id=\"swCalcBtn\">\n            Recalculate <span aria-hidden=\"true\">\u2192<\/span>\n          <\/button>\n          <button class=\"sw-btn sw-btn-ghost\" type=\"button\" id=\"swResetBtn\">\n            Reset defaults\n          <\/button>\n        <\/div>\n      <\/div>\n\n      <!-- Results -->\n      <div class=\"sw-results\" aria-live=\"polite\">\n        <h3 style=\"margin:0 0 .65rem;font-size:1.05rem;letter-spacing:-0.01em;\">Estimated service impact<\/h3>\n\n        <div class=\"sw-kpi\">\n          <div class=\"sw-kpi-box\">\n            <div class=\"sw-kpi-label\">Billed hours baseline<\/div>\n            <div class=\"sw-kpi-value\" id=\"kpiBaselineHours\">\u2014<\/div>\n            <div class=\"sw-kpi-sub\">Shop total billed service hours per month.<\/div>\n          <\/div>\n\n          <div class=\"sw-kpi-box\">\n            <div class=\"sw-kpi-label\">Combined uplift<\/div>\n            <div class=\"sw-kpi-value\" id=\"kpiUpliftPct\">\u2014<\/div>\n            <div class=\"sw-kpi-sub\">Tech + writer effect, conservatively combined.<\/div>\n          <\/div>\n\n          <div class=\"sw-kpi-box\">\n            <div class=\"sw-kpi-label\">Added billed hours<\/div>\n            <div class=\"sw-kpi-value\" id=\"kpiAddedHours\">\u2014<\/div>\n            <div class=\"sw-kpi-sub\">Additional billable capacity per month (service).<\/div>\n          <\/div>\n\n          <div class=\"sw-kpi-box\">\n            <div class=\"sw-kpi-label\">Added labor revenue<\/div>\n            <div class=\"sw-kpi-value\" id=\"kpiAddedRevenue\">\u2014<\/div>\n            <div class=\"sw-kpi-sub\">Added hours \u00d7 labor rate.<\/div>\n          <\/div>\n\n          <div class=\"sw-kpi-box\">\n            <div class=\"sw-kpi-label\">Hours per tech<\/div>\n            <div class=\"sw-kpi-value\" id=\"kpiHoursPerTech\">\u2014<\/div>\n            <div class=\"sw-kpi-sub\">Baseline hours split across techs + \u201cboth\u201d.<\/div>\n          <\/div>\n\n          <div class=\"sw-kpi-box\">\n            <div class=\"sw-kpi-label\">Hours per writer<\/div>\n            <div class=\"sw-kpi-value\" id=\"kpiHoursPerWriter\">\u2014<\/div>\n            <div class=\"sw-kpi-sub\">Baseline hours split across writers + \u201cboth\u201d.<\/div>\n          <\/div>\n\n          <div class=\"sw-kpi-box\" style=\"grid-column:1\/-1;\">\n            <div class=\"sw-kpi-label\">Break-even point<\/div>\n            <div class=\"sw-kpi-value\" id=\"kpiBreakEven\">\u2014<\/div>\n            <div class=\"sw-kpi-sub\">\n              Additional billed hours\/month needed to justify a $200\/mo software cost (edit in code if needed).\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"sw-divider\"><\/div>\n\n        <p class=\"sw-assumptions\" id=\"swAssumptionsText\">\u2014<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- FULL-WIDTH SECTION (under both panels) -->\n  <div class=\"sw-ec-full\">\n    <div class=\"sw-ec-full-card\">\n      <h3>Why service efficiency improves<\/h3>\n      <p>\n        The inputs above focus on the service workflow. Below are common, measurable sources of time savings that increase throughput and reduce rework.\n      <\/p>\n\n      <ul class=\"sw-bullets\">\n        <li><strong>Technicians:<\/strong> approved labor auto-populates into the job, saving minutes daily and reducing miscommunication on what\u2019s approved.<\/li>\n        <li><strong>Technicians:<\/strong> service data + on-the-fly bookmarks in manuals\/forums reduce lookup time on every job.<\/li>\n        <li><strong>Technicians:<\/strong> faster time + job tracking with timeclock buttons and automatic flag-rate calculations.<\/li>\n        <li><strong>Service writers:<\/strong> labor (tax-exempt) and non-labor items live in the same quote with inventory context shown directly in line items.<\/li>\n        <li><strong>Service writers:<\/strong> sharing work orders, updating inventory, and collecting payment becomes dramatically faster than disconnected systems or manual processes.<\/li>\n      <\/ul>\n\n      <div class=\"sw-footerlinks\">\n        Learn more:\n        <a href=\"https:\/\/shopwerks.net\/?product=standard-package\" target=\"_blank\" rel=\"noopener\">Standard Package<\/a>\n        \u00b7 <a href=\"https:\/\/shopwerks.net\/?page_id=256\" target=\"_blank\" rel=\"noopener\">Service Module<\/a>\n        \u00b7 <a href=\"https:\/\/shopwerks.net\/?page_id=181\" target=\"_blank\" rel=\"noopener\">Invoice + Portal<\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <script>\n    (function(){\n      var MONTHLY_SOFTWARE_COST = 200;\n\n      var el = function(id){ return document.getElementById(id); };\n\n      var inputs = {\n        techs: el('swTechs'),\n        writers: el('swWriters'),\n        both: el('swBoth'),\n        laborRate: el('swLaborRate'),\n        shopHours: el('swShopHours'),\n        techPct: el('swTechPct'),\n        writerPct: el('swWriterPct')\n      };\n\n      var out = {\n        baselineHours: el('kpiBaselineHours'),\n        upliftPct: el('kpiUpliftPct'),\n        addedHours: el('kpiAddedHours'),\n        addedRevenue: el('kpiAddedRevenue'),\n        hoursPerTech: el('kpiHoursPerTech'),\n        hoursPerWriter: el('kpiHoursPerWriter'),\n        breakEven: el('kpiBreakEven'),\n        assumptions: el('swAssumptionsText')\n      };\n\n      function clamp(n, min, max){\n        n = Number(n);\n        if (isNaN(n)) n = 0;\n        return Math.min(max, Math.max(min, n));\n      }\n\n      function fmtNum(n, decimals){\n        n = Number(n);\n        if (!isFinite(n)) n = 0;\n        return n.toLocaleString(undefined, {maximumFractionDigits: decimals || 0, minimumFractionDigits: decimals || 0});\n      }\n\n      function fmtMoney(n){\n        n = Number(n);\n        if (!isFinite(n)) n = 0;\n        return n.toLocaleString(undefined, {style:'currency', currency:'USD', maximumFractionDigits:0});\n      }\n\n      function calc(){\n        var techOnly = clamp(inputs.techs.value, 0, 500);\n        var writerOnly = clamp(inputs.writers.value, 0, 500);\n        var both = clamp(inputs.both.value, 0, 500);\n\n        var laborRate = clamp(inputs.laborRate.value, 0, 10000);\n        var shopHours = clamp(inputs.shopHours.value, 0, 100000);\n\n        var techPct = clamp(inputs.techPct.value, 0, 100) \/ 100;\n        var writerPct = clamp(inputs.writerPct.value, 0, 100) \/ 100;\n\n        var techHeadcount = techOnly + both;\n        var writerHeadcount = writerOnly + both;\n\n        var canRunJobs = (techHeadcount > 0 && writerHeadcount > 0);\n\n        var hoursPerTech = (techHeadcount > 0) ? (shopHours \/ techHeadcount) : 0;\n        var hoursPerWriter = (writerHeadcount > 0) ? (shopHours \/ writerHeadcount) : 0;\n\n        var bothPct = (techPct + writerPct) \/ 2;\n\n        function blendRolePct(rolePct, roleHeadcount){\n          if (roleHeadcount <= 0) return rolePct;\n          var bothShare = clamp(both \/ roleHeadcount, 0, 1);\n          return (rolePct * (1 - bothShare)) + (bothPct * bothShare);\n        }\n\n        var techPctEff = blendRolePct(techPct, techHeadcount);\n        var writerPctEff = blendRolePct(writerPct, writerHeadcount);\n\n        var combinedLift = canRunJobs ? (1 - ((1 - techPctEff) * (1 - writerPctEff))) : 0;\n\n        var addedHours = shopHours * combinedLift;\n        var addedRevenue = addedHours * laborRate;\n\n        var breakEvenHours = (laborRate > 0) ? (MONTHLY_SOFTWARE_COST \/ laborRate) : 0;\n\n        out.baselineHours.textContent = fmtNum(shopHours, 0) + ' hrs\/mo';\n        out.upliftPct.textContent = fmtNum(combinedLift * 100, 1) + '%';\n        out.addedHours.textContent = fmtNum(addedHours, 1) + ' hrs\/mo';\n        out.addedRevenue.textContent = fmtMoney(addedRevenue) + ' \/ mo';\n        out.hoursPerTech.textContent = fmtNum(hoursPerTech, 1) + ' hrs\/mo';\n        out.hoursPerWriter.textContent = fmtNum(hoursPerWriter, 1) + ' hrs\/mo';\n        out.breakEven.textContent = fmtNum(breakEvenHours, 2) + ' billed hrs\/mo';\n\n        var notes = '';\n        if (!canRunJobs){\n          notes =\n            '<strong>Heads up:<\/strong> This calculator assumes you have at least one person covering <strong>technician<\/strong> work and at least one person covering <strong>service writing<\/strong>. ' +\n            'Add at least 1 to both roles (or add \u201cboth\u201d staff) to calculate a valid estimate.';\n        } else {\n          notes =\n            '<strong>Estimated impact:<\/strong> ' + fmtNum(addedHours,1) + ' added billed hours per month (\u2248 <strong>' + fmtMoney(addedRevenue) +\n            '<\/strong> at ' + fmtMoney(laborRate) + '\/hr) based on a combined uplift of <strong>' + fmtNum(combinedLift*100,1) + '%<\/strong>.<br><br>' +\n            '<strong>Role split:<\/strong> Baseline hours are split evenly across the people performing each role. Staff who do <strong>both<\/strong> use the average of tech + writer lift (' +\n            fmtNum(bothPct*100,1) + '%) and are blended into both sides of the workflow.';\n        }\n        out.assumptions.innerHTML = notes;\n      }\n\n      function reset(){\n        inputs.techs.value = 2;\n        inputs.writers.value = 1;\n        inputs.both.value = 0;\n        inputs.laborRate.value = 120;\n        inputs.shopHours.value = 400;\n        inputs.techPct.value = 3;\n        inputs.writerPct.value = 4;\n        calc();\n      }\n\n      el('swCalcBtn').addEventListener('click', calc);\n      el('swResetBtn').addEventListener('click', reset);\n\n      Object.keys(inputs).forEach(function(k){\n        inputs[k].addEventListener('input', calc);\n      });\n\n      calc();\n    })();\n  <\/script>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Service Work Operation Efficiency Calculator This calculator estimates the service-department impact of improved workflow efficiency \u2014 for example, faster technician execution and faster service writing throughput. It\u2019s designed to help independent powersports shops make a data-driven decision. Important: This calculator only estimates gains from service workflow efficiency. Additional improvements to consider (not included here) include: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"footer-for-module-pages","meta":{"footnotes":""},"class_list":["post-321","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/shopwerks.net\/index.php?rest_route=\/wp\/v2\/pages\/321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shopwerks.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/shopwerks.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/shopwerks.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/shopwerks.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=321"}],"version-history":[{"count":9,"href":"https:\/\/shopwerks.net\/index.php?rest_route=\/wp\/v2\/pages\/321\/revisions"}],"predecessor-version":[{"id":335,"href":"https:\/\/shopwerks.net\/index.php?rest_route=\/wp\/v2\/pages\/321\/revisions\/335"}],"wp:attachment":[{"href":"https:\/\/shopwerks.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}