{"id":27932,"date":"2025-07-14T02:02:07","date_gmt":"2025-07-14T02:02:07","guid":{"rendered":"https:\/\/www.hashmicro.com\/ph\/blog\/?p=27932"},"modified":"2026-03-27T08:30:10","modified_gmt":"2026-03-27T08:30:10","slug":"par-level","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/","title":{"rendered":"What Is the PAR Level And How Do You Calculate It?"},"content":{"rendered":"<p>A miscalculation in stock levels can quietly cost a restaurant thousands each month, whether through spoilage from overstocking or lost sales from running out of key ingredients. According to a survey by <a href=\"https:\/\/mseuf.edu.ph\/research\/read\/819\">Enverga University Foundation in Quezon Province<\/a>, over 60% of small restaurants faced significant waste and cash flow issues due to inconsistent PAR-level practices.<\/p>\n<p>PAR level, which stands for Periodic Automatic Replacement, addresses this by setting the minimum quantity of each item that should always be on hand. This gives purchasing decisions a reliable baseline rather than leaving them to guesswork.<\/p>\n<p>This article covers what PAR levels are, how to calculate them, and how they support smarter stock management across restaurant and retail operations.<\/p>\n<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\n<table style=\"border-collapse: collapse; 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><a href=\"#what\">PAR level<\/a> is the minimum inventory quantity a business should always have on hand to meet regular demand, balancing between avoiding shortages and minimizing excess stock that leads to spoilage or tied-up cash.<\/li>\n<li><a href=\"#benefit\">PAR level management improves<\/a> inventory accuracy, reduces food waste, lowers procurement costs, boosts cash flow, and increases customer satisfaction by ensuring the right stock is always available without overspending or overstocking.<\/li>\n<li><a href=\"#how\">Subtract current inventory<\/a> from the PAR level to determine the reorder quantity, and add an &#8220;extra PAR&#8221; buffer when higher demand is anticipated. This keeps reorder decisions grounded in actual usage rather than guesswork.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><strong><span id=\"what\">What are PAR Levels?<\/span><\/strong><\/h2>\n<p><a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-4.webp\"><img decoding=\"async\" class=\"alignnone size-full wp-image-27959\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-4.webp\" alt=\"par level\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-4.webp 1200w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-4-300x169.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-4-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-4-768x432.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-4-747x420.webp 747w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-4-150x84.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-4-696x392.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-4-1068x601.webp 1068w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<p>PAR level, which stands for Periodic Automatic Replacement, refers to the minimum amount of inventory a business should always have on hand to meet regular demand. It forms the foundation of a PAR-level inventory system, helping operations avoid shortages while staying cost-efficient.<\/p>\n<p>Effective PAR level management is a balancing act between maintaining a<a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/inventory-levels\/\"> target inventory level<\/a> and minimizing excess. Businesses must stock just enough to handle daily operations, including unexpected large orders, without risking spoilage or tying up cash in unused inventory. Ignoring or mismanaging PAR levels can result in stockouts, food waste, or customer dissatisfaction, making a well-planned approach essential for consistent operations.<\/p>\n<h2><strong><span id=\"benefit\">What Are the Benefits of Using PAR Levels to Manage Stock?<\/span><\/strong><\/h2>\n<p><a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-1.webp\"><img decoding=\"async\" class=\"alignnone size-full wp-image-27956\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-1.webp\" alt=\"par level\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-1.webp 1200w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-1-300x169.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-1-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-1-768x432.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-1-747x420.webp 747w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-1-150x84.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-1-696x392.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-1-1068x601.webp 1068w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<p>Using PAR levels isn&#8217;t just about keeping shelves stocked. It&#8217;s a smart strategy that helps restaurants stay efficient, cost-effective, and responsive to customer needs. When implemented properly, PAR-level management can transform your inventory system into a well-oiled operation that supports long-term success.<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>\n<h3><strong>Improved inventory accuracy and organization<\/strong><\/h3>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Implementing a PAR level inventory system brings structure to what is often a chaotic process of stock management. It helps you track usage patterns, avoid over-ordering, and reduce the chances of running out of key items.<\/p>\n<p>With clear PAR-level management, your team can make smarter and quicker decisions about what to reorder and when. This level of organization saves both time and resources, allowing your restaurant to operate more smoothly.<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>\n<h3><strong>Better control of food waste<\/strong><\/h3>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>By maintaining the right target inventory level, you reduce the risk of overstocking <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/perishable-inventory\/\">perishable ingredients<\/a> that may expire before use. PAR level inventory management encourages you to stock only what&#8217;s needed, which prevents waste and supports sustainable operations.<\/p>\n<p>This not only protects your profit margins but also aligns with growing consumer expectations around sustainability. In the long run, this leads to cleaner operations and less financial loss from spoilage.<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>\n<h3><strong>Cost savings through efficient procurement<\/strong><\/h3>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Setting an accurate reorder level based on PAR level calculations helps prevent unnecessary purchases and lowers <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/inventory-holding-costs\/\">inventory carrying costs<\/a>. You&#8217;ll spend less on emergency restocking and avoid locking up capital in excess stock.<\/p>\n<p>A refined PAR-level management strategy ensures purchasing decisions are timely and budget-conscious. Ultimately, this approach can contribute significantly to reducing operational expenses.<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>\n<h3><strong>Boosted profitability and cash flow<\/strong><\/h3>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>When you manage inventory using PAR level inventory management, you free up cash that would otherwise be tied up in unused stock. This means more liquidity for marketing efforts, staff training, or equipment upgrades.<\/p>\n<p>Keeping stock levels in check also allows for quicker inventory turnover, which is vital for perishable goods. Altogether, these improvements enhance profitability and promote healthier business growth.<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>\n<h3><strong>Improved customer satisfaction and staff efficiency<\/strong><\/h3>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Nothing disappoints a customer more than learning their favourite dish is unavailable due to poor stock planning. With a well-maintained PAR level inventory system, you reduce the chances of stockouts, ensuring consistent menu availability.<\/p>\n<p>It also streamlines operations for your staff, who no longer need to scramble to find missing ingredients. This combination of reliability and efficiency leads to better service and happier customers.<\/p>\n<h2><strong>How to Calculate PAR Levels for Each Inventory Item<\/strong><\/h2>\n<p>Calculating PAR level begins with understanding your weekly inventory usage, which reflects how much of a specific item you typically consume based on customer demand. This data helps establish a reliable target inventory level that ensures you can consistently meet operational needs.<\/p>\n<p>Next, factor in how often you receive deliveries, as this determines how frequently you can restock each item. Divide your total weekly usage (plus a bit of<a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/safety-stock-inventory\/\"> safety stock<\/a>) by the number of deliveries per week to avoid unnecessary shortages or overstocking.<\/p>\n<p><strong>The formula for calculating PAR is:<\/strong><\/p>\n<p style=\"font-size: 18px; font-weight: bold; text-align: center;\">(Weekly Inventory Use + Safety Stock) \u00f7 Deliveries Per Week = Recommended PAR Level<\/p>\n<p>When applied correctly, this approach enhances your PAR level inventory system, supports accurate reorder level tracking, and strengthens overall PAR level management.<\/p>\n<h2><strong>Example PAR Level Calculation<\/strong><\/h2>\n<p><a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-2.webp\"><img decoding=\"async\" class=\"alignnone size-full wp-image-27957\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-2.webp\" alt=\"par level\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-2.webp 1200w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-2-300x169.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-2-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-2-768x432.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-2-747x420.webp 747w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-2-150x84.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-2-696x392.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-2-1068x601.webp 1068w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<p>Let\u2019s say your restaurant uses 8 cases of chicken per week and you want to keep a safety stock of 2 cases. With two deliveries scheduled each week, your total needed inventory becomes 10 cases, and your PAR level would be 5 cases per delivery.<\/p>\n<p>If your current stock after delivery is only 3 cases, then you need to place an order for 2 more to meet the recommended target inventory level. This simple calculation helps maintain the right reorder level and prevents shortages without overstocking.<\/p>\n<p>While the formula is straightforward, PAR-level management requires consistency and flexibility. <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/seasonal-inventory\/\">Changes in demand, seasonality<\/a>, or menu updates should prompt regular reviews within your PAR-level inventory system to ensure every item stays aligned with real-time usage patterns.<\/p>\n<h2><strong><span id=\"how\">How Do You Use PAR Levels When You Reorder Stock?<\/span><\/strong><\/h2>\n<p><a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-3.webp\"><img decoding=\"async\" class=\"alignnone size-full wp-image-27958\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-3.webp\" alt=\"par level\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-3.webp 1200w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-3-300x169.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-3-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-3-768x432.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-3-747x420.webp 747w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-3-150x84.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-3-696x392.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level-3-1068x601.webp 1068w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\n<p>Using PAR-level management when reordering stock helps streamline the entire procurement process and prevents costly mistakes. By referring to each item&#8217;s target inventory level, businesses can place orders based on actual demand rather than guesswork.<\/p>\n<p>Start by subtracting current inventory from the item&#8217;s PAR level to determine the regular reorder quantity. This ensures the reorder level is met without overstocking, keeping operations well-stocked and running smoothly.<\/p>\n<p>If higher demand is anticipated, such as a private event or seasonal rush, an &#8220;extra PAR&#8221; buffer can be factored in to increase the order temporarily. This flexibility is one of the strengths of a well-maintained PAR-level system, allowing businesses to adapt quickly while <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/inventory-control\/\">maintaining inventory control<\/a>.<\/p>\n<h2><strong>What Is the Difference Between a PAR Level and Reorder Point?<\/strong><\/h2>\n<p>The table below highlights the key differences between PAR level and reorder point in inventory management.<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center; border: 1px solid black;\" width=\"33%\"><strong>Feature<\/strong><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center; border: 1px solid black;\" width=\"33%\"><strong>PAR Level<\/strong><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center; border: 1px solid black;\" width=\"33%\"><strong>Reorder Point<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid black; text-align: center;\"><strong>Purpose<\/strong><\/td>\n<td style=\"border: 1px solid black; text-align: center;\">The PAR level inventory system focuses on maintaining a consistent target inventory level.<\/td>\n<td style=\"border: 1px solid black; text-align: center;\">The reorder point is based on supplier lead time and anticipated usage.<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid black; text-align: center;\"><strong>How It Works<\/strong><\/td>\n<td style=\"border: 1px solid black; text-align: center;\">You set a minimum quantity that should always be available, triggering an order when stock falls below that number.<\/td>\n<td style=\"border: 1px solid black; text-align: center;\">Calculates the optimal time to restock based on how long it takes to receive the item, helping ensure shelves are never empty.<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid black; text-align: center;\"><strong>Best Use Case<\/strong><\/td>\n<td style=\"border: 1px solid black; text-align: center;\">Restaurants often benefit more from PAR level inventory management due to the perishable nature of their stock and limited storage space.<\/td>\n<td style=\"border: 1px solid black; text-align: center;\">Retail businesses may prefer reorder points since they typically have more space and deal with<a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/slow-moving-inventory\/\"> non-expiring items,<\/a> making higher inventory levels more manageable.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>In summary, both PAR level and reorder point systems are effective, but choosing the right one depends on your inventory type, storage capacity, and business needs.<\/p>\n<h2><strong>Conclusion<\/strong><\/h2>\n<p>PAR levels give businesses a practical and structured way to maintain optimal stock without overspending or accumulating waste. When calculated accurately and reviewed consistently, PAR-level management reduces stockouts, controls costs, and supports smoother day-to-day operations across both restaurant and retail environments.<\/p>\n<p>For businesses looking to strengthen their stock control further, reviewing available <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/best-inventory-management-software\/\">inventory management software options<\/a> can help identify which tools best support PAR-level tracking and automated replenishment at their scale.<\/p>\n<h2><strong>FAQ<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>What types of businesses use PAR levels?<\/strong><\/summary>\n<p>While most common in restaurants, PAR levels are also used in retail, healthcare, and hospitality operations to manage any consumable stock that requires consistent replenishment.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Can PAR levels be different for each item?<\/strong><\/summary>\n<p>Yes. Each item should have its own PAR level based on its usage rate, lead time, and storage needs. High-demand or perishable items typically carry higher PAR levels than slow-moving ones.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Does seasonality affect PAR levels?<\/strong><\/summary>\n<p>Yes. PAR levels should be adjusted ahead of peak seasons, holidays, or special events to prevent shortages during high-demand periods.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What types of businesses use PAR levels?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"While most common in restaurants, PAR levels are also used in retail, healthcare, and hospitality operations to manage any consumable stock that requires consistent replenishment.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Can PAR levels be different for each item?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Yes. Each item should have its own PAR level based on its usage rate, lead time, and storage needs. High-demand or perishable items typically carry higher PAR levels than slow-moving ones.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Does seasonality affect PAR levels?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Yes. PAR levels should be adjusted ahead of peak seasons, holidays, or special events to prevent shortages during high-demand periods.\"\n      }\n    }\n  ]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A miscalculation in stock levels can quietly cost a restaurant thousands each month, whether through spoilage from overstocking or lost sales from running out of key ingredients. According to a survey by Enverga University Foundation in Quezon Province, over 60% of small restaurants faced significant waste and cash flow issues due to inconsistent PAR-level practices. [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":27955,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[20],"tags":[],"class_list":{"0":"post-27932","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-inventory"},"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 the PAR Level And How Do You Calculate It?<\/title>\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\/par-level\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What Is the PAR Level And How Do You Calculate It?\" \/>\n<meta property=\"og:description\" content=\"A miscalculation in stock levels can quietly cost a restaurant thousands each month, whether through spoilage from overstocking or lost sales from running out of key ingredients. According to a survey by Enverga University Foundation in Quezon Province, over 60% of small restaurants faced significant waste and cash flow issues due to inconsistent PAR-level practices. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Philippine Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-14T02:02:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-27T08:30:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Afresti\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Afresti\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 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\/par-level\/\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/\",\"name\":\"What Is the PAR Level And How Do You Calculate It?\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level.webp\",\"datePublished\":\"2025-07-14T02:02:07+00:00\",\"dateModified\":\"2026-03-27T08:30:10+00:00\",\"author\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/ad19475b8b2c723c4295ecf114d566f1\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/#breadcrumb\"},\"inLanguage\":\"en-PH\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-PH\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level.webp\",\"width\":1200,\"height\":675,\"caption\":\"par level\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/ph\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What Is the PAR Level And How Do You Calculate It?\"}]},{\"@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\/ad19475b8b2c723c4295ecf114d566f1\",\"name\":\"Afresti\",\"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-WhatsApp-Image-2024-07-31-at-14.16.47_e4fc5c69-scaled-1-96x96.jpg\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/02\/cropped-WhatsApp-Image-2024-07-31-at-14.16.47_e4fc5c69-scaled-1-96x96.jpg\",\"caption\":\"Afresti\"},\"description\":\"A SEO content writer at HashMicro with a keen interest in savvy tech and a passion for exploring innovative digital strategies, dedicated to continuous learning and professional growth.\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/author\/afresti\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What Is the PAR Level And How Do You Calculate It?","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\/par-level\/","og_locale":"en_US","og_type":"article","og_title":"What Is the PAR Level And How Do You Calculate It?","og_description":"A miscalculation in stock levels can quietly cost a restaurant thousands each month, whether through spoilage from overstocking or lost sales from running out of key ingredients. According to a survey by Enverga University Foundation in Quezon Province, over 60% of small restaurants faced significant waste and cash flow issues due to inconsistent PAR-level practices. [&hellip;]","og_url":"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/","og_site_name":"HashMicro Philippine Blog","article_published_time":"2025-07-14T02:02:07+00:00","article_modified_time":"2026-03-27T08:30:10+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level.webp","type":"image\/webp"}],"author":"Afresti","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Afresti","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/","url":"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/","name":"What Is the PAR Level And How Do You Calculate It?","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level.webp","datePublished":"2025-07-14T02:02:07+00:00","dateModified":"2026-03-27T08:30:10+00:00","author":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/ad19475b8b2c723c4295ecf114d566f1"},"breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/#breadcrumb"},"inLanguage":"en-PH","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/"]}]},{"@type":"ImageObject","inLanguage":"en-PH","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/#primaryimage","url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level.webp","contentUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/07\/par-level.webp","width":1200,"height":675,"caption":"par level"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/par-level\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/ph\/blog\/"},{"@type":"ListItem","position":2,"name":"What Is the PAR Level And How Do You Calculate It?"}]},{"@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\/ad19475b8b2c723c4295ecf114d566f1","name":"Afresti","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-WhatsApp-Image-2024-07-31-at-14.16.47_e4fc5c69-scaled-1-96x96.jpg","contentUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/02\/cropped-WhatsApp-Image-2024-07-31-at-14.16.47_e4fc5c69-scaled-1-96x96.jpg","caption":"Afresti"},"description":"A SEO content writer at HashMicro with a keen interest in savvy tech and a passion for exploring innovative digital strategies, dedicated to continuous learning and professional growth.","url":"https:\/\/www.hashmicro.com\/ph\/blog\/author\/afresti\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/27932","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\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/comments?post=27932"}],"version-history":[{"count":11,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/27932\/revisions"}],"predecessor-version":[{"id":33702,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/27932\/revisions\/33702"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/media\/27955"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/media?parent=27932"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/categories?post=27932"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/tags?post=27932"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}