{"id":17015,"date":"2026-03-03T09:02:50","date_gmt":"2026-03-03T09:02:50","guid":{"rendered":"https:\/\/www.hashmicro.com\/my\/blog\/?p=17015"},"modified":"2026-03-03T09:41:17","modified_gmt":"2026-03-03T09:41:17","slug":"cogs-guide","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/","title":{"rendered":"Cost Of Goods Sold (COGS) in Malaysia : The Complete Guide for Your Business"},"content":{"rendered":"\n<p>Every business that sells a physical product whether a small retail shop in Kuala Lumpur or a large manufacturing firm in Johor Bahru needs to understand one fundamental accounting figure that sits right at the top of the income statement: the cost of goods sold. This single metric tells you, in precise financial terms, how much it truly costs to produce or acquire the products you sell. Far from being just an accounting formality, understanding and maintaining <a href=\"https:\/\/www.deloitte.com\/ch\/en\/services\/consulting\/perspectives\/mastering-cost-of-goods-complexity.html\">clear COGS transparency and accurate product cost<\/a> can be the difference between a thriving, profitable business and one that is slowly bleeding cash without realising it.<\/p>\n<p>In Malaysia&#8217;s highly competitive marketplace, where supply chain disruptions, fluctuating raw material prices, and shifting consumer demand are constant realities, keeping a sharp eye on your cost of goods sold is more important than ever. Business owners, finance managers, and operations teams who master this concept gain a powerful lens through which they can evaluate pricing strategies, supplier negotiations, and inventory management practices. This comprehensive guide will walk you through everything you need to know\u00a0 from the fundamental definition to advanced calculation methods, practical examples, and actionable strategies to <a href=\"https:\/\/www.mckinsey.com\/capabilities\/operations\/our-insights\/how-to-untap-the-full-potential-an-integrated-not-isolated-view-on-cost\">reduce your overall COGS and improve profit margins.<\/a><\/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><a href=\"#what\">Understand the full definition<\/a> and the importance of COGS for your business.<\/li>\n<li><a href=\"#formula\">Learn the standard formula<\/a> and how to apply it step by step.<\/li>\n<li><a href=\"#cogs\">Explore FIFO, LIFO, and Weighted<\/a> Average Cost methods.<\/li>\n<\/ul>\n<\/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<\/span><\/p>\n<h2><strong><span id=\"what\">What Is Cost of Goods Sold (COGS)?<\/span><\/strong><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-17043 size-full\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/What-Is-COGS.webp\" alt=\"What Is COGS?\" width=\"800\" height=\"400\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/What-Is-COGS.webp 800w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/What-Is-COGS-300x150.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/What-Is-COGS-768x384.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/What-Is-COGS-150x75.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/What-Is-COGS-696x348.webp 696w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p data-path-to-node=\"0\"><b data-path-to-node=\"0\" data-index-in-node=\"0\">Cost of Goods Sold (COGS)<\/b> is the total money spent directly to buy or create the products a business actually sells. It sits right below revenue on your income statement and is used to calculate your gross profit. This figure only includes items sold to customers, meaning unsold products stay on your balance sheet as inventory. For manufacturers, this covers raw materials and labor, while retailers include the purchase price and shipping costs.<\/p>\n<p data-path-to-node=\"1\">It is vital to distinguish COGS from operating expenses, which are background costs like rent, utilities, and marketing. While COGS tracks the &#8220;front-line&#8221; cost of a specific product, operating expenses cover the general costs of keeping the business running. Separating these two is essential for accurate tax reporting and understanding your true profit margins. This clear distinction helps owners make better decisions about pricing and overall financial health.<\/p>\n<h3><strong>Why COGS Matters for Your Business<\/strong><\/h3>\n<p>Understanding your COGS is critical for several reasons:<\/p>\n<ul>\n<li><strong>Gross Profit Calculation:<\/strong> Gross profit is calculated as Revenue minus COGS. This figure reveals how efficiently a company is producing or sourcing its products before accounting for overhead and other expenses.<\/li>\n<li><strong>Pricing Decisions:<\/strong> If you do not know your true cost of goods, you cannot set prices that ensure profitability. COGS is the foundation of any sound pricing strategy.<\/li>\n<li><strong>Tax Deductions:<\/strong> In Malaysia, COGS is a deductible business expense. Accurately reporting it reduces your taxable income and, therefore, your corporate tax liability.<\/li>\n<li><strong>Operational Efficiency:<\/strong> Tracking COGS over time reveals trends in production costs, supplier pricing, and waste, enabling management to identify inefficiencies and take corrective action.<\/li>\n<li><strong>Investor and Lender Confidence:<\/strong> A clearly reported and well-managed COGS figure signals financial discipline to investors, lenders, and other stakeholders.<\/li>\n<\/ul>\n<p>Understanding the <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/inventory-cycle\/\" target=\"_blank\" rel=\"noopener noreferrer\">inventory cycle<\/a> is closely tied to how COGS is tracked. From the moment goods are ordered from a supplier to the point they are sold to a customer, every stage in the inventory lifecycle has a cost implication that feeds directly into COGS. Businesses that manage their inventory cycle effectively will find it far easier to control and predict their cost of goods sold.<\/p>\n<h2><strong><span id=\"formula\">The COGS Formula Explained<\/span><\/strong><\/h2>\n<p>The standard formula for calculating cost of goods sold is straightforward:<\/p>\n<div style=\"background: #f4f8ff; border-left: 4px solid #2563eb; padding: 18px 24px; border-radius: 6px; margin: 24px 0;\">\n<p style=\"margin: 0; font-size: 1.1em;\"><strong> COGS = Opening Inventory + Purchases During the Period \u2212 Closing Inventory<\/strong><\/p>\n<\/div>\n<p>Let&#8217;s break down each component:<\/p>\n<ul>\n<li><strong>Opening Inventory:<\/strong> This is the value of inventory you had on hand at the start of the accounting period. It is the same figure as the closing inventory from the previous period.<\/li>\n<li><strong>Purchases During the Period:<\/strong> This includes all inventory purchased or manufactured during the period, including the cost of raw materials, direct labour for manufacturers, and any import duties or freight costs necessary to bring goods to their current location and condition.<\/li>\n<li><strong>Closing Inventory:<\/strong> This is the value of inventory remaining unsold at the end of the accounting period. It is determined through a physical stock count or perpetual inventory system.<\/li>\n<\/ul>\n<h3><strong>COGS Calculation: A Step-by-Step Example<\/strong><\/h3>\n<p>Let&#8217;s say a Malaysian electronics retailer, TechPlus Sdn Bhd, is calculating its COGS for the financial year ending 31 December 2024:<\/p>\n<ul>\n<li>Opening Inventory (1 January 2024): RM 150,000<\/li>\n<li>Purchases During 2024: RM 820,000<\/li>\n<li>Closing Inventory (31 December 2024): RM 180,000<\/li>\n<\/ul>\n<p><strong>COGS = RM 150,000 + RM 820,000 \u2212 RM 180,000 = RM 790,000<\/strong><\/p>\n<p>This means TechPlus spent RM 790,000 to acquire the goods it sold during the year. If total revenue was RM 1,200,000, then gross profit would be RM 410,000, a gross margin of approximately 34.2%.<\/p>\n<h3><strong>COGS for Manufacturers<\/strong><\/h3>\n<p>For manufacturers, the formula expands to account for the cost of production. The calculation typically involves three types of inventory:<\/p>\n<ul>\n<li><strong>Raw Materials Inventory:<\/strong> The cost of materials used in production.<\/li>\n<li><strong>Work-in-Progress (WIP) Inventory:<\/strong> The cost of goods that are partially completed.<\/li>\n<li><strong>Finished Goods Inventory:<\/strong> The cost of completed products ready for sale.<\/li>\n<\/ul>\n<p>The Cost of Goods Manufactured (COGM) is first calculated and then fed into the COGS formula as follows:<\/p>\n<div style=\"background: #f4f8ff; border-left: 4px solid #2563eb; padding: 18px 24px; border-radius: 6px; margin: 24px 0;\">\n<p style=\"margin: 0; font-size: 1.1em;\"><strong> COGS = Opening Finished Goods + COGM \u2212 Closing Finished Goods <\/strong><\/p>\n<\/div>\n<p>Where COGM = Opening WIP + Raw Materials Used + Direct Labour + Manufacturing Overhead \u2212 Closing WIP<\/p>\n<p>This layered approach ensures that every production-related cost from the steel used to make a component to the wages of the factory worker assembling it is correctly captured in the cost of goods sold figure.<\/p>\n<h2><strong>What Is (and Isn&#8217;t) Included in COGS<\/strong><\/h2>\n<p>One of the most common sources of error in COGS calculation is including costs that should not be there, or omitting costs that should be. Getting this right is essential for accurate financial reporting.<\/p>\n<h3><strong>What to Include in COGS<\/strong><\/h3>\n<ul>\n<li><strong>Raw materials and components<\/strong> used directly in production<\/li>\n<li><strong>Direct labour costs<\/strong> wages and salaries of workers directly involved in making the product<\/li>\n<li><strong>Manufacturing overhead<\/strong> factory rent, machinery depreciation, factory utilities, and production supervision costs<\/li>\n<li><strong>Purchase price of goods<\/strong> resold by retailers and wholesalers<\/li>\n<li><strong>Freight and shipping costs<\/strong> to bring inventory to its current location<\/li>\n<li><strong>Import duties and customs costs<\/strong> associated with acquiring inventory<\/li>\n<li><strong>Packaging materials<\/strong> that are integral to the product<\/li>\n<li><strong>Storage costs<\/strong> directly related to holding inventory for production purposes<\/li>\n<\/ul>\n<h3><strong>What to Exclude from COGS<\/strong><\/h3>\n<ul>\n<li><strong>Selling expenses<\/strong> advertising, marketing, commissions paid to sales staff<\/li>\n<li><strong>Administrative expenses<\/strong> management salaries, office rent, legal fees<\/li>\n<li><strong>Research and development costs<\/strong><\/li>\n<li><strong>Depreciation on non-production assets<\/strong> such as company vehicles used by the sales team<\/li>\n<li><strong>Interest expenses<\/strong> on business loans<\/li>\n<li><strong>Distribution and delivery costs<\/strong> for outbound shipments to customers (these are typically selling expenses)<\/li>\n<\/ul>\n<p>Misclassifying these expenses distorts your gross profit and makes it harder to benchmark performance against industry standards or make accurate comparisons across reporting periods.<\/p>\n<h2><strong><span id=\"cogs\">Inventory Valuation Methods for COGS<\/span><\/strong><\/h2>\n<p>Because inventory prices fluctuate over time, businesses must choose an inventory valuation method that determines which costs are assigned to COGS and which remain in ending inventory. The method chosen can significantly impact reported profit, tax liability, and balance sheet values. There are three primary methods used in Malaysia and internationally.<\/p>\n<h3><strong>1. First-In, First-Out (FIFO)<\/strong><\/h3>\n<p>FIFO assumes that the oldest inventory items are sold first. This means that when you calculate COGS, you use the cost of the oldest units purchased. Conversely, the inventory remaining on hand reflects the cost of the most recently purchased items.<\/p>\n<p><strong>Example:<\/strong> A food manufacturer purchased 1,000 units at RM 5 per unit in January and 1,000 units at RM 6 per unit in March. If 1,200 units were sold during the period, under FIFO, COGS would be calculated as: (1,000 \u00d7 RM 5) + (200 \u00d7 RM 6) = RM 5,000 + RM 1,200 = <strong>RM 6,200<\/strong>.<\/p>\n<p><strong>Advantages of FIFO:<\/strong><\/p>\n<ul>\n<li>Reflects the natural flow of most physical goods (especially perishables)<\/li>\n<li>Ending inventory reflects current market prices, making the balance sheet more accurate<\/li>\n<li>Generally accepted under both MFRS (Malaysian Financial Reporting Standards) and IFRS<\/li>\n<\/ul>\n<p><strong>Disadvantages of FIFO:<\/strong><\/p>\n<ul>\n<li>During periods of rising prices, FIFO results in lower COGS and higher taxable profit<\/li>\n<li>May not match current costs with current revenues, potentially overstating profitability<\/li>\n<\/ul>\n<h3><strong>2. Last-In, First-Out (LIFO)<\/strong><\/h3>\n<p>LIFO assumes that the most recently acquired inventory is sold first. This results in COGS reflecting more current (and often higher) costs during inflationary periods, and ending inventory reflecting older, lower costs.<\/p>\n<p><strong>Important note for Malaysian businesses:<\/strong> LIFO is <strong>not permitted<\/strong> under Malaysian Financial Reporting Standards (MFRS) or International Financial Reporting Standards (IFRS). It is only allowed under US GAAP. Malaysian companies using MFRS must use either FIFO or the Weighted Average Cost method.<\/p>\n<h3><strong>3. Weighted Average Cost (WAC)<\/strong><\/h3>\n<p>The Weighted Average Cost method calculates a new average cost for each unit after every purchase, and this average is used for both COGS and ending inventory valuation.<\/p>\n<p><strong>Formula:<\/strong><\/p>\n<div style=\"background: #f4f8ff; border-left: 4px solid #2563eb; padding: 18px 24px; border-radius: 6px; margin: 24px 0;\">\n<p style=\"margin: 0; font-size: 1.1em;\"><strong> Weighted Average Cost per Unit = Total Cost of Goods Available for Sale \u00f7 Total Units Available for Sale.<br \/>\n<\/strong><\/p>\n<\/div>\n<p><strong>Example:<\/strong> Using the same scenario as above 1,000 units at RM 5 and 1,000 units at RM 6, total goods available = 2,000 units at a total cost of RM 11,000. Weighted average cost = RM 11,000 \u00f7 2,000 = RM 5.50 per unit. If 1,200 units were sold: COGS = 1,200 \u00d7 RM 5.50 = <strong>RM 6,600<\/strong>.<\/p>\n<p><strong>Advantages of WAC:<\/strong><\/p>\n<ul>\n<li>Simple and easy to apply, especially with large volumes of similar items<\/li>\n<li>Smooths out price fluctuations, providing a more stable COGS figure<\/li>\n<li>Widely used and accepted under MFRS<\/li>\n<\/ul>\n<p>Choosing the right valuation method is a critical decision that impacts your long-term financial reporting and tax obligations in Malaysia. It is directly tied to how accurately you manage your <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/ending-inventory-guide\/\">ending inventory<\/a>, as any errors here will lead to incorrect COGS and profit figures. Because changing methods later can be difficult, it is best to consult an accountant to ensure your closing stock values remain precise and compliant.<\/p>\n<h2><strong>COGS, Gross Profit, and Gross Margin: Understanding the Relationship<\/strong><\/h2>\n<p>COGS forms the foundation of several critical financial metrics that every business leader should understand and monitor regularly.<\/p>\n<h3><strong>Gross Profit<\/strong><\/h3>\n<div style=\"background: #f4f8ff; border-left: 4px solid #2563eb; padding: 18px 24px; border-radius: 6px; margin: 24px 0;\">\n<p style=\"margin: 0; font-size: 1.1em;\"><strong> <strong>Gross Profit = Net Revenue \u2212 COGS<\/strong><\/strong><\/p>\n<\/div>\n<p>This is the pool of funds from which you must cover all operating expenses (salaries, rent, marketing), finance costs, and ultimately generate net profit. A healthy gross profit is the first gatekeeper of business sustainability.<\/p>\n<h3><strong>COGS Margin<\/strong><\/h3>\n<p>The COGS margin is essentially the inverse of gross margin. It represents COGS as a percentage of revenue:<\/p>\n<div style=\"background: #f4f8ff; border-left: 4px solid #2563eb; padding: 18px 24px; border-radius: 6px; margin: 24px 0;\">\n<p style=\"margin: 0; font-size: 1.1em;\"><strong> COGS Margin (%) = (COGS \u00f7 Net Revenue) \u00d7 10 <\/strong><\/p>\n<\/div>\n<p>A rising COGS margin over time is a warning signal it indicates that costs are increasing faster than revenue, squeezing profitability. Tracking this metric quarterly is a best practice for any business that sells physical goods.<\/p>\n<p>Tracking COGS margin alongside your overall <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/profit-margin\/\" target=\"_blank\" rel=\"noopener noreferrer\">profit margin<\/a> gives you a complete picture of financial health. While a healthy gross margin is encouraging, it is only truly meaningful when viewed in the context of all other costs the business incurs.<\/p>\n<h3><strong>Gross Margin<\/strong><\/h3>\n<div style=\"background: #f4f8ff; border-left: 4px solid #2563eb; padding: 18px 24px; border-radius: 6px; margin: 24px 0;\">\n<p style=\"margin: 0; font-size: 1.1em;\"><strong> Gross Margin (%) = (Gross Profit \u00f7 Net Revenue) \u00d7 100 <\/strong><\/p>\n<\/div>\n<p>It is one of the most widely used profitability metrics for benchmarking against competitors and industry averages. For example, a Malaysian apparel retailer with RM 2 million in revenue and RM 1.2 million in COGS would have a gross margin of 40%.<\/p>\n<p>Different industries have very different benchmark gross margins:<\/p>\n<div style=\"width: 100%; margin: 20px 0; font-family: 'Segoe UI', Arial, sans-serif; overflow-x: auto;\">\n<table style=\"width: 100%; border-collapse: collapse; border: 1px solid #ddd;\">\n<thead>\n<tr>\n<th style=\"background-color: #990000; color: #ffffff; padding: 15px; text-align: left; border: 1px solid #990000; font-weight: bold; text-transform: uppercase;\">Industries<\/th>\n<th style=\"background-color: #990000; color: #ffffff; padding: 15px; text-align: left; border: 1px solid #990000; font-weight: bold; text-transform: uppercase;\">Estimated Gross Margins (%)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding: 12px 15px; border: 1px solid #ddd; font-weight: bold; background-color: #f9f9f9;\">Retail (general merchandise)<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #ddd;\">25\u201340%<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px 15px; border: 1px solid #ddd; font-weight: bold; background-color: #ffffff;\">Manufacturing<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #ddd;\">20\u201335%<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px 15px; border: 1px solid #ddd; font-weight: bold; background-color: #f9f9f9;\">Food and Beverage<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #ddd;\">30\u201350%<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px 15px; border: 1px solid #ddd; font-weight: bold; background-color: #ffffff;\">Software\/Technology<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #ddd;\">60\u201380%<br \/>\n<small style=\"font-weight: normal; color: #666;\">(lower COGS relative to revenue)<\/small><\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 12px 15px; border: 1px solid #ddd; font-weight: bold; background-color: #f9f9f9;\">Construction<\/td>\n<td style=\"padding: 12px 15px; border: 1px solid #ddd;\">15\u201325%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2><strong>COGS vs. Operating Expenses: A Critical Distinction<\/strong><\/h2>\n<p id=\"p-rc_eb696d6b47871852-17\" data-path-to-node=\"0\"><span class=\"citation-3\">Confusing <\/span><span class=\"citation-3\">COGS<\/span><span class=\"\">=&#8221;citation-3&#8243;&gt; with <\/span><span class=\"citation-3\">Operating Expenses (OpEx)&lt;\/span&gt;&lt;span class=&#8221;citation-3 citation-end-3&#8243;&gt; is a common mistake that can lead to inaccurate financial reporting. To keep it simple, ask yourself if a cost is directly needed to make or buy the product you sold; if so, it\u2019s COGS. <span class=\"citation-2 citation-end-2\">If the cost exists just to keep the business running regardless of sales\u2014like rent or marketing\u2014it is OpEx.<\/span><\/span><\/p>\n<p data-path-to-node=\"1\">This distinction is crucial for calculating your true gross profit versus your operating profit. In Malaysia, while both are tax-deductible, they are categorized differently on your income statement to show how efficiently you are producing goods. Understanding this helps you perform better break-even analysis and set smarter pricing strategies for your products.<\/p>\n<h2><strong><span id=\"inventory\">How to Reduce Your Cost of Goods Sold<\/span><\/strong><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-17044\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Reduce-your-COGS-300x167.webp\" alt=\"Reduce your COGS\" width=\"800\" height=\"447\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Reduce-your-COGS-300x167.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Reduce-your-COGS-1024x572.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Reduce-your-COGS-768x429.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Reduce-your-COGS-1536x857.webp 1536w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Reduce-your-COGS-2048x1143.webp 2048w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Reduce-your-COGS-753x420.webp 753w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Reduce-your-COGS-150x84.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Reduce-your-COGS-696x388.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Reduce-your-COGS-1068x596.webp 1068w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Reduce-your-COGS-1920x1072.webp 1920w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Reducing COGS is one of the most powerful levers available to improve gross profit without needing to raise prices. There are several strategies that businesses in Malaysia and globally can deploy effectively.<\/p>\n<h3><strong>1. Renegotiate Supplier Contracts<\/strong><\/h3>\n<p>Your suppliers are often your biggest cost driver. Regularly reviewing and renegotiating terms particularly for your top-spend categories can yield significant savings. Strategies include:<\/p>\n<ul>\n<li>Consolidating purchases with fewer suppliers to achieve better volume discounts<\/li>\n<li>Negotiating longer payment terms, freeing up working capital<\/li>\n<li>Exploring local sourcing to reduce import duties and freight costs<\/li>\n<li>Requesting early payment discounts if you have sufficient cash flow<\/li>\n<\/ul>\n<h3><strong>2. Reduce Waste and Spoilage<\/strong><\/h3>\n<p>For manufacturers and F&amp;B businesses especially, waste is a silent profit killer. Implementing lean manufacturing principles, tightening quality control processes, and monitoring yield rates can dramatically reduce the amount of material that is wasted and therefore the cost per unit of goods produced.<\/p>\n<h3><strong>3. Optimise Inventory Levels<\/strong><\/h3>\n<p data-path-to-node=\"0\">Maintaining too much stock increases storage costs and the risk of spoilage, while carrying too little leads to lost sales. The goal is to reach a balance using techniques like just-in-time (JIT) ordering and ABC classification.Effective inventory control is one of the most impactful ways to reduce COGS.<\/p>\n<h3><strong>4. Improve Production Efficiency<\/strong><\/h3>\n<p>For manufacturers, increasing production efficiency reduces the direct labour and overhead cost per unit. This can be achieved through:<\/p>\n<ul>\n<li>Investing in automation and machinery upgrades<\/li>\n<li>Standardising production processes to reduce variability<\/li>\n<li>Cross-training workers to improve flexibility and reduce idle time<\/li>\n<li>Implementing preventive maintenance programs to reduce costly equipment downtime<\/li>\n<\/ul>\n<h3><strong>5. Review Product Mix<\/strong><\/h3>\n<p>Not all products carry the same COGS margin. Regularly analysing the profitability of each product SKU and shifting focus through pricing, promotions, or sales strategy toward higher-margin products is a smart way to improve overall gross margin without necessarily reducing absolute COGS.<\/p>\n<h3><strong>6. Leverage Technology for Real-Time Cost Tracking<\/strong><\/h3>\n<p data-path-to-node=\"0\">Manual spreadsheets and disconnected systems often make tracking COGS slow and prone to errors. Modern software automates these calculations, providing real-time visibility into cost changes and flagging problems early. Cloud-based solutions, integrate inventory and finance data into a single platform for more accessible tracking.<\/p>\n<h2><strong>Using Technology to Manage COGS More Effectively<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"wp-image-17048 size-full aligncenter\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Use-of-Technology-for-COGS.webp\" alt=\"Use of Technology for COGS\" width=\"800\" height=\"400\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Use-of-Technology-for-COGS.webp 800w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Use-of-Technology-for-COGS-300x150.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Use-of-Technology-for-COGS-768x384.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Use-of-Technology-for-COGS-150x75.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Use-of-Technology-for-COGS-696x348.webp 696w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>In today&#8217;s digital business environment, relying on manual processes to track cost of goods sold is both time-consuming and error-prone. Technology has transformed the way businesses can manage inventory costs, providing real-time data that enables faster and better decision-making.<\/p>\n<ul>\n<li>\n<h3><strong>Inventory Management Software<\/strong><\/h3>\n<\/li>\n<\/ul>\n<p><strong><br \/>\n<\/strong>A robust inventory management system can automate many of the processes that feed into COGS calculation, including:<\/p>\n<ul>\n<li>Real-time tracking of stock movements (receipts, transfers, adjustments, sales)<\/li>\n<li>Automatic application of the chosen inventory valuation method (FIFO or WAC)<\/li>\n<li>Generation of stock count reports for period-end COGS calculations<\/li>\n<li>Alerts for slow-moving stock that may be at risk of obsolescence<\/li>\n<li>\n<h3><strong>ERP Systems<\/strong><\/h3>\n<\/li>\n<\/ul>\n<p>ERP systems connect inventory data with purchasing, production, and finance into a single platform. This removes the need for manual data entry and significantly reduces the risk of human error. By unifying these departments, businesses can generate accurate, real-time COGS figures instantly rather than waiting for the end of the month<\/p>\n<ul>\n<li>\n<h3><strong>Barcode and RFID Technology<br \/>\n<\/strong><\/h3>\n<\/li>\n<\/ul>\n<p>Accurate stock counts are the foundation of accurate COGS. Barcode scanning and RFID technology dramatically speed up stocktaking processes and reduce human error, ensuring that the closing inventory figure used in the COGS formula is reliable.<\/p>\n<ul>\n<li>\n<h3><strong>Data Analytics and Dashboards<\/strong><\/h3>\n<\/li>\n<\/ul>\n<p>Beyond basic tracking, analytics tools can help businesses identify cost patterns, benchmark COGS margin against budget and prior periods, and model the impact of cost changes on profitability. Custom dashboards that surface key COGS metrics give management the real-time visibility needed to respond quickly to cost pressures.<\/p>\n<h2><strong>COGS Considerations for Malaysian Businesses<\/strong><\/h2>\n<p>For businesses operating in Malaysia, there are several specific considerations when calculating and reporting COGS:<\/p>\n<h3><strong>Sales and Service Tax (SST)<\/strong><\/h3>\n<p>Under Malaysia&#8217;s Sales and Service Tax framework, sales tax is charged on the sale of taxable goods at the manufacturing and import level. Businesses that are registered manufacturers or importers must carefully account for the sales tax component when calculating inventory costs. In most cases, SST paid on inputs that form part of COGS is included in the cost basis of inventory.<\/p>\n<h3><strong>Malaysian Financial Reporting Standards (MFRS)<\/strong><\/h3>\n<p>Malaysian companies are required to follow MFRS, which is largely aligned with IFRS. Under MFRS 102 (Inventories), inventories must be valued at the lower of cost or net realisable value. The standard permits FIFO and Weighted Average Cost methods but explicitly prohibits LIFO. Businesses must apply their chosen method consistently from period to period.<\/p>\n<h3><strong>Transfer Pricing<\/strong><\/h3>\n<p>For Malaysian businesses that are part of multinational groups or that conduct transactions with related parties, transfer pricing rules apply. The Inland Revenue Board of Malaysia (LHDN) requires that intercompany transactions including the purchase of inventory from related parties be conducted at arm&#8217;s length prices. This affects the cost base of inventory and therefore COGS.<\/p>\n<p>COGS is more than a required accounting entry; it is the baseline of your operational survival. If you calculate product costs manually at the end of the month, you are pricing today&#8217;s goods using yesterday&#8217;s data. In a volatile market, real-time cost visibility is the only true defense for your profit margins.<\/p>\n<style>\r\n    #custom-quote {\r\n        background-color: #f0f0f0;\r\n        padding: 20px;\r\n        border-radius: 12px;\r\n        margin: 20px;\r\n        display: flex;\r\n        flex-direction: column;\r\n    }\r\n\r\n    #custom-quote .quote-body {\r\n        display: flex;\r\n        flex-direction: row;\r\n        align-items: flex-start;\r\n        gap: 15px;\r\n        font-size: 16px;\r\n        line-height: 1.5;\r\n        font-style: italic;\r\n    }\r\n\r\n    #custom-quote .quote-icon {\r\n        width: 40px;\r\n        height: 40px;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    #custom-quote .quote-author-wrapper {\r\n        margin-top: 15px;\r\n        align-self: flex-start;\r\n        margin-left: 55px; \r\n\t\tmargin-bottom: 0px;\r\n    }\r\n\r\n    #custom-quote em {\r\n        font-family: 'Roboto Serif', serif !important;\r\n        font-size: 12px;\r\n        font-weight: bold;\r\n        font-style: normal;\r\n    }\r\n\r\n    @media screen and (max-width: 768px) {\r\n        #custom-quote {\r\n            margin: 15px 0;\r\n            padding: 15px;\r\n        }\r\n        \r\n        #custom-quote .quote-body {\r\n            gap: 12px;\r\n        }\r\n\r\n        #custom-quote .quote-author-wrapper {\r\n            margin-left: 52px;\r\n        }\r\n    }\r\n\r\n    @media screen and (max-width: 480px) {\r\n        #custom-quote {\r\n            margin: 10px 0;\r\n            padding: 12px;\r\n        }\r\n\r\n        #custom-quote .quote-body {\r\n            font-size: 14px;\r\n            gap: 10px;\r\n        }\r\n\r\n        #custom-quote .quote-icon {\r\n            width: 32px;\r\n            height: 32px;\r\n        }\r\n\r\n        #custom-quote .quote-author-wrapper {\r\n            margin-top: 10px;\r\n            margin-left: 42px;\r\n        }\r\n    }\r\n<\/style>\r\n\r\n<div id=\"custom-quote\">\r\n    <div class=\"quote-body\">\r\n        <img decoding=\"async\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/12\/quote.webp\" alt=\"Quote Icon\" class=\"quote-icon\">\r\n        <div>\r\n            COGS is more than a required accounting entry; it is the baseline of your operational survival. If you calculate product costs manually at the end of the month, you are pricing today&#039;s goods using yesterday&#039;s data. In a volatile market, real-time cost visibility is the only true defense for your profit margins.        <\/div>\r\n    <\/div>\r\n    <p class=\"quote-author-wrapper\">\r\n        <em>Angela Tan, Regional Manager<\/em>\r\n    <\/p>\r\n<\/div>\n<h2><strong>Conclusion<\/strong><\/h2>\n<p data-path-to-node=\"0\">Mastering your Cost of Goods Sold (COGS) is the best way to protect your profits in Malaysia. It is more than just an accounting number; it is the foundation for setting the right prices and filing your taxes correctly. By clearly separating what it costs to make a product from what it costs to run your office, you can see exactly how much you spend to bring each item to market.<\/p>\n<p data-path-to-node=\"1\">Managing COGS well means choosing a clear way to value your stock, such as the FIFO or Weighted Average methods. Regularly checking these costs helps you find waste and negotiate better deals with your suppliers so rising costs don&#8217;t eat your profits. Switching from manual math to automated software gives you the live data you need to make smart financial choices and grow your business.<\/p>\n<h2><strong>FAQ About Cost of Goods Sold<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>Why is calculating COGS manually or with basic accounting software often inaccurate?<\/strong><\/summary>\n<p>Basic accounting tools usually don&#8217;t connect directly with warehouse data. This forces businesses to use manual data entry or spreadsheets, which often leads to mistakes in stock value and hidden profit losses. For companies with a lot of sales, these delays make it harder to get an accurate picture of their finances on time<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Which inventory valuation methods are legally permitted in Malaysia?<\/strong><\/summary>\n<p>Under the Malaysian Financial Reporting Standards (MFRS), businesses must use either the First-In, First-Out (FIFO) or the Weighted Average Cost (WAC) method to calculate COGS. The Last-In, First-Out (LIFO) method is strictly prohibited. Modern ERP systems automatically apply these compliant methods across all transactions, reducing the risk of audit penalties.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>How is COGS calculated differently for manufacturing businesses?<\/strong><\/summary>\n<p>Unlike retailers who simply track the purchase price of finished goods, manufacturers must calculate the Cost of Goods Manufactured (COGM) first. This includes raw materials, Work-in-Progress (WIP), direct labor, and manufacturing overhead. Tracking these layered costs accurately usually requires an integrated manufacturing system rather than standalone finance software.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What is the difference between COGS and Operating Expenses (OpEx)?<\/strong><\/summary>\n<p>COGS includes all direct costs tied to producing or acquiring the goods you sell, such as raw materials and direct factory labor. Operating Expenses (OpEx) are the indirect, day-to-day costs of running the business, like office rent, marketing, and administrative salaries. Misclassifying these two is a common error that distorts gross profit margins and impacts tax deductions.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>How can businesses effectively reduce their Cost of Goods Sold?<\/strong><\/summary>\n<p>Businesses can lower COGS without compromising product quality by renegotiating supplier contracts, minimizing warehouse waste, and optimizing inventory levels to prevent overstocking. Additionally, upgrading to an integrated inventory management system allows businesses to track cost fluctuations in real time and identify operational inefficiencies before they impact the bottom line.<\/p>\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 calculating COGS manually or with basic accounting software often inaccurate?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Basic accounting tools usually don't connect directly with warehouse data. This forces businesses to use manual data entry or spreadsheets, which often leads to mistakes in stock value and hidden profit losses. For companies with a lot of sales, these delays make it harder to get an accurate picture of their finances on time\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Which inventory valuation methods are legally permitted in Malaysia?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Under the Malaysian Financial Reporting Standards (MFRS), businesses must use either the First-In, First-Out (FIFO) or the Weighted Average Cost (WAC) method to calculate COGS. The Last-In, First-Out (LIFO) method is strictly prohibited. Modern ERP systems automatically apply these compliant methods across all transactions, reducing the risk of audit penalties.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How is COGS calculated differently for manufacturing businesses?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Unlike retailers who simply track the purchase price of finished goods, manufacturers must calculate the Cost of Goods Manufactured (COGM) first. This includes raw materials, Work-in-Progress (WIP), direct labor, and manufacturing overhead. Tracking these layered costs accurately usually requires an integrated manufacturing system rather than standalone finance software.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What is the difference between COGS and Operating Expenses (OpEx)?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"COGS includes all direct costs tied to producing or acquiring the goods you sell, such as raw materials and direct factory labor. Operating Expenses (OpEx) are the indirect, day-to-day costs of running the business, like office rent, marketing, and administrative salaries. Misclassifying these two is a common error that distorts gross profit margins and impacts tax deductions.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How can businesses effectively reduce their Cost of Goods Sold?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Businesses can lower COGS without compromising product quality by renegotiating supplier contracts, minimizing warehouse waste, and optimizing inventory levels to prevent overstocking. Additionally, upgrading to an integrated inventory management system allows businesses to track cost fluctuations in real time and identify operational inefficiencies before they impact the bottom line.\"\n    }\n  }]\n}\n<\/script><\/p>\n<\/details>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Every business that sells a physical product whether a small retail shop in Kuala Lumpur or a large manufacturing firm in Johor Bahru needs to understand one fundamental accounting figure that sits right at the top of the income statement: the cost of goods sold. This single metric tells you, in precise financial terms, how [&hellip;]<\/p>\n","protected":false},"author":44,"featured_media":17041,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[66],"tags":[],"class_list":{"0":"post-17015","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>Cost Of Goods Sold (COGS) in Malaysia : The Complete Guide<\/title>\n<meta name=\"description\" content=\"Definition,Benefits, and how to calculate with COGS Formula based on your business types, Including : Retail and Manufacturing\" \/>\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\/cogs-guide\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cost Of Goods Sold (COGS) in Malaysia : The Complete Guide for Your Business\" \/>\n<meta property=\"og:description\" content=\"Definition,Benefits, and how to calculate with COGS Formula based on your business types, Including : Retail and Manufacturing\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Malaysia\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-03T09:02:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-03T09:41:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Cost-of-Goods-Sold.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\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=\"16 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\/cogs-guide\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/\"},\"author\":{\"name\":\"Nurul Ain\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/d9f06e18a636ec61b2a0351cd68b7be4\"},\"headline\":\"Cost Of Goods Sold (COGS) in Malaysia : The Complete Guide for Your Business\",\"datePublished\":\"2026-03-03T09:02:50+00:00\",\"dateModified\":\"2026-03-03T09:41:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/\"},\"wordCount\":3371,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Cost-of-Goods-Sold.webp\",\"articleSection\":[\"Inventory\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/\",\"name\":\"Cost Of Goods Sold (COGS) in Malaysia : The Complete Guide\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Cost-of-Goods-Sold.webp\",\"datePublished\":\"2026-03-03T09:02:50+00:00\",\"dateModified\":\"2026-03-03T09:41:17+00:00\",\"description\":\"Definition,Benefits, and how to calculate with COGS Formula based on your business types, Including : Retail and Manufacturing\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Cost-of-Goods-Sold.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Cost-of-Goods-Sold.webp\",\"width\":800,\"height\":400,\"caption\":\"Cost of Goods Sold\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/my\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cost Of Goods Sold (COGS) in Malaysia : The Complete Guide for Your Business\"}]},{\"@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":"Cost Of Goods Sold (COGS) in Malaysia : The Complete Guide","description":"Definition,Benefits, and how to calculate with COGS Formula based on your business types, Including : Retail and Manufacturing","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\/cogs-guide\/","og_locale":"en_US","og_type":"article","og_title":"Cost Of Goods Sold (COGS) in Malaysia : The Complete Guide for Your Business","og_description":"Definition,Benefits, and how to calculate with COGS Formula based on your business types, Including : Retail and Manufacturing","og_url":"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/","og_site_name":"HashMicro Malaysia","article_published_time":"2026-03-03T09:02:50+00:00","article_modified_time":"2026-03-03T09:41:17+00:00","og_image":[{"width":800,"height":400,"url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Cost-of-Goods-Sold.webp","type":"image\/webp"}],"author":"Nurul Ain","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Nurul Ain","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/"},"author":{"name":"Nurul Ain","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/d9f06e18a636ec61b2a0351cd68b7be4"},"headline":"Cost Of Goods Sold (COGS) in Malaysia : The Complete Guide for Your Business","datePublished":"2026-03-03T09:02:50+00:00","dateModified":"2026-03-03T09:41:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/"},"wordCount":3371,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Cost-of-Goods-Sold.webp","articleSection":["Inventory"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/","name":"Cost Of Goods Sold (COGS) in Malaysia : The Complete Guide","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Cost-of-Goods-Sold.webp","datePublished":"2026-03-03T09:02:50+00:00","dateModified":"2026-03-03T09:41:17+00:00","description":"Definition,Benefits, and how to calculate with COGS Formula based on your business types, Including : Retail and Manufacturing","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#primaryimage","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Cost-of-Goods-Sold.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/03\/Cost-of-Goods-Sold.webp","width":800,"height":400,"caption":"Cost of Goods Sold"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/my\/blog\/cogs-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/my\/blog\/"},{"@type":"ListItem","position":2,"name":"Cost Of Goods Sold (COGS) in Malaysia : The Complete Guide for Your Business"}]},{"@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\/17015","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=17015"}],"version-history":[{"count":6,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/17015\/revisions"}],"predecessor-version":[{"id":17042,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/17015\/revisions\/17042"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media\/17041"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media?parent=17015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/categories?post=17015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/tags?post=17015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}