{"id":20013,"date":"2026-06-30T08:51:34","date_gmt":"2026-06-30T08:51:34","guid":{"rendered":"https:\/\/www.hashmicro.com\/my\/blog\/?p=20013"},"modified":"2026-06-30T08:51:34","modified_gmt":"2026-06-30T08:51:34","slug":"value-stream-mapping","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/","title":{"rendered":"What is Value Stream Mapping? Steps, Examples &#038; VSM Guide"},"content":{"rendered":"<p>Many manufacturing companies know their production process is slowing down, but they cannot always see where the real problem starts. Delays may come from waiting time, excess inventory, repeated approvals, machine bottlenecks, or poor coordination between production, warehouse, and procurement teams.<\/p>\n<p>According to <a href=\"https:\/\/www.lean.org\/lexicon-terms\/value-stream-mapping\/\" target=\"_blank\" rel=\"noopener\">the Lean Enterprise Institute&#8217;s<\/a> overview of value stream mapping, VSM helps teams visualise material and information flow from order to delivery, identifying where waiting time, inventory, and bottlenecks consume time without adding value.<\/p>\n<p>This guide explains what VSM means, how to use value stream mapping symbols, how to build a practical value stream mapping template, and how to read value stream mapping examples in a manufacturing context. It also covers the steps, common mistakes, before-after examples, and how <a href=\"https:\/\/www.hashmicro.com\/my\/hash-manufacturing-software?medium=moneysite-banner&amp;p=20013&amp;preview=true\">manufacturing software can help teams<\/a> maintain better process visibility before making improvements.<\/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: #8a0e19; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><a href=\"#is\">VSM helps Malaysian<\/a> manufacturers see material flow, information flow, waste, and bottlenecks clearly before making process improvements.<\/li>\n<li aria-level=\"1\">Create a <a href=\"#Map\">value stream map<\/a> by observing one process, mapping its current and future state, then turning the findings into a kaizen plan.<\/li>\n<li aria-level=\"1\"><a href=\"#VSM\">Manual VSM shows waste and bottlenecks<\/a>, while digital systems help monitor production improvements in real time.<\/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<p>Automation helps teams track production, inventory, and quality after the value stream is mapped. See the banner below for the workflow.<\/p>\n<p><span data-sheets-root=\"1\"><a href=\"https:\/\/www.hashmicro.com\/my\/hash-manufacturing-software?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/2-CTA-BLOG-new-design-14-scaled-1.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/2-CTA-BLOG-new-design-14-scaled-1.webp\" data-mobile-src=\"\" alt=\"HashManufacturingAutomation\" 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 id=\"is\"><\/span><\/span><\/p>\n<h2><strong>What is Value Stream Mapping (VSM)?<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-20029 size-full\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/What-is-Value-Stream-Mapping-VSM.webp\" alt=\"What is Value Stream Mapping VSM\" width=\"800\" height=\"450\" \/><\/p>\n<p>Value stream mapping (VSM) is a lean method used to visualise how materials and information move through a production process, from supplier to customer. A value stream map helps teams identify where waste occurs, where bottlenecks slow production, and which steps add no real value to the output.<\/p>\n<p>Rooted in the Toyota Production System, VSM is widely used as a <a href=\"https:\/\/www.hashmicro.com\/\/my\/blog\/lean-manufacturing-plastic-injection\/\">lean production approach<\/a> to analyse lead time, cycle time, inventory buildup, and information flow across departments. For Malaysian manufacturers in sectors such as F&amp;B, E&amp;E, and logistics, VSM provides a structured way to map current production conditions before making targeted process improvements.<\/p>\n<h2><strong>The 7 Wastes of Value Stream Mapping (Muda)<\/strong><\/h2>\n<p>In value stream mapping, Muda refers to waste that slows production without adding value to the final product. The table below shows the seven common wastes, how they appear in Malaysian manufacturing, and how VSM helps teams detect them.<\/p>\n<p><style>\r\n  \/* Outer container: only handles horizontal scroll *\/\r\n  #custom-shortcode-scrollable-table {\r\n    width: 100%;\r\n    overflow-x: auto;\r\n  }\r\n  \/* Inner container: fixes vertical scroll visibility *\/\r\n  #custom-shortcode-scrollable-table .table-wrapper {\r\n    display: inline-block;\r\n    width: 130%;\r\n    vertical-align: top;\r\n  }\r\n  #custom-shortcode-scrollable-table table {\r\n    border-collapse: collapse;\r\n    table-layout: fixed;\r\n    width: 100%;\r\n  }\r\n  #custom-shortcode-scrollable-table thead {\r\n    background-color: #af2828;\r\n    color: #ffffff;\r\n    position: sticky;\r\n    top: 0;\r\n    z-index: 2;\r\n  }\r\n  #custom-shortcode-scrollable-table th {\r\n    font-size: 16px;\r\n  }\r\n  #custom-shortcode-scrollable-table td {\r\n    font-size: 14px;\r\n  }\r\n  #custom-shortcode-scrollable-table th:first-child,\r\n  #custom-shortcode-scrollable-table td:first-child {\r\n    width: 140px;\r\n  }\r\n  \r\n  \/* Styling khusus untuk type=\"check\" *\/\r\n    \r\n  \/* Scrollable tbody with visible vertical scrollbar *\/\r\n  #custom-shortcode-scrollable-table tbody {\r\n    display: block;\r\n    overflow-y: auto;\r\n    overflow-x: hidden;\r\n    width: 100%;\r\n    \/* max-height will be set dynamically *\/\r\n  }\r\n  #custom-shortcode-scrollable-table thead,\r\n  #custom-shortcode-scrollable-table tbody tr {\r\n    display: table;\r\n    width: 100%;\r\n    table-layout: fixed;\r\n  }\r\n  \/* Scrollbar styles for both x and y *\/\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n    width: 8px;\r\n    height: 8px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-track,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-track {\r\n    background: #f1f1f1;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb {\r\n    background: #af2828;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb:hover,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb:hover {\r\n    background: #8a1f1f;\r\n  }\r\n  @media (max-width: 767px) {\r\n    #custom-shortcode-scrollable-table th {\r\n      font-size: 12px;\r\n    }\r\n    #custom-shortcode-scrollable-table td {\r\n      font-size: 10px;\r\n    }\r\n    #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n    #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n      width: 6px;\r\n      height: 6px;\r\n    }\r\n      }\r\n<\/style>\r\n<div id=\"custom-shortcode-scrollable-table\">\r\n  <div class=\"table-wrapper\">\r\n    <table>\r\n      <thead>\r\n        <tr>\r\n                      <th>Waste<\/th>\r\n                      <th>Definition<\/th>\r\n                      <th>Malaysia Manufacturing Example<\/th>\r\n                      <th>How VSM Reveals It<\/th>\r\n                  <\/tr>\r\n      <\/thead>\r\n      <tbody>\r\n                            <tr>\r\n                          <td>Overproduction<\/td>\r\n                          <td>Producing more than what is needed, before it is needed.<\/td>\r\n                          <td>An E&amp;E factory in Penang produces components ahead of confirmed orders, creating surplus that sits in the buffer zone.<\/td>\r\n                          <td>VSM shows push-based scheduling where output exceeds downstream demand.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Waiting<\/td>\r\n                          <td>Idle time when materials, operators, or machines are not moving.<\/td>\r\n                          <td>Finished goods in an F&amp;B facility wait several hours for quality approval before packing can begin.<\/td>\r\n                          <td>VSM highlights time gaps between process steps where flow stops completely.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Transport<\/td>\r\n                          <td>Unnecessary movement of materials or products between locations.<\/td>\r\n                          <td>Raw materials in a Selangor automotive parts plant are moved across three separate storage areas before reaching the production line.<\/td>\r\n                          <td>VSM traces material flow paths and flags unnecessary travel distance between steps.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Overprocessing<\/td>\r\n                          <td>Doing more work or using more resources than the product requires.<\/td>\r\n                          <td>A packaging line applies two layers of wrapping when one meets the specification.<\/td>\r\n                          <td>VSM maps each process step and helps teams question whether each action adds value.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Inventory<\/td>\r\n                          <td>Excess stock held at any stage of production beyond immediate need.<\/td>\r\n                          <td>A food manufacturer holds three weeks of raw ingredients due to poor demand forecasting and manual reorder processes.<\/td>\r\n                          <td>VSM shows inventory triangles between steps where stock accumulates beyond required levels.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Motion<\/td>\r\n                          <td>Unnecessary movement of people or equipment during a task.<\/td>\r\n                          <td>Assembly workers in a Johor electronics factory walk between workstations repeatedly to retrieve tools stored away from the line.<\/td>\r\n                          <td>VSM captures operator movement and identifies layout inefficiencies that slow cycle time.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Defects<\/td>\r\n                          <td>Products that fail quality checks and require rework or disposal.<\/td>\r\n                          <td>A garment manufacturer in Kuala Lumpur rejects a batch of items due to stitching errors caught only at final inspection.<\/td>\r\n                          <td>VSM reveals where defects occur in the flow and how rework loops extend overall lead time.<\/td>\r\n                      <\/tr>\r\n              <\/tbody>\r\n    <\/table>\r\n  <\/div>\r\n<\/div>\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n  const tbody = document.querySelector(\"#custom-shortcode-scrollable-table tbody\");\r\n  if (!tbody) return;\r\n  const rows = tbody.querySelectorAll(\"tr\");\r\n  if (rows.length > 10) {\r\n    let totalHeight = 0;\r\n    for (let i = 0; i < 10 && i < rows.length; i++) {\r\n      totalHeight += rows[i].offsetHeight;\r\n    }\r\n    tbody.style.maxHeight = totalHeight + \"px\";\r\n  }\r\n});\r\n<\/script><span id=\"Map\"><\/span><\/p>\n<h2><strong>How to Create a Value Stream Map 8 Steps<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-20032\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/How-to-Create-a-Value-Stream-Map-\u2014-8-Steps.webp\" alt=\"How to Create a Value Stream Map \u2014 8 Steps\" width=\"800\" height=\"533\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/How-to-Create-a-Value-Stream-Map-\u2014-8-Steps.webp 800w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/How-to-Create-a-Value-Stream-Map-\u2014-8-Steps-300x200.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/How-to-Create-a-Value-Stream-Map-\u2014-8-Steps-768x512.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/How-to-Create-a-Value-Stream-Map-\u2014-8-Steps-630x420.webp 630w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/How-to-Create-a-Value-Stream-Map-\u2014-8-Steps-150x100.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/How-to-Create-a-Value-Stream-Map-\u2014-8-Steps-696x464.webp 696w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>To create a value stream map, choose one production flow, observe the real process, then map the current and future state to identify waste, bottlenecks, lead time, cycle time, inventory, and information flow.<\/p>\n<h3><strong>Step 1: Choose the Product or Process Family<\/strong><\/h3>\n<p>Do not start VSM by mapping the whole factory at once. Choose one product family or process group with similar materials, routing, machines, and customer demand so the map stays focused and useful.<\/p>\n<h3><strong>Step 2: Form a Cross-Functional Team<\/strong><\/h3>\n<p>A value stream map should involve people who understand the full production flow. Include production, warehouse, procurement, quality, planning, and operations teams so each handoff, delay, and data gap can be reviewed from the real process.<\/p>\n<h3><strong>Step 3: Conduct a Gemba Walk<\/strong><\/h3>\n<p>A Gemba walk means observing the actual shop floor instead of relying only on reports or spreadsheets. Teams should watch how materials move, where operators wait, how machines are used, and where inventory builds up between process steps.<\/p>\n<h3><strong>Step 4: Map the Current State<\/strong><\/h3>\n<p>The current state map shows how the process works today. Include cycle time, changeover time, inventory levels, waiting time, defect rate, and information flow so the team can see both physical movement and <a href=\"https:\/\/www.hashmicro.com\/\/my\/blog\/best-manufacturing-ppic-production-planning-software\/\">production planning communication<\/a> in one view.<\/p>\n<h3><strong>Step 5: Identify Waste and Bottlenecks<\/strong><\/h3>\n<p>After the current state is mapped, review where the seven wastes appear: overproduction, waiting, transport, overprocessing, inventory, motion, and defects. Bottlenecks usually show up where work piles up, cycle time exceeds demand, or one process slows the entire production flow.<\/p>\n<h3><strong>Step 6: Calculate Takt Time, Cycle Time, and Lead Time<\/strong><\/h3>\n<p>Takt time shows how fast production must run to meet customer demand. Cycle time shows how long one process takes to complete its work, while lead time shows the total time from start to finish, including waiting and inventory delays.<\/p>\n<h3><strong>Step 7: Design the Future State Map<\/strong><\/h3>\n<p>The future state map shows how the process should work after improvement. Use lean guidelines such as takt time, continuous flow, supermarket, pacemaker process, heijunka, and <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/inventory-control\/\">inventory control methods<\/a> to reduce waste and create a smoother production flow.<\/p>\n<h3><strong>Step 8: Create an Improvement Plan<\/strong><\/h3>\n<p>Turn the future state map into a kaizen plan with clear actions, owners, deadlines, and KPIs. Each improvement should target a specific issue, such as reducing waiting time, lowering inventory buildup, improving quality checks, or shortening lead time.<\/p>\n<h2><strong>The 6 Lean Value Stream Design Guidelines<\/strong><\/h2>\n<p>Based on the Lean Enterprise Institute\u2019s explanation of VSM as a way to map material and information flow from current state to future state, these guidelines help teams design a smoother production flow without overcomplicating the process.<\/p>\n<style>\r\n  \/* Outer container: only handles horizontal scroll *\/\r\n  #custom-shortcode-scrollable-table {\r\n    width: 100%;\r\n    overflow-x: auto;\r\n  }\r\n  \/* Inner container: fixes vertical scroll visibility *\/\r\n  #custom-shortcode-scrollable-table .table-wrapper {\r\n    display: inline-block;\r\n    width: 130%;\r\n    vertical-align: top;\r\n  }\r\n  #custom-shortcode-scrollable-table table {\r\n    border-collapse: collapse;\r\n    table-layout: fixed;\r\n    width: 100%;\r\n  }\r\n  #custom-shortcode-scrollable-table thead {\r\n    background-color: #af2828;\r\n    color: #ffffff;\r\n    position: sticky;\r\n    top: 0;\r\n    z-index: 2;\r\n  }\r\n  #custom-shortcode-scrollable-table th {\r\n    font-size: 16px;\r\n  }\r\n  #custom-shortcode-scrollable-table td {\r\n    font-size: 14px;\r\n  }\r\n  #custom-shortcode-scrollable-table th:first-child,\r\n  #custom-shortcode-scrollable-table td:first-child {\r\n    width: 140px;\r\n  }\r\n  \r\n  \/* Styling khusus untuk type=\"check\" *\/\r\n    \r\n  \/* Scrollable tbody with visible vertical scrollbar *\/\r\n  #custom-shortcode-scrollable-table tbody {\r\n    display: block;\r\n    overflow-y: auto;\r\n    overflow-x: hidden;\r\n    width: 100%;\r\n    \/* max-height will be set dynamically *\/\r\n  }\r\n  #custom-shortcode-scrollable-table thead,\r\n  #custom-shortcode-scrollable-table tbody tr {\r\n    display: table;\r\n    width: 100%;\r\n    table-layout: fixed;\r\n  }\r\n  \/* Scrollbar styles for both x and y *\/\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n    width: 8px;\r\n    height: 8px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-track,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-track {\r\n    background: #f1f1f1;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb {\r\n    background: #af2828;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb:hover,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb:hover {\r\n    background: #8a1f1f;\r\n  }\r\n  @media (max-width: 767px) {\r\n    #custom-shortcode-scrollable-table th {\r\n      font-size: 12px;\r\n    }\r\n    #custom-shortcode-scrollable-table td {\r\n      font-size: 10px;\r\n    }\r\n    #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n    #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n      width: 6px;\r\n      height: 6px;\r\n    }\r\n      }\r\n<\/style>\r\n<div id=\"custom-shortcode-scrollable-table\">\r\n  <div class=\"table-wrapper\">\r\n    <table>\r\n      <thead>\r\n        <tr>\r\n                      <th>Guideline<\/th>\r\n                      <th>In Plain Language<\/th>\r\n                      <th>Metric It Improves<\/th>\r\n                  <\/tr>\r\n      <\/thead>\r\n      <tbody>\r\n                            <tr>\r\n                          <td>Produce to takt time<\/td>\r\n                          <td>Match production speed with actual customer demand instead of producing too fast or too slow.<\/td>\r\n                          <td>Demand alignment, output stability, schedule accuracy<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Continuous flow<\/td>\r\n                          <td>Move products from one process to the next with minimal waiting, batching, or interruption.<\/td>\r\n                          <td>Cycle time, waiting time, work-in-progress inventory<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Supermarket pull<\/td>\r\n                          <td>Use controlled inventory points so upstream processes only replenish what downstream teams consume.<\/td>\r\n                          <td>Inventory level, replenishment accuracy, stock availability<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Pacemaker process<\/td>\r\n                          <td>Set one key process as the main scheduling point to control the rhythm of production.<\/td>\r\n                          <td>Production control, throughput, schedule stability<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Heijunka<\/td>\r\n                          <td>Level the production mix and volume to reduce uneven workloads and sudden production spikes.<\/td>\r\n                          <td>Workload balance, changeover pressure, planning consistency<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Initial pull<\/td>\r\n                          <td>Release work based on real demand signals instead of pushing jobs into production too early.<\/td>\r\n                          <td>Queue time, WIP buildup, lead time<\/td>\r\n                      <\/tr>\r\n              <\/tbody>\r\n    <\/table>\r\n  <\/div>\r\n<\/div>\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n  const tbody = document.querySelector(\"#custom-shortcode-scrollable-table tbody\");\r\n  if (!tbody) return;\r\n  const rows = tbody.querySelectorAll(\"tr\");\r\n  if (rows.length > 10) {\r\n    let totalHeight = 0;\r\n    for (let i = 0; i < 10 && i < rows.length; i++) {\r\n      totalHeight += rows[i].offsetHeight;\r\n    }\r\n    tbody.style.maxHeight = totalHeight + \"px\";\r\n  }\r\n});\r\n<\/script>\n<h2><strong>Value Stream Mapping Examples in Malaysia Manufacturing<\/strong><\/h2>\n<p>The examples below are hypothetical but realistic scenarios to show how VSM can be used in Malaysian manufacturing. They should be treated as practical illustrations, not official case studies or performance claims.<\/p>\n<h3><strong>Example 1: F&amp;B Manufacturer in Selangor<\/strong><\/h3>\n<p>An F&amp;B manufacturer in Selangor can use VSM to identify delays in raw material receiving, QC, mixing, packing, and finished goods storage, including waiting time, excess WIP, and late-stage rework.<\/p>\n<style>\r\n  \/* Outer container: only handles horizontal scroll *\/\r\n  #custom-shortcode-scrollable-table {\r\n    width: 100%;\r\n    overflow-x: auto;\r\n  }\r\n  \/* Inner container: fixes vertical scroll visibility *\/\r\n  #custom-shortcode-scrollable-table .table-wrapper {\r\n    display: inline-block;\r\n    width: 130%;\r\n    vertical-align: top;\r\n  }\r\n  #custom-shortcode-scrollable-table table {\r\n    border-collapse: collapse;\r\n    table-layout: fixed;\r\n    width: 100%;\r\n  }\r\n  #custom-shortcode-scrollable-table thead {\r\n    background-color: #af2828;\r\n    color: #ffffff;\r\n    position: sticky;\r\n    top: 0;\r\n    z-index: 2;\r\n  }\r\n  #custom-shortcode-scrollable-table th {\r\n    font-size: 16px;\r\n  }\r\n  #custom-shortcode-scrollable-table td {\r\n    font-size: 14px;\r\n  }\r\n  #custom-shortcode-scrollable-table th:first-child,\r\n  #custom-shortcode-scrollable-table td:first-child {\r\n    width: 140px;\r\n  }\r\n  \r\n  \/* Styling khusus untuk type=\"check\" *\/\r\n    \r\n  \/* Scrollable tbody with visible vertical scrollbar *\/\r\n  #custom-shortcode-scrollable-table tbody {\r\n    display: block;\r\n    overflow-y: auto;\r\n    overflow-x: hidden;\r\n    width: 100%;\r\n    \/* max-height will be set dynamically *\/\r\n  }\r\n  #custom-shortcode-scrollable-table thead,\r\n  #custom-shortcode-scrollable-table tbody tr {\r\n    display: table;\r\n    width: 100%;\r\n    table-layout: fixed;\r\n  }\r\n  \/* Scrollbar styles for both x and y *\/\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n    width: 8px;\r\n    height: 8px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-track,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-track {\r\n    background: #f1f1f1;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb {\r\n    background: #af2828;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb:hover,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb:hover {\r\n    background: #8a1f1f;\r\n  }\r\n  @media (max-width: 767px) {\r\n    #custom-shortcode-scrollable-table th {\r\n      font-size: 12px;\r\n    }\r\n    #custom-shortcode-scrollable-table td {\r\n      font-size: 10px;\r\n    }\r\n    #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n    #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n      width: 6px;\r\n      height: 6px;\r\n    }\r\n      }\r\n<\/style>\r\n<div id=\"custom-shortcode-scrollable-table\">\r\n  <div class=\"table-wrapper\">\r\n    <table>\r\n      <thead>\r\n        <tr>\r\n                      <th>Metric<\/th>\r\n                      <th>Before VSM<\/th>\r\n                      <th>After VSM<\/th>\r\n                      <th>Improvement<\/th>\r\n                  <\/tr>\r\n      <\/thead>\r\n      <tbody>\r\n                            <tr>\r\n                          <td>Lead time<\/td>\r\n                          <td>Production flow takes several days from raw material release to finished goods storage.<\/td>\r\n                          <td>The flow becomes shorter after reducing waiting points between QC, mixing, and packing.<\/td>\r\n                          <td>Faster end-to-end production movement.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Waiting time<\/td>\r\n                          <td>Materials and semi-finished goods wait too long before quality approval or packing.<\/td>\r\n                          <td>QC checks and packing schedules are better aligned with production output.<\/td>\r\n                          <td>Less idle time between process steps.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>WIP inventory<\/td>\r\n                          <td>Semi-finished goods build up between mixing and packing.<\/td>\r\n                          <td>WIP is controlled with clearer batch movement and replenishment rules.<\/td>\r\n                          <td>Lower inventory buildup on the shop floor.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Defect\/rework<\/td>\r\n                          <td>Defects are often detected late, causing rework near the final stage.<\/td>\r\n                          <td>Quality checks are placed earlier in the flow.<\/td>\r\n                          <td>Fewer late-stage corrections and smoother packing flow.<\/td>\r\n                      <\/tr>\r\n              <\/tbody>\r\n    <\/table>\r\n  <\/div>\r\n<\/div>\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n  const tbody = document.querySelector(\"#custom-shortcode-scrollable-table tbody\");\r\n  if (!tbody) return;\r\n  const rows = tbody.querySelectorAll(\"tr\");\r\n  if (rows.length > 10) {\r\n    let totalHeight = 0;\r\n    for (let i = 0; i < 10 && i < rows.length; i++) {\r\n      totalHeight += rows[i].offsetHeight;\r\n    }\r\n    tbody.style.maxHeight = totalHeight + \"px\";\r\n  }\r\n});\r\n<\/script>\n<h3><strong>Example 2: E&amp;E Assembly Supplier in Penang<\/strong><\/h3>\n<p>An E&amp;E assembly supplier in Penang can use VSM to spot waiting waste, large batch delays, testing bottlenecks, and excess inventory buffers before assembly and inspection.<\/p>\n<style>\r\n  \/* Outer container: only handles horizontal scroll *\/\r\n  #custom-shortcode-scrollable-table {\r\n    width: 100%;\r\n    overflow-x: auto;\r\n  }\r\n  \/* Inner container: fixes vertical scroll visibility *\/\r\n  #custom-shortcode-scrollable-table .table-wrapper {\r\n    display: inline-block;\r\n    width: 130%;\r\n    vertical-align: top;\r\n  }\r\n  #custom-shortcode-scrollable-table table {\r\n    border-collapse: collapse;\r\n    table-layout: fixed;\r\n    width: 100%;\r\n  }\r\n  #custom-shortcode-scrollable-table thead {\r\n    background-color: #af2828;\r\n    color: #ffffff;\r\n    position: sticky;\r\n    top: 0;\r\n    z-index: 2;\r\n  }\r\n  #custom-shortcode-scrollable-table th {\r\n    font-size: 16px;\r\n  }\r\n  #custom-shortcode-scrollable-table td {\r\n    font-size: 14px;\r\n  }\r\n  #custom-shortcode-scrollable-table th:first-child,\r\n  #custom-shortcode-scrollable-table td:first-child {\r\n    width: 140px;\r\n  }\r\n  \r\n  \/* Styling khusus untuk type=\"check\" *\/\r\n    \r\n  \/* Scrollable tbody with visible vertical scrollbar *\/\r\n  #custom-shortcode-scrollable-table tbody {\r\n    display: block;\r\n    overflow-y: auto;\r\n    overflow-x: hidden;\r\n    width: 100%;\r\n    \/* max-height will be set dynamically *\/\r\n  }\r\n  #custom-shortcode-scrollable-table thead,\r\n  #custom-shortcode-scrollable-table tbody tr {\r\n    display: table;\r\n    width: 100%;\r\n    table-layout: fixed;\r\n  }\r\n  \/* Scrollbar styles for both x and y *\/\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n    width: 8px;\r\n    height: 8px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-track,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-track {\r\n    background: #f1f1f1;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb {\r\n    background: #af2828;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb:hover,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb:hover {\r\n    background: #8a1f1f;\r\n  }\r\n  @media (max-width: 767px) {\r\n    #custom-shortcode-scrollable-table th {\r\n      font-size: 12px;\r\n    }\r\n    #custom-shortcode-scrollable-table td {\r\n      font-size: 10px;\r\n    }\r\n    #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n    #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n      width: 6px;\r\n      height: 6px;\r\n    }\r\n      }\r\n<\/style>\r\n<div id=\"custom-shortcode-scrollable-table\">\r\n  <div class=\"table-wrapper\">\r\n    <table>\r\n      <thead>\r\n        <tr>\r\n                      <th>Metric<\/th>\r\n                      <th>Before VSM<\/th>\r\n                      <th>After VSM<\/th>\r\n                      <th>Improvement<\/th>\r\n                  <\/tr>\r\n      <\/thead>\r\n      <tbody>\r\n                            <tr>\r\n                          <td>Waiting waste<\/td>\r\n                          <td>Components wait between assembly, inspection, and testing due to uneven scheduling.<\/td>\r\n                          <td>Work is released based on clearer demand signals and process capacity.<\/td>\r\n                          <td>Less waiting between assembly and testing.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Batch size<\/td>\r\n                          <td>Large batches move through the line, creating queues before inspection.<\/td>\r\n                          <td>Smaller, more frequent batches move through the process.<\/td>\r\n                          <td>Smoother flow and faster issue detection.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Bottleneck<\/td>\r\n                          <td>Testing becomes the slowest point and blocks finished output.<\/td>\r\n                          <td>The testing process is treated as the pacemaker for production planning.<\/td>\r\n                          <td>Better control over throughput and scheduling.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Inventory buffer<\/td>\r\n                          <td>Extra inventory is held before testing to prevent line stoppages.<\/td>\r\n                          <td>Buffer levels are controlled using supermarket pull logic.<\/td>\r\n                          <td>Lower excess inventory without losing process stability.<\/td>\r\n                      <\/tr>\r\n              <\/tbody>\r\n    <\/table>\r\n  <\/div>\r\n<\/div>\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n  const tbody = document.querySelector(\"#custom-shortcode-scrollable-table tbody\");\r\n  if (!tbody) return;\r\n  const rows = tbody.querySelectorAll(\"tr\");\r\n  if (rows.length > 10) {\r\n    let totalHeight = 0;\r\n    for (let i = 0; i < 10 && i < rows.length; i++) {\r\n      totalHeight += rows[i].offsetHeight;\r\n    }\r\n    tbody.style.maxHeight = totalHeight + \"px\";\r\n  }\r\n});\r\n<\/script>\n<h2><strong>Value Stream Mapping Symbols Quick Reference<\/strong><\/h2>\n<p>VSM symbols make production flow easier to read by showing process steps, material movement, information flow, inventory, and improvement points in one table.<\/p>\n<style>\r\n  \/* Outer container: only handles horizontal scroll *\/\r\n  #custom-shortcode-scrollable-table {\r\n    width: 100%;\r\n    overflow-x: auto;\r\n  }\r\n  \/* Inner container: fixes vertical scroll visibility *\/\r\n  #custom-shortcode-scrollable-table .table-wrapper {\r\n    display: inline-block;\r\n    width: 130%;\r\n    vertical-align: top;\r\n  }\r\n  #custom-shortcode-scrollable-table table {\r\n    border-collapse: collapse;\r\n    table-layout: fixed;\r\n    width: 100%;\r\n  }\r\n  #custom-shortcode-scrollable-table thead {\r\n    background-color: #af2828;\r\n    color: #ffffff;\r\n    position: sticky;\r\n    top: 0;\r\n    z-index: 2;\r\n  }\r\n  #custom-shortcode-scrollable-table th {\r\n    font-size: 16px;\r\n  }\r\n  #custom-shortcode-scrollable-table td {\r\n    font-size: 14px;\r\n  }\r\n  #custom-shortcode-scrollable-table th:first-child,\r\n  #custom-shortcode-scrollable-table td:first-child {\r\n    width: 140px;\r\n  }\r\n  \r\n  \/* Styling khusus untuk type=\"check\" *\/\r\n    \r\n  \/* Scrollable tbody with visible vertical scrollbar *\/\r\n  #custom-shortcode-scrollable-table tbody {\r\n    display: block;\r\n    overflow-y: auto;\r\n    overflow-x: hidden;\r\n    width: 100%;\r\n    \/* max-height will be set dynamically *\/\r\n  }\r\n  #custom-shortcode-scrollable-table thead,\r\n  #custom-shortcode-scrollable-table tbody tr {\r\n    display: table;\r\n    width: 100%;\r\n    table-layout: fixed;\r\n  }\r\n  \/* Scrollbar styles for both x and y *\/\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n    width: 8px;\r\n    height: 8px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-track,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-track {\r\n    background: #f1f1f1;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb {\r\n    background: #af2828;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb:hover,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb:hover {\r\n    background: #8a1f1f;\r\n  }\r\n  @media (max-width: 767px) {\r\n    #custom-shortcode-scrollable-table th {\r\n      font-size: 12px;\r\n    }\r\n    #custom-shortcode-scrollable-table td {\r\n      font-size: 10px;\r\n    }\r\n    #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n    #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n      width: 6px;\r\n      height: 6px;\r\n    }\r\n      }\r\n<\/style>\r\n<div id=\"custom-shortcode-scrollable-table\">\r\n  <div class=\"table-wrapper\">\r\n    <table>\r\n      <thead>\r\n        <tr>\r\n                      <th>Category<\/th>\r\n                      <th>Symbol Name<\/th>\r\n                      <th>What It Represents<\/th>\r\n                      <th>When to Use It<\/th>\r\n                  <\/tr>\r\n      <\/thead>\r\n      <tbody>\r\n                            <tr>\r\n                          <td>Process<\/td>\r\n                          <td>Process box<\/td>\r\n                          <td>A production or operational step, such as cutting, mixing, assembly, packing, or inspection.<\/td>\r\n                          <td>Use it to show each main activity in the value stream.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Process Data<\/td>\r\n                          <td>Data box<\/td>\r\n                          <td>Key process information such as cycle time, changeover time, uptime, defect rate, or manpower.<\/td>\r\n                          <td>Place it below a process box to explain how that step performs.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Inventory<\/td>\r\n                          <td>Inventory triangle<\/td>\r\n                          <td>Stock or work-in-progress waiting between process steps.<\/td>\r\n                          <td>Use it when materials, semi-finished goods, or finished goods are stored before moving forward.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Material Flow<\/td>\r\n                          <td>Push arrow<\/td>\r\n                          <td>Materials are moved to the next process without a direct demand signal.<\/td>\r\n                          <td>Use it when production is scheduled or pushed based on forecast, not actual consumption.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Material Flow<\/td>\r\n                          <td>Pull arrow<\/td>\r\n                          <td>Materials move only when the next process or customer needs them.<\/td>\r\n                          <td>Use it to show demand-based movement or pull system logic.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Information Flow<\/td>\r\n                          <td>Information flow<\/td>\r\n                          <td>Communication, schedule, or planning signals between teams or systems.<\/td>\r\n                          <td>Use it to show how production orders, forecasts, or customer demand are shared.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>External Parties<\/td>\r\n                          <td>Supplier \/ customer<\/td>\r\n                          <td>The starting or ending point of the value stream.<\/td>\r\n                          <td>Use it to show where materials come from and where finished goods are delivered.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Improvement<\/td>\r\n                          <td>Kaizen burst<\/td>\r\n                          <td>A problem area or improvement opportunity.<\/td>\r\n                          <td>Use it to mark bottlenecks, waiting time, rework, excess inventory, or process gaps that need action.<\/td>\r\n                      <\/tr>\r\n              <\/tbody>\r\n    <\/table>\r\n  <\/div>\r\n<\/div>\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n  const tbody = document.querySelector(\"#custom-shortcode-scrollable-table tbody\");\r\n  if (!tbody) return;\r\n  const rows = tbody.querySelectorAll(\"tr\");\r\n  if (rows.length > 10) {\r\n    let totalHeight = 0;\r\n    for (let i = 0; i < 10 && i < rows.length; i++) {\r\n      totalHeight += rows[i].offsetHeight;\r\n    }\r\n    tbody.style.maxHeight = totalHeight + \"px\";\r\n  }\r\n});\r\n<\/script>\n<h2><strong>Value Stream Mapping vs Process Mapping<\/strong><\/h2>\n<p>Process mapping shows process steps, while VSM shows end-to-end flow, waste, time, inventory, and cross-department bottlenecks.<\/p>\n<p><style>\r\n  \/* Outer container: only handles horizontal scroll *\/\r\n  #custom-shortcode-scrollable-table {\r\n    width: 100%;\r\n    overflow-x: auto;\r\n  }\r\n  \/* Inner container: fixes vertical scroll visibility *\/\r\n  #custom-shortcode-scrollable-table .table-wrapper {\r\n    display: inline-block;\r\n    width: 130%;\r\n    vertical-align: top;\r\n  }\r\n  #custom-shortcode-scrollable-table table {\r\n    border-collapse: collapse;\r\n    table-layout: fixed;\r\n    width: 100%;\r\n  }\r\n  #custom-shortcode-scrollable-table thead {\r\n    background-color: #af2828;\r\n    color: #ffffff;\r\n    position: sticky;\r\n    top: 0;\r\n    z-index: 2;\r\n  }\r\n  #custom-shortcode-scrollable-table th {\r\n    font-size: 16px;\r\n  }\r\n  #custom-shortcode-scrollable-table td {\r\n    font-size: 14px;\r\n  }\r\n  #custom-shortcode-scrollable-table th:first-child,\r\n  #custom-shortcode-scrollable-table td:first-child {\r\n    width: 140px;\r\n  }\r\n  \r\n  \/* Styling khusus untuk type=\"check\" *\/\r\n    \r\n  \/* Scrollable tbody with visible vertical scrollbar *\/\r\n  #custom-shortcode-scrollable-table tbody {\r\n    display: block;\r\n    overflow-y: auto;\r\n    overflow-x: hidden;\r\n    width: 100%;\r\n    \/* max-height will be set dynamically *\/\r\n  }\r\n  #custom-shortcode-scrollable-table thead,\r\n  #custom-shortcode-scrollable-table tbody tr {\r\n    display: table;\r\n    width: 100%;\r\n    table-layout: fixed;\r\n  }\r\n  \/* Scrollbar styles for both x and y *\/\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n    width: 8px;\r\n    height: 8px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-track,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-track {\r\n    background: #f1f1f1;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb {\r\n    background: #af2828;\r\n    border-radius: 4px;\r\n  }\r\n  #custom-shortcode-scrollable-table::-webkit-scrollbar-thumb:hover,\r\n  #custom-shortcode-scrollable-table tbody::-webkit-scrollbar-thumb:hover {\r\n    background: #8a1f1f;\r\n  }\r\n  @media (max-width: 767px) {\r\n    #custom-shortcode-scrollable-table th {\r\n      font-size: 12px;\r\n    }\r\n    #custom-shortcode-scrollable-table td {\r\n      font-size: 10px;\r\n    }\r\n    #custom-shortcode-scrollable-table::-webkit-scrollbar,\r\n    #custom-shortcode-scrollable-table tbody::-webkit-scrollbar {\r\n      width: 6px;\r\n      height: 6px;\r\n    }\r\n      }\r\n<\/style>\r\n<div id=\"custom-shortcode-scrollable-table\">\r\n  <div class=\"table-wrapper\">\r\n    <table>\r\n      <thead>\r\n        <tr>\r\n                      <th>Criteria<\/th>\r\n                      <th>Value Stream Mapping<\/th>\r\n                      <th>Process Mapping<\/th>\r\n                  <\/tr>\r\n      <\/thead>\r\n      <tbody>\r\n                            <tr>\r\n                          <td>Main focus<\/td>\r\n                          <td>End-to-end value flow, including material flow, information flow, waste, time, and inventory.<\/td>\r\n                          <td>Step-by-step process activities, decisions, and task sequence.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Scope<\/td>\r\n                          <td>Broader, usually covering multiple teams such as production, warehouse, planning, procurement, and quality.<\/td>\r\n                          <td>Narrower, often focused on one department, workflow, or task.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Best used for<\/td>\r\n                          <td>Finding bottlenecks, reducing lead time, improving production flow, and eliminating waste.<\/td>\r\n                          <td>Understanding how a process works and identifying task-level inefficiencies.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Time analysis<\/td>\r\n                          <td>Includes takt time, cycle time, waiting time, and lead time.<\/td>\r\n                          <td>May include time, but usually not as the main focus.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Inventory visibility<\/td>\r\n                          <td>Shows WIP, stock buildup, and inventory between process steps.<\/td>\r\n                          <td>Usually does not show inventory movement in detail.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Waste detection<\/td>\r\n                          <td>Highlights waste such as waiting, overproduction, transport, defects, and excess inventory.<\/td>\r\n                          <td>Helps identify duplicated steps, unclear approvals, or unnecessary handoffs.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Output<\/td>\r\n                          <td>A current state map and future state map for improvement planning.<\/td>\r\n                          <td>A process flowchart or workflow diagram.<\/td>\r\n                      <\/tr>\r\n                            <tr>\r\n                          <td>Manufacturing example<\/td>\r\n                          <td>Used to analyse why finished goods wait too long between production, QC, and packing.<\/td>\r\n                          <td>Used to document how a purchase request moves from submission to approval.<\/td>\r\n                      <\/tr>\r\n              <\/tbody>\r\n    <\/table>\r\n  <\/div>\r\n<\/div>\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n  const tbody = document.querySelector(\"#custom-shortcode-scrollable-table tbody\");\r\n  if (!tbody) return;\r\n  const rows = tbody.querySelectorAll(\"tr\");\r\n  if (rows.length > 10) {\r\n    let totalHeight = 0;\r\n    for (let i = 0; i < 10 && i < rows.length; i++) {\r\n      totalHeight += rows[i].offsetHeight;\r\n    }\r\n    tbody.style.maxHeight = totalHeight + \"px\";\r\n  }\r\n});\r\n<\/script><span id=\"VSM\"><\/span><\/p>\n<h2><strong>From Manual VSM to Digital Manufacturing<\/strong><\/h2>\n<p>Manual value stream mapping is useful for diagnosing waste, bottlenecks, and process gaps, but it does not provide <a href=\"https:\/\/www.hashmicro.com\/\/my\/blog\/what-is-scm-supply-chain-management\/\">end-to-end supply chain visibility<\/a> on an ongoing basis. However, once production starts changing daily, teams need digital systems to monitor whether those improvements are actually working.<\/p>\n<p>This is where digital value stream management becomes more practical. A manufacturing ERP helps teams track cycle time, inventory movement, production schedules, purchase orders, quality issues, and delivery status in real time instead of relying only on manual updates.<\/p>\n<p>For manufacturers, this creates a stronger link between planning and <a href=\"https:\/\/www.hashmicro.com\/\/my\/blog\/manufacturing-operations\/\">manufacturing execution<\/a>. Production teams can see delays earlier, warehouse teams can monitor stock movement, procurement can track material readiness, and managers can review performance data before small issues become larger flow problems.<\/p>\n<h2><strong>Map Your Value Stream Then Automate It<\/strong><\/h2>\n<p>A value stream map helps manufacturers understand where waste, delays, and bottlenecks happen. Once the current state and future state are clear, the next step is keeping those improvements visible in daily operations.<\/p>\n<p>This is where ERP can support long-term process control. By connecting production schedules, inventory movement, purchase orders, quality records, and delivery updates, teams can monitor whether the improved flow is being followed.<\/p>\n<p>For Malaysian manufacturers, VSM provides the direction, while digital systems help maintain the discipline. The goal is not only to redesign the process once, but to make improvement easier to track, manage, and sustain over time.<\/p>\n<h2><strong>Conclusion<\/strong><\/h2>\n<p>Value stream mapping gives manufacturers a clearer way to see where production flow loses time, capacity, and control. Beyond identifying waste, VSM helps teams align around the same operational picture so production, warehouse, procurement, quality, and planning do not work from separate assumptions.<\/p>\n<p>The real value of VSM comes after the map is created. When teams use it to review decisions, ownership, and daily execution, improvement becomes less dependent on guesswork and more connected to actual shop floor conditions.<\/p>\n<p>For businesses that want to maintain these improvements over time, <a href=\"https:\/\/www.hashmicro.com\/my\/free-product-demo\/\">a free demo<\/a> can be used to explore how manufacturing ERP connects production schedules, inventory movement, purchase orders, quality records, and delivery updates in one system.<\/p>\n<h2><strong>FAQ About Value Stream Mapping (VSM)<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>What are the 4 steps of value stream mapping?<\/strong><\/summary>\n<p>The four basic steps are selecting a product family, mapping the current state, designing the future state, and creating a kaizen improvement plan. A gemba walk should support the current state map so the team works from real shop floor conditions.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What are the 7 wastes of value stream mapping?<\/strong><\/summary>\n<p>The seven wastes are overproduction, waiting, transport, overprocessing, inventory, motion, and defects. In VSM, these wastes usually appear as idle time, excess WIP, rework, long movement paths, or delays between process steps.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Is VSM lean or Six Sigma?<\/strong><\/summary>\n<p>VSM is mainly a lean manufacturing tool. It can support Six Sigma projects, but its main purpose is to improve flow, reduce muda, and make waste visible across the value stream.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What is the difference between VSM and process mapping?<\/strong><\/summary>\n<p>Process mapping shows the sequence of steps inside a process. VSM shows the full value flow, including takt time, cycle time, lead time, inventory, information flow, and bottlenecks across departments.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What data do you need before starting a VSM?<\/strong><\/summary>\n<p>You need data such as customer demand, cycle time, changeover time, lead time, inventory levels, defect rate, production schedule, and information flow. Teams should also validate this data through direct shop floor observation.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>How long does it take to create a value stream map?<\/strong><\/summary>\n<p>It depends on the process scope and data quality. A simple product-family map can be drafted in a focused session, but validating the current state and designing the future state usually requires additional review with production, warehouse, quality, and planning teams.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Is value stream mapping useful for Malaysian manufacturers?<\/strong><\/summary>\n<p>Yes, VSM is useful for Malaysian manufacturers that deal with production delays, excess inventory, quality issues, or logistics flow problems. It is especially relevant for F&amp;B manufacturers in Selangor, E&amp;E suppliers in Penang, and logistics-linked operations connected to major hubs such as Port Klang.<\/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\": \"What are the 4 steps of value stream mapping?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"The four basic steps are selecting a product family, mapping the current state, designing the future state, and creating a kaizen improvement plan. A gemba walk should support the current state map so the team works from real shop floor conditions.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What are the 7 wastes of value stream mapping?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"The seven wastes are overproduction, waiting, transport, overprocessing, inventory, motion, and defects. In VSM, these wastes usually appear as idle time, excess WIP, rework, long movement paths, or delays between process steps.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Is VSM lean or Six Sigma?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"VSM is mainly a lean manufacturing tool. It can support Six Sigma projects, but its main purpose is to improve flow, reduce muda, and make waste visible across the value stream.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What is the difference between VSM and process mapping?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Process mapping shows the sequence of steps inside a process. VSM shows the full value flow, including takt time, cycle time, lead time, inventory, information flow, and bottlenecks across departments.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What data do you need before starting a VSM?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"You need data such as customer demand, cycle time, changeover time, lead time, inventory levels, defect rate, production schedule, and information flow. Teams should also validate this data through direct shop floor observation.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How long does it take to create a value stream map?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"It depends on the process scope and data quality. A simple product-family map can be drafted in a focused session, but validating the current state and designing the future state usually requires additional review with production, warehouse, quality, and planning teams.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"Is value stream mapping useful for Malaysian manufacturers?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Yes, VSM is useful for Malaysian manufacturers that deal with production delays, excess inventory, quality issues, or logistics flow problems. It is especially relevant for F&B manufacturers in Selangor, E&E suppliers in Penang, and logistics-linked operations connected to major hubs such as Port Klang.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Many manufacturing companies know their production process is slowing down, but they cannot always see where the real problem starts. Delays may come from waiting time, excess inventory, repeated approvals, machine bottlenecks, or poor coordination between production, warehouse, and procurement teams. According to the Lean Enterprise Institute&#8217;s overview of value stream mapping, VSM helps teams [&hellip;]<\/p>\n","protected":false},"author":38,"featured_media":20035,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[223],"tags":[],"class_list":{"0":"post-20013","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-manufacturing"},"acf":{"content_type_custom_acf":"definisi","post_reviewer":69},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v26.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is Value Stream Mapping? Steps, Examples Guide (2026)<\/title>\n<meta name=\"description\" content=\"VSM explained: 8 steps, 7 wastes table, Malaysia manufacturing examples, and how ERP automates your future state. Practical guide for operations teams.\" \/>\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\/value-stream-mapping\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is Value Stream Mapping? Steps, Examples &amp; VSM Guide\" \/>\n<meta property=\"og:description\" content=\"VSM explained: 8 steps, 7 wastes table, Malaysia manufacturing examples, and how ERP automates your future state. Practical guide for operations teams.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Malaysia\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-30T08:51:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/value-stream-mapping-1.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"450\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Zulkarnain bin Idris\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Zulkarnain bin Idris\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/\"},\"author\":{\"name\":\"Zulkarnain bin Idris\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/f6667e0b454a9938c0688e22064ff64c\"},\"headline\":\"What is Value Stream Mapping? Steps, Examples &#038; VSM Guide\",\"datePublished\":\"2026-06-30T08:51:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/\"},\"wordCount\":2780,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/value-stream-mapping-1.webp\",\"articleSection\":[\"Manufacturing\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/\",\"name\":\"What is Value Stream Mapping? Steps, Examples Guide (2026)\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/value-stream-mapping-1.webp\",\"datePublished\":\"2026-06-30T08:51:34+00:00\",\"description\":\"VSM explained: 8 steps, 7 wastes table, Malaysia manufacturing examples, and how ERP automates your future state. Practical guide for operations teams.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/value-stream-mapping-1.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/value-stream-mapping-1.webp\",\"width\":800,\"height\":450,\"caption\":\"value stream mapping\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/my\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is Value Stream Mapping? Steps, Examples &#038; VSM Guide\"}]},{\"@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\/f6667e0b454a9938c0688e22064ff64c\",\"name\":\"Zulkarnain bin Idris\",\"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-Zulkarnain-bin-Idris-BG-Tangga-1080x1080-1-96x96.webp\",\"contentUrl\":\"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Zulkarnain-bin-Idris-BG-Tangga-1080x1080-1-96x96.webp\",\"caption\":\"Zulkarnain bin Idris\"},\"description\":\"Zulkarnain bin Idris focuses on writing articles tailored to various industries, including manufacturing, distribution, and construction. He ensures each piece addresses industry-specific challenges and trends, helping readers understand how technology can transform their operations. By staying updated on market shifts, he develops fresh, relevant content that resonates with professionals in diverse sectors.\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/author\/zulkarnain-bin-idris\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is Value Stream Mapping? Steps, Examples Guide (2026)","description":"VSM explained: 8 steps, 7 wastes table, Malaysia manufacturing examples, and how ERP automates your future state. Practical guide for operations teams.","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\/value-stream-mapping\/","og_locale":"en_US","og_type":"article","og_title":"What is Value Stream Mapping? Steps, Examples & VSM Guide","og_description":"VSM explained: 8 steps, 7 wastes table, Malaysia manufacturing examples, and how ERP automates your future state. Practical guide for operations teams.","og_url":"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/","og_site_name":"HashMicro Malaysia","article_published_time":"2026-06-30T08:51:34+00:00","og_image":[{"width":800,"height":450,"url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/value-stream-mapping-1.webp","type":"image\/webp"}],"author":"Zulkarnain bin Idris","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Zulkarnain bin Idris","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/"},"author":{"name":"Zulkarnain bin Idris","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/f6667e0b454a9938c0688e22064ff64c"},"headline":"What is Value Stream Mapping? Steps, Examples &#038; VSM Guide","datePublished":"2026-06-30T08:51:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/"},"wordCount":2780,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/value-stream-mapping-1.webp","articleSection":["Manufacturing"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/","name":"What is Value Stream Mapping? Steps, Examples Guide (2026)","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/value-stream-mapping-1.webp","datePublished":"2026-06-30T08:51:34+00:00","description":"VSM explained: 8 steps, 7 wastes table, Malaysia manufacturing examples, and how ERP automates your future state. Practical guide for operations teams.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#primaryimage","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/value-stream-mapping-1.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2026\/06\/value-stream-mapping-1.webp","width":800,"height":450,"caption":"value stream mapping"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/my\/blog\/value-stream-mapping\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/my\/blog\/"},{"@type":"ListItem","position":2,"name":"What is Value Stream Mapping? Steps, Examples &#038; VSM Guide"}]},{"@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\/f6667e0b454a9938c0688e22064ff64c","name":"Zulkarnain bin Idris","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-Zulkarnain-bin-Idris-BG-Tangga-1080x1080-1-96x96.webp","contentUrl":"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Zulkarnain-bin-Idris-BG-Tangga-1080x1080-1-96x96.webp","caption":"Zulkarnain bin Idris"},"description":"Zulkarnain bin Idris focuses on writing articles tailored to various industries, including manufacturing, distribution, and construction. He ensures each piece addresses industry-specific challenges and trends, helping readers understand how technology can transform their operations. By staying updated on market shifts, he develops fresh, relevant content that resonates with professionals in diverse sectors.","url":"https:\/\/www.hashmicro.com\/my\/blog\/author\/zulkarnain-bin-idris\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/20013","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\/38"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/comments?post=20013"}],"version-history":[{"count":10,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/20013\/revisions"}],"predecessor-version":[{"id":20061,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/20013\/revisions\/20061"}],"acf:user":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/users\/69"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media\/20035"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media?parent=20013"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/categories?post=20013"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/tags?post=20013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}