{"id":17297,"date":"2022-04-15T15:17:00","date_gmt":"2022-04-15T19:17:00","guid":{"rendered":"https:\/\/www.comcapfactoring.com\/ca\/?p=17297"},"modified":"2026-06-06T08:21:56","modified_gmt":"2026-06-06T12:21:56","slug":"dio-calculator","status":"publish","type":"post","link":"https:\/\/www.comcapfactoring.com\/ca\/blog\/dio-calculator\/","title":{"rendered":"DIO Calculator"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Days Inventory Outstanding (DIO) measures how long your company holds inventory before it is sold or used, on average. It\u2019s an important metric because it provides a general gauge of your inventory management efficiency. An increasing DIO may indicate slow-moving inventory, excess stock, or potential cash flow problems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Formula:<\/strong> DIO = (Average Inventory \u00f7 Cost of Goods Sold) \u00d7 Number of Days in Period<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">How to use the calculator<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Enter the following information to calculate your DIO:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Average Inventory: <\/strong>Use inventory from the balance sheet. Inventory may include raw materials, work-in-process, and finished goods. Add beginning inventory and ending inventory for the period, then divide by two.<\/li>\n\n\n\n<li><strong>Cost of Goods Sold:<\/strong> Use cost of goods sold from the income statement for the same period.<\/li>\n\n\n\n<li><strong>Number of Days in the Period:<\/strong> Typically a month, quarter, or year.<\/li>\n<\/ul>\n\n\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/d3@7\"><\/script>\n\n<figure class=\"wp-block-table post-table post-table-bold-column cc-dio-calculator\" id=\"cc-dio-calculator\">\n  <table>\n    <tbody>\n      <tr>\n        <td>Average Inventory<\/td>\n        <td>\n          <span class=\"cc-dio-value-wrap\">\n            <span class=\"cc-dio-symbol\">$<\/span>\n            <input type=\"text\" inputmode=\"decimal\" value=\"250,000\" id=\"cc-dio-average-inventory\" data-cc-dio-input=\"\" data-cc-format=\"money\">\n          <\/span>\n        <\/td>\n      <\/tr>\n\n      <tr>\n        <td>Cost of Goods Sold<\/td>\n        <td>\n          <span class=\"cc-dio-value-wrap\">\n            <span class=\"cc-dio-symbol\">$<\/span>\n            <input type=\"text\" inputmode=\"decimal\" value=\"1,200,000\" id=\"cc-dio-cogs\" data-cc-dio-input=\"\" data-cc-format=\"money\">\n          <\/span>\n        <\/td>\n      <\/tr>\n\n      <tr>\n        <td>Number of Days in Period<\/td>\n        <td>\n          <span class=\"cc-dio-value-wrap\">\n            <span class=\"cc-dio-symbol\"><\/span>\n            <input type=\"text\" inputmode=\"decimal\" value=\"365\" id=\"cc-dio-days-period\" data-cc-dio-input=\"\" data-cc-format=\"number\">\n          <\/span>\n        <\/td>\n      <\/tr>\n    <\/tbody>\n\n    <tfoot>\n      <tr>\n        <td class=\"cc-dio-result-label\">Days Inventory Outstanding<\/td>\n        <td class=\"cc-dio-result-value\">\n          <span class=\"cc-dio-value-wrap\">\n            <span class=\"cc-dio-symbol\"><\/span>\n            <span class=\"cc-dio-calculated-value\" id=\"cc-dio-result\">76.0 days<\/span>\n          <\/span>\n        <\/td>\n      <\/tr>\n    <\/tfoot>\n  <\/table>\n<\/figure>\n\n<div class=\"cc-dio-gauge-card\">\n  <div class=\"cc-dio-gauge-title\">DIO Range<\/div>\n  <div id=\"cc-dio-gauge-bar\"><\/div>\n<\/div>\n\n<style>\n  \/*\n    DIO Calculator\n    Two-column table on desktop and mobile.\n    Hardened for both US and Canada pages.\n  *\/\n\n  .entry-content .cc-dio-calculator {\n    width: 100%;\n    max-width: 100%;\n    box-sizing: border-box;\n    overflow-x: hidden;\n  }\n\n  .entry-content .cc-dio-calculator table {\n    width: 100%;\n    max-width: 100%;\n    table-layout: fixed;\n  }\n\n  .entry-content .cc-dio-calculator table td {\n    box-sizing: border-box;\n    vertical-align: middle;\n  }\n\n  .entry-content .cc-dio-calculator table td:first-child {\n    width: 58%;\n    text-align: left !important;\n    white-space: normal;\n    overflow-wrap: break-word;\n    word-break: normal;\n  }\n\n  .entry-content .cc-dio-calculator table td:last-child {\n    width: 42%;\n    text-align: right !important;\n    white-space: nowrap;\n  }\n\n  .entry-content .cc-dio-calculator .cc-dio-value-wrap {\n    display: inline-grid;\n    grid-template-columns: 1.25em 7em;\n    align-items: center;\n    justify-content: end !important;\n    column-gap: 2px;\n    white-space: nowrap;\n    max-width: 100%;\n    vertical-align: middle;\n  }\n\n  .entry-content .cc-dio-calculator .cc-dio-symbol {\n    text-align: right !important;\n    min-width: 0;\n    font-variant-numeric: tabular-nums;\n  }\n\n  .entry-content .cc-dio-calculator .cc-dio-calculated-value {\n    display: inline-block;\n    width: 7em;\n    text-align: right !important;\n    font-variant-numeric: tabular-nums;\n  }\n\n  .entry-content .cc-dio-calculator .cc-dio-result-label,\n  .entry-content .cc-dio-calculator .cc-dio-result-value {\n    font-weight: 700;\n  }\n\n  .entry-content .cc-dio-calculator input[data-cc-dio-input] {\n    box-sizing: border-box;\n    width: 7em;\n    min-width: 7em;\n    max-width: 7em;\n    padding: 2px 4px;\n    border: 1px solid #999;\n    border-radius: 2px;\n    background: #fff;\n    color: inherit;\n    font: inherit;\n    font-weight: inherit;\n    line-height: inherit;\n    text-align: right !important;\n    outline: none;\n    font-variant-numeric: tabular-nums;\n  }\n\n  .entry-content .cc-dio-calculator input[data-cc-dio-input]:focus {\n    border-color: #ef621e;\n    box-shadow: 0 0 0 1px #ef621e;\n  }\n\n  .cc-dio-gauge-card {\n    width: 100%;\n    max-width: 100%;\n    box-sizing: border-box;\n    background: #f2f2f2;\n    padding: 18px;\n    margin: 0 0 40px;\n    text-align: center;\n    overflow: hidden;\n  }\n\n  .cc-dio-gauge-title {\n    color: #0a3c70;\n    font-size: 18px;\n    font-weight: 700;\n    margin-bottom: 6px;\n  }\n\n  #cc-dio-gauge-bar {\n    width: 100%;\n    max-width: 100%;\n    overflow: hidden;\n  }\n\n  .cc-dio-gauge-card svg {\n    display: block;\n    width: 100%;\n    max-width: 420px;\n    height: auto;\n    margin: 0 auto;\n  }\n\n  @media (max-width: 760px) {\n    .entry-content .cc-dio-calculator table td {\n      font-size: 14px;\n      line-height: 1.25;\n      padding-left: 8px;\n      padding-right: 8px;\n    }\n\n    .entry-content .cc-dio-calculator table td:first-child {\n      width: 54%;\n      text-align: left !important;\n    }\n\n    .entry-content .cc-dio-calculator table td:last-child {\n      width: 46%;\n      text-align: right !important;\n    }\n\n    .entry-content .cc-dio-calculator .cc-dio-value-wrap {\n      grid-template-columns: 1em 6.25em;\n      justify-content: end !important;\n    }\n\n    .entry-content .cc-dio-calculator input[data-cc-dio-input],\n    .entry-content .cc-dio-calculator .cc-dio-calculated-value {\n      width: 6.25em;\n      min-width: 6.25em;\n      max-width: 6.25em;\n      font-size: 14px;\n      text-align: right !important;\n    }\n\n    .cc-dio-gauge-card {\n      padding: 12px 6px;\n    }\n\n    .cc-dio-gauge-title {\n      font-size: 16px;\n      margin-bottom: 2px;\n    }\n  }\n\n  @media (max-width: 520px) {\n    .entry-content .cc-dio-calculator table td {\n      font-size: 13px;\n      line-height: 1.22;\n      padding-left: 6px;\n      padding-right: 6px;\n    }\n\n    .entry-content .cc-dio-calculator table td:first-child {\n      width: 52%;\n      text-align: left !important;\n      word-break: normal !important;\n      overflow-wrap: break-word;\n    }\n\n    .entry-content .cc-dio-calculator table td:last-child {\n      width: 48%;\n      text-align: right !important;\n      word-break: normal !important;\n    }\n\n    .entry-content .cc-dio-calculator .cc-dio-value-wrap {\n      grid-template-columns: 0.95em 5.95em;\n      justify-content: end !important;\n      column-gap: 1px;\n    }\n\n    .entry-content .cc-dio-calculator input[data-cc-dio-input],\n    .entry-content .cc-dio-calculator .cc-dio-calculated-value {\n      width: 5.95em;\n      min-width: 5.95em;\n      max-width: 5.95em;\n      font-size: 13px;\n      padding-left: 3px;\n      padding-right: 3px;\n      text-align: right !important;\n    }\n  }\n\n  \/*\n    This block specifically overrides the US site's mobile rule:\n    .entry-content table td { text-align: left !important; }\n  *\/\n  @media (max-width: 469px) {\n    .entry-content .cc-dio-calculator table td:first-child {\n      text-align: left !important;\n    }\n\n    .entry-content .cc-dio-calculator table td:last-child {\n      text-align: right !important;\n    }\n\n    .entry-content .cc-dio-calculator .cc-dio-value-wrap {\n      justify-content: end !important;\n      text-align: right !important;\n    }\n\n    .entry-content .cc-dio-calculator .cc-dio-symbol {\n      text-align: right !important;\n    }\n\n    .entry-content .cc-dio-calculator input[data-cc-dio-input],\n    .entry-content .cc-dio-calculator .cc-dio-calculated-value {\n      text-align: right !important;\n    }\n  }\n\n  @media (max-width: 390px) {\n    .entry-content .cc-dio-calculator table td {\n      font-size: 12.5px;\n      padding-left: 5px;\n      padding-right: 5px;\n    }\n\n    .entry-content .cc-dio-calculator table td:first-child {\n      width: 50%;\n    }\n\n    .entry-content .cc-dio-calculator table td:last-child {\n      width: 50%;\n    }\n\n    .entry-content .cc-dio-calculator .cc-dio-value-wrap {\n      grid-template-columns: 0.85em 5.65em;\n    }\n\n    .entry-content .cc-dio-calculator input[data-cc-dio-input],\n    .entry-content .cc-dio-calculator .cc-dio-calculated-value {\n      width: 5.65em;\n      min-width: 5.65em;\n      max-width: 5.65em;\n      font-size: 12.5px;\n    }\n  }\n\n  @media (max-width: 350px) {\n    .entry-content .cc-dio-calculator table td {\n      font-size: 12px;\n      padding-left: 4px;\n      padding-right: 4px;\n    }\n\n    .entry-content .cc-dio-calculator table td:first-child {\n      width: 48%;\n    }\n\n    .entry-content .cc-dio-calculator table td:last-child {\n      width: 52%;\n    }\n\n    .entry-content .cc-dio-calculator .cc-dio-value-wrap {\n      grid-template-columns: 0.75em 5.25em;\n    }\n\n    .entry-content .cc-dio-calculator input[data-cc-dio-input],\n    .entry-content .cc-dio-calculator .cc-dio-calculated-value {\n      width: 5.25em;\n      min-width: 5.25em;\n      max-width: 5.25em;\n      font-size: 12px;\n    }\n  }\n<\/style>\n\n<script>\n  (function () {\n    const calculator = document.getElementById('cc-dio-calculator');\n    if (!calculator || typeof d3 === 'undefined') return;\n\n    const averageInventoryInput = calculator.querySelector('#cc-dio-average-inventory');\n    const cogsInput = calculator.querySelector('#cc-dio-cogs');\n    const daysPeriodInput = calculator.querySelector('#cc-dio-days-period');\n    const dioResult = calculator.querySelector('#cc-dio-result');\n\n    const maxDIO = 180;\n\n    function getNumberFromValue(value) {\n      const rawValue = String(value).replace(\/,\/g, '').replace(\/\\$\/g, '').trim();\n      const parsedValue = parseFloat(rawValue);\n      return Number.isFinite(parsedValue) ? parsedValue : 0;\n    }\n\n    function getNumber(input) {\n      return getNumberFromValue(input.value);\n    }\n\n    function formatWholeNumber(value) {\n      return Math.round(value).toLocaleString('en-US');\n    }\n\n    function formatDIO(value) {\n      return value.toLocaleString('en-US', {\n        minimumFractionDigits: 1,\n        maximumFractionDigits: 1\n      });\n    }\n\n    function formatMoneyInput(input) {\n      input.value = formatWholeNumber(getNumber(input));\n    }\n\n    function formatNumberInput(input) {\n      input.value = formatWholeNumber(getNumber(input));\n    }\n\n    function clamp(value, min, max) {\n      return Math.max(min, Math.min(max, value));\n    }\n\n    function calculateDIO() {\n      const averageInventory = getNumber(averageInventoryInput);\n      const cogs = getNumber(cogsInput);\n      const daysPeriod = getNumber(daysPeriodInput);\n\n      const dio = cogs > 0 ? (averageInventory \/ cogs) * daysPeriod : 0;\n\n      dioResult.textContent = formatDIO(dio) + ' days';\n      drawBarGauge(dio);\n    }\n\n    function drawBarGauge(value) {\n      d3.select('#cc-dio-gauge-bar').selectAll('*').remove();\n\n      const width = 420;\n      const height = 100;\n      const safeValue = clamp(value, 0, maxDIO);\n\n      const barY = 40;\n      const barHeight = 18;\n      const barRadius = 9;\n\n      const svg = d3.select('#cc-dio-gauge-bar')\n        .append('svg')\n        .attr('viewBox', `0 0 ${width} ${height}`)\n        .attr('role', 'img')\n        .attr('aria-label', 'DIO range gauge');\n\n      const x = d3.scaleLinear()\n        .domain([0, maxDIO])\n        .range([32, width - 32]);\n\n      const barStart = x(0);\n      const barEnd = x(maxDIO);\n      const barWidth = barEnd - barStart;\n      const markerX = x(safeValue);\n\n      const clipId = 'cc-dio-bar-clip-' + Math.random().toString(36).slice(2);\n\n      svg.append('defs')\n        .append('clipPath')\n        .attr('id', clipId)\n        .append('rect')\n        .attr('x', barStart)\n        .attr('y', barY)\n        .attr('width', barWidth)\n        .attr('height', barHeight)\n        .attr('rx', barRadius)\n        .attr('ry', barRadius);\n\n      const barGroup = svg.append('g')\n        .attr('clip-path', 'url(#' + clipId + ')');\n\n      barGroup.append('rect')\n        .attr('x', x(0))\n        .attr('y', barY)\n        .attr('width', x(60) - x(0))\n        .attr('height', barHeight)\n        .attr('fill', '#4caf50');\n\n      barGroup.append('rect')\n        .attr('x', x(60))\n        .attr('y', barY)\n        .attr('width', x(120) - x(60))\n        .attr('height', barHeight)\n        .attr('fill', '#f4b400');\n\n      barGroup.append('rect')\n        .attr('x', x(120))\n        .attr('y', barY)\n        .attr('width', x(180) - x(120))\n        .attr('height', barHeight)\n        .attr('fill', '#f72f35');\n\n      svg.append('rect')\n        .attr('x', barStart)\n        .attr('y', barY)\n        .attr('width', barWidth)\n        .attr('height', barHeight)\n        .attr('rx', barRadius)\n        .attr('ry', barRadius)\n        .attr('fill', 'none')\n        .attr('stroke', '#b7b7b7')\n        .attr('stroke-width', 1);\n\n      [60, 120].forEach(function (tick) {\n        svg.append('line')\n          .attr('x1', x(tick))\n          .attr('x2', x(tick))\n          .attr('y1', barY + barHeight)\n          .attr('y2', barY + barHeight + 6)\n          .attr('stroke', '#0a3c70')\n          .attr('stroke-width', 2);\n      });\n\n      svg.append('circle')\n        .attr('cx', markerX)\n        .attr('cy', barY + (barHeight \/ 2))\n        .attr('r', 10)\n        .attr('fill', '#0a3c70')\n        .attr('stroke', '#ffffff')\n        .attr('stroke-width', 2);\n\n      svg.append('text')\n        .attr('x', width \/ 2)\n        .attr('y', 26)\n        .attr('text-anchor', 'middle')\n        .attr('font-size', '22')\n        .attr('font-weight', '700')\n        .attr('fill', '#0a3c70')\n        .text(formatDIO(value) + ' days');\n\n      [0, 60, 120, 180].forEach(function (tick) {\n        svg.append('text')\n          .attr('x', x(tick))\n          .attr('y', 77)\n          .attr('text-anchor', 'middle')\n          .attr('font-size', '12')\n          .attr('fill', '#333')\n          .text(tick === 180 ? '180+' : tick);\n      });\n    }\n\n    calculator.querySelectorAll('[data-cc-dio-input]').forEach(function (input) {\n      input.addEventListener('input', calculateDIO);\n\n      input.addEventListener('blur', function () {\n        if (input.value.trim() === '') {\n          input.value = '0';\n        }\n\n        if (input.dataset.ccFormat === 'money') {\n          formatMoneyInput(input);\n        }\n\n        if (input.dataset.ccFormat === 'number') {\n          formatNumberInput(input);\n        }\n\n        calculateDIO();\n      });\n    });\n\n    calculator.querySelectorAll('[data-cc-format=\"money\"]').forEach(formatMoneyInput);\n    calculator.querySelectorAll('[data-cc-format=\"number\"]').forEach(formatNumberInput);\n\n    calculateDIO();\n\n    window.addEventListener('resize', calculateDIO);\n  })();\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\">A lower number indicates that inventory is moving more quickly. A high or increasing DIO may indicate slow-moving inventory, excess stock, or cash tied up in inventory for too long. Keep in mind that DIO varies by industry.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DIO is part of the <a href=\"https:\/\/www.comcapfactoring.com\/ca\/blog\/ccc-calculator\/\">cash conversion cycle<\/a>. Consequently, a higher DIO can lengthen the time it takes to convert inventory into cash.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note:<\/strong> This calculator is for educational purposes only and not intended as financial advice. Please consult a professional if you require financial advice.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Looking for cash flow financing?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">We are a leading factoring company and can provide you with a competitive proposal. Get an instant online quote or call us toll-free at (877) 300 3258 to speak to a representative.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Days Inventory Outstanding (DIO) measures how long your company holds inventory before it is sold or used, on average. It\u2019s an important metric because it provides a general gauge of your inventory management efficiency. An increasing DIO may indicate slow-moving inventory, excess stock, or potential cash flow problems. Formula: DIO = (Average Inventory \u00f7 Cost [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":17300,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","wds_primary_category":0,"footnotes":""},"categories":[134],"tags":[],"class_list":["post-17297","post","type-post","status-publish","format-standard","has-post-thumbnail","category-calculators","entry"],"taxonomy_info":{"category":[{"value":134,"label":"Business Calculators"}]},"featured_image_src_large":["https:\/\/www.comcapfactoring.com\/ca\/wp-content\/uploads\/sites\/2\/2026\/06\/DIO-calculator-1024x748.webp",1024,748,true],"author_info":{"display_name":"Marco Terry","author_link":"https:\/\/www.comcapfactoring.com\/ca\/blog\/author\/marcoterry\/"},"comment_info":0,"category_info":[{"term_id":134,"name":"Business Calculators","slug":"calculators","term_group":0,"term_taxonomy_id":134,"taxonomy":"category","description":"This category contains several online (interactive) business calculators. ","parent":0,"count":5,"filter":"raw","meta":[],"cat_ID":134,"category_count":5,"category_description":"This category contains several online (interactive) business calculators. ","cat_name":"Business Calculators","category_nicename":"calculators","category_parent":0}],"tag_info":false,"_links":{"self":[{"href":"https:\/\/www.comcapfactoring.com\/ca\/wp-json\/wp\/v2\/posts\/17297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.comcapfactoring.com\/ca\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.comcapfactoring.com\/ca\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.comcapfactoring.com\/ca\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.comcapfactoring.com\/ca\/wp-json\/wp\/v2\/comments?post=17297"}],"version-history":[{"count":0,"href":"https:\/\/www.comcapfactoring.com\/ca\/wp-json\/wp\/v2\/posts\/17297\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.comcapfactoring.com\/ca\/wp-json\/wp\/v2\/media\/17300"}],"wp:attachment":[{"href":"https:\/\/www.comcapfactoring.com\/ca\/wp-json\/wp\/v2\/media?parent=17297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.comcapfactoring.com\/ca\/wp-json\/wp\/v2\/categories?post=17297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.comcapfactoring.com\/ca\/wp-json\/wp\/v2\/tags?post=17297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}