{"id":3455,"date":"2025-02-19T06:35:38","date_gmt":"2025-02-19T06:35:38","guid":{"rendered":"https:\/\/www.hashmicro.com\/my\/blog\/?p=3455"},"modified":"2026-02-13T08:29:22","modified_gmt":"2026-02-13T08:29:22","slug":"what-is-fifo-method","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/","title":{"rendered":"Why FIFO Method is Crucial for Effective Inventory Management"},"content":{"rendered":"<p>Did you know that businesses relying on manual inventory tracking often face costly errors each year? These mistakes lead to overstocking, waste, and financial losses. One of the most effective ways to prevent such issues is by using the First-In, First-Out (FIFO) method\u2014a widely used inventory strategy that ensures older stock is sold or used before newer inventory.<\/p>\n<p>For Malaysian businesses, implementing <a href=\"https:\/\/www.investopedia.com\/terms\/f\/fifo.asp\">FIFO<\/a> is especially beneficial. Whether you operate a retail store in Kuala Lumpur or manage a large distribution center in Penang, applying FIFO principles helps reduce waste, improve stock accuracy, and increase profitability.<\/p>\n<p>Moreover, leveraging <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/best-inventory-management-software\/\">inventory management software<\/a> that supports FIFO can automate stock tracking, ensuring that the system applies FIFO consistently. This enhances efficiency, minimizes losses, and gives businesses a competitive advantage in today\u2019s fast-moving market.<br \/>\n<a href=\"https:\/\/www.hashmicro.com\/my\/free-product-demo\/?medium=free-product-demo\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/free-demo-desktop-my.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/free-demo-desktop-my.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2024\/07\/free-demo-mobile-my.jpg\" alt=\"FreeDemo\" class=\"responsive-image-banner\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script><\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); 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><strong>The FIFO (First-In, First-Out)<\/strong> method helps businesses minimize waste and enhance profitability by ensuring that older stock is used or sold before newer inventory.<\/li>\n<li>FIFO is especially crucial for industries dealing with perishable goods, such as <strong>food and beverages<\/strong>, as well as sectors like <strong>electronics and fashion<\/strong>, where product relevance matters.<\/li>\n<li>FIFO inventory valuation aligns the cost of goods sold with the oldest inventory costs, ensuring a <strong>more accurate<\/strong> financial representation of stock value.<\/li>\n<li>Implementing FIFO manually can be challenging, but <strong>automated inventory management software<\/strong> can simplify the process, improving stock accuracy and operational efficiency.<\/li>\n<li><a href=\"https:\/\/www.hashmicro.com\/my\/inventory-management-system\">HashMicro\u2019s Inventory Management Software<\/a> offers real-time stock tracking, automated FIFO reordering, and detailed reporting, making it easier for businesses to maintain <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/inventory-control\/\">inventory control<\/a>.<\/li>\n<\/ul>\n<p><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\/my\/free-product-demo?medium=cta-button\" target=\"_blank\">Click Here to Get the Free Demo!<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span data-sheets-root=\"1\"><!-- <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\">Content Lists<\/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<!-- TOC mobile -->\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<!-- TOC mobile -->\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}\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\t\t\t\t\r\n\t}\r\n\r\n<\/style>\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<!-- START 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<!-- END ToC styling  -->\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<\/script>\r\n\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\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', '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\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        \/\/ 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;} \/\/ Biar ga nampilin Key Takeaways di ToC\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\t\/\/ Dapatkan elemen ul dengan id 'list_toc_float'\r\nconst ulFloat = document.getElementById('list_toc');\r\nconst ulJourney = document.getElementById('list_journey');\r\n\r\n\/\/ Dapatkan 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\r\n\r\n\r\n\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<!-- \t<style>#toc_group_float{display:block !important}<\/style> -->\r\n<a href=\"https:\/\/www.hashmicro.com\/my\/free-product-demo\/?medium=free-product-demo\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/free-demo-desktop-my.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/free-demo-desktop-my.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2024\/07\/free-demo-mobile-my.jpg\" alt=\"FreeDemo\" class=\"responsive-image-banner\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script><\/span><\/p>\n<h2 data-start=\"0\" data-end=\"34\"><strong data-start=\"4\" data-end=\"32\">What is the FIFO Method<\/strong><\/h2>\n<p data-sourcepos=\"1:1-1:387\">The First-In, First-Out (FIFO) method is a way to manage inventory where the oldest items are used or sold before the newer ones. Think of it like a grocery store stocking milk \u2013 they put the cartons closest to their expiration date at the front so they get used first. This helps prevent products from going bad or becoming outdated, which is especially important for perishable goods.<\/p>\n<p data-sourcepos=\"3:1-3:524\">In accounting, FIFO helps determine the cost of goods sold (COGS). It assumes that the cost of the oldest items in stock is the cost of the items being sold. This is important because it can give a more up-to-date picture of how much it actually costs to produce or acquire the goods, especially when prices are changing quickly. Imagine you bought a batch of t-shirts for $10 each and then another batch for $12 each. If you sell a t-shirt using FIFO, you&#8217;d record the cost as $10, reflecting the cost of the older shirt.<\/p>\n<p data-sourcepos=\"5:1-5:395\">Using FIFO offers several benefits. It minimizes losses from spoilage or obsolescence since older stock is used first. It also leads to more accurate financial reports because the inventory is valued at more recent costs, which is important for understanding the true profitability of sales. Finally, by reducing losses from outdated stock, FIFO can contribute to better cash flow management.<\/p>\n<h2 data-start=\"0\" data-end=\"53\"><strong data-start=\"4\" data-end=\"51\">How FIFO is Applied in Inventory Management<\/strong><\/h2>\n<p data-start=\"62\" data-end=\"324\">The FIFO method plays a vital role in industries where product freshness, relevance, and shelf life are critical. In sectors like food and beverage, FIFO helps ensure that older stock is sold first, reducing waste and preventing inventory spoilage.<\/p>\n<p data-start=\"326\" data-end=\"654\">Beyond perishables, industries such as fashion, electronics, and pharmaceuticals also benefit from FIFO, as it prevents products from becoming obsolete or losing value over time. By consistently applying this method, businesses can maintain inventory quality, improve stock turnover, and enhance customer satisfaction.<\/p>\n<p data-start=\"656\" data-end=\"901\">Additionally, FIFO simplifies inventory tracking and financial reporting, as it naturally aligns with the way goods flow in most businesses. This makes it easier to manage stock levels, reduce discrepancies, and ensure accurate audits.<\/p>\n<h2 data-start=\"0\" data-end=\"35\"><strong data-start=\"4\" data-end=\"33\">How the FIFO Method Works<\/strong><\/h2>\n<p>The FIFO method operates on a straightforward principle: the oldest inventory in stock is always the first to be sold or used. This approach ensures that businesses rotate their stock efficiently, preventing products from becoming outdated or obsolete. Regular stocktakes help verify that the FIFO method is correctly applied, allowing companies to maintain better control over their stock levels and ensure that items remain fresh and relevant to consumers.<\/p>\n<p>In terms of inventory valuation, FIFO calculates the cost of goods sold (COGS) based on the price of the oldest available stock. This means that when inventory prices fluctuate\u2014especially during periods of inflation\u2014the COGS reflects the lower costs of earlier purchases. Conducting a <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/stocktake\/\">stocktake<\/a> also ensures that the remaining inventory is accurately valued at the most recent purchase prices, providing a more precise financial representation of stock value.<\/p>\n<h2 data-start=\"0\" data-end=\"44\"><strong data-start=\"4\" data-end=\"42\">FIFO Formula &amp; Calculation Example<\/strong><\/h2>\n<p data-start=\"46\" data-end=\"268\">The FIFO method follows a straightforward calculation process that helps businesses determine the cost of goods sold (COGS) based on the oldest inventory costs. The formula for FIFO <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/inventory-valuation\/\">inventory valuation<\/a> is as follows:<\/p>\n<p style=\"text-align: center;\" data-start=\"491\" data-end=\"926\"><strong><span class=\"base\"><span class=\"mord text\"><span class=\"mord\">FIFO Inventory Cost\u00a0<\/span><\/span><span class=\"mrel\">= <\/span><\/span><span class=\"base\"><span class=\"mord text\"><span class=\"mord\">Cost of First Batch Sold\u00a0<\/span><\/span><span class=\"mbin\">+ <\/span><\/span><span class=\"base\"><span class=\"mord text\"><span class=\"mord\">Cost of Second Batch Sold\u00a0<\/span><\/span><span class=\"mbin\">+ <\/span><\/span><span class=\"base\"><span class=\"minner\">\u2026<\/span><\/span><\/strong><\/p>\n<p data-start=\"381\" data-end=\"672\">This means that when a business sells products, it assigns costs starting from the earliest purchases, ensuring that older inventory costs are accounted for first. The result is a valuation method that aligns with real market conditions and provides a more accurate financial overview.<\/p>\n<h3 data-start=\"674\" data-end=\"702\"><strong>Real-Life Example<\/strong><\/h3>\n<p data-start=\"703\" data-end=\"1071\">Imagine an electronics store that purchases 100 smartphones at RM2,000 per unit. A few months later, due to supplier price increases, the store buys 50 additional units at RM2,500 per unit. If the store sells 120 units, FIFO dictates that the first 100 units are valued at RM2,000 each, while the remaining 20 units are assigned the RM2,500 cost.<\/p>\n<p data-start=\"1073\" data-end=\"1141\">Using FIFO, the store\u2019s COGS calculation would look like this:<\/p>\n<ul data-start=\"1142\" data-end=\"1250\">\n<li data-start=\"1142\" data-end=\"1181\">100 units \u00d7 RM2,000 = RM200,000<\/li>\n<li data-start=\"1182\" data-end=\"1219\">20 units \u00d7 RM2,500 = RM50,000<\/li>\n<li data-start=\"1220\" data-end=\"1250\">Total COGS = RM250,000<\/li>\n<\/ul>\n<p data-start=\"1252\" data-end=\"1451\">Since the most recently purchased inventory (30 units at RM2,500) remains in stock, the ending inventory is valued at the most recent cost, ensuring an accurate and updated financial statement.<\/p>\n<p data-start=\"1453\" data-end=\"1820\">Applying FIFO ensures that businesses keep their inventory valuation aligned with actual purchasing trends, helping them make informed pricing, stocking, and financial decisions. In the next section, we\u2019ll examine the pros and cons of the FIFO method, helping businesses determine whether it\u2019s the right approach for their inventory management strategy.<\/p>\n<h2 data-start=\"1453\" data-end=\"1820\"><strong>Pros and Cons of the FIFO Method<\/strong><\/h2>\n<h3 data-start=\"251\" data-end=\"291\"><strong data-start=\"256\" data-end=\"289\">Advantages of the FIFO Method<\/strong><\/h3>\n<ul data-start=\"292\" data-end=\"830\">\n<li data-start=\"292\" data-end=\"433\"><strong data-start=\"294\" data-end=\"324\">Reduces waste and spoilage: <\/strong>Ensures older stock is sold first, making it ideal for food, pharmaceuticals, and retail industries.<\/li>\n<li data-start=\"434\" data-end=\"563\"><strong data-start=\"436\" data-end=\"466\">Higher inventory valuation: <\/strong>During inflation, remaining stock is valued at current prices, improving financial accuracy.<\/li>\n<li data-start=\"564\" data-end=\"696\"><strong data-start=\"566\" data-end=\"593\">Improved profit margins: <\/strong>Since older, lower-cost inventory is recorded in COGS, FIFO can show higher profitability.<\/li>\n<li data-start=\"697\" data-end=\"830\"><strong data-start=\"699\" data-end=\"720\">Globally accepted: <\/strong>Complies with IFRS and GAAP accounting standards, making it a trusted method for financial reporting.<\/li>\n<\/ul>\n<h3 data-start=\"832\" data-end=\"875\"><strong data-start=\"837\" data-end=\"873\">Disadvantages of the FIFO Method<\/strong><\/h3>\n<ul data-start=\"876\" data-end=\"1292\">\n<li data-start=\"876\" data-end=\"993\"><strong data-start=\"878\" data-end=\"907\">Higher taxes in inflation: <\/strong>Since FIFO records lower COGS, businesses may face higher taxable income.<\/li>\n<li data-start=\"994\" data-end=\"1119\"><strong data-start=\"996\" data-end=\"1033\">Less accurate in volatile markets: <\/strong>Price fluctuations can cause a mismatch between COGS and actual market value.<\/li>\n<li data-start=\"1120\" data-end=\"1292\"><strong data-start=\"1122\" data-end=\"1160\">Requires strict inventory tracking: <\/strong>Without automated inventory management, maintaining FIFO consistently can be difficult, especially in large warehouses.<\/li>\n<\/ul>\n<h2 data-start=\"0\" data-end=\"42\"><strong data-start=\"4\" data-end=\"40\">FIFO vs. Other Inventory Methods<\/strong><\/h2>\n<p data-start=\"44\" data-end=\"336\">While FIFO is a widely used inventory method, it is essential to compare it with other valuation techniques to determine the best approach for a business. The three main alternatives to FIFO are LIFO (Last-In, First-Out), the Average Cost Method, and the Specific Identification Method.<\/p>\n<h3 data-start=\"338\" data-end=\"362\"><strong data-start=\"343\" data-end=\"360\">FIFO vs. LIFO<\/strong><\/h3>\n<p data-start=\"363\" data-end=\"688\">FIFO prioritizes selling the oldest stock first, ensuring products remain fresh and inventory reflects recent market prices. In contrast, <a href=\"https:\/\/en.wikipedia.org\/wiki\/FIFO_and_LIFO_accounting\">LIFO<\/a> (Last-In, First-Out) assumes the newest inventory is sold first, which can lower taxable income in inflationary periods but may not align with the actual flow of goods.<\/p>\n<h3 data-start=\"690\" data-end=\"729\"><strong data-start=\"695\" data-end=\"727\">FIFO vs. Average Cost Method<\/strong><\/h3>\n<p data-start=\"730\" data-end=\"1021\">The Average Cost Method calculates inventory value by taking the weighted average cost of all stock. While this simplifies calculations, it does not reflect the real purchase cost of specific inventory batches like FIFO does, which can lead to less precise financial reporting.<\/p>\n<h3 data-start=\"1023\" data-end=\"1073\"><strong data-start=\"1028\" data-end=\"1071\">FIFO vs. Specific Identification Method<\/strong><\/h3>\n<p data-start=\"1074\" data-end=\"1360\">The Specific Identification Method assigns an exact cost to each inventory item, making it the most accurate but also the most complex and time-consuming. FIFO, on the other hand, offers better efficiency and scalability for businesses handling large volumes of inventory.<\/p>\n<p data-start=\"1362\" data-end=\"1611\">Choosing the right inventory method depends on factors like business size, industry, pricing fluctuations, and tax strategies. In the next section, we\u2019ll discuss how businesses can decide whether FIFO is the best approach for their operations.<\/p>\n<h2 data-start=\"0\" data-end=\"63\"><strong data-start=\"4\" data-end=\"61\">Choosing the Right Inventory Method for Your Business<\/strong><\/h2>\n<p><img decoding=\"async\" class=\" wp-image-3486 aligncenter\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/first-in-first-out-300x163.webp\" alt=\"\" width=\"705\" height=\"383\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/first-in-first-out-300x163.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/first-in-first-out-1024x555.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/first-in-first-out-768x416.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/first-in-first-out-775x420.webp 775w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/first-in-first-out-150x81.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/first-in-first-out-696x377.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/first-in-first-out-1068x579.webp 1068w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/first-in-first-out.webp 1200w\" sizes=\"(max-width: 705px) 100vw, 705px\" \/><\/p>\n<h3><strong>Factors to Consider<\/strong><\/h3>\n<p data-start=\"65\" data-end=\"535\">The FIFO method is ideal for businesses handling perishable or fast-moving goods, ensuring older stock is sold first to maintain quality. In contrast, industries with rising costs may prefer LIFO (Last-In, First-Out) to lower taxable income, while businesses with fluctuating prices might opt for the Average Cost Method. Those managing unique, high-value items may benefit from the Specific Identification Method for precise cost tracking.<\/p>\n<h3><strong>How to Decide Between FIFO and Other Methods<\/strong><\/h3>\n<p data-start=\"537\" data-end=\"879\">Deciding whether FIFO is the best choice for your business involves evaluating your needs. FIFO is a strong option for companies that deal with goods that can spoil or become obsolete or when having a highly accurate inventory valuation is essential. However, speaking with a financial professional is always wise to ensure the inventory method you choose aligns with your overall business strategy and long-term objectives.<\/p>\n<p data-start=\"537\" data-end=\"879\">In <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/restaurant-inventory-management\/\">restaurant inventory management<\/a>, choosing the right method directly impacts cost control, waste reduction, and operational efficiency. Implementing FIFO helps restaurants maintain ingredient freshness, prevent spoilage, and ensure seamless stock rotation, ultimately contributing to better financial tracking and overall business success.<\/p>\n<h2 data-start=\"537\" data-end=\"879\"><strong>Why FIFO is a Preferred Inventory Method<\/strong><\/h2>\n<h3><strong>Benefits for Different Types of Businesses<\/strong><\/h3>\n<p data-start=\"100\" data-end=\"435\">FIFO is widely used due to its adaptability across different sectors. Whether in retail, manufacturing, or food service, this method helps businesses optimize inventory management, ensuring stock moves efficiently. By selling older items first, FIFO helps reduce waste, improve turnover rates, and maximize profitability.<\/p>\n<h4 data-start=\"437\" data-end=\"481\"><strong data-start=\"442\" data-end=\"479\">Relevance to Malaysian Businesses<\/strong><\/h4>\n<p data-start=\"482\" data-end=\"861\">In Malaysia, where businesses often deal with inventory spoilage and obsolescence, FIFO provides an effective solution for maintaining stock quality and reducing losses. By applying FIFO principles, businesses can ensure that older inventory is used or sold first, minimizing waste and preserving product freshness, ultimately leading to better cost efficiency.<\/p>\n<h2 data-start=\"0\" data-end=\"51\"><strong data-start=\"4\" data-end=\"49\">Leave Inventory Management to the Experts<\/strong><\/h2>\n<h3><strong>Benefits of Professional Inventory Management Services<\/strong><\/h3>\n<p data-start=\"53\" data-end=\"405\">Managing inventory efficiently becomes more complex as a business grows. Without a structured system, tracking stock movement, ensuring FIFO compliance, and maintaining optimal inventory levels can become overwhelming. This is why many businesses turn to professional inventory management solutions to streamline operations and reduce errors.<\/p>\n<h3><strong>Recommended Services for Filipino Businesses<\/strong><\/h3>\n<p data-start=\"407\" data-end=\"863\">For Malaysian businesses looking to improve stock control, automated inventory management software can simplify FIFO implementation. With real-time tracking, automated stock rotation, and detailed reporting, businesses can ensure accurate inventory valuation while reducing waste and improving profitability. In the next section, we\u2019ll explore how HashMicro\u2019s Inventory Management Software can help businesses implement FIFO effortlessly.<\/p>\n<h2 id=\"Streamline_Your_FIFO_Process_with_HashMicro_s_Advanced_Solutions\"><strong><span id=\"hash-micro-inventory\">Streamline Your FIFO Process with HashMicro\u2019s Advanced Solutions<\/span><\/strong><\/h2>\n<p><img decoding=\"async\" class=\"wp-image-3476 aligncenter\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/Software-Inventory-300x184.webp\" alt=\"\" width=\"614\" height=\"377\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/Software-Inventory-300x184.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/Software-Inventory-1024x627.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/Software-Inventory-768x470.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/Software-Inventory-686x420.webp 686w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/Software-Inventory-150x92.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/Software-Inventory-696x426.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/Software-Inventory-1068x654.webp 1068w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/Software-Inventory.webp 1470w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/p>\n<p data-start=\"80\" data-end=\"391\">To implement the FIFO method efficiently, businesses need the right technology. HashMicro\u2019s Inventory Management Software provides a seamless way for Malaysian businesses to maximize FIFO benefits, making inventory tracking more accurate, automated, and hassle-free. Here\u2019s how HashMicro can help:<\/p>\n<ul data-start=\"393\" data-end=\"1284\">\n<li data-start=\"393\" data-end=\"557\"><strong>Real-Time Inventory Monitoring:<\/strong> Get instant stock level updates to ensure older inventory is sold first, reducing waste and preventing stock shortages.<\/li>\n<li data-start=\"558\" data-end=\"720\"><strong>Multi-Location Inventory Management:<\/strong> Easily track and manage stock across multiple warehouses or outlets while ensuring FIFO is applied consistently.<\/li>\n<li data-start=\"721\" data-end=\"876\"><strong>Automated FIFO Reordering:<\/strong> Set automatic reorder points based on FIFO principles to maintain optimal stock levels without manual intervention.<\/li>\n<li data-start=\"877\" data-end=\"1071\"><strong>Customizable FIFO Reports:<\/strong> Generate detailed reports that provide insights into stock movement, cost calculations, and inventory valuation to support better financial decisions.<\/li>\n<li data-start=\"1072\" data-end=\"1284\"><strong>Scalability for Business Growth:<\/strong> Whether you run a small business or a large enterprise, HashMicro\u2019s system adapts to your needs, ensuring efficient inventory management at every stage of growth.<\/li>\n<\/ul>\n<p data-start=\"1286\" data-end=\"1578\">Integrating HashMicro\u2019s inventory solution into your operations will streamline FIFO implementation, eliminate manual tracking errors, and enhance overall profitability. Get started today with a free demo and experience how HashMicro <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/best-erp-software\/\">ERP software<\/a> can revolutionize your inventory management.<\/p>\n<h2 data-start=\"0\" data-end=\"20\"><strong data-start=\"4\" data-end=\"18\">Conclusion<\/strong><\/h2>\n<p data-start=\"22\" data-end=\"437\">Effectively managing inventory is a key factor in a business\u2019s success. The FIFO method provides a reliable approach to ensuring older stock is sold first, minimizing waste, and keeping inventory valuation accurate. This strategy is particularly beneficial for businesses handling perishable goods, fast-moving consumer products, and high-demand inventory, as it improves efficiency and profitability.<\/p>\n<p data-start=\"439\" data-end=\"807\">However, manually implementing FIFO can be challenging, especially for businesses managing large inventories or multiple storage locations. This is where HashMicro\u2019s Inventory Management Software becomes invaluable. By automating FIFO processes, businesses can track inventory in real time, prevent stock losses, and make data-driven decisions with ease.<\/p>\n<p data-start=\"809\" data-end=\"1011\">Want to experience the benefits of automated FIFO inventory management? Try a <a href=\"https:\/\/www.hashmicro.com\/my\/free-product-demo\/?medium=form-header\">free demo<\/a> today and discover how HashMicro can help your business stay competitive, efficient, and profitable.<\/p>\n<h2><strong>FAQ about FIFO Method<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details open=\"open\">\n<summary><strong>Why is the FIFO method important?<\/strong><\/summary>\n<p>The FIFO method ensures that older inventory is used or sold first, preventing product spoilage, reducing waste, and maintaining accurate inventory valuation. It also helps businesses align stock costs with market trends for better financial reporting.<\/p>\n<\/details>\n<\/li>\n<li>\n<details open=\"open\">\n<summary><strong>Why is FIFO considered a better inventory method?<\/strong><\/summary>\n<p data-start=\"399\" data-end=\"726\">FIFO is widely used because it reflects the natural flow of inventory, making it ideal for businesses handling perishable or fast-moving goods. It also provides higher profit margins during inflation, as older, lower-cost inventory is recorded as the cost of goods sold (COGS), ensuring a more accurate financial outlook.<\/p>\n<\/details>\n<\/li>\n<li>\n<details open=\"open\">\n<summary><strong>How do you apply the FIFO method in inventory management?<\/strong><\/summary>\n<p>FIFO is applied by systematically selling or using the oldest stock first. Businesses can implement FIFO manually by tracking stock entry dates or automate the process with inventory management software, which ensures consistent FIFO application across warehouses and outlets.<\/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    \"@type\": \"Question\",\n    \"name\": \"Why is the FIFO method important?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Financial management software is often part of a company\u2019s ERP system, which integrates financial and operational data and gives teams a complete view of the business.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Why is FIFO considered a better inventory method?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"FIFO is widely used because it reflects the natural flow of inventory, making it ideal for businesses handling perishable or fast-moving goods. It also provides higher profit margins during inflation, as older, lower-cost inventory is recorded as the cost of goods sold (COGS), ensuring a more accurate financial outlook.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How do you apply the FIFO method in inventory management?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"What are the modules of ERP?elow are some of the modules of the ERP system:\n\u2013 Financial management\n\u2013 Procurement\n\u2013 Risk management\n\u2013 Supply chain management\n\u2013 Manufacturing\n\u2013 Customer relationship management\n\u2013 Human resource management\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What is the best software to track inventory?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"FIFO is applied by systematically selling or using the oldest stock first. Businesses can implement FIFO manually by tracking stock entry dates or automate the process with inventory management software, which ensures consistent FIFO application across warehouses and outlets.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Did you know that businesses relying on manual inventory tracking often face costly errors each year? These mistakes lead to overstocking, waste, and financial losses. One of the most effective ways to prevent such issues is by using the First-In, First-Out (FIFO) method\u2014a widely used inventory strategy that ensures older stock is sold or used [&hellip;]<\/p>\n","protected":false},"author":44,"featured_media":3567,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[66],"tags":[68],"class_list":{"0":"post-3455","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-inventory","8":"tag-inventory-management-software"},"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>Why FIFO Method is Crucial for Effective Inventory Management - HashMicro Malaysia<\/title>\n<meta name=\"description\" content=\"The First-In, First-Out (FIFO) method is a way to manage inventory where the oldest items are used or sold before the newer ones.\" \/>\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\/my\/blog\/what-is-fifo-method\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Why FIFO Method is Crucial for Effective Inventory Management\" \/>\n<meta property=\"og:description\" content=\"The First-In, First-Out (FIFO) method is a way to manage inventory where the oldest items are used or sold before the newer ones.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Malaysia\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-19T06:35:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-13T08:29:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/fifo-method-696x377-1.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"696\" \/>\n\t<meta property=\"og:image:height\" content=\"377\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Nurul Ain\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nurul Ain\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/\"},\"author\":{\"name\":\"Nurul Ain\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/d9f06e18a636ec61b2a0351cd68b7be4\"},\"headline\":\"Why FIFO Method is Crucial for Effective Inventory Management\",\"datePublished\":\"2025-02-19T06:35:38+00:00\",\"dateModified\":\"2026-02-13T08:29:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/\"},\"wordCount\":2292,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/fifo-method-696x377-1.webp\",\"keywords\":[\"Inventory management software\"],\"articleSection\":[\"Inventory\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/\",\"name\":\"Why FIFO Method is Crucial for Effective Inventory Management - HashMicro Malaysia\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/fifo-method-696x377-1.webp\",\"datePublished\":\"2025-02-19T06:35:38+00:00\",\"dateModified\":\"2026-02-13T08:29:22+00:00\",\"description\":\"The First-In, First-Out (FIFO) method is a way to manage inventory where the oldest items are used or sold before the newer ones.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/fifo-method-696x377-1.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/fifo-method-696x377-1.webp\",\"width\":696,\"height\":377},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/my\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Why FIFO Method is Crucial for Effective Inventory Management\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/\",\"name\":\"HashMicro Malaysia\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/my\/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\/my\/blog\/#organization\",\"name\":\"HashMicro Malaysia\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp\",\"width\":422,\"height\":255,\"caption\":\"HashMicro Malaysia\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/d9f06e18a636ec61b2a0351cd68b7be4\",\"name\":\"Nurul Ain\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Nurul-Ain-MY-BG-Toko-1080x1080-1-96x96.webp\",\"contentUrl\":\"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Nurul-Ain-MY-BG-Toko-1080x1080-1-96x96.webp\",\"caption\":\"Nurul Ain\"},\"description\":\"Nurul Ain focuses on inventory management, crafting articles that cover stock control, demand forecasting, and warehouse efficiency. She provides actionable tips for reducing inventory costs and avoiding stockouts. Her content supports both small and large businesses in optimizing their inventory practices.\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/author\/nurul-ain\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Why FIFO Method is Crucial for Effective Inventory Management - HashMicro Malaysia","description":"The First-In, First-Out (FIFO) method is a way to manage inventory where the oldest items are used or sold before the newer ones.","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\/my\/blog\/what-is-fifo-method\/","og_locale":"en_US","og_type":"article","og_title":"Why FIFO Method is Crucial for Effective Inventory Management","og_description":"The First-In, First-Out (FIFO) method is a way to manage inventory where the oldest items are used or sold before the newer ones.","og_url":"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/","og_site_name":"HashMicro Malaysia","article_published_time":"2025-02-19T06:35:38+00:00","article_modified_time":"2026-02-13T08:29:22+00:00","og_image":[{"width":696,"height":377,"url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/fifo-method-696x377-1.webp","type":"image\/webp"}],"author":"Nurul Ain","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Nurul Ain","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/"},"author":{"name":"Nurul Ain","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/d9f06e18a636ec61b2a0351cd68b7be4"},"headline":"Why FIFO Method is Crucial for Effective Inventory Management","datePublished":"2025-02-19T06:35:38+00:00","dateModified":"2026-02-13T08:29:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/"},"wordCount":2292,"publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/fifo-method-696x377-1.webp","keywords":["Inventory management software"],"articleSection":["Inventory"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/","name":"Why FIFO Method is Crucial for Effective Inventory Management - HashMicro Malaysia","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/fifo-method-696x377-1.webp","datePublished":"2025-02-19T06:35:38+00:00","dateModified":"2026-02-13T08:29:22+00:00","description":"The First-In, First-Out (FIFO) method is a way to manage inventory where the oldest items are used or sold before the newer ones.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/#primaryimage","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/fifo-method-696x377-1.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/02\/fifo-method-696x377-1.webp","width":696,"height":377},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/my\/blog\/what-is-fifo-method\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/my\/blog\/"},{"@type":"ListItem","position":2,"name":"Why FIFO Method is Crucial for Effective Inventory Management"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website","url":"https:\/\/www.hashmicro.com\/my\/blog\/","name":"HashMicro Malaysia","description":"","publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/my\/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\/my\/blog\/#organization","name":"HashMicro Malaysia","url":"https:\/\/www.hashmicro.com\/my\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp","width":422,"height":255,"caption":"HashMicro Malaysia"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/d9f06e18a636ec61b2a0351cd68b7be4","name":"Nurul Ain","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/image\/","url":"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Nurul-Ain-MY-BG-Toko-1080x1080-1-96x96.webp","contentUrl":"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Nurul-Ain-MY-BG-Toko-1080x1080-1-96x96.webp","caption":"Nurul Ain"},"description":"Nurul Ain focuses on inventory management, crafting articles that cover stock control, demand forecasting, and warehouse efficiency. She provides actionable tips for reducing inventory costs and avoiding stockouts. Her content supports both small and large businesses in optimizing their inventory practices.","url":"https:\/\/www.hashmicro.com\/my\/blog\/author\/nurul-ain\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/3455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/users\/44"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/comments?post=3455"}],"version-history":[{"count":29,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/3455\/revisions"}],"predecessor-version":[{"id":15829,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/3455\/revisions\/15829"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media\/3567"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media?parent=3455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/categories?post=3455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/tags?post=3455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}