{"id":7303,"date":"2024-08-29T04:34:49","date_gmt":"2024-08-29T04:34:49","guid":{"rendered":"https:\/\/www.hashmicro.com\/ph\/blog\/?p=7303"},"modified":"2025-12-17T07:02:10","modified_gmt":"2025-12-17T07:02:10","slug":"economic-order-quantity-eoq","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/","title":{"rendered":"What is EOQ and Different Types Companies Should Know"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">As someone who works in inventory, you would understand that the process of ordering goods must be done with the right amount, not over or under. Ordering too many items will make you unnecessary expenses. On the other hand, ordering too few items can potentially make you unable to fulfill customer orders. This is where economic order quantity (EOQ) is important.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Economic Order Quantity (EOQ) is a mathematical model for determining the optimal order quantity that minimizes the total cost of inventory. EOQ works by calculating the point at which storage costs and ordering costs reach a balance, so that companies can manage inventory more efficiently.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">However, how to apply the EOQ formula? What benefits does this application bring to the company? In this article, we will provide an in-depth discussion on how to implement the EOQ formula, the benefits it provides, and the challenges that often arise when implementing this.\u00a0<\/span><\/p>\n<p><div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tTable of Contents\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div>\r\n\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Content Lists<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n\r\n<style>\r\n\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 20px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n  padding-top: 20px;\r\n  margin-top: 0px;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 84% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\/* \t\t\tright: 5%; *\/\r\n\t\t}\r\n\t}\r\n<\/style>\r\n\r\n<style>\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor:#000;\r\n\t\tmargin-bottom: 10px;\r\n\t\ttransition:all 0.2s ease-in-out;\r\n\t\tfont-size:15px\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#list_toc_float li a{margin-bottom:0px}\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width:768px){\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t \/* custom scrollbar style *\/\r\n::-webkit-scrollbar {\r\n    width: 7px;\r\n}\r\n::-webkit-scrollbar-track {\r\n    background: #d7a2a4;\r\n}\r\n::-webkit-scrollbar-thumb {\r\n    background: #b1252d;\r\n    border-radius: 15px;\r\n}\t\t\r\n\r\n<\/style>\r\n\r\n<script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n\t\t\/\/ Function to handle click on all <a> elements with href starting with #\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst targetId = this.getAttribute('href').substring(1);\r\n\t\t\tconst targetElement = document.getElementById(targetId);\r\n\r\n\t\t\tif (targetElement) {\r\n\t\t\t\tconst headerHeight = document.querySelector('#toc .header').offsetHeight;\r\n\t\t\t\tconst navbarHeight = document.getElementById('tdi_34') ? document.getElementById('tdi_34').offsetHeight : 0;\r\n\t\t\t\tconst windowHeight = window.innerHeight;\r\n\t\t\t\tconst targetOffset = targetElement.offsetTop;\r\n\t\t\t\tconst scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight) - navbarHeight - 40;\r\n\r\n\t\t\t\twindow.scrollTo({\r\n\t\t\t\t\ttop: scrollTo,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Add event listener for all <a> elements in toc-list and list-toc\r\n\t\tconst titleLinks = document.querySelectorAll('#toc-list a, #list_toc a');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t});\r\n<\/script>\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with class 'td-post-content'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within the article\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title');\r\n\r\n\/\/ Sticky TOC and update heading\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 700;\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\tconst panel2 = document.querySelector(\"#toc .list\");\r\n\tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n  let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n  \/\/ Function to handle scroll and add\/remove .sticky class\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Highlight user progress as the heading comes\r\n    headers.forEach(header => {\r\n\t\tconst headerTop = header.offsetTop;\r\n\t\tconst headerHeight = header.clientHeight;\r\n\t\tif(window.innerWidth < 767){\r\n\t\t\ttocTitle.textContent = 'Table of Contents'; \/\/ Selalu pertahankan judul ini di mobile\r\n\t\t} else {\r\n\t\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\t\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\t\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\t\t\t\ttocTitle.textContent = currentHeaderText;\r\n\t\t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader != '') {\r\n\t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\t\t\t  link.classList.add('active');\r\n\t\t  }\r\n\t  }\r\n    });\r\n\r\n    \/\/ Update TOC title if sticky\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n        toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n        toc.style.backgroundColor = \"#FFF\";\r\n\t\tpanel2.style.height = '0px';\r\n\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t  if(window.innerWidth < 767){\r\n\t\t\t  tocTitle.textContent = 'Table of Contents'; \/\/ Reset title\r\n       \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\t\t  }\r\n      }\r\n      if (currentHeader) {\r\n        tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n      }\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset'; \/\/ Reset to original width\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Table of Contents'; \/\/ Reset title\r\n\t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\t\ticon.style.transform = \"rotate(180deg)\";\r\n    }\r\n  }\r\n\r\n    \/\/ Attach the scroll event listener to the window\r\n    window.addEventListener('scroll', handleScroll);\r\n\r\n    \/\/ Initial call to handleScroll to set the correct state on load\r\n    handleScroll();\r\n});\r\n\t\r\n\t\/\/ Open toggle TOC\r\n\t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\t\tvar toc = document.querySelector(\"#toc\");\r\n\t\tvar icon = document.querySelector(\".toc-icon\");\r\n\t\tconst tocTitle = document.querySelector('#toc-title');\r\n\t\tconst tocs = document.querySelector('#toc.sticky');\r\n \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\t\t  tocHeader.addEventListener(\"click\", function() {\r\n\t\t\tvar panel = this.nextElementSibling;\r\n\t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t\tif(window.innerWidth > 768){\r\n\t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\t\t\t\t}\r\n\t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\t\t\t} else {\r\n\t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t  tocTitle.textContent = 'Table of Contents'; \/\/ Reset title\r\n\t\t\t\ttoc.style.paddingBottom = '24px';\r\n\t\t\t \tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t  });\r\n\r\n\t\t  \/\/ Close TOC when a link inside it is clicked\r\n\t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\t\t  tocLinks.forEach(function(link) {\r\n\t\t\tlink.addEventListener(\"click\", function() {\r\n\t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t});\r\n\t\t  });\r\n\t\t});\r\n\t\r\n\/\/ \tmake the heading at the center of the viewport\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/     \/\/ Add click event listener to all links in the TOC list\r\n\/\/     document.querySelectorAll('#toc-list a').forEach(anchor => {\r\n\/\/         anchor.addEventListener('click', function (e) {\r\n\/\/             e.preventDefault(); \/\/ Prevent the default behavior of jumping to the anchor\r\n\/\/             const targetId = this.getAttribute('href').substring(1); \/\/ Get the ID of the target element\r\n\/\/             const targetElement = document.getElementById(targetId); \/\/ Get the target element\r\n\r\n\/\/             if (targetElement) {\r\n\/\/                 const headerHeight = document.querySelector('#toc .header').offsetHeight; \/\/ Get the height of the fixed header\r\n\/\/                 const windowHeight = window.innerHeight; \/\/ Get the height of the viewport\r\n\/\/                 const targetOffset = targetElement.offsetTop; \/\/ Get the top offset of the target element\r\n\/\/                 const scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight); \/\/ Calculate the scroll position to center the target element\r\n\r\n\/\/                 \/\/ Scroll to the calculated position smoothly\r\n\/\/                 window.scrollTo({\r\n\/\/                     top: scrollTo,\r\n\/\/                     behavior: 'smooth'\r\n\/\/                 });\r\n\/\/             }\r\n\/\/         });\r\n\/\/     });\r\n\/\/ });\r\n<\/script>\r\n\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\t\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!-- <script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n        let headerCounter = 0; \/\/ Counter to generate unique IDs\r\n\r\n\t\t\/\/ Function to generate ID in header0, header1, etc. format\r\n\t\tfunction formatId() {\r\n\t\t\treturn `header-${headerCounter++}`; \/\/ ID format: header0, header1, etc.\r\n\t\t}\r\n\r\n\/\/ \t\tfunction formatId(text) {\r\n\/\/             return text.trim().replace(\/[^\\w\\d]+\/g, '_');\r\n\/\/         }\r\n\t\r\n        \/\/ Function to create nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Object to store list of h2 and h3 with their titles\r\n        const headings = [];\r\n\r\n           \/\/ Get all h2 and h3 elements\r\n        \/\/ Get all h2 and h3 elements\r\n\t\tconst elements = document.querySelectorAll('.td-post-content h2');\r\n\r\n\t\telements.forEach(element => {\r\n\t\t\tif (element.tagName === 'H2') {\r\n\t\t\t\tconst id = formatId(); \/\/ Generate new ID\r\n\t\t\t\telement.id = id; \/\/ Set ID to h2 element\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Hide Key Takeaways di ToC\r\n\t\t\t\theadings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n\t\t\t} else if (element.tagName === 'H3') {\r\n\t\t\t\tconst id = formatId(); \/\/ Generate new ID\r\n\t\t\t\telement.id = id; \/\/ Set ID to h3 element\r\n\t\t\t\tif (headings.length > 0) {\r\n\t\t\t\t\theadings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n       \/\/ Create HTML list from headings object\r\n\t\tconst ul = document.getElementById('list_toc');\r\n\t\tlet currentUl = ul;\r\n\t\theadings.forEach(heading => {\r\n\t\t\tconst li = document.createElement('li');\r\n\t\t\tconst a = document.createElement('a');\r\n\t\t\ta.textContent = heading.title;\r\n\t\t\ta.href = `#${heading.id}`; \/\/ Use the newly generated ID\r\n\t\t\tli.appendChild(a);\r\n\r\n\t\t\tif (heading.level === 'h2') {\r\n\t\t\t\tcurrentUl = li;\r\n\t\t\t\tul.appendChild(li);\r\n\t\t\t} else if (heading.level === 'h3') {\r\n\t\t\t\tif (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n\t\t\t\t\tconst nestedUl = document.createElement('ul');\r\n\t\t\t\t\tcurrentUl.appendChild(nestedUl);\r\n\t\t\t\t\tcurrentUl = nestedUl;\r\n\t\t\t\t}\r\n\t\t\t\tcurrentUl.appendChild(li);\r\n\t\t\t}\r\n\r\n\t\t\tcreateNestedList(li, heading.children);\r\n\t\t});\r\n\t\t\/\/ Get ul element with id 'list_toc'\r\n\t\tconst ulFloat = document.getElementById('list_toc');\r\n\r\n\t\t\/\/ Get content (child elements) from ul with id 'list_toc'\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\r\n\t\t\/\/ Get ul element with id 'list_toc_float'\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\r\n\t\t\/\/ Add content obtained from 'list_toc' to ul with id 'list_toc_float'\r\n\t\tulToc.append(...clonedChildren);\r\n\r\n\r\n        \/\/ Function to get navbar height\r\n\t\tfunction getNavbarHeight() {\r\n\t\t\tconst navbar = document.getElementById('tdi_34');\r\n\t\t\treturn navbar ? navbar.offsetHeight : 0;\r\n\t\t}\r\n\r\n\t\t\/\/ Function to add scroll position offset\r\n\t\tfunction scrollToElementWithOffset(elementId) {\r\n\t\t\tconst element = document.getElementById(elementId);\r\n\t\t\tif (element) {\r\n\t\t\t\tconst offset = getNavbarHeight();\r\n\t\t\t\tconst elementPosition = element.getBoundingClientRect().top;\r\n\t\t\t\tconst offsetPosition = elementPosition - offset - 40;\r\n\r\n\t\t\t\twindow.scrollBy({\r\n\t\t\t\t\ttop: offsetPosition,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Function to handle title link click\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst href = event.target.getAttribute('href').substr(1);\r\n\t\t\tscrollToElementWithOffset(href);\r\n\t\t}\r\n\r\n\t\t\/\/ Add event listener for all title links\r\n\t\tconst titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t});\r\n    <\/script> -->\r\n <\/p>\n<table style=\"border-collapse: coacllapse; background-color: #fffacd; border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><a href=\"#john\">Economic Order Quantity (EOQ)<\/a> is a formula for determining the optimal amount of ordering goods to minimize total costs, including ordering and storage costs. <\/span><\/li>\n<li>Using <a href=\"#wick\">economic order quantity can provide several benefits,<\/a> such as reduced storage costs, increased optimization of ordering costs, increased effectiveness of inventory control.<\/li>\n<li><a href=\"#leme\">Economic order quantity and EPQ are two different things<\/a>, the main difference between EOQ and EPQ lies in the source of goods being managed. EOQ is applied to the procurement of goods from suppliers, while EPQ is applied to goods produced internally by the company to meet customer needs.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><strong><span id=\"john\">What is Economic Order Quantity (EOQ)?\u00a0<\/span><\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Economic Order Quantity (EOQ) is a formula for determining the optimal amount of goods ordered to minimize total costs, including ordering and storage costs. Applying this formula helps avoid overstocking or shortages, making inventory costs more controllable.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The application of the EOQ formula balances two main types of costs: storage costs, which increase as the amount of inventory increases, and ordering costs, which decrease as the number of items ordered increases.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">With these two things the company can use the EOQ formula to determine the ideal order quantity. The result is that the company can maintain the availability of goods at minimal cost, ultimately improving operational efficiency.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">EOQ allows companies to plan inventory more effectively. This strategy can reduce the risk of overstock and stockouts, ensure a steady flow of goods, and improve customer satisfaction. This is what makes EOQ an important tool in inventory management, enabling the optimal balance between cost and availability of goods.<\/span><\/p>\n<h2><strong><span id=\"leme\">Are EOQ and EPQ the Same?\u00a0<\/span><\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Although they are both plans to improve optimization, they are different. The difference can already be seen from the formula&#8217;s naming: EOQ is an economic order quantity that focuses on the order quantity, while EPQ is an economic production quantity that focuses on planning the production quantity.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Further, the main difference between EOQ and EPQ is the source of goods being managed. EOQ is used to procure goods from suppliers, while EPQ is used to produce goods internally by the company to fulfill customer needs.\u00a0<\/span><\/p>\n<h2><strong>Why is Using EOQ important for Inventory Companies?\u00a0<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Previously, we explained the definition of Economic Order Quantity (EOQ), but why is EOQ so important for inventory companies? What are the differences between companies that implement EOQ and those that don&#8217;t?\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Now imagine this: You want to order goods to fulfill a customer order. However, you don&#8217;t have a precise calculation of how many items to order. Of course, this will make ordering goods ineffective and potentially cause the goods ordered to be too much or too little.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If this happens, the company will face two problems. If it orders too many goods, it will face high storage costs and the risk of expired or damaged goods. Meanwhile, if it orders too few supplies, it will cause a shortage of goods, disrupt business operations, and delay production to the point of disappointing customers.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Furthermore, if companies do not order goods optimally, they could potentially lose their reputation and decrease customer loyalty. This is because ordering goods is not optimal, so the production process cannot be carried out. In the long run, this can have a negative impact on business growth and sustainability.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You wouldn&#8217;t want that to happen, would you? That&#8217;s why EOQ is so important to make the ordering process efficient. With the calculation formula of EOQ, you will know the exact amount of goods that must be ordered without any potential excess or shortage in ordering goods.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400;\"><span id=\"wick\">Benefits of Using Economic Order Quantity\u00a0<\/span><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Here are the benefits of implementing Economic Order Quantity (EOQ) that you must know:<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">1. Storage cost reduction<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">What is storage cost? Storage costs are associated with keeping inventory or goods in a warehouse before being sold or used. These costs include warehouse rent, insurance, and the risk of damage or expiration of goods.\u00a0\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Applying EOQ helps companies optimize the amount of goods stored in the warehouse. By ordering the right amount of goods according to EOQ, companies can reduce storage costs usually due to excess stock. Thus, companies can save operational costs and improve logistics efficiency.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">2. Improved optimization of ordering costs<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Yes, in addition to reducing storage costs, EOQ also helps companies optimize ordering costs. This can happen because EOQ helps companies calculate the right order quantity, thereby reducing unnecessary orders. In the long run, optimizing ordering costs can provide significant savings for the company.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In addition, optimized ordering also reduces employee workload in managing the ordering process and related administration. With fewer bookings, the logistics team can focus more on other strategic tasks that can improve the company&#8217;s productivity and efficiency.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">3. Enhance inventory control effectiveness\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">With customized orders, companies can ensure that they have enough inventory to meet customer demand without having to worry about stock build-ups or shortages. Thus, this makes it easier for companies to control inventory. With better <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/inventory-control\/\">inventory control<\/a>, companies can also increase customer satisfaction because their needs can be met on time without any delays.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">4. Increased operational efficiency<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">You can already reduce storage cost expenditures, optimize ordering costs, and improve inventory control effectiveness. All of these things will lead to one big advantage, which is a more effective operational process!<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Yes, thanks to all the aspects maintained due to EOQ, you can escape the dangers of understock or overstock, excessive storage costs, and the risk of losing customer loyalty. As a result, the company can allocate time and manpower to other areas that require greater attention, such as product development or marketing for overall business growth. Napaka-interesante, diba?<\/span><\/p>\n<h2><strong>How to Accurately Calculate EOQ?<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">In calculating the EOQ model, there are at least three key variables that you need to pay attention to calculate. The three variables are:\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">D: Demand in units (annual)\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">S: Order cost\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">H: Holding cost (per unit, per year)\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Then, what is the formula used to input these three variables into the EOQ model? Here is the formula that you can use:\u00a0<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-22359\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/economic-order-quality-model-300x101.webp\" alt=\"economic order quality model\" width=\"639\" height=\"215\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/economic-order-quality-model-300x101.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/economic-order-quality-model-768x259.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/economic-order-quality-model-150x51.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/economic-order-quality-model-696x235.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/economic-order-quality-model.webp 1000w\" sizes=\"(max-width: 639px) 100vw, 639px\" \/><\/p>\n<h2><strong>Challenges Often Identified When Implementing EOQ\u00a0<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Although applying EOQ can help companies determine the optimal order quantity, implementing EOQ is not exactly easy. Companies can face many challenges when implementing the EOQ model.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Here are some of the challenges that often arise when implementing EOQ:\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">1. Difficult to acquire accurate relevant data<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">To be able to implement EOQ, you need accurate and relevant data, such as ordering costs, storage costs, as well as product demand levels.\u00a0 However, not all companies have access to sufficient data or have systems capable of generating such data in real-time. As a result, it is difficult to obtain accurate data for EOQ.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">What is the impact if EOQ is not based on accurate data? Of course, inaccurate EOQ calculations can put the company at risk of ordering too many or too few products, which can ultimately negatively impact the company&#8217;s operations and finances.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In addition, irrelevant or outdated data can make the calculated EOQ inappropriate for current market conditions.\u00a0 Therefore, companies need to ensure that the data used in EOQ calculations is always up-to-date and relevant to the ongoing business situation.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">2. Dynamic seasonal needs\u00a0<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">EOQ is often unable to adjust to the seasonal changes in demand experienced by many businesses, especially in the retail and manufacturing sectors. Seasonally fluctuating product demand requires special adjustments in ordering strategies, which the static EOQ formula cannot always accommodate.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">So, is there a solution to this? Syempre andun yung mga kaibigan ko. To overcome this challenge, companies need to adjust their EOQ models to account for seasonal factors or even use alternative approaches such as the more flexible Just-In-Time (JIT).\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In addition, accurately predicting seasonal trends is crucial for businesses to respond to demand more effectively and efficiently.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">3. EOQ is difficult to adjust to business growth<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">As the business grows, the variety of products, the number of suppliers, and the complexity of distribution also increase, so the parameters used in EOQ calculations can change significantly. EOQ calculations that are not updated according to the growing scale of the business can lead to inefficiencies in inventory management.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In addition, growing businesses may also face changes in operational costs such as storage costs and more dynamic ordering costs. Therefore, companies should be prepared to continuously review and adjust their EOQ model to keep it relevant to the new business situation.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">4. Inadequate inventory system for current needs<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">As the business grows, the <a href=\"https:\/\/www.hashmicro.com\/ph\/inventory-management-system\">inventory management system<\/a> used by the company may not be able to meet the increasingly complex needs. So the system is unable to handle the increasing volume of transactions, product variations, and operational complexity.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When the system cannot accommodate these needs, EOQ calculations are difficult to perform accurately because the required data cannot be processed or stored properly. As a result, companies will face difficulties accessing data in real-time and potentially cause errors in EOQ calculations.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Therefore, you must implement an inventory system with wide scalability to keep up with your business growth over time.\u00a0<\/span><span style=\"font-weight: 400;\"><span style=\"margin: 0px; padding: 0px;\"><a href=\"https:\/\/www.hashmicro.com\/ph\/\">HashMicro&#8217;s<\/a> inventory system is one example of an inventory application that you can use<\/span>.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Not only does the HashMicro system have extensive scalability, but it also comes with a comprehensive range of features, one of which is RFID Warehouse rack stock out automation. This feature tracks the number of items in the warehouse, which is important for calculating EOQ.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Kung gusto mong malaman kung paano makakatulong ang system na ito, mag-iskedyul kaagad ng<\/span><a href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/?medium=web-form-header\"><span style=\"font-weight: 400;\"> libreng demo <\/span><\/a><span style=\"font-weight: 400;\">sa pamamagitan ng pag-click dito!<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You can click here to read the article on<a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/best-inventory-management-software\/\">\u00a0recommended inventory system<\/a> recommendations that you can also consider using. \u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><\/span><\/p>\n<h2><b>Achieve Precise EOQ Calculations with HashMicro&#8217;s Error-Reducing System!<\/b><\/h2>\n<p><img decoding=\"async\" class=\"wp-image-22358 aligncenter\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/eoq-model-300x180.webp\" alt=\"eoq model\" width=\"411\" height=\"247\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/eoq-model-300x180.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/eoq-model-768x460.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/eoq-model-701x420.webp 701w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/eoq-model-150x90.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/eoq-model-696x417.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/eoq-model.webp 1000w\" sizes=\"(max-width: 411px) 100vw, 411px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Looking at the challenges we explained earlier, compiling EOQ is not easy, especially if it is done manually without the help of an application. Companies that compile EOQ without an application have to do calculations manually one by one, which is very inefficient. Therefore, integrating with applications such as <\/span><a href=\"https:\/\/www.hashmicro.com\/ph\/inventory-management-system\"><span style=\"font-weight: 400;\">HashMicro&#8217;s Inventory Management System<\/span><\/a><span style=\"font-weight: 400;\"> is very important.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">HashMicro Inventory Management System is specifically designed to fulfill various inventory needs, one of which is to create an EOQ formula. Therefore, this system is equipped with comprehensive features, including <\/span><b>packaging management<\/b><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The packaging management feature helps track the items in the warehouse in real-time. This helps management know the exact amount of stock items to make EOQ calculations more accurate and minimize errors.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Interested and curious about how HashMicro&#8217;s inventory management system works? Schedule a<\/span><a href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/?medium=web-form-header\"><span style=\"font-weight: 400;\"> free demo<\/span><\/a><span style=\"font-weight: 400;\"> by clicking here!\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">Conclusion<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">EOQ is a method for ordering the right amount of goods without increasing expenses or disrupting production because too few products are ordered. This is what makes EOQ an important position in the company. Therefore, compiling EOQ must be done well.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Meanwhile, one way to improve the accuracy of economic order quantity preparation is to use inventory applications such as inventory management systems from HashMicro. HashMicro offers an inventory system with a user-friendly interface, so implementing this system will not take a long time.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This application is also designed to be wide scalable so that companies can continue to optimize their business processes, both when operating on a small scale and when growing into a larger entity with more complex needs.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In addition, HashMicro systems are designed to integrate with other systems making it easy for companies to adopt new innovations without replacing existing systems. With these advantages, HashMicro meets current needs and is ready to support future business expansion and diversification, ensuring that companies remain competitive and efficient as they grow.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Schedule a<\/span><a href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/?medium=web-form-header\"><span style=\"font-weight: 400;\"> free demo<\/span><\/a><span style=\"font-weight: 400;\"> now to understand how this system can help your productivity become more efficient!\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As someone who works in inventory, you would understand that the process of ordering goods must be done with the right amount, not over or under. Ordering too many items will make you unnecessary expenses. On the other hand, ordering too few items can potentially make you unable to fulfill customer orders. This is where [&hellip;]<\/p>\n","protected":false},"author":25,"featured_media":22360,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[20],"tags":[165,164,163],"class_list":{"0":"post-7303","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-inventory","8":"tag-economic-order-quality-model","9":"tag-economic-order-quantity","10":"tag-eoq"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v26.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is EOQ and Different Types Companies Should Know<\/title>\n<meta name=\"description\" content=\"EOQ is a formula for determining the optimal amount of ordering goods to minimize total costs, including ordering and storage costs.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is EOQ and Different Types Companies Should Know\" \/>\n<meta property=\"og:description\" content=\"EOQ is a formula for determining the optimal amount of ordering goods to minimize total costs, including ordering and storage costs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Philippine Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-29T04:34:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-17T07:02:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/economic-order-quanitity.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"433\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Widi Yulianto\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Widi Yulianto\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/\",\"name\":\"What is EOQ and Different Types Companies Should Know\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/economic-order-quanitity.webp\",\"datePublished\":\"2024-08-29T04:34:49+00:00\",\"dateModified\":\"2025-12-17T07:02:10+00:00\",\"author\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/f763f48943ca0ac5f57114796693f931\"},\"description\":\"EOQ is a formula for determining the optimal amount of ordering goods to minimize total costs, including ordering and storage costs.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/#breadcrumb\"},\"inLanguage\":\"en-PH\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-PH\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/economic-order-quanitity.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/economic-order-quanitity.webp\",\"width\":800,\"height\":433},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/ph\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is EOQ and Different Types Companies Should Know\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/\",\"name\":\"HashMicro Philippine Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/ph\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-PH\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/f763f48943ca0ac5f57114796693f931\",\"name\":\"Widi Yulianto\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-PH\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/02\/cropped-ff7687c9-d66e-404b-8d0a-4c57d6a400ba-removebg-preview-96x96.png\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/02\/cropped-ff7687c9-d66e-404b-8d0a-4c57d6a400ba-removebg-preview-96x96.png\",\"caption\":\"Widi Yulianto\"},\"description\":\"Widi Yulianto is a Content Writer with a keen interest in digital marketing and data-driven marketing strategies.\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/author\/widi-yulianto\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is EOQ and Different Types Companies Should Know","description":"EOQ is a formula for determining the optimal amount of ordering goods to minimize total costs, including ordering and storage costs.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/","og_locale":"en_US","og_type":"article","og_title":"What is EOQ and Different Types Companies Should Know","og_description":"EOQ is a formula for determining the optimal amount of ordering goods to minimize total costs, including ordering and storage costs.","og_url":"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/","og_site_name":"HashMicro Philippine Blog","article_published_time":"2024-08-29T04:34:49+00:00","article_modified_time":"2025-12-17T07:02:10+00:00","og_image":[{"width":800,"height":433,"url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/economic-order-quanitity.webp","type":"image\/webp"}],"author":"Widi Yulianto","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Widi Yulianto","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/","url":"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/","name":"What is EOQ and Different Types Companies Should Know","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/economic-order-quanitity.webp","datePublished":"2024-08-29T04:34:49+00:00","dateModified":"2025-12-17T07:02:10+00:00","author":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/f763f48943ca0ac5f57114796693f931"},"description":"EOQ is a formula for determining the optimal amount of ordering goods to minimize total costs, including ordering and storage costs.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/#breadcrumb"},"inLanguage":"en-PH","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/"]}]},{"@type":"ImageObject","inLanguage":"en-PH","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/#primaryimage","url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/economic-order-quanitity.webp","contentUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/08\/economic-order-quanitity.webp","width":800,"height":433},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/economic-order-quantity-eoq\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/ph\/blog\/"},{"@type":"ListItem","position":2,"name":"What is EOQ and Different Types Companies Should Know"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#website","url":"https:\/\/www.hashmicro.com\/ph\/blog\/","name":"HashMicro Philippine Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/ph\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-PH"},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/f763f48943ca0ac5f57114796693f931","name":"Widi Yulianto","image":{"@type":"ImageObject","inLanguage":"en-PH","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/02\/cropped-ff7687c9-d66e-404b-8d0a-4c57d6a400ba-removebg-preview-96x96.png","contentUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/02\/cropped-ff7687c9-d66e-404b-8d0a-4c57d6a400ba-removebg-preview-96x96.png","caption":"Widi Yulianto"},"description":"Widi Yulianto is a Content Writer with a keen interest in digital marketing and data-driven marketing strategies.","url":"https:\/\/www.hashmicro.com\/ph\/blog\/author\/widi-yulianto\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/7303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/comments?post=7303"}],"version-history":[{"count":8,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/7303\/revisions"}],"predecessor-version":[{"id":29613,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/7303\/revisions\/29613"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/media\/22360"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/media?parent=7303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/categories?post=7303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/tags?post=7303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}