{"id":1477,"date":"2026-03-17T19:17:27","date_gmt":"2026-03-17T08:17:27","guid":{"rendered":"https:\/\/www.hashmicro.com\/au\/blog\/?p=1477"},"modified":"2026-03-31T19:49:48","modified_gmt":"2026-03-31T08:49:48","slug":"construction-procurement","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/","title":{"rendered":"Construction Procurement: Methods, Process &#038; Best Practices"},"content":{"rendered":"<p data-start=\"237\" data-end=\"464\">Construction projects involve complex coordination between materials, labor, equipment, and capital. Each component must be sourced and delivered at the right time to ensure that the project stays on schedule and within budget.<\/p>\n<p data-start=\"466\" data-end=\"678\">Because of this complexity, procurement plays a critical role in construction management. Poor sourcing decisions can lead to delays, cost overruns, and supply disruptions that affect the entire project timeline.<\/p>\n<p data-start=\"680\" data-end=\"929\">Construction procurement provides a structured approach to acquiring materials, equipment, and contractor services. With the right strategy, organizations can control costs, maintain supply chain reliability, and improve overall project performance, especially when supported by <a href=\"https:\/\/www.hashmicro.com\/au\/blog\/construction-software\/\"><strong data-start=\"851\" data-end=\"885\">digital tools for constructing<\/strong><\/a> that enhance visibility and coordination.<\/p>\n<style>\r\n\t.takeaways-container {\r\n\t\tmargin: 20px 0;\r\n\t\tfont-family: sans-serif;\r\n\t}\r\n\t.box-content {\r\n\t\tbackground-color: #fffacd;\r\n\t\tbox-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\r\n\t\tborder-radius: 25px;\r\n\t\tpadding: 25px;\r\n\t}\r\n\t.title {\r\n\t\tmargin-bottom: 20px;\r\n\t}\r\n\t.title p {\r\n\t\tdisplay: inline-block;\r\n\t\tbackground-color: #8A0E19;\r\n\t\tcolor: #ffffff;\r\n\t\tpadding: 8px 15px;\r\n\t\tborder-radius: 8px;\r\n\t\tfont-size: 22px;\r\n\t\tfont-weight: bold;\r\n\t\tmargin: 0;\r\n\t}\r\n\t.item {\r\n\t\tdisplay: flex;\r\n\t\talign-items: flex-start;\r\n\t\tmargin-bottom: 12px;\r\n\t}\r\n\t.item .circle {\r\n\t\twidth: 8px;\r\n\t\theight: 8px;\r\n\t\tbackground-color: #000000;\r\n\t\tborder-radius: 50%;\r\n\t\tmargin-right: 12px;\r\n\t\tflex-shrink: 0;\r\n\t\tmargin-top: 8px;\r\n\t}\r\n\t.item p {\r\n\t\tmargin: 0;\r\n\t\tfont-size: 16px;\r\n\t\tline-height: 1.6;\r\n\t}\r\n\t.item p a {\r\n\t\tcolor: #8A0E19;\r\n\t\tfont-weight: normal;\r\n\t\ttext-decoration: none;\r\n\t}\r\n\t.item p a:hover {\r\n\t\ttext-decoration: underline;\r\n\t}\r\n\t.button-wrapper {\r\n\t\tmargin-top: 25px;\r\n\t}\r\n\t.submit-button {\r\n\t\tbackground-color: #8a0e19;\r\n\t\tcolor: #fff !important;\r\n\t\ttransition: all .3s ease;\r\n\t\tpadding: 12px 28px;\r\n\t\tdisplay: inline-block;\r\n\t\tborder-radius: 12px;\r\n\t\tfont-size: 16px;\r\n\t\tfont-weight: bold;\r\n\t\ttext-decoration: none;\r\n\t}\r\n\t.submit-button:hover {\r\n\t\tbackground-color: #991b26;\r\n\t}\r\n\t@media (max-width: 767px) {\r\n\t\t.takeaways-container {\r\n\t\t\theight: auto;\r\n\t\t\tpadding: 0;\r\n\t\t}\r\n\t\t.box-content {\r\n\t\t\tpadding: 24px;\r\n\t\t}\r\n\t\t.content,\r\n\t\t.main-content,\r\n\t\t.list-item {\r\n\t\t\twidth: 100%;\r\n\t\t}\r\n\t}\r\n<\/style>\r\n\r\n<div class=\"takeaways-container\">\r\n\t<div class=\"box-content\">\r\n\t\t<div class=\"content\">\r\n\t\t\t<div class=\"title\">\r\n\t\t\t\t<p>Key Takeaways<\/p>\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"main-content\">\r\n\t\t\t\t<div class=\"list-item\">\r\n\t\t\t\t\t<div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#what-is-construction-procurement\">Understand what construction procurement is and<\/a> how it helps manage materials, suppliers, and contractor services in construction projects.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#why-procurement-is-critical-in-construction-projects\">Learn why procurement is critical in<\/a> construction projects for controlling costs, ensuring material availability, and managing contractors.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p>Explore the key stages of construction procurement including planning, supplier selection, tendering, and contract management.<\/p><\/div><div class=\"item\">    <div class=\"circle\"><\/div>    <p><a href=\"#step-by-step-construction-procurement-strategy\">Discover the step-by-step strategy for<\/a> implementing an effective construction procurement framework in modern projects.<\/p><\/div>\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div>\n<p><span data-sheets-root=\"1\"><a href=\"https:\/\/www.hashmicro.com\/au\/free-product-tour\/?medium=free-product-tour\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/11\/Free-Product-Tour-resized.webp\" alt=\"Free Demo\"><\/a> <!-- <div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tTable of Content:\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div> -->\r\n\r\n<!-- <div class=\"dropdown-fixed-top\" id=\"dropdown-fixed-top\">\r\n\t<div class=\"row\">\r\n\t\t<p id=\"pilihDaftarIsi\">Table of Content<\/p>\r\n\t\t<p><i class=\"td-icon-menu-down\"><\/i><\/p>\r\n\t<\/div>\r\n\t\r\n\t<div>\r\n\t\t<ul id=\"list_toc_top\" class='list_toc'><\/ul>\r\n\t<\/div>\r\n<\/div> -->\r\n\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Table of Content<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n\r\n<style>\r\n\t@media (max-width: 992px) {\r\n\t\t#toc_group_article {\r\n\t\t\tpadding-top: 24px;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc_float {\r\n\t\tmax-height: calc(100vh - 250px);\r\n\t\toverflow-y: auto;\r\n\t}\r\n\t\r\n\t#list_toc_top {\r\n\t\tdisplay: none;\r\n\t\tbackground: #fff;\r\n\t\tmargin-bottom: 4px;\r\n\t}\r\n\t\r\n\t#list_toc_top li {\r\n\t\tdisplay: block;\r\n\t\tmargin-left: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\t\r\n\t#list_toc_top a {\r\n\t\tpadding: 5px;\r\n\t\tdisplay: block;\r\n\t}\r\n\t\r\n\t#list_toc_top.show {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t#list_toc_top a {\r\n\t\tcolor: #434343;\r\n\t\tborder-bottom: 1px solid #bbb;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top {\r\n\t\tposition: fixed;\r\n\t\ttop: 59px;\r\n\t\twidth: 100%;\r\n\t\tz-index: 99;\r\n\t\tborder-bottom: 2px solid #9c171e;\r\n\t\tpadding: 12px;\r\n\t\tbackground: #fff;\r\n\t\twidth: 100%;\r\n\t\tcursor: pointer;\r\n\t\tdisplay: none;\r\n\t\tleft: 0;\r\n\t\tbox-shadow: 0 -2px 7px 6px rgba(0, 0, 0, 0.17);\r\n\t}\r\n\t\r\n\t#dropdown-fixed-top.show {\r\n\t\tanimation: showAnim 0.5s ease;\r\n\t\tdisplay: block;\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t@keyframes showAnim {\r\n\t\tfrom {\r\n\t\t\tdisplay: none;\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\tto {\r\n\t\t\tdisplay: block;\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top #list_toc_top {\r\n\t\tmax-height: calc(50vh - 110px);\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row p {\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t#pilihDaftarIsi {\r\n\t\tmax-width: 100%;\r\n\t\toverflow: hidden;\r\n\t\twhite-space: nowrap;\r\n\t}\r\n\t\r\n\t@media (min-width: 1018px) {\r\n\t\t.dropdown-fixed-top {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_top li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor: #000;\r\n\t\tmargin-bottom: 6px;\r\n\t\tpadding-top: 2px;\r\n\t\tpadding-bottom: 2px;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t\tfont-size: 15px;\r\n\t\tline-height: 18px;\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\r\n<\/style>\r\n\r\n<!-- ToC styling  -->\r\n<style>\r\n\t\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 0px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 90% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\t\t\tright: 5%;\r\n\t\t}\r\n\t}\r\n\t\r\n\t<\/style>\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with the ID 'article-left'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within 'myarticle'\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title'); \/\/ Assuming header-faq is the element for TOC title\r\n\r\n\/\/ Sticky TOC and update heading\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 700;\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\tconst panel2 = document.querySelector(\"#toc .list\");\r\n\tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n  let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n  \/\/ Function to handle scroll and add\/remove .sticky class\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Highlight user progress as the heading comes\r\n    headers.forEach(header => {\r\n\t\tconst headerTop = header.offsetTop;\r\n\t\tconst headerHeight = header.clientHeight;\r\n\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \t\t\tconsole.log(\"current header text:\", currentHeaderText);\r\n\t\t\ttocTitle.textContent = currentHeaderText;\r\n\t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t\r\n\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\ttocTitle.textContent = 'Table of Content';\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader != '') {\r\n\t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\t\t\t  link.classList.add('active');\r\n\t\t  }\r\n\t  }\r\n    });\r\n\/\/     if (windowTop < triggerFooterPoint) {\r\n\/\/         toc.style.display = 'block';\r\n\/\/ \t}else{\r\n\/\/         toc.style.display = 'none';\r\n\/\/ \t}\r\n    \/\/ Update TOC title if sticky\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n        toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n        toc.style.backgroundColor = \"#FFF\";\r\n\t\tpanel2.style.height = '0px';\r\n\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t  if(window.innerWidth < 767){\r\n\/\/ \t\t\t  const tocs = document.querySelector('#toc.sticky');\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n       \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\t\t  }\r\n      }\r\n      if (currentHeader) {\r\n\/\/         console.log(\"activeLink:\", activeLink);\r\n        if (activeLink) {\r\n\/\/           tocTitle.textContent = activeLink.textContent; \/\/ Update TOC title\r\n          tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n        }\r\n      }\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset'; \/\/ Reset to original width\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n\t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\t\ticon.style.transform = \"rotate(180deg)\";\r\n    }\r\n  }\r\n\r\n    \/\/ Attach the scroll event listener to the window\r\n    window.addEventListener('scroll', handleScroll);\r\n\r\n    \/\/ Initial call to handleScroll to set the correct state on load\r\n    handleScroll();\r\n});\r\n\t\r\n\t\/\/ Open toggle TOC\r\n\t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\t\tvar toc = document.querySelector(\"#toc\");\r\n\t\tvar icon = document.querySelector(\".toc-icon\");\r\n\t\tconst tocTitle = document.querySelector('#toc-title');\r\n\t\tconst tocs = document.querySelector('#toc.sticky');\r\n \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\t\t  tocHeader.addEventListener(\"click\", function() {\r\n\t\t\tvar panel = this.nextElementSibling;\r\n\t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t\t\ttoc.style.paddingBottom = '6px'; \r\n\t\t\t\tif(window.innerWidth > 768){\r\n\t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\t\t\t\t}\r\n\t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\t\t\t} else {\r\n\t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n\t\t\t\ttoc.style.paddingBottom = '24px';\r\n\t\t\t \tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t  });\r\n\r\n\t\t  \/\/ Close TOC when a link inside it is clicked\r\n\t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\t\t  tocLinks.forEach(function(link) {\r\n\t\t\tlink.addEventListener(\"click\", function() {\r\n\t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t});\r\n\t\t  });\r\n\t\t});\r\n\r\n\r\n\r\n\t\r\n\/\/ \tmake the heading at the center of the viewport\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/     \/\/ Add click event listener to all links in the TOC list\r\n\/\/     document.querySelectorAll('#toc-list a').forEach(anchor => {\r\n\/\/         anchor.addEventListener('click', function (e) {\r\n\/\/             e.preventDefault(); \/\/ Prevent the default behavior of jumping to the anchor\r\n\/\/ \/\/ \t\t\tconsole.log(\"prevent default\");\r\n\/\/             const targetId = this.getAttribute('href').substring(1); \/\/ Get the ID of the target element\r\n\/\/             const targetElement = document.getElementById(targetId); \/\/ Get the target element\r\n\r\n\/\/             if (targetElement) {\r\n\/\/                 const headerHeight = document.querySelector('#toc .header').offsetHeight; \/\/ Get the height of the fixed header\r\n\/\/                 const windowHeight = window.innerHeight; \/\/ Get the height of the viewport\r\n\/\/                 const targetOffset = targetElement.offsetTop; \/\/ Get the top offset of the target element\r\n\/\/                 const scrollTo = targetOffset + (windowHeight \/ 2) + (headerHeight); \/\/ Calculate the scroll position to center the target element\r\n\r\n\/\/                 \/\/ Scroll to the calculated position smoothly\r\n\/\/                 window.scrollTo({\r\n\/\/                     top: scrollTo,\r\n\/\/                     behavior: 'smooth'\r\n\/\/                 });\r\n\/\/             }\r\n\/\/         });\r\n\/\/     });\r\n\/\/ });\r\n<\/script>\r\n\r\n<!-- START script lama -->\r\n<!-- <script>\r\n\/\/ \tvar pilihDaftarIsi = document.getElementById('pilihDaftarIsi');\r\n\t\r\n\/\/ \tdocument.addEventListener('DOMContentLoaded', function() {\r\n\/\/ \t\tvar dropdownFixedTop = document.querySelector('.dropdown-fixed-top');\r\n\r\n\/\/ \t\tdropdownFixedTop.addEventListener('click', function() {\r\n\/\/ \t\t\tvar dropdownContent = this.querySelector('.list_toc');\r\n\/\/ \t\t\tdropdownContent.classList.toggle('show');\r\n\/\/ \t\t});\r\n\r\n\/\/ \t\twindow.addEventListener('click', function(event) {\r\n\/\/ \t\t\tvar listTocTop = document.getElementById('list_toc_top');\r\n\r\n\/\/ \t\t\tif (!dropdownFixedTop.contains(event.target)) {\r\n\/\/ \t\t\t\tlistTocTop.classList.remove('show');\r\n\/\/ \t\t\t}\r\n\/\/ \t\t});\r\n\/\/ \t});\r\n\t\r\n\/\/ \tvar daftarIsiContainer = document.getElementById('toc_group_article');\r\n\/\/ \tvar dropdownFixedTop = document.getElementById('dropdown-fixed-top');\r\n\/\/     var triggered = false; \/\/ Flag to keep track of whether the function has been triggered\r\n\r\n\/\/     window.addEventListener('scroll', function() {\r\n\/\/         if (!triggered && isCompletelyScrolledPast(daftarIsiContainer)) {\r\n\/\/             showSectionDropdownFixedTop(false);\r\n\/\/             triggered = true;\r\n\/\/         } else if (triggered && !isCompletelyScrolledPast(daftarIsiContainer)) {\r\n\/\/             showSectionDropdownFixedTop(true);\r\n\/\/             triggered = false;\r\n\/\/         }\r\n\/\/     });\r\n\r\n\/\/     function isCompletelyScrolledPast(element) {\r\n\/\/         var elementTop = element.getBoundingClientRect().top;\r\n\/\/         var elementBottom = element.getBoundingClientRect().bottom;\r\n\/\/         return elementTop < 0 && elementBottom < 0;\r\n\/\/     }\r\n\r\n\/\/     function showSectionDropdownFixedTop(show) {\r\n\/\/ \t\tif (show) {\r\n\/\/ \t\t\tdropdownFixedTop.classList.remove(\"show\");\r\n\/\/ \t\t} else {\r\n\/\/ \t\t\tdropdownFixedTop.classList.add(\"show\");\r\n\/\/ \t\t}\r\n\/\/     }\r\n<\/script> -->\r\n<!-- <script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n\t\t  pilihDaftarIsi.innerHTML = a.textContent;\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float', 'list_toc_top']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script> -->\r\n<!-- END script lama -->\r\n\t\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\t\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!--  <script>\r\n\tdocument.addEventListener(\"DOMContentLoaded\", function() {\r\nToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\"\r\n        Fungsi untuk mengubah teks menjadi format id\r\n        function formatId(text) {\r\n            return text.trim().replace(\/[^\\w\\d]+\/g, '_');\r\n        }\r\n\r\n        \/\/ Fungsi untuk membuat nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Membuat objek untuk menyimpan daftar h2 dan h3 beserta judulnya\r\n        const headings = [];\r\n\r\n           \/\/ Mengambil semua elemen h2 dan h3\r\n        const elements = document.querySelectorAll('.td-post-content h2');\r\n\t\t\t\/\/, .td-post-content h3\r\n\r\n        elements.forEach(element => {\r\n            if (element.tagName === 'H2') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n\t\t\t\tif (element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Kalau Key Takeaways, jangan dimasukin\r\n                headings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n            } else if (element.tagName === 'H3') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n                if (headings.length > 0) {\r\n                    headings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n                }\r\n            }\r\n        });\r\n\r\n        \/\/ Membuat list HTML dari objek headings\r\n        const ul = document.getElementById('list_toc');\r\n        let currentUl = ul;\r\n        headings.forEach(heading => {\r\n            const li = document.createElement('li');\r\n            const a = document.createElement('a');\r\n            a.textContent = heading.title;\r\n            a.href = `#${heading.id}`;\r\n            li.appendChild(a);\r\n\r\n            if (heading.level === 'h2') {\r\n                \/\/ Menyimpan ul saat ini untuk menambahkan nested ul\r\n                currentUl = li;\r\n                ul.appendChild(li);\r\n            } else if (heading.level === 'h3') {\r\n                if (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n                    \/\/ Jika belum ada nested ul, buat satu\r\n                    const nestedUl = document.createElement('ul');\r\n                    currentUl.appendChild(nestedUl);\r\n                    currentUl = nestedUl;\r\n                }\r\n                currentUl.appendChild(li);\r\n            }\r\n\r\n            createNestedList(li, heading.children);\r\n        });\r\n\t\tDapatkan elemen ul dengan id 'list_toc_float'\r\nconst ulFloat = document.getElementById('list_toc');\r\nconst ulJourney = document.getElementById('list_journey');\r\n\r\nDapatkan isi (child elements) dari ul dengan id 'list_toc_float'\r\n\tif (ulFloat !== null) {\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\t\tconst ulTocTop = document.getElementById('list_toc_top');\r\n\t\tif ((ulToc !== null || ulToc !== undefined) && window.innerWidth > 1018){\r\n\t\t\tulToc.append(...clonedChildren);\r\n\t\t} else {\r\n\t\t\tulTocTop.append(...clonedChildren);\r\n\t\t}\r\n\t} \r\n\r\n\tif (ulJourney !== null) {\r\n\t\tconst clonedChildrenJourney = ulJourney.cloneNode(true).children;\r\n\t\tconst ulTocJourney = document.getElementById('list_toc_journey');\r\n\t\tulTocJourney.append(...clonedChildrenJourney);\r\n\t} \r\n\t\r\n        Fungsi untuk mengambil tinggi navbar\r\n        function getNavbarHeight() {\r\n            const navbar = document.getElementById('tdi_34');\r\n            return navbar ? navbar.offsetHeight : 0;\r\n        }\r\n\r\n        \/\/ Fungsi untuk menambahkan offset posisi scroll\r\n        function scrollToElementWithOffset(elementId) {\r\n            const element = document.getElementById(elementId);\r\n            if (element) {\r\n                const offset = getNavbarHeight();\r\n                const elementPosition = element.getBoundingClientRect().top;\r\n                const offsetPosition = elementPosition - offset-40;\r\n\r\n                window.scrollBy({\r\n                    top: offsetPosition,\r\n                    behavior: 'smooth'\r\n                });\r\n            }\r\n        }\r\n\r\n        \/\/ Fungsi untuk menangani klik pada tautan judul\r\n        function handleTitleClick(event) {\r\n            event.preventDefault();\r\n            const href = event.target.getAttribute('href').substr(1);\r\n            scrollToElementWithOffset(href);\r\n        }\r\n\r\n        \/\/ Tambahkan event listener untuk semua tautan judul\r\n        const titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n        titleLinks.forEach(link => {\r\n            link.addEventListener('click', handleTitleClick);\r\n        });\r\n\t});\r\n    <\/script> -->\r\n<\/span><\/p>\n<h2 id=\"what-is-construction-procurement\"><strong>What Is Construction Procurement?<\/strong><\/h2>\n<p data-start=\"981\" data-end=\"1164\">Construction procurement refers to the structured process of sourcing, negotiating, and acquiring the materials, services, and contractors required to complete a construction project.<\/p>\n<p data-start=\"1166\" data-end=\"1422\">Unlike simple purchasing, procurement in construction involves strategic planning that begins during the early stages of project development. It includes evaluating suppliers, managing contracts, and coordinating deliveries to support the project schedule.<\/p>\n<p data-start=\"1424\" data-end=\"1582\">Because construction projects are highly customized, procurement must adapt to different project scopes, supply chain conditions, and regulatory requirements, often requiring a dedicated <a href=\"https:\/\/www.hashmicro.com\/au\/blog\/procurement-management-system\/\"><strong data-start=\"1603\" data-end=\"1641\">purchasing system for construction<\/strong> <\/a>to manage complex procurement workflows efficiently.<\/p>\n<h3 data-start=\"1598\" data-end=\"1636\"><strong>Scope of Construction Procurement<\/strong><\/h3>\n<p data-start=\"1638\" data-end=\"1851\">The scope of construction procurement extends beyond purchasing raw materials. It includes sourcing equipment, prefabricated components, and specialized contractor services needed throughout the project lifecycle.<\/p>\n<p data-start=\"1853\" data-end=\"2011\">Common procurement categories include building materials such as steel, concrete, and timber, along with machinery, site equipment, and professional services.<\/p>\n<p data-start=\"2013\" data-end=\"2156\">Effective procurement ensures that these resources are delivered in the correct quantities and at the right stage of the construction schedule.<\/p>\n<h3 data-section-id=\"ynmkvx\" data-start=\"2163\" data-end=\"2171\"><strong>Procurement vs Purchasing in Construction<\/strong><\/h3>\n<p data-start=\"2220\" data-end=\"2445\">Purchasing refers to the transactional act of buying goods or services. Procurement, however, involves a broader strategic process that includes planning, supplier evaluation, contract negotiation, and performance monitoring.<\/p>\n<p data-start=\"2447\" data-end=\"2582\">In construction projects, procurement decisions often influence overall project cost, schedule reliability, and supply chain stability.<\/p>\n<p data-start=\"2584\" data-end=\"2746\">By treating procurement as a strategic function rather than a simple transaction, construction firms can improve both operational efficiency and project outcomes.<\/p>\n<h3 data-section-id=\"ynmkvx\" data-start=\"2753\" data-end=\"2761\"><strong>The Strategic Role of Procurement in Construction Projects<\/strong><\/h3>\n<p data-start=\"2827\" data-end=\"3064\">Procurement serves as the link between project design and physical construction. Once architectural plans and engineering specifications are finalized, procurement teams translate those plans into supplier agreements and material orders.<\/p>\n<p data-start=\"3066\" data-end=\"3197\">This process ensures that the right materials, equipment, and contractor services are available when construction activities begin. A well-managed procurement strategy helps maintain project momentum while reducing risks related to delays, shortages, or unexpected cost increases.<\/p>\n<p data-start=\"3066\" data-end=\"3197\">Many companies now rely on <a href=\"https:\/\/www.hashmicro.com\/au\/hash-construction-software\"><strong data-start=\"2313\" data-end=\"2353\">software for construction purchasing<\/strong><\/a> to streamline supplier management, contract tracking, and procurement planning.<\/p>\n<h2 data-section-id=\"1p2dl00\" data-start=\"148\" data-end=\"203\"><strong>Why Procurement Is Critical in Construction Projects<\/strong><\/h2>\n<p data-start=\"205\" data-end=\"432\">Construction projects depend on the precise coordination of materials, labor, equipment, and external contractors. Procurement plays a central role in ensuring that these resources are sourced efficiently and delivered on time.<\/p>\n<p data-start=\"434\" data-end=\"678\">Without a structured procurement strategy, projects can quickly face delays, cost overruns, and supply shortages. Effective procurement helps construction firms maintain financial control, supply chain stability, and consistent project quality.<\/p>\n<h3 data-section-id=\"jv2w00\" data-start=\"694\" data-end=\"723\"><strong>Controlling Project Costs<\/strong><\/h3>\n<p data-start=\"725\" data-end=\"889\">Procurement directly influences construction project budgets. Materials, subcontractors, and equipment typically account for a large portion of total project costs.<\/p>\n<p data-start=\"891\" data-end=\"1051\">Through competitive tendering, supplier negotiations, and long term vendor partnerships, procurement teams can secure more favorable pricing and contract terms.<\/p>\n<p data-start=\"1053\" data-end=\"1268\">Strategic procurement also considers total cost of ownership, including delivery, storage, and maintenance costs. This broader perspective helps prevent hidden expenses that can affect overall project profitability.<\/p>\n<h3 data-section-id=\"ynmkvx\" data-start=\"1275\" data-end=\"1283\"><strong>Ensuring Material Availability<\/strong><\/h3>\n<p data-start=\"1320\" data-end=\"1516\">Construction schedules depend heavily on the timely delivery of materials. Delays in critical components can disrupt the entire project timeline and create costly downtime for labor and equipment.<\/p>\n<p data-start=\"1518\" data-end=\"1707\">Procurement teams coordinate supplier schedules and logistics to ensure that materials arrive when they are needed. This reduces both supply interruptions and unnecessary inventory storage.<\/p>\n<p data-start=\"1709\" data-end=\"1857\">By building reliable supplier networks and identifying backup sources, procurement professionals can minimize the risks of supply chain disruptions.<\/p>\n<h3 data-section-id=\"13w8r8y\" data-start=\"1873\" data-end=\"1911\"><strong>Managing Contractors and Suppliers<\/strong><\/h3>\n<p data-start=\"1913\" data-end=\"2137\">Construction projects rely on a large network of contractors, subcontractors, and suppliers. Procurement helps select partners who have the technical capability, reliability, and financial stability required for the project.<\/p>\n<p data-start=\"2139\" data-end=\"2268\">The procurement process also establishes contracts that define responsibilities, timelines, quality standards, and payment terms.<\/p>\n<p data-start=\"2270\" data-end=\"2426\">Effective supplier management ensures that vendors meet their commitments and maintain consistent performance throughout the construction project lifecycle.<\/p>\n<h2 data-section-id=\"ruidse\" data-start=\"2440\" data-end=\"2485\"><strong>Common Methods of Construction Procurement<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-1615\" src=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-methods-e1773371429584.webp\" alt=\"common construction procurement methods including design bid build and design build models\" width=\"1360\" height=\"624\" srcset=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-methods-e1773371429584.webp 1360w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-methods-e1773371429584-300x138.webp 300w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-methods-e1773371429584-1024x470.webp 1024w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-methods-e1773371429584-768x352.webp 768w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-methods-e1773371429584-915x420.webp 915w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-methods-e1773371429584-150x69.webp 150w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-methods-e1773371429584-696x319.webp 696w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-methods-e1773371429584-1068x490.webp 1068w\" sizes=\"(max-width: 1360px) 100vw, 1360px\" \/><\/p>\n<p data-start=\"2487\" data-end=\"2681\">There is no single procurement approach that fits every construction project. The appropriate method depends on factors such as project size, complexity, budget constraints, and risk allocation.<\/p>\n<p data-start=\"2683\" data-end=\"2830\">Different procurement frameworks determine how design responsibilities, construction activities, and financial risks are shared among stakeholders.<\/p>\n<p data-start=\"2832\" data-end=\"2946\">Understanding these methods helps project owners choose the structure that best supports their project objectives.<\/p>\n<h3 data-section-id=\"1esizd4\" data-start=\"2962\" data-end=\"2988\"><strong>Design\u2013Bid\u2013Build (DBB)<\/strong><\/h3>\n<p data-start=\"2990\" data-end=\"3182\">Design\u2013Bid\u2013Build is one of the most traditional procurement methods in construction. In this model, the project owner first hires designers to complete the architectural and engineering plans.<\/p>\n<p data-start=\"3184\" data-end=\"3316\">Once the design phase is finished, contractors submit bids to perform the construction work based on the finalized design documents.<\/p>\n<p data-start=\"3318\" data-end=\"3478\">This method provides clear cost visibility and competitive bidding, but it can also extend project timelines because design and construction occur sequentially.<\/p>\n<h3 data-section-id=\"mgli5y\" data-start=\"3494\" data-end=\"3515\"><strong>Design\u2013Build (DB)<\/strong><\/h3>\n<p data-start=\"3517\" data-end=\"3715\">Design\u2013Build combines both design and construction responsibilities under a single contract. Instead of hiring designers and contractors separately, the project owner works with one integrated team.<\/p>\n<p data-start=\"3717\" data-end=\"3822\">This structure encourages collaboration between designers and builders from the beginning of the project.<\/p>\n<p data-start=\"3824\" data-end=\"3961\">Because design and construction phases can overlap, Design\u2013Build projects often progress faster and experience fewer coordination issues.<\/p>\n<h3 data-section-id=\"1ss2p1j\" data-start=\"3977\" data-end=\"4009\"><strong>Construction Management (CM)<\/strong><\/h3>\n<p data-start=\"4011\" data-end=\"4143\">In the Construction Management model, a specialized construction manager is appointed to oversee the project on behalf of the owner.<\/p>\n<p data-start=\"4145\" data-end=\"4311\">The construction manager helps coordinate design, budgeting, scheduling, and contractor selection while ensuring that the project remains aligned with its objectives.<\/p>\n<p data-start=\"4313\" data-end=\"4462\">This method is particularly useful for large or complex projects where professional oversight is needed to manage multiple contractors and suppliers.<\/p>\n<h3 data-section-id=\"80evtw\" data-start=\"4478\" data-end=\"4514\"><strong>Public\u2013Private Partnership (PPP)<\/strong><\/h3>\n<p data-start=\"4516\" data-end=\"4664\">Public\u2013Private Partnerships involve collaboration between government agencies and private sector companies to deliver large infrastructure projects.<\/p>\n<p data-start=\"4666\" data-end=\"4821\">In this model, private companies may take responsibility for designing, financing, building, and sometimes operating the project over a long term contract.<\/p>\n<p data-start=\"4823\" data-end=\"4982\">PPP structures allow governments to develop major infrastructure projects while sharing financial risks and operational responsibilities with private partners.<\/p>\n<h2 data-section-id=\"1li580a\" data-start=\"1145\" data-end=\"1194\"><strong>Stages of the Construction Procurement Process<\/strong><\/h2>\n<p data-start=\"1196\" data-end=\"1349\">Construction procurement follows a structured lifecycle that ensures materials, contractors, and services are sourced efficiently throughout the project.<\/p>\n<p data-start=\"1351\" data-end=\"1495\">Each stage helps reduce financial risks, maintain supply chain stability, and ensure that project resources are delivered according to schedule.<\/p>\n<p data-start=\"1497\" data-end=\"1646\">By following a clear procurement process, construction teams can coordinate suppliers, manage contracts, and maintain consistent project performance.<\/p>\n<h3 data-section-id=\"1soh009\" data-start=\"1662\" data-end=\"1699\"><strong>Project Planning and Requirements<\/strong><\/h3>\n<p data-start=\"1701\" data-end=\"1899\">The procurement process begins with defining the project\u2019s material, equipment, and service requirements. This stage involves reviewing design documents, project scope, and technical specifications.<\/p>\n<p data-start=\"1901\" data-end=\"2025\">Procurement teams often work with engineers and cost estimators to prepare a detailed bill of quantities and project budget.<\/p>\n<p data-start=\"2027\" data-end=\"2145\">Clear planning helps prevent procurement errors, unexpected shortages, and unnecessary purchasing during construction.<\/p>\n<h3 data-section-id=\"1vhtm12\" data-start=\"2161\" data-end=\"2196\"><strong>Vendor and Contractor Selection<\/strong><\/h3>\n<p data-start=\"2198\" data-end=\"2307\">After defining project requirements, procurement teams begin identifying potential suppliers and contractors.<\/p>\n<p data-start=\"2309\" data-end=\"2457\">This stage involves evaluating vendors based on experience, technical capability, safety records, financial stability, and past project performance.<\/p>\n<p data-start=\"2459\" data-end=\"2566\">A structured prequalification process ensures that only reliable partners participate in the bidding stage.<\/p>\n<h3 data-section-id=\"50axps\" data-start=\"2582\" data-end=\"2620\"><strong>Tendering and Contract Negotiation<\/strong><\/h3>\n<p data-start=\"2622\" data-end=\"2729\">Once qualified vendors are identified, organizations issue requests for proposals or invitations to tender.<\/p>\n<p data-start=\"2731\" data-end=\"2842\">Suppliers submit bids that outline pricing, timelines, technical capabilities, and project delivery approaches.<\/p>\n<p data-start=\"2844\" data-end=\"2998\">Procurement teams then evaluate these proposals and negotiate contract terms to ensure fair pricing, clear responsibilities, and manageable project risks.<\/p>\n<h3 data-section-id=\"1s8kh82\" data-start=\"3014\" data-end=\"3058\"><strong>Contract Award and Procurement Execution<\/strong><\/h3>\n<p data-start=\"3060\" data-end=\"3164\">After negotiations are completed, the selected suppliers and contractors are formally awarded contracts.<\/p>\n<p data-start=\"3166\" data-end=\"3273\">At this stage, procurement teams finalize delivery schedules, payment terms, and supplier responsibilities.<\/p>\n<p data-start=\"3275\" data-end=\"3385\">Clear contracts ensure that project stakeholders understand expectations before construction activities begin.<\/p>\n<h3 data-section-id=\"1tlyvg6\" data-start=\"3401\" data-end=\"3451\"><strong>Performance Monitoring and Delivery Management<\/strong><\/h3>\n<p data-start=\"3453\" data-end=\"3530\">Procurement responsibilities continue throughout the project execution phase.<\/p>\n<p data-start=\"3532\" data-end=\"3669\">Teams monitor supplier performance, track material deliveries, and ensure contractors comply with agreed timelines and quality standards.<\/p>\n<p data-start=\"3671\" data-end=\"3767\">Regular performance reviews help identify issues early and maintain consistent project progress.<\/p>\n<p data-start=\"3671\" data-end=\"3767\"><style>\r\n    #custom-quote {\r\n        background-color: #f0f0f0;\r\n        padding: 20px;\r\n        border-radius: 12px;\r\n        margin: 20px;\r\n        display: flex;\r\n        flex-direction: column;\r\n    }\r\n\r\n    #custom-quote .quote-body {\r\n        display: flex;\r\n        flex-direction: row;\r\n        align-items: flex-start;\r\n        gap: 15px;\r\n        font-size: 16px;\r\n        line-height: 1.5;\r\n        font-style: italic;\r\n    }\r\n\r\n    #custom-quote .quote-icon {\r\n        width: 40px;\r\n        height: 40px;\r\n        flex-shrink: 0;\r\n    }\r\n\r\n    #custom-quote .quote-author-wrapper {\r\n        margin-top: 15px;\r\n        align-self: flex-start;\r\n        margin-left: 55px; \r\n\t\tmargin-bottom: 0px;\r\n    }\r\n\r\n    #custom-quote em {\r\n        font-family: 'Roboto Serif', serif !important;\r\n        font-size: 12px;\r\n        font-weight: bold;\r\n        font-style: normal;\r\n    }\r\n\r\n    @media screen and (max-width: 768px) {\r\n        #custom-quote {\r\n            margin: 15px 0;\r\n            padding: 15px;\r\n        }\r\n        \r\n        #custom-quote .quote-body {\r\n            gap: 12px;\r\n        }\r\n\r\n        #custom-quote .quote-author-wrapper {\r\n            margin-left: 52px;\r\n        }\r\n    }\r\n\r\n    @media screen and (max-width: 480px) {\r\n        #custom-quote {\r\n            margin: 10px 0;\r\n            padding: 12px;\r\n        }\r\n\r\n        #custom-quote .quote-body {\r\n            font-size: 14px;\r\n            gap: 10px;\r\n        }\r\n\r\n        #custom-quote .quote-icon {\r\n            width: 32px;\r\n            height: 32px;\r\n        }\r\n\r\n        #custom-quote .quote-author-wrapper {\r\n            margin-top: 10px;\r\n            margin-left: 42px;\r\n        }\r\n    }\r\n<\/style>\r\n\r\n<div id=\"custom-quote\">\r\n    <div class=\"quote-body\">\r\n        <img decoding=\"async\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/12\/quote.webp\" alt=\"Quote Icon\" class=\"quote-icon\">\r\n        <div>\r\n            Effective construction procurement ensures that materials, suppliers, and contractors are aligned with project timelines, budgets, and quality standards.        <\/div>\r\n    <\/div>\r\n    <p class=\"quote-author-wrapper\">\r\n        <em>Luke Sheridan, Head of Finance Dept.<\/em>\r\n    <\/p>\r\n<\/div><\/p>\n<h2 data-section-id=\"15exysc\" data-start=\"3781\" data-end=\"3833\"><strong>Industry Applications of Construction Procurement<\/strong><\/h2>\n<p data-start=\"3835\" data-end=\"4025\">Construction procurement strategies vary depending on the type of project being delivered. Each sector has unique supply chain requirements, regulatory standards, and operational challenges.<\/p>\n<p data-start=\"4027\" data-end=\"4163\">Understanding these differences helps procurement teams develop sourcing strategies that align with the specific needs of each industry.<\/p>\n<h3 data-section-id=\"w4cgxd\" data-start=\"4179\" data-end=\"4228\"><strong>Commercial Real Estate and High Rise Projects<\/strong><\/h3>\n<p data-start=\"4230\" data-end=\"4339\">Commercial construction projects often involve complex structural systems and customized building components.<\/p>\n<p data-start=\"4341\" data-end=\"4462\">Procurement teams must source specialized materials such as curtain wall systems, elevators, and advanced HVAC equipment.<\/p>\n<p data-start=\"4464\" data-end=\"4591\">Because high rise developments operate under tight schedules, supplier reliability and long lead time planning become critical.<\/p>\n<h3 data-section-id=\"qzjcyo\" data-start=\"4607\" data-end=\"4648\"><strong>Civil Infrastructure and Public Works<\/strong><\/h3>\n<p data-start=\"4650\" data-end=\"4780\">Infrastructure projects such as highways, bridges, and transit systems rely heavily on bulk materials and large scale contractors.<\/p>\n<p data-start=\"4782\" data-end=\"4909\">Procurement in this sector is typically governed by strict public procurement regulations and competitive bidding requirements.<\/p>\n<p data-start=\"4911\" data-end=\"5014\">Teams must also manage long supply chains for commodities like concrete, asphalt, and structural steel.<\/p>\n<h3 data-section-id=\"1qg50tw\" data-start=\"5030\" data-end=\"5071\"><strong>Healthcare and Specialized Facilities<\/strong><\/h3>\n<p data-start=\"5073\" data-end=\"5170\">Healthcare construction requires extremely high standards of precision and regulatory compliance.<\/p>\n<p data-start=\"5172\" data-end=\"5283\">Procurement teams must source specialized medical equipment, sterile materials, and complex mechanical systems.<\/p>\n<p data-start=\"5285\" data-end=\"5409\">Strict supplier vetting ensures that materials and contractors meet healthcare safety standards and industry certifications.<\/p>\n<h2 data-section-id=\"13vv96u\" data-start=\"282\" data-end=\"331\"><strong>Step by Step Construction Procurement Strategy<\/strong><\/h2>\n<p data-start=\"333\" data-end=\"580\">Implementing an effective procurement strategy requires a structured approach that aligns sourcing decisions with overall project objectives. Without clear procedures, procurement activities can easily become inconsistent and difficult to control.<\/p>\n<p data-start=\"582\" data-end=\"773\">By following a step by step framework, construction teams can manage suppliers more efficiently, reduce procurement risks, and maintain stronger cost control throughout the project lifecycle.<\/p>\n<h3 data-section-id=\"jtt1t1\" data-start=\"789\" data-end=\"836\"><strong>Step 1: Needs Assessment and Spend Analysis<\/strong><\/h3>\n<p data-start=\"838\" data-end=\"1084\">The first step in construction procurement is identifying the materials, services, and equipment required for the project. Procurement teams review design specifications, project scope, and engineering documentation to determine purchasing needs.<\/p>\n<p data-start=\"1086\" data-end=\"1307\">Historical spending data can also provide valuable insights into supplier pricing and procurement patterns. This analysis helps organizations identify cost saving opportunities and establish realistic procurement budgets.<\/p>\n<h3 data-section-id=\"xilyv4\" data-start=\"1323\" data-end=\"1380\"><strong>Step 2: Supplier Prequalification and Risk Assessment<\/strong><\/h3>\n<p data-start=\"1382\" data-end=\"1633\">Before initiating the bidding process, procurement teams typically conduct a supplier prequalification stage. This process evaluates vendors based on experience, financial stability, safety records, and capacity to deliver large construction projects.<\/p>\n<p data-start=\"1635\" data-end=\"1843\">A structured risk assessment ensures that only reliable and capable suppliers move forward in the procurement process. This reduces the likelihood of project disruptions caused by underperforming contractors.<\/p>\n<h3 data-section-id=\"uinnpg\" data-start=\"1859\" data-end=\"1911\"><strong>Step 3: Defining Contract and Delivery Framework<\/strong><\/h3>\n<p data-start=\"1913\" data-end=\"2134\">Once qualified suppliers are identified, procurement teams define the contractual structure for the project. Contracts specify responsibilities, payment terms, project milestones, and risk allocation between stakeholders.<\/p>\n<p data-start=\"2136\" data-end=\"2324\">A well defined contract framework ensures that expectations are clear before construction begins. This helps minimize disputes and provides a clear reference point for project performance.<\/p>\n<h3 data-section-id=\"a6rulb\" data-start=\"2340\" data-end=\"2392\"><strong>Step 4: Technology Integration and E Procurement<\/strong><\/h3>\n<p data-start=\"2394\" data-end=\"2626\">Modern construction procurement increasingly relies on digital procurement systems. E procurement platforms allow organizations to manage supplier communication, compare proposals, and track procurement data in a centralized system.<\/p>\n<p data-start=\"2628\" data-end=\"2810\"><a href=\"https:\/\/www.hashmicro.com\/au\/blog\/procurement-software\/\">These purchasing tools<\/a> can improve transparency and reduce administrative errors during the procurement process. They also enable procurement teams to make faster, more informed sourcing decisions.<\/p>\n<h3 data-section-id=\"fb5l95\" data-start=\"2826\" data-end=\"2877\"><strong>Step 5: Performance Monitoring and KPI Tracking<\/strong><\/h3>\n<p data-start=\"2879\" data-end=\"3089\">Procurement responsibilities continue even after contracts are awarded. Procurement teams must monitor supplier performance to ensure that materials and services meet project timelines and quality requirements.<\/p>\n<p data-start=\"3091\" data-end=\"3316\">Tracking procurement key performance indicators helps identify issues early and maintain consistent supplier accountability. Continuous monitoring also provides insights that improve procurement strategies in future projects.<\/p>\n<h2 data-section-id=\"1jau9f9\" data-start=\"3330\" data-end=\"3376\"><strong>Common Pitfalls in Construction Procurement<\/strong><\/h2>\n<p data-start=\"3378\" data-end=\"3580\">Even well planned procurement strategies can face challenges during project execution. Understanding common procurement mistakes helps organizations reduce operational risks and improve decision making.<\/p>\n<p data-start=\"3582\" data-end=\"3682\">The following pitfalls frequently occur in construction procurement and should be carefully avoided:<\/p>\n<ul>\n<li data-start=\"3686\" data-end=\"3945\"><strong data-start=\"3686\" data-end=\"3712\">The Lowest Bid Fallacy<\/strong><br data-start=\"3712\" data-end=\"3715\" \/>Selecting contractors based solely on the lowest price can lead to quality issues and unexpected change orders. A best value evaluation approach that considers experience and reliability often produces better long term outcomes.<\/li>\n<li data-start=\"3686\" data-end=\"3945\"><strong data-start=\"3949\" data-end=\"3974\">Poor Scope Definition<\/strong><br data-start=\"3974\" data-end=\"3977\" \/>Incomplete project specifications can create confusion during the tendering process. When the scope of work is unclear, suppliers may submit inaccurate bids that result in cost overruns later.<\/li>\n<li data-start=\"3686\" data-end=\"3945\"><strong data-start=\"4175\" data-end=\"4224\">Inflexible Contracts During Market Volatility<\/strong><br data-start=\"4224\" data-end=\"4227\" \/>Construction material prices can fluctuate significantly due to global supply conditions. Contracts that lack price adjustment mechanisms may create financial pressure for both contractors and project owners.<\/li>\n<li data-start=\"3686\" data-end=\"3945\"><strong data-start=\"4441\" data-end=\"4476\">Lack of Supply Chain Visibility<\/strong><br data-start=\"4476\" data-end=\"4479\" \/>Many procurement teams focus only on direct suppliers without understanding the broader supply network. Limited visibility into upstream suppliers can expose projects to unexpected material shortages or delivery delays.<\/li>\n<\/ul>\n<h2 data-section-id=\"zbef39\" data-start=\"4714\" data-end=\"4760\"><strong>Advanced Trends in Construction Procurement<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-1618\" src=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-trends-e1773371798425.webp\" alt=\"modern construction procurement trends including 5d bim ai analytics and sustainable sourcing\" width=\"1235\" height=\"567\" srcset=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-trends-e1773371798425.webp 1235w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-trends-e1773371798425-300x138.webp 300w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-trends-e1773371798425-1024x470.webp 1024w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-trends-e1773371798425-768x353.webp 768w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-trends-e1773371798425-915x420.webp 915w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-trends-e1773371798425-150x69.webp 150w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-trends-e1773371798425-696x320.webp 696w, https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-trends-e1773371798425-1068x490.webp 1068w\" sizes=\"(max-width: 1235px) 100vw, 1235px\" \/><\/p>\n<p data-start=\"4762\" data-end=\"5040\">Construction procurement is increasingly supported by digital technologies and data driven decision making. As projects grow more complex, procurement teams rely on advanced tools to improve planning, supplier coordination, and cost control.<\/p>\n<p data-start=\"5042\" data-end=\"5148\">These emerging trends are reshaping how organizations plan, manage, and optimize construction procurement.<\/p>\n<h3 data-section-id=\"140bdyh\" data-start=\"5164\" data-end=\"5199\"><strong>5D BIM for Procurement Planning<\/strong><\/h3>\n<p data-start=\"5201\" data-end=\"5412\">5D Building Information Modeling integrates cost estimation and scheduling data into digital building models. This allows procurement teams to generate accurate material quantities directly from project designs.<\/p>\n<p data-start=\"5414\" data-end=\"5580\">When design changes occur, the BIM model automatically updates cost and quantity information. This improves procurement accuracy and reduces manual estimation errors.<\/p>\n<h3 data-section-id=\"1ol7dfx\" data-start=\"5596\" data-end=\"5642\"><strong>Predictive Analytics and AI in Procurement<\/strong><\/h3>\n<p data-start=\"5644\" data-end=\"5883\">Artificial intelligence and predictive analytics are increasingly used to analyze procurement data and supplier performance. These technologies help organizations forecast material price fluctuations and identify procurement risks earlier.<\/p>\n<p data-start=\"5885\" data-end=\"6012\">Data driven insights allow procurement teams to make better purchasing decisions and plan sourcing strategies more effectively.<\/p>\n<h3 data-section-id=\"163m8q7\" data-start=\"6028\" data-end=\"6068\"><strong>Sustainable and Circular Procurement<\/strong><\/h3>\n<p data-start=\"6070\" data-end=\"6280\">Sustainability has become a major priority in modern construction procurement. Many organizations now prioritize environmentally responsible materials and suppliers that follow sustainable production practices.<\/p>\n<p data-start=\"6282\" data-end=\"6452\">Circular procurement also promotes the reuse and recycling of construction materials. This approach helps reduce environmental impact while improving resource efficiency.<\/p>\n<h3 data-section-id=\"1die9wi\" data-start=\"6468\" data-end=\"6518\"><strong>Lean Construction and Just In Time Procurement<\/strong><\/h3>\n<p data-start=\"6520\" data-end=\"6729\">Lean construction principles focus on reducing operational waste and improving project efficiency. One key approach is just in time procurement, where materials are delivered only when they are needed on site.<\/p>\n<p data-start=\"6731\" data-end=\"6931\">This reduces storage requirements, minimizes material damage, and improves overall construction site organization. As a result, projects can operate more efficiently while controlling inventory costs.<\/p>\n<h2 data-section-id=\"zmy0h0\" data-start=\"6945\" data-end=\"6997\"><strong>Measuring Procurement Performance in Construction<\/strong><\/h2>\n<p data-start=\"6999\" data-end=\"7233\">Evaluating procurement performance helps organizations understand how sourcing decisions influence overall project outcomes. Without clear measurement, it becomes difficult to identify inefficiencies or improve procurement strategies.<\/p>\n<p data-start=\"7235\" data-end=\"7365\">Construction firms typically rely on several performance indicators to monitor procurement effectiveness and supplier reliability.<\/p>\n<h3 data-section-id=\"tdahwt\" data-start=\"7381\" data-end=\"7408\"><strong>Cost Efficiency Metrics<\/strong><\/h3>\n<p data-start=\"7410\" data-end=\"7592\">Cost efficiency metrics measure how effectively procurement teams manage project budgets. These indicators evaluate whether materials and services are acquired at competitive prices.<\/p>\n<p data-start=\"7594\" data-end=\"7719\">Common metrics include procurement savings, material cost variance, and total purchasing costs compared to project estimates.<\/p>\n<h3 data-section-id=\"1ktv1el\" data-start=\"7735\" data-end=\"7767\"><strong>Supplier Performance Metrics<\/strong><\/h3>\n<p data-start=\"7769\" data-end=\"7957\">Supplier performance metrics assess how reliably vendors deliver materials and services. These indicators typically track on time delivery rates, material quality, and contract compliance.<\/p>\n<p data-start=\"7959\" data-end=\"8110\">Consistently monitoring supplier performance helps procurement teams maintain strong vendor relationships and identify underperforming suppliers early.<\/p>\n<h3 data-section-id=\"q4rij6\" data-start=\"8126\" data-end=\"8168\"><strong>Procurement Impact on Project Delivery<\/strong><\/h3>\n<p data-start=\"8170\" data-end=\"8383\">Procurement activities directly influence project schedules and operational efficiency. Measuring procurement cycle time, delivery reliability, and material availability helps organizations understand this impact.<\/p>\n<p data-start=\"8385\" data-end=\"8534\">When procurement processes operate efficiently, construction teams can maintain smoother project timelines and improve overall project profitability.<\/p>\n<h2 data-start=\"8385\" data-end=\"8534\"><strong>Conclusion<\/strong><\/h2>\n<p data-start=\"817\" data-end=\"1094\">Construction procurement helps ensure that materials, suppliers, and contractors are coordinated effectively throughout the project lifecycle. With the right strategy, organizations can control costs, maintain supply chain reliability, and keep construction schedules on track.<\/p>\n<p data-start=\"1096\" data-end=\"1349\">A structured procurement process also reduces risks related to supplier performance, material shortages, and price fluctuations. By combining strong supplier management with data driven planning, procurement becomes a key contributor to project success.<\/p>\n<p data-start=\"1351\" data-end=\"1704\">If your organization wants to improve procurement efficiency and supplier coordination, the right digital system can make a significant difference. Request a <a href=\"https:\/\/www.hashmicro.com\/au\/free-product-tour\/\"><strong data-start=\"3053\" data-end=\"3086\">free consult with our experts<\/strong><\/a> to explore solutions that support better construction procurement management.<\/p>\n<p data-start=\"1351\" data-end=\"1704\"><span data-sheets-root=\"1\"><a href=\"https:\/\/www.hashmicro.com\/au\/procurement-and-purchasing-management-system?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Procurement.webp\" alt=\"Procurement\"><\/a><\/span><\/p>\n<h2><strong>Frequently Asked Questions About Construction Procurement<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details>\n<summary><strong>What is construction procurement?<\/strong><\/summary>\n<p>Construction procurement is the structured process of sourcing materials, equipment, and contractor services needed to complete a construction project. It involves supplier evaluation, contract negotiation, and delivery coordination to ensure projects stay on schedule and within budget.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>Why is procurement important in construction projects?<\/strong><\/summary>\n<p>Procurement is important because it controls project costs, ensures timely material delivery, and manages supplier relationships. Effective procurement helps reduce delays, supply disruptions, and unexpected cost overruns.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What are the common methods of construction procurement?<\/strong><\/summary>\n<p>Common construction procurement methods include Design\u2013Bid\u2013Build, Design\u2013Build, Construction Management, and Public\u2013Private Partnerships. Each method determines how responsibilities and risks are distributed between project stakeholders.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>What are the stages of the construction procurement process?<\/strong><\/summary>\n<p>The construction procurement process typically includes project planning, supplier selection, tendering, contract negotiation, contract award, and supplier performance monitoring during project execution.<\/p>\n<\/details>\n<\/li>\n<li>\n<details>\n<summary><strong>How can companies improve construction procurement efficiency?<\/strong><\/summary>\n<p>Companies can improve procurement efficiency by implementing structured procurement strategies, using digital procurement systems, monitoring supplier performance, and maintaining transparent supplier relationships.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<p><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What is construction procurement?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Construction procurement is the structured process of sourcing materials, equipment, and contractor services needed to complete a construction project while ensuring cost control and timely delivery.\"}},{\"@type\":\"Question\",\"name\":\"Why is procurement important in construction projects?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Procurement helps control project costs, ensure material availability, and manage supplier relationships to prevent delays and supply chain disruptions.\"}},{\"@type\":\"Question\",\"name\":\"What are the common methods of construction procurement?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Common construction procurement methods include Design\u2013Bid\u2013Build, Design\u2013Build, Construction Management, and Public\u2013Private Partnerships.\"}},{\"@type\":\"Question\",\"name\":\"What are the stages of the construction procurement process?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The construction procurement process includes project planning, supplier selection, tendering, contract negotiation, contract award, and supplier performance monitoring.\"}},{\"@type\":\"Question\",\"name\":\"How can companies improve construction procurement efficiency?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Companies can improve procurement efficiency by implementing structured procurement strategies, digital procurement systems, and supplier performance monitoring.\"}}]}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Construction projects involve complex coordination between materials, labor, equipment, and capital. Each component must be sourced and delivered at the right time to ensure that the project stays on schedule and within budget. Because of this complexity, procurement plays a critical role in construction management. Poor sourcing decisions can lead to delays, cost overruns, and [&hellip;]<\/p>\n","protected":false},"author":54,"featured_media":1632,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"tdm_status":"","tdm_grid_status":"","footnotes":""},"categories":[65],"tags":[],"class_list":{"0":"post-1477","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-procurement"},"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>Construction Procurement: Methods, Process &amp; Best Practices<\/title>\n<meta name=\"description\" content=\"Construction procurement guide covering methods, stages, and strategies for managing suppliers, materials, and construction project costs.\" \/>\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\/au\/blog\/construction-procurement\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Construction Procurement: Methods, Process &amp; Best Practices\" \/>\n<meta property=\"og:description\" content=\"Construction procurement guide covering methods, stages, and strategies for managing suppliers, materials, and construction project costs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Australia\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-17T08:17:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-31T08:49:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-hashmicro-e1773373715450.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"973\" \/>\n\t<meta property=\"og:image:height\" content=\"548\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Ryan Callahan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ryan Callahan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/\",\"url\":\"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/\",\"name\":\"Construction Procurement: Methods, Process & Best Practices\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-hashmicro-e1773373715450.webp\",\"datePublished\":\"2026-03-17T08:17:27+00:00\",\"dateModified\":\"2026-03-31T08:49:48+00:00\",\"author\":{\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/63bf6285e73cef5d79640ad6a301da14\"},\"description\":\"Construction procurement guide covering methods, stages, and strategies for managing suppliers, materials, and construction project costs.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-hashmicro-e1773373715450.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-hashmicro-e1773373715450.webp\",\"width\":973,\"height\":548},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/au\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Construction Procurement: Methods, Process &#038; Best Practices\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/au\/blog\/\",\"name\":\"HashMicro Australia\",\"description\":\"Business Management Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/au\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/63bf6285e73cef5d79640ad6a301da14\",\"name\":\"Ryan Callahan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/02\/cropped-Ryan-Callahan-96x96.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/02\/cropped-Ryan-Callahan-96x96.webp\",\"caption\":\"Ryan Callahan\"},\"description\":\"I write CRM-focused content that helps teams connect leads, activities, and customer insights into one practical workflow, so pipelines stay visible, follow-ups stay timely, and performance becomes easier to measure.\",\"url\":\"https:\/\/www.hashmicro.com\/au\/blog\/author\/ryan-callahan\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Construction Procurement: Methods, Process & Best Practices","description":"Construction procurement guide covering methods, stages, and strategies for managing suppliers, materials, and construction project costs.","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\/au\/blog\/construction-procurement\/","og_locale":"en_US","og_type":"article","og_title":"Construction Procurement: Methods, Process & Best Practices","og_description":"Construction procurement guide covering methods, stages, and strategies for managing suppliers, materials, and construction project costs.","og_url":"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/","og_site_name":"HashMicro Australia","article_published_time":"2026-03-17T08:17:27+00:00","article_modified_time":"2026-03-31T08:49:48+00:00","og_image":[{"width":973,"height":548,"url":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-hashmicro-e1773373715450.webp","type":"image\/webp"}],"author":"Ryan Callahan","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ryan Callahan","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/","url":"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/","name":"Construction Procurement: Methods, Process & Best Practices","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-hashmicro-e1773373715450.webp","datePublished":"2026-03-17T08:17:27+00:00","dateModified":"2026-03-31T08:49:48+00:00","author":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/63bf6285e73cef5d79640ad6a301da14"},"description":"Construction procurement guide covering methods, stages, and strategies for managing suppliers, materials, and construction project costs.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/#primaryimage","url":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-hashmicro-e1773373715450.webp","contentUrl":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/03\/construction-procurement-hashmicro-e1773373715450.webp","width":973,"height":548},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/au\/blog\/construction-procurement\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/au\/blog\/"},{"@type":"ListItem","position":2,"name":"Construction Procurement: Methods, Process &#038; Best Practices"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/au\/blog\/#website","url":"https:\/\/www.hashmicro.com\/au\/blog\/","name":"HashMicro Australia","description":"Business Management Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/au\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/63bf6285e73cef5d79640ad6a301da14","name":"Ryan Callahan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/au\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/02\/cropped-Ryan-Callahan-96x96.webp","contentUrl":"https:\/\/www.hashmicro.com\/au\/blog\/wp-content\/uploads\/2026\/02\/cropped-Ryan-Callahan-96x96.webp","caption":"Ryan Callahan"},"description":"I write CRM-focused content that helps teams connect leads, activities, and customer insights into one practical workflow, so pipelines stay visible, follow-ups stay timely, and performance becomes easier to measure.","url":"https:\/\/www.hashmicro.com\/au\/blog\/author\/ryan-callahan\/"}]}},"_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts\/1477","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/users\/54"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/comments?post=1477"}],"version-history":[{"count":4,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts\/1477\/revisions"}],"predecessor-version":[{"id":2085,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/posts\/1477\/revisions\/2085"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/media\/1632"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/media?parent=1477"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/categories?post=1477"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/au\/blog\/wp-json\/wp\/v2\/tags?post=1477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}