{"id":10792,"date":"2024-10-31T07:03:14","date_gmt":"2024-10-31T07:03:14","guid":{"rendered":"https:\/\/www.hashmicro.com\/ph\/blog\/?p=10792"},"modified":"2026-02-10T07:33:16","modified_gmt":"2026-02-10T07:33:16","slug":"bill-of-materials","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/","title":{"rendered":"What is a Bill of Materials (BOM)? Complete Guide with Example"},"content":{"rendered":"<p>A Bill of Materials (BOM) is a crucial role in ensuring a smooth and efficient production process. In industries such as manufacturing, construction, and engineering, a well-organized BOM ensures that every component is available at the right time, minimizing delays and errors.<\/p>\n<p>Serving as a comprehensive blueprint, a BOM helps production teams stay organized and well-prepared. Whether in electronics, furniture, or software development, it facilitates effective material management, cost control, and production scheduling.<\/p>\n<p>Optimize your BOM management with <a href=\"https:\/\/www.hashmicro.com\/ph\/hash-manufacturing-software\">HashMicro\u2019s<\/a> ERP System. Our automated solution enhances accuracy, provides real-time tracking, and integrates seamlessly with inventory management. Upgrade today and try the <a href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/\">free demo<\/a> to achieve a more efficient, error-free production process!<\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\">A Bill of Materials (BOM) lists all components, quantities, and specifications needed for production across various industries.<\/li>\n<li style=\"font-weight: 400;\">Effective BOM management improves inventory control, cost accuracy, and resource planning in complex manufacturing processes.<\/li>\n<li style=\"font-weight: 400;\">Different types of BOMs, like Manufacturing BOMs and Engineering BOMs, serve specific roles in production planning.<\/li>\n<li style=\"font-weight: 400;\"><a href=\"https:\/\/www.hashmicro.com\/ph\/hash-manufacturing-software\">HashMicro<\/a> offers a solution for managing complex BOMs efficiently with features that integrate inventory, cost tracking, and quality control.<\/li>\n<\/ul>\n<p><span data-sheets-root=\"1\"><style>\r\n.button-cta-custom {\r\n    background-color: #8a0e19;\r\n    color: #fff !important;\r\n    -webkit-transition: all .3s ease;\r\n    transition: all .3s ease;\r\n    padding: 8px 24px;\r\n    display: inline-block;\r\n    border-radius: 8px;\r\n    font-size: 16px;\r\n    font-weight: bold;\r\n}\r\n.button-cta-custom:hover{\r\n\tbackground-color:#991b26\t\t\r\n}\r\n<\/style>\r\n<a class=\"button-cta-custom\" href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/?medium=cta-button\" target=\"_blank\">Click Here to Get the Free Demo!<\/a><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tTable of Contents\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div>\r\n\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Content Lists<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n\r\n<style>\r\n\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 20px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n  padding-top: 20px;\r\n  margin-top: 0px;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 84% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\/* \t\t\tright: 5%; *\/\r\n\t\t}\r\n\t}\r\n<\/style>\r\n\r\n<style>\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor:#000;\r\n\t\tmargin-bottom: 10px;\r\n\t\ttransition:all 0.2s ease-in-out;\r\n\t\tfont-size:15px\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#list_toc_float li a{margin-bottom:0px}\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width:768px){\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t \/* custom scrollbar style *\/\r\n::-webkit-scrollbar {\r\n    width: 7px;\r\n}\r\n::-webkit-scrollbar-track {\r\n    background: #d7a2a4;\r\n}\r\n::-webkit-scrollbar-thumb {\r\n    background: #b1252d;\r\n    border-radius: 15px;\r\n}\t\t\r\n\r\n<\/style>\r\n\r\n<script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n\t\t\/\/ Function to handle click on all <a> elements with href starting with #\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst targetId = this.getAttribute('href').substring(1);\r\n\t\t\tconst targetElement = document.getElementById(targetId);\r\n\r\n\t\t\tif (targetElement) {\r\n\t\t\t\tconst headerHeight = document.querySelector('#toc .header').offsetHeight;\r\n\t\t\t\tconst navbarHeight = document.getElementById('tdi_34') ? document.getElementById('tdi_34').offsetHeight : 0;\r\n\t\t\t\tconst windowHeight = window.innerHeight;\r\n\t\t\t\tconst targetOffset = targetElement.offsetTop;\r\n\t\t\t\tconst scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight) - navbarHeight - 40;\r\n\r\n\t\t\t\twindow.scrollTo({\r\n\t\t\t\t\ttop: scrollTo,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Add event listener for all <a> elements in toc-list and list-toc\r\n\t\tconst titleLinks = document.querySelectorAll('#toc-list a, #list_toc a');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t});\r\n<\/script>\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with class 'td-post-content'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within the article\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title');\r\n\r\n\/\/ Sticky TOC and update heading\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 700;\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\tconst panel2 = document.querySelector(\"#toc .list\");\r\n\tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n  let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n  \/\/ Function to handle scroll and add\/remove .sticky class\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Highlight user progress as the heading comes\r\n    headers.forEach(header => {\r\n\t\tconst headerTop = header.offsetTop;\r\n\t\tconst headerHeight = header.clientHeight;\r\n\t\tif(window.innerWidth < 767){\r\n\t\t\ttocTitle.textContent = 'Table of Contents'; \/\/ Selalu pertahankan judul ini di mobile\r\n\t\t} else {\r\n\t\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\t\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\t\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\t\t\t\ttocTitle.textContent = currentHeaderText;\r\n\t\t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader != '') {\r\n\t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\t\t\t  link.classList.add('active');\r\n\t\t  }\r\n\t  }\r\n    });\r\n\r\n    \/\/ Update TOC title if sticky\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n        toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n        toc.style.backgroundColor = \"#FFF\";\r\n\t\tpanel2.style.height = '0px';\r\n\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t  if(window.innerWidth < 767){\r\n\t\t\t  tocTitle.textContent = 'Table of Contents'; \/\/ Reset title\r\n       \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\t\t  }\r\n      }\r\n      if (currentHeader) {\r\n        tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n      }\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset'; \/\/ Reset to original width\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Table of Contents'; \/\/ Reset title\r\n\t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\t\ticon.style.transform = \"rotate(180deg)\";\r\n    }\r\n  }\r\n\r\n    \/\/ Attach the scroll event listener to the window\r\n    window.addEventListener('scroll', handleScroll);\r\n\r\n    \/\/ Initial call to handleScroll to set the correct state on load\r\n    handleScroll();\r\n});\r\n\t\r\n\t\/\/ Open toggle TOC\r\n\t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\t\tvar toc = document.querySelector(\"#toc\");\r\n\t\tvar icon = document.querySelector(\".toc-icon\");\r\n\t\tconst tocTitle = document.querySelector('#toc-title');\r\n\t\tconst tocs = document.querySelector('#toc.sticky');\r\n \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\t\t  tocHeader.addEventListener(\"click\", function() {\r\n\t\t\tvar panel = this.nextElementSibling;\r\n\t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t\tif(window.innerWidth > 768){\r\n\t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\t\t\t\t}\r\n\t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\t\t\t} else {\r\n\t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t  tocTitle.textContent = 'Table of Contents'; \/\/ Reset title\r\n\t\t\t\ttoc.style.paddingBottom = '24px';\r\n\t\t\t \tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t  });\r\n\r\n\t\t  \/\/ Close TOC when a link inside it is clicked\r\n\t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\t\t  tocLinks.forEach(function(link) {\r\n\t\t\tlink.addEventListener(\"click\", function() {\r\n\t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t});\r\n\t\t  });\r\n\t\t});\r\n\t\r\n\/\/ \tmake the heading at the center of the viewport\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/     \/\/ Add click event listener to all links in the TOC list\r\n\/\/     document.querySelectorAll('#toc-list a').forEach(anchor => {\r\n\/\/         anchor.addEventListener('click', function (e) {\r\n\/\/             e.preventDefault(); \/\/ Prevent the default behavior of jumping to the anchor\r\n\/\/             const targetId = this.getAttribute('href').substring(1); \/\/ Get the ID of the target element\r\n\/\/             const targetElement = document.getElementById(targetId); \/\/ Get the target element\r\n\r\n\/\/             if (targetElement) {\r\n\/\/                 const headerHeight = document.querySelector('#toc .header').offsetHeight; \/\/ Get the height of the fixed header\r\n\/\/                 const windowHeight = window.innerHeight; \/\/ Get the height of the viewport\r\n\/\/                 const targetOffset = targetElement.offsetTop; \/\/ Get the top offset of the target element\r\n\/\/                 const scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight); \/\/ Calculate the scroll position to center the target element\r\n\r\n\/\/                 \/\/ Scroll to the calculated position smoothly\r\n\/\/                 window.scrollTo({\r\n\/\/                     top: scrollTo,\r\n\/\/                     behavior: 'smooth'\r\n\/\/                 });\r\n\/\/             }\r\n\/\/         });\r\n\/\/     });\r\n\/\/ });\r\n<\/script>\r\n\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\t\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!-- <script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n        let headerCounter = 0; \/\/ Counter to generate unique IDs\r\n\r\n\t\t\/\/ Function to generate ID in header0, header1, etc. format\r\n\t\tfunction formatId() {\r\n\t\t\treturn `header-${headerCounter++}`; \/\/ ID format: header0, header1, etc.\r\n\t\t}\r\n\r\n\/\/ \t\tfunction formatId(text) {\r\n\/\/             return text.trim().replace(\/[^\\w\\d]+\/g, '_');\r\n\/\/         }\r\n\t\r\n        \/\/ Function to create nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Object to store list of h2 and h3 with their titles\r\n        const headings = [];\r\n\r\n           \/\/ Get all h2 and h3 elements\r\n        \/\/ Get all h2 and h3 elements\r\n\t\tconst elements = document.querySelectorAll('.td-post-content h2');\r\n\r\n\t\telements.forEach(element => {\r\n\t\t\tif (element.tagName === 'H2') {\r\n\t\t\t\tconst id = formatId(); \/\/ Generate new ID\r\n\t\t\t\telement.id = id; \/\/ Set ID to h2 element\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Hide Key Takeaways di ToC\r\n\t\t\t\theadings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n\t\t\t} else if (element.tagName === 'H3') {\r\n\t\t\t\tconst id = formatId(); \/\/ Generate new ID\r\n\t\t\t\telement.id = id; \/\/ Set ID to h3 element\r\n\t\t\t\tif (headings.length > 0) {\r\n\t\t\t\t\theadings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n       \/\/ Create HTML list from headings object\r\n\t\tconst ul = document.getElementById('list_toc');\r\n\t\tlet currentUl = ul;\r\n\t\theadings.forEach(heading => {\r\n\t\t\tconst li = document.createElement('li');\r\n\t\t\tconst a = document.createElement('a');\r\n\t\t\ta.textContent = heading.title;\r\n\t\t\ta.href = `#${heading.id}`; \/\/ Use the newly generated ID\r\n\t\t\tli.appendChild(a);\r\n\r\n\t\t\tif (heading.level === 'h2') {\r\n\t\t\t\tcurrentUl = li;\r\n\t\t\t\tul.appendChild(li);\r\n\t\t\t} else if (heading.level === 'h3') {\r\n\t\t\t\tif (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n\t\t\t\t\tconst nestedUl = document.createElement('ul');\r\n\t\t\t\t\tcurrentUl.appendChild(nestedUl);\r\n\t\t\t\t\tcurrentUl = nestedUl;\r\n\t\t\t\t}\r\n\t\t\t\tcurrentUl.appendChild(li);\r\n\t\t\t}\r\n\r\n\t\t\tcreateNestedList(li, heading.children);\r\n\t\t});\r\n\t\t\/\/ Get ul element with id 'list_toc'\r\n\t\tconst ulFloat = document.getElementById('list_toc');\r\n\r\n\t\t\/\/ Get content (child elements) from ul with id 'list_toc'\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\r\n\t\t\/\/ Get ul element with id 'list_toc_float'\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\r\n\t\t\/\/ Add content obtained from 'list_toc' to ul with id 'list_toc_float'\r\n\t\tulToc.append(...clonedChildren);\r\n\r\n\r\n        \/\/ Function to get navbar height\r\n\t\tfunction getNavbarHeight() {\r\n\t\t\tconst navbar = document.getElementById('tdi_34');\r\n\t\t\treturn navbar ? navbar.offsetHeight : 0;\r\n\t\t}\r\n\r\n\t\t\/\/ Function to add scroll position offset\r\n\t\tfunction scrollToElementWithOffset(elementId) {\r\n\t\t\tconst element = document.getElementById(elementId);\r\n\t\t\tif (element) {\r\n\t\t\t\tconst offset = getNavbarHeight();\r\n\t\t\t\tconst elementPosition = element.getBoundingClientRect().top;\r\n\t\t\t\tconst offsetPosition = elementPosition - offset - 40;\r\n\r\n\t\t\t\twindow.scrollBy({\r\n\t\t\t\t\ttop: offsetPosition,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\/\/ Function to handle title link click\r\n\t\tfunction handleTitleClick(event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconst href = event.target.getAttribute('href').substr(1);\r\n\t\t\tscrollToElementWithOffset(href);\r\n\t\t}\r\n\r\n\t\t\/\/ Add event listener for all title links\r\n\t\tconst titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n\t\ttitleLinks.forEach(link => {\r\n\t\t\tlink.addEventListener('click', handleTitleClick);\r\n\t\t});\r\n\t});\r\n    <\/script> -->\r\n<span data-sheets-root=\"1\"><a href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/?medium=free-product-tour\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bir-demo-gratis.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bir-demo-gratis.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/mobile-bir-demo-gratis.webp\" alt=\"FreeDemo\" class=\"responsive-image-banner\" width=\"620\" height=\"255\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script><\/span><\/p>\n<h2><b>What is a Bill of Materials?<\/b><\/h2>\n<p>A bill of materials (BOM) is a detailed and organized list of items such as subassemblies, intermediate assemblies, subcomponents, and parts, along with the quantities necessary to produce a product. It has multiple uses and may also be called a production recipe, assembly list, or component list.<\/p>\n<p>BOMs are applicable across many industries, including manufacturing, construction, software development, and engineering. Regardless of the specific sector, manufacturers begin by creating their BOMs to ensure a smooth production process.<\/p>\n<h2><b>Benefits of Bill of Materials<\/b><\/h2>\n<p>A BOM improves manufacturing precision and streamlines the production process by outlining a clear, step-by-step guide.<\/p>\n<p>With a structured BOM, companies can:<\/p>\n<ul>\n<li>Plan and procure raw materials efficiently, reducing the risk of material shortages and production delays.<\/li>\n<li>Estimate and control material costs by accurately forecasting requirements and minimizing unnecessary spending.<\/li>\n<li>Track inventory levels in real time, allowing for prompt response to changes in demand or unexpected disruptions.<\/li>\n<li>Manage budgets and production timelines to ensure projects stay on schedule and within financial targets.<\/li>\n<li>Maintain comprehensive documentation that supports traceability, reduces waste, and simplifies part replacement when needed.<\/li>\n<li>Identify software vulnerabilities and improve supply chain security, especially in industries like electronics and software manufacturing.<\/li>\n<\/ul>\n<p>This thorough approach helps companies achieve reliable, cost-effective, and secure production processes.<\/p>\n<h2><b>Types of Bill of Materials<\/b><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10795\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-example.webp\" alt=\"bill of materials example\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-example.webp 1200w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-example-300x169.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-example-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-example-768x432.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-example-747x420.webp 747w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-example-150x84.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-example-696x392.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-example-1068x601.webp 1068w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p>The three primary types of bill of materials (BOMs) are as follows:<\/p>\n<h3><b>1. Manufacturing BOM (MBOM)<\/b><\/h3>\n<p>This BOM provides a detailed list of all items and subassemblies needed to produce a finished, shippable product. It includes parts that require processing before assembly and clarifies relationships among the product\u2019s various components.<\/p>\n<p>MBOM information is shared with systems involved in ordering and building the product, including enterprise resource planning (ERP), material requirements planning (MRP), and occasionally, manufacturing execution systems.<\/p>\n<h3><b>2. Engineering BOM (EBOM)<\/b><\/h3>\n<p>Created by the engineering team, this BOM outlines assemblies and parts from a functional standpoint and includes a mechanical or technical drawing of the product.<\/p>\n<p>Typically developed using computer-aided design (CAD) or electronic design automation tools, an engineering BOM captures the structural details of the design. Products may have multiple EBOMs as designs undergo revisions.<\/p>\n<h3><b>3. Sales BOM (SBOM)<\/b><\/h3>\n<p>Used at the sales stage, this BOM specifies product details before assembly. In an SBOM, finished products and required components are listed separately in the sales order. The finished product is tracked as a sales item rather than as an inventory item.<\/p>\n<p>Each type of BOM differs in structure and detail level. For instance, an engineering BOM (EBOM) may include parts focused on a specific function of the product, such as chips for a circuit board, while a manufacturing BOM (MBOM) lists all materials used in the product&#8217;s creation.<\/p>\n<p>Other BOM types include:<\/p>\n<ul>\n<li><b>Configurable BOMs<\/b>: Used in industries that offer products with multiple configurations and customizable options, these BOMs detail materials, labels, and packaging required for unique customer specifications. Common examples include PCs, cars, and data center hardware or software.<\/li>\n<li><b>Production BOM<\/b>: This BOM represents the first part of the MBOM and outlines all components and subassemblies for manufacturing a parent item, forming the foundation of a production order.<\/li>\n<li><b>Assembly BOM<\/b>: Representing the second part of the MBOM, this BOM lists the parent item as a sales item rather than an inventory item.<\/li>\n<li><b>Template BOM<\/b>: Providing a standardized component list for items needing routine servicing, a template BOM helps track which subcomponents have been serviced or replaced.<\/li>\n<li><b>Software BOM (SBOM)<\/b>: Used to document the components in software, which often combines commercial and open-source elements. SBOMs ensure that software components are compatible, current, and secure against vulnerabilities.<\/li>\n<\/ul>\n<h2><b>How to Make an Effective Bill of Materials<\/b><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10797\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-vs-bill-of-quantities.webp\" alt=\"bill of materials vs bill of quantities\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-vs-bill-of-quantities.webp 1200w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-vs-bill-of-quantities-300x169.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-vs-bill-of-quantities-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-vs-bill-of-quantities-768x432.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-vs-bill-of-quantities-747x420.webp 747w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-vs-bill-of-quantities-150x84.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-vs-bill-of-quantities-696x392.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials-vs-bill-of-quantities-1068x601.webp 1068w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/p>\n<p>Here\u2019s how to create a bill of materials (BOM) effectively using the following parameters:<\/p>\n<ul>\n<li><b>Part Name: <\/b> Assign a unique name and SKU to each material or subassembly in your BOM to ensure clear identification, easy tracking, and accurate reordering.<\/li>\n<li><strong>Part Number<\/strong>: Intelligent part numbers convey useful details like specifications or versions, while nonintelligent numbers function only as random identifiers, such as PCB-E101-V1 versus 000984756234.<\/li>\n<li><strong>Part Phase<\/strong>: The part phase identifies a part\u2019s stage in the product lifecycle, including whether it\u2019s unreleased or revised, and tracks any updates or design changes.<\/li>\n<li><strong>Levels<\/strong>: A bill of materials (BOM) uses level numbers to show each part\u2019s position within the hierarchical structure.<\/li>\n<li><strong>Procurement Specification<\/strong>: Defines how each part is sourced or produced, using designations such as \u201cP\u201d for purchased, \u201cM\u201d for modified, and \u201cC\u201d for custom-made components.<\/li>\n<li><b>Quantity and Units of Measure: <\/b> Specify the required quantity for each material and clearly define its unit of measure to ensure accurate and consistent entries.<\/li>\n<li><b>Product Color: <\/b> Indicate the product color to prevent production errors and maintain consistency across variants.<\/li>\n<li><b>Description and Notes: <\/b> Include clear material descriptions and any necessary notes in the BOM to ensure everyone involved in production has complete and accurate information.<\/li>\n<li><b>Stock Cost:<\/b> Stock costs should be recorded based on the quantity required, making it easy to track and manage costs associated with each item in the assembly process.<\/li>\n<\/ul>\n<h4><strong>To further improve the efficiency and accuracy of your manufacturing, consider enriching the BOM with additional details in the comments section:<\/strong><\/h4>\n<ul>\n<li><b>Lead Time:<\/b> Specify the time required to complete each assembly process, which aids in planning and managing production schedules.<\/li>\n<li><b>Scrap Factor:<\/b> Indicate the percentage of components or materials that may be lost or damaged during manufacturing. This helps account for wastage and improves material forecasting.<\/li>\n<li><b>Quality Criteria:<\/b> Define measurable tests or standards to ensure that each part meets quality objectives. Including a production quality control checklist helps maintain consistency and quality.<\/li>\n<li><b>Done Criteria:<\/b> List the specific steps and tasks required to complete the assembly process. This ensures all necessary tasks are completed for each part.<\/li>\n<li><b>Roll-Up Cost:<\/b> Calculate the total standard cost based on the BOM and the steps involved in assembling the product, which helps in budgeting and cost control.<\/li>\n<\/ul>\n<h2><strong>Types of BoM Displays<\/strong><\/h2>\n<p>There are two primary ways to present the information in a bill of materials (BOM): explosion and implosion displays.<\/p>\n<ul>\n<li><strong>Explosion Displays<\/strong>: This method breaks down a finished product into its individual components, following a top-down approach. It starts by showing the complete product and then progressively details each component and the steps involved in assembly. The information becomes more detailed as the document progresses.<\/li>\n<li><strong>Implosion Displays<\/strong>: This approach begins with an explanation of the main components in the BOM and their assembly process. It gradually builds up to reveal the finished product, which is presented at the end of the document.<\/li>\n<\/ul>\n<h2><b>Is Managing BoM with Excel Enough?<\/b><\/h2>\n<p>Using a spreadsheet may seem like the natural choice for managing your bill of materials (BOM), but is it the most effective? Here are some challenges when relying on Excel for BOM management:<\/p>\n<h3><b>1. Error-Prone<\/b><\/h3>\n<p>Excel BOMs can suffer from issues like copy\/paste mistakes and complex script errors. They require constant manual updates, consume resources, and potentially lead to costly mistakes. Decisions based on outdated or inaccurate data can negatively impact your business.<\/p>\n<h3><b>2. Difficulty with Variants<\/b><\/h3>\n<p>Handling product variants in Excel is challenging. When a product has many variants, managing all the variations becomes overwhelming as each variant requires a separate BOM. This quickly leads to an unmanageable volume of resolved BOMs.<\/p>\n<h3><b>3. Cost and Quantity Calculations<\/b><\/h3>\n<p>While calculating totals may be simple for single-level BOMs, it\u2019s much harder for multilevel BOMs. Managing costs and quantities across multiple levels requires intricate formulas and configurations, which can be time-consuming and increase the likelihood of errors.<\/p>\n<h3><b>4. Complexity of Multilevel (Indented) BOMs<\/b><\/h3>\n<p>Creating multilevel BOMs in Excel isn\u2019t impossible but can be complex. You must define a hierarchy across parts and subassemblies, and small mistakes can have major repercussions. For instance:<\/p>\n<ul>\n<li>Inserting or deleting parts can lead to errors if items are misplaced or incorrectly removed.<\/li>\n<li>Excel\u2019s sorting function, while useful, can disrupt critical columns, slowing down production.<\/li>\n<li>Managing repeated parts across multiple products and levels is difficult. If you update a part number in one BOM, will all instances reflect the change?<\/li>\n<\/ul>\n<p>Clearly, Excel poses several limitations in managing BOMs. Specialized software, like <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/manufacturing-resource-planning\/\">manufacturing software<\/a>, is usually used to manage bills of materials. Gone are the days when manually checking and inputting values into spreadsheets took several hours; the team can now oversee the whole process more easily.<\/p>\n<p>Besides, manufacturing software can help more than just managing BOMs. Curious how? Try the no-cost demo here by clicking on the banner below.<\/p>\n<a href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/?medium=free-product-tour\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bir-demo-gratis.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bir-demo-gratis.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/mobile-bir-demo-gratis.webp\" alt=\"FreeDemo\" class=\"responsive-image-banner\" width=\"620\" height=\"255\"><\/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>\n<h2><b>Structures of Bill of Materials<\/b><\/h2>\n<p>A BOM usually has a hierarchical structure, with the finished product at the top. It includes details like product codes, part descriptions, quantities, costs, and other specifications.<\/p>\n<p>Two common ways to represent a BOM are single-level and multilevel formats:<\/p>\n<h3><b>1. Single-Level BOM<\/b><\/h3>\n<p>This is a straightforward list that displays each assembly or subassembly needed for a product, along with the required quantity. While simple to create, it is not ideal for complex products as it doesn\u2019t show the relationships between parent and child parts or between assemblies and subassemblies.<\/p>\n<p>If a product malfunctions, a single-level BOM makes it difficult to identify which part needs replacement or repair.<\/p>\n<h3><b>2. Multilevel BOM<\/b><\/h3>\n<p>Though more complex to create, a multilevel BOM provides a more detailed view. It shows all materials required and clearly defines the relationships between parent and child parts, as well as between assemblies and subassemblies. This structure offers better insight into the overall product composition.<\/p>\n<p>To make it easier to understand, refer to the comparison table below.<\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\"><strong>Aspect<\/strong><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\"><strong>Single-Level BOM<\/strong><\/td>\n<td style=\"background-color: #990000; color: #ffffff; padding: 5px; text-align: center;\"><strong>Multilevel BOM<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Structure Complexity<\/td>\n<td>Simple structure with one level of components.<\/td>\n<td>Complex, hierarchical structure with multiple levels.<\/td>\n<\/tr>\n<tr>\n<td>Component Relationships<\/td>\n<td>Does not show parent\u2013child relationships or links between assemblies and subassemblies.<\/td>\n<td>Clearly shows parent\u2013child relationships across all assemblies and subassemblies.<\/td>\n<\/tr>\n<tr>\n<td>Product Detail Visibility<\/td>\n<td>Limited visibility; only lists components and quantities.<\/td>\n<td>Provides a full breakdown of components, subcomponents, and their connections.<\/td>\n<\/tr>\n<tr>\n<td>Ideal Use Case<\/td>\n<td>Suitable for simple products with few components.<\/td>\n<td>Best for complex products with multiple assemblies and subassemblies.<\/td>\n<\/tr>\n<tr>\n<td>Troubleshooting Issues<\/td>\n<td>Difficult to pinpoint specific faulty parts during product malfunctions.<\/td>\n<td>Easier to diagnose issues because component relationships are well-defined.<\/td>\n<\/tr>\n<tr>\n<td>Maintenance &amp; Updates<\/td>\n<td>Easy to create but less effective for ongoing updates or revisions.<\/td>\n<td>Requires more effort to maintain but supports accurate tracking throughout product lifecycle.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><b>Best Practices for Bill of Materials Management<\/b><\/h2>\n<p>To maximize the effectiveness of your BOM and ensure it stays relevant, following some essential guidelines is key. The BOM is not static; it requires regular updates. Here are important practices for keeping an optimized BOM:<\/p>\n<ul>\n<li><b>Regular Updates: <\/b>Review and update the BOM regularly to reflect changes in design, materials, production processes, or variations in component and raw material costs. This proactive maintenance helps prevent outdated information and ensures continuous accuracy.<\/li>\n<li><b>Automate BOM Management: <\/b>BOM data often fluctuates, and manual updates can be challenging in complex production environments. Utilizing advanced supply chain technology integrated with <a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/manufacturing-erp-philippines\/\">manufacturing ERP<\/a> systems enables efficient, real-time tracking, adaptation, and validation of BOM data.<\/li>\n<li><b>Establish a Clear Hierarchy: <\/b>Organize the BOM in a structured hierarchy to clarify relationships between components and sub-components, making it easy to understand assembly requirements and material needs.<\/li>\n<li><b>Define Units of Measurement: <\/b>Ensure clarity in supply chain planning by specifying the unit of measurement for each item (e.g., units, pieces, meters, kilograms) so all stakeholders are aligned.<\/li>\n<li><b>Provide Detailed Information: <\/b>The BOM should contain detailed information, such as technical specifications, assembly instructions, and quality standards, to facilitate effective decision-making and make it a valuable resource for all teams involved.<\/li>\n<li><b>Include Supplier Information: <\/b>List suppliers for each component to support a streamlined procurement process and enable quick access to sourcing details when needed.<\/li>\n<li><b>Implement Access Control: <\/b>Given the BOM\u2019s significance, establish clear editing protocols. Track and review changes to prevent costly errors and maintain BOM integrity over time.<\/li>\n<\/ul>\n<h2><strong>Sample BoM Template for Your Business<\/strong><\/h2>\n<p>Now that we\u2019ve covered the basics of what a Bill of Materials (BOM) is and its importance in managing product development and inventory, let\u2019s explore a sample BOM template that can help streamline your business operations and ensure accurate tracking of materials and components.<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-20629\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bom-template-300x163.webp\" alt=\"bom template\" width=\"800\" height=\"435\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bom-template-300x163.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bom-template-768x418.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bom-template-772x420.webp 772w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bom-template-150x82.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bom-template-696x379.webp 696w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bom-template.webp 1000w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>If you want to see more bill of materials example, head to our article that specifically discusses bill of materials template, along with free downloadable templates for your needs.<\/p>\n<h2><b>Create Bill of Materials Easily with HashMicro Manufacturing Software<\/b><\/h2>\n<p><a href=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/HashMicro-Manufacturing-PH-Dashboard.webp\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-14797\" src=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/HashMicro-Manufacturing-PH-Dashboard.webp\" alt=\"\" width=\"782\" height=\"479\" srcset=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/HashMicro-Manufacturing-PH-Dashboard.webp 782w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/HashMicro-Manufacturing-PH-Dashboard-300x184.webp 300w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/HashMicro-Manufacturing-PH-Dashboard-768x470.webp 768w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/HashMicro-Manufacturing-PH-Dashboard-686x420.webp 686w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/HashMicro-Manufacturing-PH-Dashboard-150x92.webp 150w, https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/HashMicro-Manufacturing-PH-Dashboard-696x426.webp 696w\" sizes=\"(max-width: 782px) 100vw, 782px\" \/><\/a><\/p>\n<p>Most companies handle complex processes, resulting in intricate BOMs with multiple levels. Due to this complexity, advanced technology becomes essential to manage all parts, quantities, and supplier issues effectively while ensuring optimal stock levels.<\/p>\n<p><i>Kaya kung isa kang manufacturer na may komplikado ng proseso ng produksyon, mahalaga ang pag-automate ng BOM management para maging maayos at epektibo ang operasyon.<\/i><\/p>\n<p><a href=\"https:\/\/www.hashmicro.com\/ph\/hash-manufacturing-software\">HashMicro Manufacturing Software<\/a> is the optimal solution. It offers both single-level and multi-level bills of materials, and companies can use both depending on what they produce.<\/p>\n<p>Moreover, it\u2019s connected to inventory and accounting so that companies can create the cost of goods manufactured (COGM) report with ease. As a result, tracking costs accurately and maintaining visibility is no longer a chore.<\/p>\n<p>HashMicro also has advanced features that help with overall production:<\/p>\n<ul>\n<li><b>Secret Recipe \/ BOM<\/b>: This feature allows companies to create and manage detailed product recipes or formulas, supporting both single-level and multi-level BOMs. There are also controls to protect sensitive information, so only authorized users can access or edit specific BOM data.<\/li>\n<li><b>Manufacturing Requisition Planning<\/b>: This helps plan what materials and resources are needed for production, making sure everything is ready when needed.<\/li>\n<li><b>Finished Goods Production Simulation<\/b>: This tool checks if there\u2019s enough material in stock to meet production goals. It calculates possible output based on the current BOM and alerts you if more supplies are needed.<\/li>\n<li><b>Manufacturing Production Scheduling<\/b>: While mainly used to set schedules, this feature turns BOM details into actionable production plans. It helps forecast demand and makes sure materials and resources are used effectively.<\/li>\n<li><b>Manufacturing Quality Control<\/b>: This feature ensures that all materials meet quality standards before production. Catching issues early helps keep the BOM accurate and ensures that only approved materials go into the final product.<\/li>\n<\/ul>\n<p><em class=\"review-quote\">&#8220;An accurate bill of materials is more than just a parts list; it\u2019s the backbone of efficient production. When every component is clearly defined and tracked, businesses can cut waste, prevent stockouts, and accelerate their entire manufacturing workflow.&#8221;<\/em><\/p>\n<p>\u2014 <strong>Angela Tan<\/strong>, Regional Manager<\/p>\n<h2><b>Conclusion<\/b><\/h2>\n<p>A bill of materials (BOM) is essential for manufacturers, listing each part needed for production. Organizing materials, quantities, and specifications helps keep production accurate and efficient. This document is widely used to improve inventory management and production across industries.<\/p>\n<p><a href=\"https:\/\/www.hashmicro.com\/ph\/hash-manufacturing-software\">HashMicro Manufacturing Software<\/a> provides a strong solution for handling complex BOMs with ease. Features like multi-level BOM support, inventory tracking, and COGM reporting help companies manage costs and stock levels accurately. HashMicro brings simplicity and precision to the manufacturing process.<\/p>\n<p>This software also boosts production by streamlining scheduling and quality control. With HashMicro\u2019s quality control\u00a0and advanced features, manufacturers gain an easy-to-use tool to improve efficiency and maintain high-quality output.<\/p>\n<p>Curious to see what else this software is capable of? Try the <a href=\"https:\/\/www.hashmicro.com\/ph\/free-product-tour\/\">free demo<\/a> now!<\/p>\n<p><span data-sheets-root=\"1\"><a href=\"https:\/\/www.hashmicro.com\/ph\/hash-manufacturing-software?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/03\/2-CTA-BLOG-new-design-14-scaled.jpg\" data-desktop-src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2022\/03\/2-CTA-BLOG-new-design-14-scaled.jpg\" data-mobile-src=\"\" alt=\"HashManufacturingAutomation\" class=\"responsive-image-banner\" width=\"620\" height=\"255\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script><\/span><\/p>\n<h2><strong>FAQ About Bill of Materials<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>What is the difference between a Bill of Materials vs Bill of Quantities?<\/strong><\/summary>\n<p>A Bill of Materials (BOM) is specific to manufacturing and lists all components needed for a product\u2019s assembly. In contrast, a Bill of Quantities (BOQ) is primarily used in construction to detail materials required for project execution, focusing more on construction materials than production components.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What is BOM explosion, and why is it used?<\/strong><\/summary>\n<p>BOM explosion is a process that breaks down a high-level BOM into its smallest components. This technique helps in precise material planning, cost estimation, and streamlines procurement, as it provides visibility into every piece required to assemble a product accurately.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong> What is BOM meaning in construction?<\/strong><\/summary>\n<p>In construction, a Bill of Materials (BOM) is a detailed list of all materials, components, and quantities needed to complete a project. It&#8217;s a comprehensive inventory that ensures accurate cost estimation, efficient procurement, and effective on-site material management. A well-structured BOM helps prevent shortages, minimize waste, and streamline the construction process from start to finish.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>When should you start creating a BOM?<\/strong><\/summary>\n<p>Ideally, a BOM should be developed early in the design phase rather than waiting until production begins. Early planning allows the team to anticipate material constraints, sourcing challenges, and costs, which can prevent delays or redesigns later in production.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Who is responsible for creating a BOM?<\/strong><\/summary>\n<p>Typically, engineers, product designers, or procurement teams create BOMs. In technical manufacturing, a BOM is often made by designers or engineers, while simpler BOMs might be compiled by the procurement or production planning team, ensuring that it accurately supports production and purchasing.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What is the difference between a Bill of Materials vs Bill of Quantities?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"A Bill of Materials (BOM) is used in manufacturing and lists all components, parts, and materials required to assemble a product. A Bill of Quantities (BOQ), on the other hand, is mainly used in construction to detail the quantities of materials needed for project execution, focusing on construction materials rather than production components.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What is BOM explosion, and why is it used?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"BOM explosion is the process of breaking down a high-level Bill of Materials into its most detailed components. It is used to support accurate material planning, cost estimation, and procurement by providing full visibility into every part required to manufacture a product.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"What is BOM meaning in construction?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"In construction, a Bill of Materials (BOM) refers to a detailed list of materials, components, and quantities needed to complete a project. It supports accurate cost estimation, efficient procurement, and effective on-site material management while helping reduce waste and prevent shortages.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"When should you start creating a BOM?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"A BOM should be created early in the design phase, before production begins. Early BOM planning helps teams identify material requirements, sourcing constraints, and cost considerations, reducing the risk of delays or redesigns later in the production process.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Who is responsible for creating a BOM?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"BOMs are typically created by engineers, product designers, or procurement teams. In technical manufacturing, engineers or designers usually prepare the BOM, while in simpler cases, procurement or production planning teams may compile it to support purchasing and production needs.\"\n      }\n    }\n  ]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Bill of Materials (BOM) is a crucial role in ensuring a smooth and efficient production process. In industries such as manufacturing, construction, and engineering, a well-organized BOM ensures that every component is available at the right time, minimizing delays and errors. Serving as a comprehensive blueprint, a BOM helps production teams stay organized and [&hellip;]<\/p>\n","protected":false},"author":49,"featured_media":10794,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[19],"tags":[],"class_list":{"0":"post-10792","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-manufacturing"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v26.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Understanding Bill of Materials: Complete Guide with Example<\/title>\n<meta name=\"description\" content=\"Discover what a Bill of Materials (BOM) is and how its components support efficient production, resource planning, and manufacturing.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is a Bill of Materials (BOM)? Complete Guide with Example\" \/>\n<meta property=\"og:description\" content=\"Discover what a Bill of Materials (BOM) is and how its components support efficient production, resource planning, and manufacturing.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Philippine Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-10-31T07:03:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-10T07:33:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Joshua Manalo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joshua Manalo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/\",\"name\":\"Understanding Bill of Materials: Complete Guide with Example\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials.webp\",\"datePublished\":\"2024-10-31T07:03:14+00:00\",\"dateModified\":\"2026-02-10T07:33:16+00:00\",\"author\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/ca237f5a7f4883340e31d99618ed987b\"},\"description\":\"Discover what a Bill of Materials (BOM) is and how its components support efficient production, resource planning, and manufacturing.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/#breadcrumb\"},\"inLanguage\":\"en-PH\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-PH\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials.webp\",\"width\":1200,\"height\":675,\"caption\":\"bill of materials\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/ph\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is a Bill of Materials (BOM)? Complete Guide with Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/\",\"name\":\"HashMicro Philippine Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/ph\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-PH\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/ca237f5a7f4883340e31d99618ed987b\",\"name\":\"Joshua Manalo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-PH\",\"@id\":\"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/11\/Joshua-Manalo-96x96.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/11\/Joshua-Manalo-96x96.webp\",\"caption\":\"Joshua Manalo\"},\"description\":\"Joshua Manalo creates accounting-related content that simplifies complex financial concepts for a broader business audience. His articles are filled with practical tips, regulatory updates, and workflow enhancements.\",\"url\":\"https:\/\/www.hashmicro.com\/ph\/blog\/author\/joshua-manalo\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Understanding Bill of Materials: Complete Guide with Example","description":"Discover what a Bill of Materials (BOM) is and how its components support efficient production, resource planning, and manufacturing.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/","og_locale":"en_US","og_type":"article","og_title":"What is a Bill of Materials (BOM)? Complete Guide with Example","og_description":"Discover what a Bill of Materials (BOM) is and how its components support efficient production, resource planning, and manufacturing.","og_url":"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/","og_site_name":"HashMicro Philippine Blog","article_published_time":"2024-10-31T07:03:14+00:00","article_modified_time":"2026-02-10T07:33:16+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials.webp","type":"image\/webp"}],"author":"Joshua Manalo","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Joshua Manalo","Est. reading time":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/","url":"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/","name":"Understanding Bill of Materials: Complete Guide with Example","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials.webp","datePublished":"2024-10-31T07:03:14+00:00","dateModified":"2026-02-10T07:33:16+00:00","author":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/ca237f5a7f4883340e31d99618ed987b"},"description":"Discover what a Bill of Materials (BOM) is and how its components support efficient production, resource planning, and manufacturing.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/#breadcrumb"},"inLanguage":"en-PH","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/"]}]},{"@type":"ImageObject","inLanguage":"en-PH","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/#primaryimage","url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials.webp","contentUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2024\/10\/bill-of-materials.webp","width":1200,"height":675,"caption":"bill of materials"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/bill-of-materials\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/ph\/blog\/"},{"@type":"ListItem","position":2,"name":"What is a Bill of Materials (BOM)? Complete Guide with Example"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#website","url":"https:\/\/www.hashmicro.com\/ph\/blog\/","name":"HashMicro Philippine Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/ph\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-PH"},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/ca237f5a7f4883340e31d99618ed987b","name":"Joshua Manalo","image":{"@type":"ImageObject","inLanguage":"en-PH","@id":"https:\/\/www.hashmicro.com\/ph\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/11\/Joshua-Manalo-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-content\/uploads\/2025\/11\/Joshua-Manalo-96x96.webp","caption":"Joshua Manalo"},"description":"Joshua Manalo creates accounting-related content that simplifies complex financial concepts for a broader business audience. His articles are filled with practical tips, regulatory updates, and workflow enhancements.","url":"https:\/\/www.hashmicro.com\/ph\/blog\/author\/joshua-manalo\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/10792","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/users\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/comments?post=10792"}],"version-history":[{"count":20,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/10792\/revisions"}],"predecessor-version":[{"id":31367,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/posts\/10792\/revisions\/31367"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/media\/10794"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/media?parent=10792"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/categories?post=10792"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/ph\/blog\/wp-json\/wp\/v2\/tags?post=10792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}