{"id":61795,"date":"2024-11-29T04:23:11","date_gmt":"2024-11-29T04:23:11","guid":{"rendered":"https:\/\/www.hashmicro.com\/blog\/?p=61795"},"modified":"2025-10-17T04:15:04","modified_gmt":"2025-10-17T04:15:04","slug":"periodic-inventory-system","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/","title":{"rendered":"Periodic Inventory System: What It Is and How It Works"},"content":{"rendered":"<p>I use a periodic inventory system to update stock levels at specific intervals, allowing me to track inventory and calculate the cost of goods sold efficiently. This method helps me maintain accurate financial performance without needing continuous updates.<\/p>\n<p>Managing inventory can be challenging due to stock discrepancies, inaccurate data, and time-consuming manual processes. With the periodic inventory system, I can simplify tracking and reporting, ensuring better control over stock movements.<\/p>\n<p>In this article, I\u2019ll share the key benefits, challenges, and best practices for implementing a periodic inventory system effectively. If you\u2019re ready to optimize your inventory management, try HashMicro\u2019s <a href=\"https:\/\/www.hashmicro.com\/free-product-tour\/\">free demo<\/a> today and see how automation can transform your operations.<\/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; text-align: justify;\">A <a href=\"#periodic\">periodic inventory system<\/a> is an accounting method that calculates inventory counts and the cost of goods sold (COGS) at the end of each accounting period.<\/li>\n<li style=\"font-weight: 400; text-align: justify;\">When choosing an inventory system, understanding <a href=\"#differences\">the differences between periodic and perpetual systems<\/a> is essential.<\/li>\n<li style=\"font-weight: 400; text-align: justify;\">The periodic inventory system offers numerous <a href=\"#benefits\">benefits<\/a> that can improve business operations.<\/li>\n<li style=\"font-weight: 400; text-align: justify;\">While a periodic inventory system offers benefits, it also comes with several <a href=\"#challenges\">challenges<\/a> that businesses must consider.<\/li>\n<li style=\"text-align: justify;\"><span style=\"font-weight: 400;\">HashMicro <\/span><a href=\"https:\/\/www.hashmicro.com\/inventory\"><span style=\"font-weight: 400;\">Inventory Management Software<\/span><\/a><span style=\"font-weight: 400;\"> is a comprehensive ERP solution for streamlining inventory processes.<\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><style>\r\n.button-cta-custom {\r\n    background-color: #8a0e19;\r\n    color: #fff !important;\r\n    -webkit-transition: all .3s ease;\r\n    transition: all .3s ease;\r\n    padding: 8px 24px;\r\n    display: inline-block;\r\n    border-radius: 8px;\r\n    font-size: 16px;\r\n    font-weight: bold;\r\n}\r\n.button-cta-custom:hover{\r\n\tbackground-color:#991b26\t\t\r\n}\r\n<\/style>\r\n<a class=\"button-cta-custom\" href=\"https:\/\/www.hashmicro.com\/free-product-tour\/?medium=cta-button\" target=\"_blank\">Book a Demo Now!<\/a><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\"><span id=\"periodic\"><a href=\"https:\/\/www.hashmicro.com\/free-product-tour\/?medium=free-product-tour\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/11\/Free-Product-Tour-resized.webp\" alt=\"Free Demo\"><\/a><!-- <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 Content:\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div> -->\r\n\r\n<!-- <div class=\"dropdown-fixed-top\" id=\"dropdown-fixed-top\">\r\n\t<div class=\"row\">\r\n\t\t<p id=\"pilihDaftarIsi\">Table of Content<\/p>\r\n\t\t<p><i class=\"td-icon-menu-down\"><\/i><\/p>\r\n\t<\/div>\r\n\t\r\n\t<div>\r\n\t\t<ul id=\"list_toc_top\" class='list_toc'><\/ul>\r\n\t<\/div>\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\">Table of Content<\/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\t@media (max-width: 992px) {\r\n\t\t#toc_group_article {\r\n\t\t\tpadding-top: 24px;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc_float {\r\n\t\tmax-height: calc(100vh - 250px);\r\n\t\toverflow-y: auto;\r\n\t}\r\n\t\r\n\t#list_toc_top {\r\n\t\tdisplay: none;\r\n\t\tbackground: #fff;\r\n\t\tmargin-bottom: 4px;\r\n\t}\r\n\t\r\n\t#list_toc_top li {\r\n\t\tdisplay: block;\r\n\t\tmargin-left: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\t\r\n\t#list_toc_top a {\r\n\t\tpadding: 5px;\r\n\t\tdisplay: block;\r\n\t}\r\n\t\r\n\t#list_toc_top.show {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t#list_toc_top a {\r\n\t\tcolor: #434343;\r\n\t\tborder-bottom: 1px solid #bbb;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top {\r\n\t\tposition: fixed;\r\n\t\ttop: 59px;\r\n\t\twidth: 100%;\r\n\t\tz-index: 99;\r\n\t\tborder-bottom: 2px solid #9c171e;\r\n\t\tpadding: 12px;\r\n\t\tbackground: #fff;\r\n\t\twidth: 100%;\r\n\t\tcursor: pointer;\r\n\t\tdisplay: none;\r\n\t\tleft: 0;\r\n\t\tbox-shadow: 0 -2px 7px 6px rgba(0, 0, 0, 0.17);\r\n\t}\r\n\t\r\n\t#dropdown-fixed-top.show {\r\n\t\tanimation: showAnim 0.5s ease;\r\n\t\tdisplay: block;\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t@keyframes showAnim {\r\n\t\tfrom {\r\n\t\t\tdisplay: none;\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\tto {\r\n\t\t\tdisplay: block;\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top #list_toc_top {\r\n\t\tmax-height: calc(50vh - 110px);\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row p {\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t#pilihDaftarIsi {\r\n\t\tmax-width: 100%;\r\n\t\toverflow: hidden;\r\n\t\twhite-space: nowrap;\r\n\t}\r\n\t\r\n\t@media (min-width: 1018px) {\r\n\t\t.dropdown-fixed-top {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n\t\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_top 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: 6px;\r\n\t\tpadding-top: 2px;\r\n\t\tpadding-bottom: 2px;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t\tfont-size: 15px;\r\n\t\tline-height: 18px;\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#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\r\n<\/style>\r\n\r\n<!-- ToC styling  -->\r\n<style>\r\n\t\/* 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 0px 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}\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: 90% !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\t\r\n\t<\/style>\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 the ID 'article-left'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within 'myarticle'\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'); \/\/ Assuming header-faq is the element for 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.scrollY >= (headerTop - headerHeight + 700)) {\r\n\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \t\t\tconsole.log(\"current header text:\", currentHeaderText);\r\n\t\t\ttocTitle.textContent = currentHeaderText;\r\n\t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t\r\n\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\ttocTitle.textContent = 'Table of Content';\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\/\/     if (windowTop < triggerFooterPoint) {\r\n\/\/         toc.style.display = 'block';\r\n\/\/ \t}else{\r\n\/\/         toc.style.display = 'none';\r\n\/\/ \t}\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  const tocs = document.querySelector('#toc.sticky');\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ 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\/\/         console.log(\"activeLink:\", activeLink);\r\n        if (activeLink) {\r\n\/\/           tocTitle.textContent = activeLink.textContent; \/\/ Update TOC title\r\n          tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n        }\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 Content'; \/\/ 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\ttoc.style.paddingBottom = '6px'; \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\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\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 Content'; \/\/ 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\r\n\r\n\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\/\/ \/\/ \t\t\tconsole.log(\"prevent default\");\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<!-- START script lama -->\r\n<!-- <script>\r\n\/\/ \tvar pilihDaftarIsi = document.getElementById('pilihDaftarIsi');\r\n\t\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/ \t\tvar dropdownFixedTop = document.querySelector('.dropdown-fixed-top');\r\n\r\n\/\/ \t\tdropdownFixedTop.addEventListener('click', function() {\r\n\/\/ \t\t\tvar dropdownContent = this.querySelector('.list_toc');\r\n\/\/ \t\t\tdropdownContent.classList.toggle('show');\r\n\/\/ \t\t});\r\n\r\n\/\/ \t\twindow.addEventListener('click', function(event) {\r\n\/\/ \t\t\tvar listTocTop = document.getElementById('list_toc_top');\r\n\r\n\/\/ \t\t\tif (!dropdownFixedTop.contains(event.target)) {\r\n\/\/ \t\t\t\tlistTocTop.classList.remove('show');\r\n\/\/ \t\t\t}\r\n\/\/ \t\t});\r\n\/\/ \t});\r\n\t\r\n\/\/ \tvar daftarIsiContainer = document.getElementById('toc_group_article');\r\n\/\/ \tvar dropdownFixedTop = document.getElementById('dropdown-fixed-top');\r\n\/\/     var triggered = false; \/\/ Flag to keep track of whether the function has been triggered\r\n\r\n\/\/     window.addEventListener('scroll', function() {\r\n\/\/         if (!triggered && isCompletelyScrolledPast(daftarIsiContainer)) {\r\n\/\/             showSectionDropdownFixedTop(false);\r\n\/\/             triggered = true;\r\n\/\/         } else if (triggered && !isCompletelyScrolledPast(daftarIsiContainer)) {\r\n\/\/             showSectionDropdownFixedTop(true);\r\n\/\/             triggered = false;\r\n\/\/         }\r\n\/\/     });\r\n\r\n\/\/     function isCompletelyScrolledPast(element) {\r\n\/\/         var elementTop = element.getBoundingClientRect().top;\r\n\/\/         var elementBottom = element.getBoundingClientRect().bottom;\r\n\/\/         return elementTop < 0 && elementBottom < 0;\r\n\/\/     }\r\n\r\n\/\/     function showSectionDropdownFixedTop(show) {\r\n\/\/ \t\tif (show) {\r\n\/\/ \t\t\tdropdownFixedTop.classList.remove(\"show\");\r\n\/\/ \t\t} else {\r\n\/\/ \t\t\tdropdownFixedTop.classList.add(\"show\");\r\n\/\/ \t\t}\r\n\/\/     }\r\n<\/script> -->\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\t\t  pilihDaftarIsi.innerHTML = a.textContent;\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', 'list_toc_top']; \/\/ 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<!-- END script lama -->\r\n\t\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\nToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\"\r\n        Fungsi untuk mengubah teks menjadi format id\r\n        function formatId(text) {\r\n            return text.trim().replace(\/[^\\w\\d]+\/g, '_');\r\n        }\r\n\r\n        \/\/ Fungsi untuk membuat 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        \/\/ Membuat objek untuk menyimpan daftar h2 dan h3 beserta judulnya\r\n        const headings = [];\r\n\r\n           \/\/ Mengambil semua elemen h2 dan h3\r\n        const elements = document.querySelectorAll('.td-post-content h2');\r\n\t\t\t\/\/, .td-post-content h3\r\n\r\n        elements.forEach(element => {\r\n            if (element.tagName === 'H2') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Kalau Key Takeaways, jangan dimasukin\r\n                headings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n            } else if (element.tagName === 'H3') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n                if (headings.length > 0) {\r\n                    headings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n                }\r\n            }\r\n        });\r\n\r\n        \/\/ Membuat list HTML dari objek headings\r\n        const ul = document.getElementById('list_toc');\r\n        let currentUl = ul;\r\n        headings.forEach(heading => {\r\n            const li = document.createElement('li');\r\n            const a = document.createElement('a');\r\n            a.textContent = heading.title;\r\n            a.href = `#${heading.id}`;\r\n            li.appendChild(a);\r\n\r\n            if (heading.level === 'h2') {\r\n                \/\/ Menyimpan ul saat ini untuk menambahkan nested ul\r\n                currentUl = li;\r\n                ul.appendChild(li);\r\n            } else if (heading.level === 'h3') {\r\n                if (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n                    \/\/ Jika belum ada nested ul, buat satu\r\n                    const nestedUl = document.createElement('ul');\r\n                    currentUl.appendChild(nestedUl);\r\n                    currentUl = nestedUl;\r\n                }\r\n                currentUl.appendChild(li);\r\n            }\r\n\r\n            createNestedList(li, heading.children);\r\n        });\r\n\t\tDapatkan elemen ul dengan id 'list_toc_float'\r\nconst ulFloat = document.getElementById('list_toc');\r\nconst ulJourney = document.getElementById('list_journey');\r\n\r\nDapatkan isi (child elements) dari ul dengan id 'list_toc_float'\r\n\tif (ulFloat !== null) {\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\t\tconst ulTocTop = document.getElementById('list_toc_top');\r\n\t\tif ((ulToc !== null || ulToc !== undefined) && window.innerWidth > 1018){\r\n\t\t\tulToc.append(...clonedChildren);\r\n\t\t} else {\r\n\t\t\tulTocTop.append(...clonedChildren);\r\n\t\t}\r\n\t} \r\n\r\n\tif (ulJourney !== null) {\r\n\t\tconst clonedChildrenJourney = ulJourney.cloneNode(true).children;\r\n\t\tconst ulTocJourney = document.getElementById('list_toc_journey');\r\n\t\tulTocJourney.append(...clonedChildrenJourney);\r\n\t} \r\n\t\r\n        Fungsi untuk mengambil tinggi navbar\r\n        function getNavbarHeight() {\r\n            const navbar = document.getElementById('tdi_34');\r\n            return navbar ? navbar.offsetHeight : 0;\r\n        }\r\n\r\n        \/\/ Fungsi untuk menambahkan offset posisi scroll\r\n        function scrollToElementWithOffset(elementId) {\r\n            const element = document.getElementById(elementId);\r\n            if (element) {\r\n                const offset = getNavbarHeight();\r\n                const elementPosition = element.getBoundingClientRect().top;\r\n                const offsetPosition = elementPosition - offset-40;\r\n\r\n                window.scrollBy({\r\n                    top: offsetPosition,\r\n                    behavior: 'smooth'\r\n                });\r\n            }\r\n        }\r\n\r\n        \/\/ Fungsi untuk menangani klik pada tautan judul\r\n        function handleTitleClick(event) {\r\n            event.preventDefault();\r\n            const href = event.target.getAttribute('href').substr(1);\r\n            scrollToElementWithOffset(href);\r\n        }\r\n\r\n        \/\/ Tambahkan event listener untuk semua tautan judul\r\n        const titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n        titleLinks.forEach(link => {\r\n            link.addEventListener('click', handleTitleClick);\r\n        });\r\n\t});\r\n    <\/script> -->\r\n<\/span><\/span><\/p>\n<h2 style=\"text-align: justify;\"><b>What is a Periodic Inventory System?<\/b><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">A <\/span><b>periodic inventory system<\/b><span style=\"font-weight: 400;\"> is an accounting method where inventory counts and costs of goods sold (COGS) are calculated at the end of an accounting period. Instead of tracking inventory continuously, this system relies on periodic intervals, such as monthly, quarterly, or annually, to assess the stock levels.<\/span><\/p>\n<p>It provides a snapshot of inventory and COGS for that specific period, helping businesses determine their financial standing at the time of the count. Under this system, businesses don\u2019t need to maintain real-time inventory records.<\/p>\n<p>Instead, they record purchases in bulk as they occur, and only adjust their records during the periodic inventory count. This is beneficial for companies with large inventories or those that experience less frequent stock turnover, as it reduces the need for constant updates throughout the period.<\/p>\n<h2><strong>How Periodic Inventory System Works?<\/strong><\/h2>\n<p>In a periodic inventory system, businesses track inventory purchases and sales in bulk at specific intervals. The system doesn\u2019t continuously update records with each sale or purchase; instead, it relies on physical counts at the end of the period to determine the current stock level.<\/p>\n<p>The company will tally the remaining inventory, then use this figure to calculate the cost of goods sold (COGS) and update their financial statements accordingly. At the end of the period, the physical count allows for the necessary adjustments to the inventory records.<\/p>\n<p>This method is often less resource-intensive compared to perpetual systems, as it doesn\u2019t require real-time tracking. However, businesses using a periodic inventory system must ensure that the count is accurate to avoid discrepancies and maintain reliable financial reporting.<\/p>\n<h2 style=\"text-align: justify;\"><b>Periodic Inventory vs. Perpetual Inventory<\/b><\/h2>\n<p style=\"text-align: justify;\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-67918\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Periodic-Inventory-vs.-Perpetual-Inventory.webp\" alt=\"Periodic Inventory vs. Perpetual Inventory\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Periodic-Inventory-vs.-Perpetual-Inventory.webp 1200w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Periodic-Inventory-vs.-Perpetual-Inventory-300x169.webp 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Periodic-Inventory-vs.-Perpetual-Inventory-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Periodic-Inventory-vs.-Perpetual-Inventory-768x432.webp 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Periodic-Inventory-vs.-Perpetual-Inventory-747x420.webp 747w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Periodic-Inventory-vs.-Perpetual-Inventory-150x84.webp 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Periodic-Inventory-vs.-Perpetual-Inventory-696x392.webp 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Periodic-Inventory-vs.-Perpetual-Inventory-1068x601.webp 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">When choosing an inventory system, understanding the differences between periodic and perpetual methods is essential. Each offers unique benefits and challenges that can affect business operations. Let&#8217;s explore how these two systems compare.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><strong>1. Inventory tracking<\/strong><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">A periodic inventory system updates stock and COGS at the period end via a physical count, which leads to delayed data in the general ledger. A <a href=\"https:\/\/www.hashmicro.com\/blog\/advantages-and-disadvantages-of-perpetual-inventory-system\/\">perpetual inventory system<\/a> continuously tracks every transaction, offering real-time updates.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><strong>2. Cost and resource requirements\u00a0<\/strong><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">The periodic method relies on essential tools and physical counts of <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Raw_material\"><span style=\"font-weight: 400;\">raw material<\/span><\/a><span style=\"font-weight: 400;\">, though it can be labor-intensive. The perpetual inventory method, while more expensive, uses advanced tech like barcode scanners, providing automation to the general ledger.<\/span><\/p>\n<h3><strong>3. Accuracy and data reliability\u00a0<\/strong><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">The periodic inventory system&#8217;s accuracy depends on physical counts, which can create discrepancies in the general ledger. On the other hand, a perpetual inventory system ensures higher accuracy by instantly updating inventory levels with each transaction.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><strong>4. Financial reporting<\/strong><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">The periodic inventory method restricts financial updates to period-end, delaying <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Income_statement\"><span style=\"font-weight: 400;\">income statement<\/span><\/a><span style=\"font-weight: 400;\"> reports and requiring general ledger adjustments. In contrast, the perpetual inventory method enables continuous reporting, providing real-time insights into inventory levels.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><strong>5. Suitability for different business models<\/strong><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">A periodic inventory system is ideal for businesses with stable, low-volume turnover. It offers a cost-effective option without real-time inventory level tracking. On the other hand, a perpetual inventory system is ideal for high-volume operations.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><b>When Would You Use A Periodic Inventory System?<\/b><\/h2>\n<p data-start=\"0\" data-end=\"277\">When your business has stable, low-volume inventory turnover or real-time tracking isn\u2019t crucial, you would use a <strong data-start=\"114\" data-end=\"143\">periodic inventory system<\/strong>. This method is ideal for operations where inventory levels, such as retail or wholesale businesses, don&#8217;t fluctuate significantly.<\/p>\n<p data-start=\"279\" data-end=\"792\">Additionally, a periodic inventory method is suitable when minimizing costs and simplifying inventory management are priorities. Implementing a <a href=\"https:\/\/www.hashmicro.com\/blog\/cloud-based-inventory\/\">cloud based inventory<\/a> system can enhance this approach by providing better accessibility and integration with other business processes, and generate reports when needed. It\u2019s beneficial for businesses that can rely on periodic physical counts to update records without needing constant updates to the general ledger.<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Integrating <\/span><a href=\"https:\/\/www.hashmicro.com\/blog\/logistics-management-software\/\"><span style=\"font-weight: 400;\">logistics management software<\/span><\/a><span style=\"font-weight: 400;\"> can enhance the periodic inventory method for businesses seeking to optimize inventory management. It improves control over inventory movements, bridging the gap between periodic checks and real-time tracking.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><b>Benefits of Periodic Inventory System<\/b><\/h2>\n<p style=\"text-align: justify;\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-67919\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Benefits-of-Periodic-Inventory-System.webp\" alt=\"Benefits of Periodic Inventory System\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Benefits-of-Periodic-Inventory-System.webp 1200w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Benefits-of-Periodic-Inventory-System-300x169.webp 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Benefits-of-Periodic-Inventory-System-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Benefits-of-Periodic-Inventory-System-768x432.webp 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Benefits-of-Periodic-Inventory-System-747x420.webp 747w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Benefits-of-Periodic-Inventory-System-150x84.webp 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Benefits-of-Periodic-Inventory-System-696x392.webp 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/Benefits-of-Periodic-Inventory-System-1068x601.webp 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">The periodic inventory system offers numerous advantages that can enhance business operations. This system simplifies inventory management and improves efficiency by focusing on periodic updates and physical counts. Here are some of the key benefits:<\/span><\/p>\n<h3 style=\"text-align: justify;\"><strong>1. Cost reduction<\/strong><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">A periodic inventory system allows businesses to save costs by avoiding the need for constant updates. The reliance on physical counts streamlines the process, keeping the general ledger simpler and more manageable, especially for operations with stable inventory levels.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><strong>2. Simplified inventory tracking<\/strong><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">This inventory system simplifies inventory tracking by requiring updates only at specific intervals. This reduces the need for continuous monitoring of the general ledger, allowing businesses to focus on operations while maintaining accurate inventory level assessments.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><strong>3. Increased accuracy and efficiency<\/strong><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">A periodic inventory system improves accuracy and efficiency by updating the general ledger after regular physical counts. It ensures precise inventory levels and streamlines <\/span><a href=\"https:\/\/www.hashmicro.com\/accounting\"><span style=\"font-weight: 400;\">accounting<\/span><\/a><span style=\"font-weight: 400;\"> processes, resulting in more accurate financial reports and better resource management.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><strong>4. Easier inventory audits<\/strong><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">This system facilitates easier inventory audits by concentrating inventory assessments at specific intervals. Regular physical counts help ensure that inventory levels match the records in the general ledger, making the audit process less time-consuming.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><span style=\"font-weight: 400;\"><strong>5. Enhanced customer satisfaction<\/strong><span id=\"challenges\"><\/span><\/span><\/h3>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">By utilizing a periodic inventory system, businesses can ensure that inventory levels are accurately reflected in the general ledger after each physical count. This accuracy helps fulfil customer orders more efficiently, leading to higher satisfaction and repeat business.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><b>Challenges of Periodic Inventory<\/b><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">While a periodic inventory system offers certain advantages, it also comes with several challenges that businesses must consider. Understanding these challenges is crucial for determining the method that aligns with your needs. Here are some of the key challenges:<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Lack of real-time data<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Increased risk of discrepancies<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Labor-intensive process<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Delayed financial reporting<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Limited inventory control<\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">To address these challenges, advanced <\/span><a href=\"https:\/\/www.hashmicro.com\/inventory\"><span style=\"font-weight: 400;\">inventory management software<\/span><\/a><span style=\"font-weight: 400;\">\u00a0offer real-time tracking and automation, overcoming the limitations of periodic methods. These systems enhance accuracy, reduce manual errors, and streamline processes.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">If you&#8217;re seeking <\/span><a href=\"https:\/\/www.hashmicro.com\/blog\/inventory-management-software-singapore\/\"><span style=\"font-weight: 400;\">inventory management software<\/span><\/a><span style=\"font-weight: 400;\"> recommendations, we\u2019ve curated a list of top solutions to fit diverse needs. These options address challenges and optimize inventory control, helping you find the right system for your business.<\/span><\/p>\n<h2 style=\"text-align: justify;\"><b>HashMicro as an All-in-One Inventory Management System<\/b><\/h2>\n<p style=\"text-align: justify;\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-63021 size-full\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/10\/Managemen-Inventoris-2.webp\" alt=\"warehouse monitoring hashmicro\" width=\"782\" height=\"479\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/10\/Managemen-Inventoris-2.webp 782w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/10\/Managemen-Inventoris-2-300x184.webp 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/10\/Managemen-Inventoris-2-768x470.webp 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/10\/Managemen-Inventoris-2-686x420.webp 686w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/10\/Managemen-Inventoris-2-150x92.webp 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/10\/Managemen-Inventoris-2-696x426.webp 696w\" sizes=\"auto, (max-width: 782px) 100vw, 782px\" \/><\/p>\n<p style=\"text-align: justify;\"><b>HashMicro <a href=\"https:\/\/www.hashmicro.com\/inventory\">Inventory Management Software<\/a><\/b><span style=\"font-weight: 400;\"> is a comprehensive ERP solution for streamlining inventory processes. The system provides real-time tracking, automated stock management, and seamless integration with other business functions for efficient operations.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">HashMicro provides a <\/span><a href=\"https:\/\/www.hashmicro.com\/free-product-tour\/\"><b>free demo<\/b><\/a><span style=\"font-weight: 400;\"> and consultation for its ERP software, giving businesses a hands-on look at its features. This allows potential users to see how the system fits their needs and ensures they make an informed decision about integrating it into their operations.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Moreover, HashMicro is trusted by leading companies across diverse industries, including McDonald\u2019s, Hino, and Forbes, for its robust ERP solutions. This wide adoption highlights its reliability and effectiveness in addressing complex inventory and business management needs.<\/span><\/p>\n<h3 style=\"text-align: justify;\"><b>Features:<\/b><\/h3>\n<ul style=\"text-align: justify;\">\n<li><b>Stock take and inventory adjustment management\u00a0\u00a0<\/b><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">This feature facilitates periodic physical counts and updates inventory records, thus ensuring accurate stock levels. It helps businesses maintain precise inventory data by managing adjustments made during physical stock takes.<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li><b>Stock aging report\u00a0\u00a0<\/b><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">The stock aging report provides insights into the age of inventory items, helping businesses manage stock turnover effectively. Highlighting older stock aids in reducing holding costs and optimizing inventory levels during periodic reviews.<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li><b>Fast moving slow, moving stocks analysis\u00a0\u00a0<\/b><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">This analysis identifies fast and slow-moving inventory items, allowing businesses to adjust stock levels accordingly. It helps optimize inventory management by ensuring that high-turnover items are adequately stocked and slow-moving items are managed efficiently.<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li><b>Stock optimizer<\/b><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">This feature manages inventory levels across multiple warehouses, helping to balance stock and reduce excess inventory. Consequently, this feature ensures that each warehouse operates efficiently, supporting accurate stock management during periodic evaluations.<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li><b>Stock reservations &amp; reporting\u00a0\u00a0<\/b><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">This feature allows for managing stock reservations and generating detailed reports. Documenting reserved stock supports accurate inventory tracking and planning and aids in precise periodic reviews and adjustments.<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li><b>Integrated with barcode &amp; QR code\u00a0\u00a0<\/b><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Barcode and QR code integration streamline inventory tracking and management. This feature enhances accuracy during physical counts, making the periodic inventory process more efficient and reducing manual errors.<\/span><\/p>\n<ul style=\"text-align: justify;\">\n<li><b>Lot &amp; serial number management\u00a0\u00a0<\/b><\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Lot and serial number management tracks inventory with unique identifiers, providing precise records for periodic counts. Therefore, it offers detailed traceability and accuracy, which is crucial for effective inventory management and reporting.<\/span><\/p>\n<p><em class=\"review-quote\">&#8220;An efficient periodic inventory system helps businesses maintain financial accuracy without heavy automation. It\u2019s ideal for smaller operations seeking simplicity, cost control, and clear insight into stock performance at set intervals.&#8221;<\/em><\/p>\n<p>\u2014 <strong>Angela Tan<\/strong>, Regional Manager<\/p>\n<h2 style=\"text-align: justify;\"><b>Conclusion<\/b><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Businesses often encounter issues with inventory management, such as inaccuracies and inefficiencies in tracking stock levels. A periodic inventory system helps by providing regular updates through physical counts, ensuring accurate records and smoother operations.<\/span><\/p>\n<p style=\"text-align: justify;\"><b>HashMicro <a href=\"https:\/\/www.hashmicro.com\/inventory\">Inventory Management Software<\/a><\/b><span style=\"font-weight: 400;\"> offers a robust ERP solution for optimizing inventory management and enhancing efficiency. It provides real-time tracking, advanced analytics, and seamless integration, making it a valuable tool for better operational control.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\">Take the first step toward efficiency and experience HashMicro&#8217;s benefits firsthand. Sign up for a <\/span><a href=\"https:\/\/www.hashmicro.com\/free-product-tour\/\"><b>free demo<\/b><\/a><span style=\"font-weight: 400;\"> today to explore how our software can improve inventory management.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-weight: 400;\"><a href=\"https:\/\/www.hashmicro.com\/inventory?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Inventory.webp\" alt=\"Inventory Management\"><\/a><\/span><\/p>\n<h2 style=\"text-align: justify;\"><strong>Frequently Asked Questions About Periodic Inventory System<\/strong><\/h2>\n<ul class=\"bottom_faq\" style=\"text-align: justify;\">\n<li>\n<details>\n<summary><strong>What are the three methods of periodic inventory?<\/strong><\/summary>\n<p>Three methods of periodic inventory are:<br \/>\n1. FIFO (First In, First Out)<br \/>\nUnder FIFO, the oldest inventory items are considered sold first. In a periodic inventory system, this method calculates COGS and ending inventory based on the assumption that the earliest purchases are the first to be sold, which affects financial reporting and tax calculations.<br \/>\n2. LIFO (Last In, First Out)<br \/>\nWith LIFO, the most recent inventory items are sold first. This method calculates COGS and ending inventory, assuming the latest purchases are the first to be sold. It can impact financial results differently from FIFO, especially during rising prices.<br \/>\n3. Weighted Average Cost<br \/>\nThis method calculates COGS and ending inventory based on the average cost of all inventory items available for sale during the period. The average cost is computed by dividing the total cost of goods for sale by the total number of units available.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What is COGS in the periodic inventory system?<\/strong><\/summary>\n<p>In a periodic inventory system, the Cost of Goods Sold (COGS) is calculated at the end of the accounting period based on the inventory counts and purchases made. This method involves determining COGS after performing a physical count of the ending inventory, reflecting the direct costs associated with goods sold during the period.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What companies use periodic inventory systems?<\/strong><\/summary>\n<p>Periodic inventory systems are often used by small retailers, wholesalers with stable inventory levels, and businesses with limited resources. Small retailers and wholesalers benefit from the simplicity and lower costs of periodic inventory management.<br \/>\nBusinesses with fewer resources may opt for periodic systems to avoid the costs associated with real-time tracking. Additionally, manufacturing firms with predictable production cycles might choose this method when continuous inventory tracking isn\u2019t crucial for their operations.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"What are the three methods of periodic inventory?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Three methods of periodic inventory are:\n1. FIFO (First In, First Out)\nUnder FIFO, the oldest inventory items are considered sold first. In a periodic inventory system, this method calculates COGS and ending inventory based on the assumption that the earliest purchases are the first to be sold, which affects financial reporting and tax calculations.\n2. LIFO (Last In, First Out)\nWith LIFO, the most recent inventory items are sold first. This method calculates COGS and ending inventory, assuming the latest purchases are the first to be sold. It can impact financial results differently from FIFO, especially during rising prices.\n3. Weighted Average Cost\nThis method calculates COGS and ending inventory based on the average cost of all inventory items available for sale during the period. The average cost is computed by dividing the total cost of goods for sale by the total number of units available.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What is COGS in the periodic inventory system?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"In a periodic inventory system, the Cost of Goods Sold (COGS) is calculated at the end of the accounting period based on the inventory counts and purchases made. This method involves determining COGS after performing a physical count of the ending inventory, reflecting the direct costs associated with goods sold during the period.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What companies use periodic inventory systems?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Periodic inventory systems are often used by small retailers, wholesalers with stable inventory levels, and businesses with limited resources. Small retailers and wholesalers benefit from the simplicity and lower costs of periodic inventory management.\nBusinesses with fewer resources may opt for periodic systems to avoid the costs associated with real-time tracking. Additionally, manufacturing firms with predictable production cycles might choose this method when continuous inventory tracking isn\u2019t crucial for their operations.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I use a periodic inventory system to update stock levels at specific intervals, allowing me to track inventory and calculate the cost of goods sold efficiently. This method helps me maintain accurate financial performance without needing continuous updates. Managing inventory can be challenging due to stock discrepancies, inaccurate data, and time-consuming manual processes. With the [&hellip;]<\/p>\n","protected":false},"author":153,"featured_media":67766,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[88],"tags":[],"class_list":{"0":"post-61795","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>Periodic Inventory System: What It Is and How It Works<\/title>\n<meta name=\"description\" content=\"Discover how a periodic inventory system tracks inventory levels at set intervals, offering a cost-effective approach to stock management.\" \/>\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\/blog\/periodic-inventory-system\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Periodic Inventory System: What It Is and How It Works\" \/>\n<meta property=\"og:description\" content=\"Discover how a periodic inventory system tracks inventory levels at set intervals, offering a cost-effective approach to stock management.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/\" \/>\n<meta property=\"og:site_name\" content=\"BusinessTech\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/web.facebook.com\/hashmicro\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-29T04:23:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-17T04:15:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/perpetual-inventory-system.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"547\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Chandra Natsir\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:site\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Chandra Natsir\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/\"},\"author\":{\"name\":\"Chandra Natsir\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/f17501aef487b92b4ffc58a7ef7ab97b\"},\"headline\":\"Periodic Inventory System: What It Is and How It Works\",\"datePublished\":\"2024-11-29T04:23:11+00:00\",\"dateModified\":\"2025-10-17T04:15:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/\"},\"wordCount\":2037,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/perpetual-inventory-system.webp\",\"articleSection\":[\"Inventory\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/\",\"name\":\"Periodic Inventory System: What It Is and How It Works\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/perpetual-inventory-system.webp\",\"datePublished\":\"2024-11-29T04:23:11+00:00\",\"dateModified\":\"2025-10-17T04:15:04+00:00\",\"description\":\"Discover how a periodic inventory system tracks inventory levels at set intervals, offering a cost-effective approach to stock management.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/perpetual-inventory-system.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/perpetual-inventory-system.webp\",\"width\":1000,\"height\":547,\"caption\":\"perpetual-inventory\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Periodic Inventory System: What It Is and How It Works\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/\",\"name\":\"BusinessTech\",\"description\":\"Business Management Blog\",\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\",\"name\":\"HashMicro\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png\",\"width\":334,\"height\":51,\"caption\":\"HashMicro\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/web.facebook.com\/hashmicro\/\",\"https:\/\/x.com\/hashmicro\",\"https:\/\/www.linkedin.com\/company\/hashmicro\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/f17501aef487b92b4ffc58a7ef7ab97b\",\"name\":\"Chandra Natsir\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2023\/02\/cropped-DALL\u00b7E-2023-02-13-16.32.57-a-real-photo-of-asian-man-1-1-96x96.png\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2023\/02\/cropped-DALL\u00b7E-2023-02-13-16.32.57-a-real-photo-of-asian-man-1-1-96x96.png\",\"caption\":\"Chandra Natsir\"},\"description\":\"A content writer with a strong interest in writing and technology. Chandra is dedicated to writing useful, entertaining, and relevant information for readers, and he continues to develop content that connects and inspires them.\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/author\/chandra-natsir\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Periodic Inventory System: What It Is and How It Works","description":"Discover how a periodic inventory system tracks inventory levels at set intervals, offering a cost-effective approach to stock management.","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\/blog\/periodic-inventory-system\/","og_locale":"en_US","og_type":"article","og_title":"Periodic Inventory System: What It Is and How It Works","og_description":"Discover how a periodic inventory system tracks inventory levels at set intervals, offering a cost-effective approach to stock management.","og_url":"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/","og_site_name":"BusinessTech","article_publisher":"https:\/\/web.facebook.com\/hashmicro\/","article_published_time":"2024-11-29T04:23:11+00:00","article_modified_time":"2025-10-17T04:15:04+00:00","og_image":[{"width":1000,"height":547,"url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/perpetual-inventory-system.webp","type":"image\/webp"}],"author":"Chandra Natsir","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Written by":"Chandra Natsir","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/"},"author":{"name":"Chandra Natsir","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/f17501aef487b92b4ffc58a7ef7ab97b"},"headline":"Periodic Inventory System: What It Is and How It Works","datePublished":"2024-11-29T04:23:11+00:00","dateModified":"2025-10-17T04:15:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/"},"wordCount":2037,"publisher":{"@id":"https:\/\/www.hashmicro.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/perpetual-inventory-system.webp","articleSection":["Inventory"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/","url":"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/","name":"Periodic Inventory System: What It Is and How It Works","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/perpetual-inventory-system.webp","datePublished":"2024-11-29T04:23:11+00:00","dateModified":"2025-10-17T04:15:04+00:00","description":"Discover how a periodic inventory system tracks inventory levels at set intervals, offering a cost-effective approach to stock management.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/#primaryimage","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/perpetual-inventory-system.webp","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2024\/08\/perpetual-inventory-system.webp","width":1000,"height":547,"caption":"perpetual-inventory"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/blog\/periodic-inventory-system\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Periodic Inventory System: What It Is and How It Works"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/blog\/#website","url":"https:\/\/www.hashmicro.com\/blog\/","name":"BusinessTech","description":"Business Management Blog","publisher":{"@id":"https:\/\/www.hashmicro.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.hashmicro.com\/blog\/#organization","name":"HashMicro","url":"https:\/\/www.hashmicro.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png","width":334,"height":51,"caption":"HashMicro"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/web.facebook.com\/hashmicro\/","https:\/\/x.com\/hashmicro","https:\/\/www.linkedin.com\/company\/hashmicro"]},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/f17501aef487b92b4ffc58a7ef7ab97b","name":"Chandra Natsir","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2023\/02\/cropped-DALL\u00b7E-2023-02-13-16.32.57-a-real-photo-of-asian-man-1-1-96x96.png","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2023\/02\/cropped-DALL\u00b7E-2023-02-13-16.32.57-a-real-photo-of-asian-man-1-1-96x96.png","caption":"Chandra Natsir"},"description":"A content writer with a strong interest in writing and technology. Chandra is dedicated to writing useful, entertaining, and relevant information for readers, and he continues to develop content that connects and inspires them.","url":"https:\/\/www.hashmicro.com\/blog\/author\/chandra-natsir\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/61795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/users\/153"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/comments?post=61795"}],"version-history":[{"count":11,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/61795\/revisions"}],"predecessor-version":[{"id":76129,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/61795\/revisions\/76129"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/media\/67766"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/media?parent=61795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/categories?post=61795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/tags?post=61795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}