{"id":12515,"date":"2025-11-10T17:00:00","date_gmt":"2025-11-10T17:00:00","guid":{"rendered":"https:\/\/www.hashmicro.com\/my\/blog\/?p=12515"},"modified":"2026-02-12T03:58:57","modified_gmt":"2026-02-12T03:58:57","slug":"construction-productivity","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/","title":{"rendered":"Construction Productivity Tips for Faster Projects"},"content":{"rendered":"<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Construction projects rarely go exactly as planned. Delays, miscommunication between teams, and unexpected cost increases are common across the industry. These problems often start small but build up quickly when site operations, procurement, and scheduling aren&#8217;t properly connected.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">The financial impact is real. <a href=\"https:\/\/www.mckinsey.com\/capabilities\/operations\/our-insights\/reinventing-construction-through-a-productivity-revolution\" target=\"_blank\" rel=\"noopener\">According to McKinsey<\/a>, construction productivity grows at just 1% per year, far below other industries. When margins are already tight, even minor inefficiencies can eat into profits and hurt your reputation with clients who expect on-time delivery.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">The good news is that most of these issues come down to coordination and visibility. When project data sits in different places and teams work in silos, problems slip through the cracks. A centralized system that connects planning, execution, and reporting can help catch issues early and keep projects on track.<\/p>\n<table style=\"border-collapse: collapse; background-color: #fffacd; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); border-radius: 25px 25px 25px 25px;\" width=\"100%\">\n<tbody>\n<tr>\n<td style=\"padding: 15px; border: none;\">\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #8a0e19; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><a href=\"#definition\">Construction productivity<\/a><\/strong> reflects how efficiently resources turn into results, driving profit and timely project delivery.<\/li>\n<li aria-level=\"1\"><strong><a href=\"#measure\">Accurately measuring construction productivity<\/a><\/strong> requires clear metrics, digital tracking, and automated data collection for real-time, reliable insights.<\/li>\n<li aria-level=\"1\"><strong><a href=\"https:\/\/www.hashmicro.com\/my\/hash-construction-management-software\">HashMicro\u2019s Construction Management Software<\/a><\/strong> automates complex processes, offering full control, real-time insights, and improved efficiency across every project stage.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- <div id=\"toc_group_article\" style=''>\r\n\t<p style='font-size:25px;font-weight:bold; margin-bottom:0px'>\r\n\t\tTable of Content\r\n\t<\/p>\r\n\t<ul id=\"list_toc\" class='list_toc'><\/ul>\r\n<\/div>\r\n\r\n<div class=\"dropdown-fixed-top\" id=\"dropdown-fixed-top\">\r\n\t<div class=\"row\">\r\n\t\t<p id=\"pilihDaftarIsi\">Content Lists<\/p>\r\n\t\t<p><i class=\"td-icon-menu-down\"><\/i><\/p>\r\n\t<\/div>\r\n\t\r\n\t<div>\r\n\t\t<ul id=\"list_toc_top\" class='list_toc'><\/ul>\r\n\t<\/div>\r\n<\/div> -->\r\n\r\n<!-- TOC mobile -->\r\n<div id=\"placeholder-toc\"><\/div>\r\n<div id=\"toc\">\r\n    <div class=\"header\">\r\n\t<span class=\"toc-title\" id=\"toc-title\">Table of Content<\/span>\t\r\n\t <i class=\"toc-icon\">\r\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"header-icon\">\r\n          <path d=\"m6 9 6 6 6-6\" \/>\r\n        <\/svg>\r\n      <\/i>\r\n\t<\/div>\r\n    <div class=\"list\">\r\n      <ul id=\"toc-list\"><\/ul>\r\n    <\/div>\r\n <\/div>\r\n<!-- TOC mobile -->\r\n\r\n<style>\r\n\t@media (max-width: 992px) {\r\n\t\t#toc_group_article {\r\n\t\t\tpadding-top: 24px;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc_float {\r\n\t\tmax-height: calc(100vh - 250px);\r\n\t\toverflow-y: auto;\r\n\t}\r\n\t\r\n\t#list_toc_top {\r\n\t\tdisplay: none;\r\n\t\tbackground: #fff;\r\n\t\tmargin-bottom: 4px;\r\n\t}\r\n\t\r\n\t#list_toc_top li {\r\n\t\tdisplay: block;\r\n\t\tmargin-left: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\t\r\n\t#list_toc_top a {\r\n\t\tpadding: 5px;\r\n\t\tdisplay: block;\r\n\t}\r\n\t\r\n\t#list_toc_top.show {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t#list_toc_top a {\r\n\t\tcolor: #434343;\r\n\t\tborder-bottom: 1px solid #bbb;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top {\r\n\t\tposition: fixed;\r\n\t\ttop: 59px;\r\n\t\twidth: 100%;\r\n\t\tz-index: 99;\r\n\t\tborder-bottom: 2px solid #9c171e;\r\n\t\tpadding: 12px;\r\n\t\tbackground: #fff;\r\n\t\twidth: 100%;\r\n\t\tcursor: pointer;\r\n\t\tdisplay: none;\r\n\t\tleft: 0;\r\n\t\tbox-shadow: 0 -2px 7px 6px rgba(0, 0, 0, 0.17);\r\n\t}\r\n\t\r\n\t#dropdown-fixed-top.show {\r\n\t\tanimation: showAnim 0.5s ease;\r\n\t\tdisplay: block;\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t@keyframes showAnim {\r\n\t\tfrom {\r\n\t\t\tdisplay: none;\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\tto {\r\n\t\t\tdisplay: block;\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top #list_toc_top {\r\n\t\tmax-height: calc(50vh - 110px);\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row p {\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t#pilihDaftarIsi {\r\n\t\tmax-width: 100%;\r\n\t\toverflow: hidden;\r\n\t\twhite-space: nowrap;\r\n\t}\r\n\t\r\n\t@media (min-width: 1018px) {\r\n\t\t.dropdown-fixed-top {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_top li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor: #000;\r\n\t\tmargin-bottom: 6px;\r\n\t\tpadding-top: 2px;\r\n\t\tpadding-bottom: 2px;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t\tfont-size: 15px;\r\n\t\tline-height: 18px;\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t}\r\n\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\t\t\t\t\r\n\t}\r\n\r\n<\/style>\r\n\r\n<style>\r\n\t@media (max-width: 992px) {\r\n\t\t#toc_group_article {\r\n\t\t\tpadding-top: 24px;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc_float {\r\n\t\tmax-height: calc(100vh - 250px);\r\n\t\toverflow-y: auto;\r\n\t}\r\n\t\r\n\t#list_toc_top {\r\n\t\tdisplay: none;\r\n\t\tbackground: #fff;\r\n\t\tmargin-bottom: 4px;\r\n\t}\r\n\t\r\n\t#list_toc_top li {\r\n\t\tdisplay: block;\r\n\t\tmargin-left: 0;\r\n\t\tlist-style: none;\r\n\t}\r\n\t\r\n\t#list_toc_top a {\r\n\t\tpadding: 5px;\r\n\t\tdisplay: block;\r\n\t}\r\n\t\r\n\t#list_toc_top.show {\r\n\t\tdisplay: block;\r\n\t}\r\n\r\n\t#list_toc_top a {\r\n\t\tcolor: #434343;\r\n\t\tborder-bottom: 1px solid #bbb;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top {\r\n\t\tposition: fixed;\r\n\t\ttop: 59px;\r\n\t\twidth: 100%;\r\n\t\tz-index: 99;\r\n\t\tborder-bottom: 2px solid #9c171e;\r\n\t\tpadding: 12px;\r\n\t\tbackground: #fff;\r\n\t\twidth: 100%;\r\n\t\tcursor: pointer;\r\n\t\tdisplay: none;\r\n\t\tleft: 0;\r\n\t\tbox-shadow: 0 -2px 7px 6px rgba(0, 0, 0, 0.17);\r\n\t}\r\n\t\r\n\t#dropdown-fixed-top.show {\r\n\t\tanimation: showAnim 0.5s ease;\r\n\t\tdisplay: block;\r\n\t\topacity: 1;\r\n\t}\r\n\t\r\n\t@keyframes showAnim {\r\n\t\tfrom {\r\n\t\t\tdisplay: none;\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\tto {\r\n\t\t\tdisplay: block;\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top #list_toc_top {\r\n\t\tmax-height: calc(50vh - 110px);\r\n\t\toverflow-y: scroll;\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row {\r\n\t\tdisplay: flex;\r\n\t\tjustify-content: space-between\r\n\t}\r\n\t\r\n\t.dropdown-fixed-top .row p {\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t#pilihDaftarIsi {\r\n\t\tmax-width: 100%;\r\n\t\toverflow: hidden;\r\n\t\twhite-space: nowrap;\r\n\t}\r\n\t\r\n\t@media (min-width: 1018px) {\r\n\t\t.dropdown-fixed-top {\r\n\t\t\tdisplay: none;\r\n\t\t}\r\n\t}\r\n\t\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc > li > ul {padding-left: 20px;margin-bottom: 0;}\r\n\t#list_toc{height:max-content;transition:ease-in-out}\r\n\t#list_toc li {margin-bottom: 0;margin-top: 5px;}\r\n\t#list_toc_float li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_top li.active > a {color:#b1252d;background: #ffe1e3;}\r\n\t#list_toc_float li a {padding:3px 7px}\r\n\t#list_toc_float li a {\r\n\t\tdisplay: block;\r\n\t\tcolor: #000;\r\n\t\tmargin-bottom: 6px;\r\n\t\tpadding-top: 2px;\r\n\t\tpadding-bottom: 2px;\r\n\t\ttransition: all 0.2s ease-in-out;\r\n\t\tfont-size: 15px;\r\n\t\tline-height: 18px;\r\n\t}\r\n\t#list_toc_float li{list-style:none;list-style-position:inside; margin-left:0;}\r\n\t#list_toc_float a:hover{color:#b1252d;}\r\n\t\r\n\t#toc_group_float{\r\n\t\tline-height: 24px;\r\n\t\tmax-height: calc(100vh - 100px);\r\n\t\toverflow: auto;\r\n\t\tz-index: 99;\r\n\t\tdisplay:none!important;\r\n\t\tbackground:#fff;\r\n\t\ttransition:all 0.5s linear\r\n\t}\r\n\t\r\n\t@media (min-width:1019px){\r\n\t\t#toc_group_float {\r\n\t\t\tdisplay:block!important;\r\n\t\t\t}\r\n\t\t\t\t#toc_group_article {\r\n\t\t\tdisplay:none;\r\n\t\t}\r\n\t}\r\n\r\n<\/style>\r\n\r\n<!-- START ToC styling  -->\r\n<style>\r\n\t\/* Simple styling for the TOC *\/\r\n\t\r\n\t#toc ul li:last-child {\r\n    padding-bottom: 16px; \/* Adjust the value as needed *\/\r\n}\r\n\r\n.td-fix-index {\r\n\t transform: unset !important;\r\n     -webkit-transform: unset !important; \r\n}\r\n.footer-contact .td-fix-index {\r\n\t transform: translateZ(0) !important;\r\n     -webkit-transform: translateZ(0) !important; \r\n}\r\n\t.tdb_single_content .tdb-block-inner.td-fix-index{\r\n\t\tposition: static;\r\n\t}\r\n\t\r\n\r\n\t\r\n#toc {\r\n  background-color: #FFF;\r\n\tpadding: 17px 24px 0px 24px !important;\r\n  margin-bottom: 20px;\r\n\/*   border: 1px solid #9C171E; *\/\r\n  border-radius: 6px;\r\n\tdisplay: none;\r\n  max-width: 100%;\r\n  transition: .4s ease height;\r\n\tmargin-left: 0;\r\n\toverflow: hidden;\r\n}\r\n\r\n#toc .header{\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n\tbackground-color: transparent;\r\n}\r\n\t\r\n\t#toc.sticky .header{\r\n\t\tpadding: 4px 0;\r\n\t}\r\n\t\r\n.header p{\r\n  font-size: 18px !important;\r\n  font-weight: 600 !important;\r\n  color: #393939;\r\n   margin-bottom: 0;\r\n  \/* margin-top: 20px; *\/\r\n}\r\n\r\n.toc-icon{\r\n  float: right;\r\n\/*   visibility: hidden; *\/\r\n}\r\n\r\n\t.toc-title{\r\n\t\tmargin-right: auto;\r\n\/* \t\tpadding-left: 20px; *\/\r\n\t\tfont-weight: 600;\r\n\t\talign-self: center;\t}\t\r\n\r\n#toc ul {\r\n  list-style-type: none;\r\n  padding-left: 0;\r\n}\r\n\t\r\n#toc.sticky ul{\r\n\toverflow-y: auto;\r\n\tmax-height: 250px;\r\n\tmargin-top: 0px;\r\n\tpadding-top: 20px;\r\n\/* \tborder-top: 1px solid #d3d3d3; *\/\r\n}\r\n\t\r\n#toc ul li {\r\n\/*   margin-bottom: 10px; *\/\r\n  margin-bottom: 10px;\r\n\tmargin-left: 0;\r\n\ttransition: .2s ease;\r\n\tcursor: pointer;\r\n}\r\n\t\r\n\t#toc.sticky ul li {\r\n\t  margin-right: 10px;\r\n\t}\r\n\t\r\n.td-post-content #toc-list li a:hover, .td-post-content #toc-list a.active{\r\n\tbackground-color: #FFF;\r\n\/* \tpadding: 8px 16px 8px 16px; *\/\r\n\tpadding: 4px 16px 4px 16px;\r\n\tborder-radius: 6px;\r\n\tcolor: #9c171e !important;\r\n\tfont-weight: 600 !important;\r\n}\r\n\t\r\n\t.td-post-content #toc-list li:hover a, .td-post-content #toc-list a.active{\r\n\t\tcolor: #9C171E !important;\r\n\t\tfont-weight: 600 !important;\r\n\t}\r\n\t\r\n.td-post-content #toc-list a.active{\r\n\tfont-weight: bold !important;\r\n\tcolor: #9C171E !important;\r\n}\r\n\t\r\n#toc a, .td-post-content #toc-list a {\r\n  text-decoration: none;\r\n  color: #ea1717 !important;\r\n  transition: .2s ease;\r\n\tfont-weight: 400 !important;\r\n\tdisplay: block;\r\n\t\r\n\tpadding: 4px 16px 4px 0;\r\n}\r\n\r\n#toc.sticky {\r\n  position: fixed;\r\n\/*   top: 73px; *\/\r\n\tbottom: 0;\r\n  z-index: 100; \r\n  box-shadow: 0 2px 5px rgba(0,0,0,0.1); \r\n\twidth: 100%; \r\n\tbackground-color: #FFF;\r\n\/* \tbackground-color: #FFF1F1; *\/\r\n\tborder-bottom: 1px solid #ea1717;\r\n\/*   border: 1px solid #393939; *\/\r\n  box-shadow: 0px 0px 14px 0px #00000040;\r\n  cursor: pointer;\r\n\tanimation: fadein .3s ease;\r\n\tpadding: 12px 16px !important;\r\n}\r\n\t\r\n\t.fadein{\r\n\t\tanimation: fadein .3s ease;\r\n\t}\r\n\t\r\n\t.fadeout{\r\n\t\tanimation: fadeout .3s ease;\r\n\t}\r\n\t\r\n\t\r\n\t@keyframes fadein{\r\n\t\t0% {\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@keyframes fadeout{\r\n\t\t0% {\r\n\t\t\topacity: 1;\r\n\t\t}\r\n\t\t100%{\r\n\t\t\topacity: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n#toc.sticky .header p{\r\n\tmargin-bottom: 10px;\r\n\tmargin-top: 10px;\r\n}\r\n\r\n#toc.sticky .toc-icon{\r\n  visibility: visible;\r\n\/* \ttransition: 0.4s ease; *\/\r\n}\r\n\t\r\n\t.toc-icon{\r\n\t\talign-items: center;\r\n    \tdisplay: flex;\r\n\t}\r\n\t\r\n\tsvg.header-icon{\r\n\/* \t\tbackground-color: #9c171e; *\/\r\n\t\tbackground-color: #FFF;\r\n\t\tborder-radius: 30px;\r\n\t\tpadding: 5px;\r\n\t}\r\n\r\n#toc.sticky .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\t\r\n\t#toc .list{\r\n\/*   max-height: 0; *\/\r\n  transition: height 0.4s ease;\r\n}\r\n\r\n#toc .header.active .toc-icon{\r\n\ttransform: rotate(0deg); \r\n\topacity: 1;\r\n}\r\n\r\n\t#toc .header.active + .list {\r\n\t  max-height: 200px; \/* Adjust this value as needed *\/\r\n\t  opacity: 1;\r\n\t}\r\n\t\r\n\t#placeholder-toc{\r\n\/* \t\tdisplay: none; *\/\r\n\t}\r\n\t\r\n\t@media (min-width: 768px) and (max-width: 991px){\r\n\t\t#toc.sticky{\r\n\/* \t\t\ttop: 104px; *\/\r\n\t\t\tbottom: 0px;\r\n\t\t}\r\n\t\t\r\n\t\t#toc{\r\n\t\t\twidth: unset !important;\r\n\t\t}\r\n\t}\r\n\t\r\n\t@media (max-width: 767px){\r\n\t\t#toc{\r\n\t\t\twidth: 100% !important;\r\n\t\t\tdisplay: inline-block;\r\n\t\t}\r\n\t\t\r\n\t\t#toc.sticky{\r\n\t\t\twidth: 90% !important;\r\n\/* \t\t\ttop: 81px; *\/\r\n\t\t\tbottom: 60px;\r\n\t\t\tmargin-left: auto;\r\n\t\t\tmargin-right: auto;\r\n\t\t\tpadding: 0 16px;\r\n\t\t\tright: 5%;\r\n\t\t}\r\n\t}\r\n\t\r\n\t<\/style>\r\n<!-- END ToC styling  -->\r\n\r\n<!-- ToC List for mobile -->\r\n<script>\r\n \/\/ Generate TOC based on headings\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  \/\/ Get the element that will contain the TOC\r\n  const tocList = document.getElementById('toc-list');\r\n\r\n  \/\/ Get the element with the ID 'article-left'\r\n  const article = document.querySelector('.td-post-content');\r\n\r\n  \/\/ Find all h2 elements within 'myarticle'\r\n  const headers = article.getElementsByTagName('h2');\r\n\r\n  \/\/ Loop through the h2 elements and create a list item for each one\r\n  for (let i = 0; i < headers.length; i++) {\r\n    const header = headers[i];\r\n    const headerText = header.textContent;\r\n\/\/     const headerId = 'header-' + i;\r\n    const headerId = headerText\r\n    .toLowerCase()\r\n    .trim()\r\n    .replace(\/[^\\w\\s-]\/g, '')  \/\/ hapus tanda baca\r\n    .replace(\/\\s+\/g, '-'); \/\/ ganti spasi jadi \"-\"\r\n\r\n    \/\/ Set an ID for the header if it doesn't have one\r\n    header.setAttribute('id', headerId);\r\n\r\n    \/\/ Create a list item for the TOC\r\n    const listItem = document.createElement('li');\r\n\r\n    \/\/ Create a link for the list item\r\n    const link = document.createElement('a');\r\n    link.setAttribute('href', '#' + headerId);\r\n    link.textContent = headerText;\r\n\r\n    \/\/ Append the link to the list item\r\n    listItem.appendChild(link);\r\n\r\n    \/\/ Append the list item to the TOC list\r\n    tocList.appendChild(listItem);\r\n  }\r\n});\r\n\r\n\/\/ Keep height and placement of content using placeholder in place of TOC\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const placeholderToc = document.querySelector('#placeholder-toc');\r\n\r\n  function setPlaceholderHeight() {\r\n    placeholderToc.style.height = `${toc.offsetHeight}px`;\r\n  }\r\n\r\n  \/\/ Set the initial height of the placeholder\r\n  setPlaceholderHeight();\r\n\r\n  \/\/ Update the height on window resize\r\n  window.addEventListener('resize', setPlaceholderHeight);\r\n});\r\n  const tocTitle = document.querySelector('#toc-title'); \/\/ Assuming header-faq is the element for TOC title\r\n\r\n\/\/ Sticky TOC and update heading\r\ndocument.addEventListener(\"DOMContentLoaded\", function() {\r\n  const toc = document.querySelector('#toc');\r\n  const footer = document.querySelector('.td-footer-template-wrap');\r\n  const tocParent = toc.parentElement;\r\n  const divTop = tocParent.getBoundingClientRect().top + window.pageYOffset;\r\n  const tocHeight = toc.offsetHeight;\r\n  const triggerPoint = divTop + tocHeight + 700;\r\n  const footerHeight = footer.offsetHeight;\r\n  const triggerFooterPoint = footer.getBoundingClientRect().top + window.pageYOffset - footerHeight - footerHeight - footerHeight;\r\n  const phtoc = document.querySelector('#placeholder-toc');\r\n  const headers = document.querySelectorAll('.td-post-content h2');\r\n  const navLinks = document.querySelectorAll('#toc-list a');\r\n\t\r\n\tconst panel2 = document.querySelector(\"#toc .list\");\r\n\tvar icon = document.querySelector(\".toc-icon\");\r\n\r\n  let activeLink = null; \/\/ Declare activeLink outside the loop\r\n\t\r\n  \/\/ Function to handle scroll and add\/remove .sticky class\r\n  function handleScroll() {\r\n    const windowTop = window.pageYOffset || document.documentElement.scrollTop;\r\n    let currentHeader = '';\r\n\r\n    \/\/ Highlight user progress as the heading comes\r\n    headers.forEach(header => {\r\n\t\tconst headerTop = header.offsetTop;\r\n\t\tconst headerHeight = header.clientHeight;\r\n\t\tif (window.scrollY >= (headerTop - headerHeight + 700)) {\r\n\t\t\tconst currentHeaderId = header.getAttribute('id');\r\n\t\t\tconst currentHeaderText = document.getElementById(currentHeaderId).textContent;\r\n\/\/ \t\t\tconsole.log(\"current header text:\", currentHeaderText);\r\n\t\t\ttocTitle.textContent = currentHeaderText;\r\n\t\t\tcurrentHeader = currentHeaderId;\r\n\t\t\t\r\n\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\ttocTitle.textContent = 'Table of Content';\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n    navLinks.forEach(link => {\r\n      link.classList.remove('active');\r\n      if(currentHeader != '') {\r\n\t\t  if (link.getAttribute('href').includes(currentHeader)) {\r\n\t\t\t  link.classList.add('active');\r\n\t\t  }\r\n\t  }\r\n    });\r\n\/\/     if (windowTop < triggerFooterPoint) {\r\n\/\/         toc.style.display = 'block';\r\n\/\/ \t}else{\r\n\/\/         toc.style.display = 'none';\r\n\/\/ \t}\r\n    \/\/ Update TOC title if sticky\r\n    if (windowTop > triggerPoint) {\r\n      if (!toc.classList.contains('sticky')) {\r\n        phtoc.style.display = \"block\";\r\n        toc.classList.add('sticky');\r\n        toc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n        toc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n        toc.style.backgroundColor = \"#FFF\";\r\n\t\tpanel2.style.height = '0px';\r\n\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t  if(window.innerWidth < 767){\r\n\/\/ \t\t\t  const tocs = document.querySelector('#toc.sticky');\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n       \t\t  toc.style.width = '150px'; \/\/ Set width to match the parent element\r\n\t\t  }\r\n      }\r\n      if (currentHeader) {\r\n\/\/         console.log(\"activeLink:\", activeLink);\r\n        if (activeLink) {\r\n\/\/           tocTitle.textContent = activeLink.textContent; \/\/ Update TOC title\r\n          tocTitle.textContent = activeLink ? activeLink.textContent : \"\"; \/\/ Update title only if activeLink exists\r\n        }\r\n      }\r\n    } else {\r\n      toc.classList.remove('sticky');\r\n      phtoc.style.display = \"none\";\r\n      toc.style.width = 'unset'; \/\/ Reset to original width\r\n      toc.style.backgroundColor = \"#FFF\";\r\n      tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n\t\tpanel2.style.height = panel2.scrollHeight + \"px\";\r\n\t\ticon.style.transform = \"rotate(180deg)\";\r\n    }\r\n  }\r\n\r\n    \/\/ Attach the scroll event listener to the window\r\n    window.addEventListener('scroll', handleScroll);\r\n\r\n    \/\/ Initial call to handleScroll to set the correct state on load\r\n    handleScroll();\r\n});\r\n\t\r\n\t\/\/ Open toggle TOC\r\n\t  document.addEventListener(\"DOMContentLoaded\", function() {\r\n\t\tvar tocHeader = document.querySelector(\"#toc .header\");\r\n\t\tvar toc = document.querySelector(\"#toc\");\r\n\t\tvar icon = document.querySelector(\".toc-icon\");\r\n\t\tconst tocTitle = document.querySelector('#toc-title');\r\n\t\tconst tocs = document.querySelector('#toc.sticky');\r\n \t\tconst tocParent = toc.parentElement;\t\t  \r\n\r\n\t\t  tocHeader.addEventListener(\"click\", function() {\r\n\t\t\tvar panel = this.nextElementSibling;\r\n\t\t\tif (panel.style.height !== '0px') { \/\/ Check if height is not 0px\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\/\/ \t\t\t\ttoc.style.paddingBottom = '6px'; \r\n\t\t\t\tif(window.innerWidth > 768){\r\n\t\t\t\t\tif(!toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = \"unset\";\r\n\/\/ \t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (toc.classList.contains('sticky')){\r\n\t\t\t\t\t\ttoc.style.width = '${tocParent.offsetWidth}px';\r\n\t\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = \"unset\"; \/\/ Reset width\r\n\t\t\t\t}\r\n\t\t\t\ttoc.style.backgroundColor = \"#FFF1F1\";\r\n\t\t\t} else {\r\n\t\t\t  panel.style.height = panel.scrollHeight + \"px\";\r\n\t\t\t  icon.style.transform = \"rotate(0deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t  tocTitle.textContent = 'Table of Content'; \/\/ Reset title\r\n\t\t\t\ttoc.style.paddingBottom = '24px';\r\n\t\t\t \tif(window.innerWidth < 767){\r\n\t\t\t\t\ttoc.style.width = `${tocParent.offsetWidth}px`; \/\/ Set width to match the parent element\r\n\t\t\t\t\ttoc.setAttribute('style', 'width: ' + tocParent.offsetWidth + 'px !important;');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t  });\r\n\r\n\t\t  \/\/ Close TOC when a link inside it is clicked\r\n\t\t  var tocLinks = document.querySelectorAll(\"#toc .list a\");\r\n\t\t  tocLinks.forEach(function(link) {\r\n\t\t\tlink.addEventListener(\"click\", function() {\r\n\t\t\t  var panel = document.querySelector(\"#toc .list\");\r\n\t\t\t  panel.style.height = '0px'; \/\/ Set height to 0 for full collapse\r\n\t\t\t  icon.style.transform = \"rotate(180deg)\";\r\n\t\t\t  toc.style.backgroundColor = \"#FFF\";\r\n\t\t\t});\r\n\t\t  });\r\n\t\t});\r\n<\/script>\r\n\r\n<!-- <script>\r\n\tvar pilihDaftarIsi = document.getElementById('pilihDaftarIsi');\r\n\t\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n\t\tvar dropdownFixedTop = document.querySelector('.dropdown-fixed-top');\r\n\r\n\t\tdropdownFixedTop.addEventListener('click', function() {\r\n\t\t\tvar dropdownContent = this.querySelector('.list_toc');\r\n\t\t\tdropdownContent.classList.toggle('show');\r\n\t\t});\r\n\r\n\t\twindow.addEventListener('click', function(event) {\r\n\t\t\tvar listTocTop = document.getElementById('list_toc_top');\r\n\r\n\t\t\tif (!dropdownFixedTop.contains(event.target)) {\r\n\t\t\t\tlistTocTop.classList.remove('show');\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\t\r\n\tvar daftarIsiContainer = document.getElementById('toc_group_article');\r\n\tvar dropdownFixedTop = document.getElementById('dropdown-fixed-top');\r\n    var triggered = false; \/\/ Flag to keep track of whether the function has been triggered\r\n\r\n    window.addEventListener('scroll', function() {\r\n        if (!triggered && isCompletelyScrolledPast(daftarIsiContainer)) {\r\n            showSectionDropdownFixedTop(false);\r\n            triggered = true;\r\n        } else if (triggered && !isCompletelyScrolledPast(daftarIsiContainer)) {\r\n            showSectionDropdownFixedTop(true);\r\n            triggered = false;\r\n        }\r\n    });\r\n\r\n    function isCompletelyScrolledPast(element) {\r\n        var elementTop = element.getBoundingClientRect().top;\r\n        var elementBottom = element.getBoundingClientRect().bottom;\r\n        return elementTop < 0 && elementBottom < 0;\r\n    }\r\n\r\n    function showSectionDropdownFixedTop(show) {\r\n\t\tif (show) {\r\n\t\t\tdropdownFixedTop.classList.remove(\"show\");\r\n\t\t} else {\r\n\t\t\tdropdownFixedTop.classList.add(\"show\");\r\n\t\t}\r\n    }\r\n\r\n\/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n\t\t  pilihDaftarIsi.innerHTML = a.textContent;\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float', 'list_toc_top']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script> -->\r\n<!-- END script lama -->\r\n\t\r\n<script>\r\n    \/\/ Scrollspy function to highlight the active TOC item based on the scroll position\r\n  function scrollSpy(tocClass) {\r\n    const scrollPosition = window.scrollY;\r\n\r\n    \/\/ Find the active h2 and h3 headings based on their position in the corresponding TOC\r\n    let activeH2 = null;\r\n    let activeH3 = null;\r\n\r\n    const tocItems = document.querySelectorAll(`.${tocClass} li`);\r\n    tocItems.forEach(item => {\r\n      const a = item.querySelector('a');\r\n      if (!a) return;\r\n      const href = a.getAttribute('href');\r\n      const targetId = href.substring(1); \/\/ Remove the '#' from the href to get the target ID\r\n      const targetElement = document.getElementById(targetId);\r\n      if (!targetElement) return;\r\n\r\n      const targetTop = targetElement.getBoundingClientRect().top + scrollPosition;\r\n      const nextItem = item.nextElementSibling;\r\n      const nextTop = nextItem ? nextItem.getBoundingClientRect().top + scrollPosition : Infinity;\r\n\r\n      if (targetTop <= scrollPosition + 150) {\r\n        if (a.parentElement.parentElement === tocItems) {\r\n          \/\/ The h2 heading is at the root level of the TOC\r\n          activeH2 = { id: targetId, level: 'h2' };\r\n        } else {\r\n          \/\/ The h3 heading is nested under an h2 heading\r\n          const parentH2 = a.parentElement.parentElement.previousElementSibling;\r\n          if (parentH2) {\r\n            const h2Link = parentH2.querySelector('a');\r\n            if (h2Link) {\r\n              const h2Href = h2Link.getAttribute('href');\r\n              const h2Id = h2Href.substring(1);\r\n              activeH2 = { id: h2Id, level: 'h2' };\r\n            }\r\n          }\r\n          activeH3 = { id: targetId, level: 'h3' };\r\n        }\r\n      }\r\n\r\n      if (targetTop > scrollPosition + 150 && nextTop > scrollPosition + 150 && !activeH3) {\r\n        \/\/ Reset the activeH2 when there are no more active h3 headings\r\n        activeH2 = null;\r\n      }\r\n    });\r\n\r\n    \/\/ Update the active state for the TOC items\r\n    tocItems.forEach(item => {\r\n      item.classList.remove('active');\r\n      const a = item.querySelector('a');\r\n      if (a) {\r\n        const href = a.getAttribute('href');\r\n        const targetId = href.substring(1);\r\n        if ((activeH2 && activeH2.id === targetId) || (activeH3 && activeH3.id === targetId)) {\r\n          item.classList.add('active');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ Call scrollSpy for each TOC on window scroll\r\n  const tocClasses = ['list_toc', 'list_toc_float', 'list_toc_top']; \/\/ Add other TOC class names here if you have more than two instances\r\n  tocClasses.forEach(tocClass => {\r\n    window.addEventListener('scroll', () => scrollSpy(tocClass));\r\n  });\r\n<\/script>\r\n\t\r\n\r\n<!-- ToC List for desktop side bar, diganti jadi inject by php, di code snippet \"Sidebar Accordion\" -->\r\n<!-- <script>\r\n\tdocument.addEventListener('DOMContentLoaded', function() {\r\n        \/\/ Fungsi untuk mengubah teks menjadi format id\r\n        function formatId(text) {\r\n            return text.trim().replace(\/[^\\w\\d]+\/g, '_');\r\n        }\r\n\r\n        \/\/ Fungsi untuk membuat nested list\r\n        function createNestedList(parentNode, children) {\r\n            if (children.length === 0) return;\r\n\r\n            const nestedUl = document.createElement('ul');\r\n            children.forEach(child => {\r\n                const nestedLi = document.createElement('li');\r\n                const nestedA = document.createElement('a');\r\n                nestedA.textContent = child.title;\r\n                nestedA.href = `#${child.id}`;\r\n                nestedLi.appendChild(nestedA);\r\n                nestedUl.appendChild(nestedLi);\r\n\r\n                if (child.children.length > 0) {\r\n                    createNestedList(nestedLi, child.children);\r\n                }\r\n            });\r\n\r\n            parentNode.appendChild(nestedUl);\r\n        }\r\n\r\n        \/\/ Membuat objek untuk menyimpan daftar h2 dan h3 beserta judulnya\r\n        const headings = [];\r\n\r\n           \/\/ Mengambil semua elemen h2 dan h3\r\n        const elements = document.querySelectorAll('.td-post-content h2');\r\n\t\t\t\/\/, .td-post-content h3\r\n\r\n        elements.forEach(element => {\r\n            if (element.tagName === 'H2') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n\t\t\t\tif(element.textContent.toLowerCase() === \"key takeaways\") {return;} \/\/ Biar ga nampilin Key Takeaways di ToC\r\n                headings.push({ level: 'h2', id: id, title: element.textContent, children: [] });\r\n            } else if (element.tagName === 'H3') {\r\n                const id = formatId(element.textContent);\r\n                element.id = id;\r\n                if (headings.length > 0) {\r\n                    headings[headings.length - 1].children.push({ level: 'h3', id: id, title: element.textContent, children: [] });\r\n                }\r\n            }\r\n        });\r\n\r\n        \/\/ Membuat list HTML dari objek headings\r\n        const ul = document.getElementById('list_toc');\r\n        let currentUl = ul;\r\n        headings.forEach(heading => {\r\n            const li = document.createElement('li');\r\n            const a = document.createElement('a');\r\n            a.textContent = heading.title;\r\n            a.href = `#${heading.id}`;\r\n            li.appendChild(a);\r\n\r\n            if (heading.level === 'h2') {\r\n                \/\/ Menyimpan ul saat ini untuk menambahkan nested ul\r\n                currentUl = li;\r\n                ul.appendChild(li);\r\n            } else if (heading.level === 'h3') {\r\n                if (!currentUl.lastElementChild || currentUl.lastElementChild.tagName !== 'UL') {\r\n                    \/\/ Jika belum ada nested ul, buat satu\r\n                    const nestedUl = document.createElement('ul');\r\n                    currentUl.appendChild(nestedUl);\r\n                    currentUl = nestedUl;\r\n                }\r\n                currentUl.appendChild(li);\r\n            }\r\n\r\n            createNestedList(li, heading.children);\r\n        });\r\n\t\t\/\/ Dapatkan elemen ul dengan id 'list_toc_float'\r\nconst ulFloat = document.getElementById('list_toc');\r\nconst ulJourney = document.getElementById('list_journey');\r\n\r\n\/\/ Dapatkan isi (child elements) dari ul dengan id 'list_toc_float'\r\n\tif (ulFloat !== null) {\r\n\t\tconst clonedChildren = ulFloat.cloneNode(true).children;\r\n\t\tconst ulToc = document.getElementById('list_toc_float');\r\n\t\tconst ulTocTop = document.getElementById('list_toc_top');\r\n\t\tif ((ulToc !== null || ulToc !== undefined) && window.innerWidth > 1018){\r\n\t\t\tulToc.append(...clonedChildren);\r\n\t\t} else {\r\n\t\t\tulTocTop.append(...clonedChildren);\r\n\t\t}\r\n\t} \r\n\r\n\tif (ulJourney !== null) {\r\n\t\tconst clonedChildrenJourney = ulJourney.cloneNode(true).children;\r\n\t\tconst ulTocJourney = document.getElementById('list_toc_journey');\r\n\t\tulTocJourney.append(...clonedChildrenJourney);\r\n\t} \r\n\r\n\r\n\r\n\r\n\t\r\n        \/\/ Fungsi untuk mengambil tinggi navbar\r\n        function getNavbarHeight() {\r\n            const navbar = document.getElementById('tdi_34');\r\n            return navbar ? navbar.offsetHeight : 0;\r\n        }\r\n\r\n        \/\/ Fungsi untuk menambahkan offset posisi scroll\r\n        function scrollToElementWithOffset(elementId) {\r\n            const element = document.getElementById(elementId);\r\n            if (element) {\r\n                const offset = getNavbarHeight();\r\n                const elementPosition = element.getBoundingClientRect().top;\r\n                const offsetPosition = elementPosition - offset-40;\r\n\r\n                window.scrollBy({\r\n                    top: offsetPosition,\r\n                    behavior: 'smooth'\r\n                });\r\n            }\r\n        }\r\n\r\n        \/\/ Fungsi untuk menangani klik pada tautan judul\r\n        function handleTitleClick(event) {\r\n            event.preventDefault();\r\n            const href = event.target.getAttribute('href').substr(1);\r\n            scrollToElementWithOffset(href);\r\n        }\r\n\r\n        \/\/ Tambahkan event listener untuk semua tautan judul\r\n        const titleLinks = document.querySelectorAll('a[href^=\"#\"]');\r\n        titleLinks.forEach(link => {\r\n            link.addEventListener('click', handleTitleClick);\r\n        });\r\n\t});\r\n    <\/script> -->\r\n<!-- \t<style>#toc_group_float{display:block !important}<\/style> -->\r\n\n<h2><strong><span id=\"definition\">Understanding Construction Productivity<\/span><\/strong><\/h2>\n<p>Construction productivity is about how efficiently you turn labor, materials, and time into finished work. At its core, it compares what you put in versus what you get out. It is a critical ratio of output achieved against the input consumed to achieve it.<\/p>\n<p>Improving this metric directly boosts project profitability and enhances your competitive edge. Consistently high productivity leads to timely project completion and greater client satisfaction.<\/p>\n<h2><strong>Why Measuring and Improving Construction Productivity Is Crucial<\/strong><\/h2>\n<p>Measuring productivity provides the data needed for strategic decision-making and continuous improvement. It turns guesswork into a clear, evidence-based process for managing your projects effectively.<\/p>\n<h3>1. Boosts project profitability<\/h3>\n<p>Higher productivity reduces wasted labor hours and optimizes equipment use, directly cutting costs. This ensures projects are completed within budget and maximizes your overall profit margins.<\/p>\n<h3>2. Enhances competitive advantage<\/h3>\n<p>A reputation for efficiency helps win more tenders and secure high-value clients. It allows you to offer competitive pricing without sacrificing quality or delivery timelines.<\/p>\n<h3>3. Informs strategic decisions<\/h3>\n<p>Accurate data helps identify which methods and teams are most effective. This allows you to allocate resources intelligently and invest in areas that yield the best results.<\/p>\n<h3>4. Improves client satisfaction<\/h3>\n<p>Completing projects on time and within budget is key to meeting client expectations. High productivity builds trust and leads to repeat business and valuable referrals.<\/p>\n<h2><strong><span id=\"measure\">How to Accurately Measure Construction Productivity<\/span><\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone wp-image-15449\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Productivity-1024x576.webp\" alt=\"Measuring construction productivity\" width=\"671\" height=\"378\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Productivity-1024x576.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Productivity-300x169.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Productivity-768x432.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Productivity-747x420.webp 747w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Productivity-150x84.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Productivity-696x392.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Productivity-1068x601.webp 1068w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Productivity.webp 1200w\" sizes=\"(max-width: 671px) 100vw, 671px\" \/>You cannot improve what you do not measure, making accurate tracking essential for progress. This process involves establishing clear metrics and leveraging technology for reliable data collection.<\/p>\n<h3>1. Establish key performance metrics<\/h3>\n<p>Start by defining clear metrics, such as output per labor hour or cost per unit of work. This provides a consistent baseline to track performance and set improvement targets.<\/p>\n<h3>2. Overcome manual tracking challenges<\/h3>\n<p>Shift from error-prone paper timesheets and reports to digital data capture on-site. With <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/best-construction-timesheet-software\/\">online timesheet software for construction<\/a>, delays and inaccuracies are eliminated, ensuring the information you receive is reliable.<\/p>\n<h3>3. Automate data collection with software<\/h3>\n<p>Use construction software to automatically gather progress and resource data in real-time. This provides instant insights through dashboards, enabling quick and informed decision-making.<\/p>\n<h2><strong>Key Factors That Influence Construction Productivity<\/strong><\/h2>\n<p>Understanding the core factors that affect performance is the first step toward managing them. These variables range from your workforce and planning to technology and external conditions.<\/p>\n<h3>1. Labor factors<\/h3>\n<p>The skill, motivation, and safety of your workforce directly determine the quality and pace of work. A well-supported team is fundamental to achieving high output on any project.<\/p>\n<h3>2. Management and planning<\/h3>\n<p><a href=\"https:\/\/www.hashmicro.com\/my\/blog\/construction-project-management\/\">Clear project plans<\/a>, effective supervision, and swift decision-making prevent costly downtime and rework. Strong leadership ensures all activities are coordinated and aligned with project goals.<\/p>\n<h3>3. Technology and equipment<\/h3>\n<p>The availability and condition of tools and machinery heavily impact operational flow. Modern, well-maintained equipment prevents bottlenecks and keeps the project moving smoothly.<\/p>\n<h3>4. External and environmental factors<\/h3>\n<p>Adverse weather, regulatory changes, and supply chain disruptions can cause unforeseen delays. Proactive contingency planning is essential to mitigate the impact of these external variables.<\/p>\n<h2><strong><span id=\"measure\">How to Accurately Measure Construction Productivity<\/span><\/strong><\/h2>\n<p>You cannot improve what you do not measure, making accurate tracking essential for progress. This process involves establishing clear metrics and leveraging technology for reliable data collection.<\/p>\n<h3>1. Establish key performance metrics<\/h3>\n<p>Start by defining clear metrics, such as output per labor hour or cost per unit of work. This provides a consistent baseline to track performance and set improvement targets.<\/p>\n<h3>2. Overcome manual tracking challenges<\/h3>\n<p>Shift from error-prone paper timesheets and reports to digital data capture on-site. With <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/best-construction-timesheet-software\/\">online timesheet software for construction<\/a>, delays and inaccuracies are eliminated, ensuring the information you receive is reliable.<\/p>\n<h3>3. Automate data collection with software<\/h3>\n<p>Use construction software to automatically gather progress and resource data in real-time. This provides instant insights through dashboards, enabling quick and informed decision-making.<\/p>\n<h2><strong>Effective Strategies to Increase Construction Productivity with Technology<\/strong><\/h2>\n<p>Technology is the cornerstone of modern productivity, offering tools to streamline every project phase. An integrated software approach dismantles information silos and automates critical workflows.<\/p>\n<h3>1. Optimize project planning and scheduling<\/h3>\n<p>Use project management tools to create detailed schedules and visualize task dependencies. This ensures resources are allocated efficiently and the entire team works from a coordinated plan.<\/p>\n<h3>2. Centralize team communication and collaboration<\/h3>\n<p>Implement a unified platform where all stakeholders can access the latest documents and drawings. This reduces rework caused by outdated information and ensures clear communication.<\/p>\n<h3>3. Streamline procurement management<\/h3>\n<p>Digitize your <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/best-construction-procurement-software\/\">procurement process to track material orders<\/a> and approvals in real-time. This helps ensure materials arrive on-site exactly when needed, preventing costly delays.<\/p>\n<h3>4. Manage inventory to prevent downtime<\/h3>\n<p>Use an inventory system to monitor material usage and automate reordering processes. This prevents stockouts or oversupplies, minimizing workflow disruptions and waste.<\/p>\n<h3>5. Digitize financial and budget management<\/h3>\n<p>Integrate accounting software to track actual project costs against the budget in real-time. This provides complete financial visibility, enabling better spending control and profitability.<\/p>\n<h3>6. Leverage data for continuous improvement<\/h3>\n<p>Utilize analytics dashboards to monitor key performance indicators and identify improvement areas. Analyzing historical data also helps create more accurate estimates for future projects.<\/p>\n<p><strong>Read more:<\/strong> <a href=\"https:\/\/www.hashmicro.com\/my\/blog\/site-inventory\/\">Site Inventory Control Guide for Construction Sites<\/a><\/p>\n<h2><strong>Case Study of Construction Productivity<\/strong><\/h2>\n<p>Jaya Konstruksi, a mid-sized firm, constantly struggled with project delays and budget overruns. Communication gaps between the field and office led to significant rework and material waste.<\/p>\n<p>The company implemented an <a href=\"https:\/\/www.hashmicro.com\/my\/hash-construction-management-software\">integrated construction ERP<\/a> to centralize project data and automate workflows. Field teams used mobile apps for real-time progress reporting and material tracking.<\/p>\n<p>Within six months, rework costs fell by 80%, and overall labor productivity increased by 20%. The firm began completing projects on time, significantly boosting profitability and client satisfaction.<\/p>\n<h2 class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>How Construction Software Helps Manage Complex Projects<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone size-large wp-image-15459\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Management-1024x464.webp\" alt=\"construction management\" width=\"696\" height=\"315\" srcset=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Management-1024x464.webp 1024w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Management-300x136.webp 300w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Management-768x348.webp 768w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Management-1536x696.webp 1536w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Management-2048x928.webp 2048w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Management-927x420.webp 927w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Management-150x68.webp 150w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Management-696x315.webp 696w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Management-1068x484.webp 1068w, https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/11\/Construction-Management-1920x870.webp 1920w\" sizes=\"(max-width: 696px) 100vw, 696px\" \/><\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Construction projects involve a lot of moving pieces: budgets that shift, equipment that needs tracking, scope changes from clients, and reports that need to be pulled on short notice. Managing all of this manually creates gaps. Software built for construction helps close those gaps.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Here&#8217;s what to look for in a construction management system:<\/p>\n<ul>\n<li class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Budget Tracking with S-Curve View<\/strong> Compare planned spending against actuals throughout the project. Helps you spot overruns early instead of at final reconciliation.<\/li>\n<li class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong style=\"font-family: Verdana, BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\">Asset and Equipment Management<\/strong><span style=\"font-family: Verdana, BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\"> Track machine locations, fuel usage, and maintenance schedules in one place. Reduces downtime and avoids last-minute repairs.<\/span><\/li>\n<li class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong style=\"font-family: Verdana, BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\">Centralized Job Estimates (RAB)<\/strong><span style=\"font-family: Verdana, BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\"> Keep budgets, contracts, and reports connected. No more version conflicts or scattered spreadsheets.<\/span><\/li>\n<li class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong style=\"font-family: Verdana, BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\">Variation Order Handling<\/strong><span style=\"font-family: Verdana, BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\"> Document and approve scope changes systematically. Keeps records clean for both internal review and client sign-off.<\/span><\/li>\n<li class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong style=\"font-family: Verdana, BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\">On-Demand Reporting<\/strong><span style=\"font-family: Verdana, BlinkMacSystemFont, -apple-system, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\"> Access project status or contract details when needed without waiting for manual updates from the field.<\/span><\/li>\n<\/ul>\n<p>These features are available across various construction management platforms. Compare a few providers, request demos, and test with your actual data before deciding.<\/p>\n<h2><strong>Conclusion<\/strong><\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Improving construction productivity doesn&#8217;t require a complete overhaul. It starts with better planning, clearer tracking, and tools that reduce manual work. When your team spends less time chasing updates, they have more time to keep the project moving.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Construction management software can help with that, whether it&#8217;s HashMicro or another provider that fits your workflow. The key is finding a system that matches how your team actually works on site.<\/p>\n<p>Take the next step toward optimizing your operations and achieving sustainable growth. Explore our solutions and discover their impact by trying a <a href=\"https:\/\/www.hashmicro.com\/my\/free-product-demo\/\">free demo<\/a> today.<\/p>\n<p>Want to see what fits your budget? Check the pricing estimate below.<\/p>\n<a href=\"https:\/\/www.hashmicro.com\/my\/offer\/download-erp-pricing-list?medium=banner-article\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/skema-harga-desktop-my.webp\" data-desktop-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/skema-harga-desktop-my.webp\" data-mobile-src=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/08\/skema-harga-mobile-my.webp\" alt=\"SkemaHarga\" class=\"responsive-image-banner\"><\/a>\r\n\r\n<script>\r\n    \/\/ check which image to use based on screensize\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n        function updateImageSource() {\r\n            var images = document.querySelectorAll('.responsive-image-banner');\r\n            var screenWidth = window.innerWidth;\r\n\r\n            images.forEach(function(img) {\r\n                var mobileSrc = img.getAttribute('data-mobile-src');\r\n                var desktopSrc = img.getAttribute('data-desktop-src');\r\n\r\n                if (screenWidth < 576 && mobileSrc) {\r\n                    img.setAttribute('src', mobileSrc);\r\n                } else {\r\n                    img.setAttribute('src', desktopSrc);\r\n                }\r\n            });\r\n        }\r\n\r\n        \/\/ Initial check\r\n        updateImageSource();\r\n\r\n        \/\/ Update on resize\r\n        window.addEventListener('resize', updateImageSource);\r\n    });\r\n<\/script>\n<h2><strong>FAQ About Construction Productivity<\/strong><\/h2>\n<ul class=\"bottom_faq\">\n<li>\n<details open=\"open\">\n<summary><strong>What is a good productivity rate in construction?<\/strong><\/summary>\n<p>There is no single universal &#8216;good&#8217; rate, as it varies by trade, region, and project type. The best approach is to benchmark your own historical performance and aim for continuous, measurable improvement over time. An annual increase of 3-5% is often considered a strong and achievable target for many firms.<\/p>\n<\/details>\n<\/li>\n<li>\n<details open=\"open\">\n<summary><strong>How does technology improve construction productivity?<\/strong><\/summary>\n<p>Technology improves productivity by automating manual tasks, centralizing communication, providing real-time data for better decision-making, and optimizing resource management. This reduces errors, minimizes downtime, and ensures all stakeholders are working with the most up-to-date information.<\/p>\n<\/details>\n<\/li>\n<li>\n<details open=\"open\">\n<summary><strong>What are the main causes of low productivity in construction?<\/strong><\/summary>\n<p>The main causes include poor planning and scheduling, miscommunication between teams, supply chain delays, rework due to errors, and insufficient management of labor and equipment. These factors often lead to significant wasted time and resources on-site.<\/p>\n<\/details>\n<\/li>\n<li>\n<details open=\"open\">\n<summary><strong>How can you improve labor productivity in construction?<\/strong><\/summary>\n<p>Labor productivity can be improved by ensuring clear work plans, providing proper tools and training, fostering a safe work environment, and minimizing downtime. Implementing digital tools for time tracking and progress reporting also helps identify and address inefficiencies quickly.<\/p>\n<\/details>\n<\/li>\n<\/ul>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [{\n    \"@type\": \"Question\",\n    \"name\": \"What is a good productivity rate in construction?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"There is no single universal 'good' rate, as it varies by trade, region, and project type. The best approach is to benchmark your own historical performance and aim for continuous, measurable improvement over time. An annual increase of 3-5% is often considered a strong and achievable target for many firms.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How does technology improve construction productivity?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Technology improves productivity by automating manual tasks, centralizing communication, providing real-time data for better decision-making, and optimizing resource management. This reduces errors, minimizes downtime, and ensures all stakeholders are working with the most up-to-date information.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"What are the main causes of low productivity in construction?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"The main causes include poor planning and scheduling, miscommunication between teams, supply chain delays, rework due to errors, and insufficient management of labor and equipment. These factors often lead to significant wasted time and resources on-site.\"\n    }\n  },{\n    \"@type\": \"Question\",\n    \"name\": \"How can you improve labor productivity in construction?\",\n    \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Labor productivity can be improved by ensuring clear work plans, providing proper tools and training, fostering a safe work environment, and minimizing downtime. Implementing digital tools for time tracking and progress reporting also helps identify and address inefficiencies quickly.\"\n    }\n  }]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Construction projects rarely go exactly as planned. Delays, miscommunication between teams, and unexpected cost increases are common across the industry. These problems often start small but build up quickly when site operations, procurement, and scheduling aren&#8217;t properly connected. The financial impact is real. According to McKinsey, construction productivity grows at just 1% per year, far [&hellip;]<\/p>\n","protected":false},"author":38,"featured_media":12910,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[61],"tags":[136,139,143,140,108,134,135,149,109,171,112,106,178,123,121,122,168,119,131,132,174,180,110,204,89,184,91,88,156,101,100,99,142,161,137,183,203,186,196,176,86,177,84,170,169,85,104,141,151,133,126,92,95,93,193,94,67,160,153,68,87,154,124,69,70,125,162,113,114,115,199,120,150,111,157,179,207,206,146,147,128,127,200,185,144,173,148,205,103,105,107,181,152,197,189,202,117,116,102,118,175,138,191,155,163,130,129,90,145,158,159,201,73,74,194,165,172,166,167,188,98,182,192,190,195,187,96,97,164,198],"class_list":{"0":"post-12515","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-construction","8":"tag-account-reconciliation-software","9":"tag-accounting","10":"tag-accounting-automation","11":"tag-accounting-software","12":"tag-accounting-software-malaysia","13":"tag-amortization","14":"tag-asset-management","15":"tag-bank-reconciliation-software","16":"tag-best-accounting-software-malaysia","17":"tag-best-erp-software-for-pharmaceutical-industry","18":"tag-best-pos-system-malaysia","19":"tag-best-procurement-software","20":"tag-bpr","21":"tag-business-intelligence-services","22":"tag-business-intelligence-software","23":"tag-business-intelligence-tools","24":"tag-business-process-automation","25":"tag-central-kitchen-software","26":"tag-client-management-software","27":"tag-client-management-software-malaysia","28":"tag-cloud-erp","29":"tag-cloud-inventory-software","30":"tag-cloud-pos-system","31":"tag-construction-asset-management-software","32":"tag-construction-erp-malaysia","33":"tag-construction-estimating-software","34":"tag-construction-management-software","35":"tag-construction-software-malaysia","36":"tag-credit-note","37":"tag-crm-malaysia","38":"tag-crm-software","39":"tag-crm-software-malaysia","40":"tag-current-ratio","41":"tag-demand-forecasting","42":"tag-distribution-accounting-software","43":"tag-employee-attendance-management-system","44":"tag-employee-retention-strategies","45":"tag-employee-value-proposition","46":"tag-employee-retention","47":"tag-erp-for-packaging-industry","48":"tag-erp-in-malaysia","49":"tag-erp-manufacturing","50":"tag-erp-software","51":"tag-erp-software-for-pharmaceutical-industry","52":"tag-erp-software-integration","53":"tag-erp-system","54":"tag-fb-pos-system-malaysia","55":"tag-finished-goods-inventory","56":"tag-food-inventory-management","57":"tag-goodwill","58":"tag-hr-payroll-system","59":"tag-hr-software","60":"tag-hr-software-malaysia","61":"tag-hr-system","62":"tag-hris-system","63":"tag-hrms-system","64":"tag-inventory","65":"tag-inventory-control","66":"tag-inventory-forecasting","67":"tag-inventory-management-software","68":"tag-inventory-management-software-malaysia","69":"tag-inventory-management-strategies","70":"tag-inventory-management-system","71":"tag-inventory-software","72":"tag-inventory-system","73":"tag-inventory-system-malaysia","74":"tag-inventory-tracking","75":"tag-invoice-program","76":"tag-invoicing-software","77":"tag-invoicing-software-malaysia","78":"tag-key-performance-indicators","79":"tag-kitchen-management-system","80":"tag-malaysia","81":"tag-malaysia-pos-system","82":"tag-manufacturing-accounting-software","83":"tag-manufacturing-inventory","84":"tag-manufacturing-software","85":"tag-manufacturing-system","86":"tag-opportunity-cost","87":"tag-order-processing","88":"tag-payroll-software-malaysia","89":"tag-payroll-system-malaysia","90":"tag-payslip","91":"tag-performance-appraisal","92":"tag-petty-cash","93":"tag-pharmaceutical-erp-software","94":"tag-physical-inventory","95":"tag-pos-system","96":"tag-pos-system-restaurant","97":"tag-procurement-software","98":"tag-procurement-software-malaysia","99":"tag-profit-margin","100":"tag-profitability-ratio","101":"tag-prorated-salary","102":"tag-recruitment-software","103":"tag-restaurant-accounting-software","104":"tag-restaurant-management-software","105":"tag-restaurant-management-system","106":"tag-restaurant-pos-system","107":"tag-restaurant-software","108":"tag-retail-erp-malaysia","109":"tag-retained-earnings","110":"tag-revenue-recognition-software","111":"tag-roa","112":"tag-robotic-process-automation","113":"tag-scm-malaysia","114":"tag-scm-software","115":"tag-software-for-construction","116":"tag-special-journal","117":"tag-stocktake","118":"tag-stocktaking","119":"tag-succession-planning","120":"tag-supply-chain-management","121":"tag-supply-management","122":"tag-talent-management","123":"tag-tco","124":"tag-top-erp-software-for-pharmaceutical-industry","125":"tag-total-cost-of-ownership","126":"tag-types-of-erp","127":"tag-voice-picking","128":"tag-warehouse-inventory-management-software","129":"tag-warehouse-management","130":"tag-warehouse-putaway","131":"tag-warehouse-storage","132":"tag-wave-picking","133":"tag-wholesale-distribution-software","134":"tag-wms-malaysia","135":"tag-wms-system-malaysia","136":"tag-workflow-automation","137":"tag-zone-picking"},"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 Productivity Tips for Faster Projects<\/title>\n<meta name=\"description\" content=\"Improve construction productivity with practical tips to speed up workflows and complete projects faster and more efficiently.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Construction Productivity Tips for Faster Projects\" \/>\n<meta property=\"og:description\" content=\"Improve construction productivity with practical tips to speed up workflows and complete projects faster and more efficiently.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/\" \/>\n<meta property=\"og:site_name\" content=\"HashMicro Malaysia\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-10T17:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-12T03:58:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/05\/construction-productivity-hashmicro.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=\"Zulkarnain bin Idris\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Zulkarnain bin Idris\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/\"},\"author\":{\"name\":\"Zulkarnain bin Idris\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/f6667e0b454a9938c0688e22064ff64c\"},\"headline\":\"Construction Productivity Tips for Faster Projects\",\"datePublished\":\"2025-11-10T17:00:00+00:00\",\"dateModified\":\"2026-02-12T03:58:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/\"},\"wordCount\":1609,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/05\/construction-productivity-hashmicro.webp\",\"keywords\":[\"Account Reconciliation Software\",\"accounting\",\"Accounting Automation\",\"accounting software\",\"Accounting Software Malaysia\",\"Amortization\",\"Asset Management\",\"Bank Reconciliation Software\",\"Best Accounting Software Malaysia\",\"best erp software for pharmaceutical industry\",\"Best POS System Malaysia\",\"Best Procurement Software\",\"BPR\",\"Business Intelligence Services\",\"Business Intelligence Software\",\"Business Intelligence Tools\",\"Business Process Automation\",\"Central Kitchen Software\",\"Client Management Software\",\"Client Management Software Malaysia\",\"Cloud ERP\",\"Cloud Inventory Software\",\"Cloud POS System\",\"construction asset management software\",\"construction erp malaysia\",\"Construction Estimating Software\",\"construction management software\",\"construction software malaysia\",\"Credit Note\",\"CRM Malaysia\",\"CRM Software\",\"CRM Software Malaysia\",\"Current Ratio\",\"Demand Forecasting\",\"Distribution Accounting Software\",\"Employee Attendance Management System\",\"employee retention strategies\",\"Employee Value Proposition\",\"employee-retention\",\"ERP for Packaging Industry\",\"ERP in Malaysia\",\"ERP Manufacturing\",\"ERP Software\",\"erp software for pharmaceutical industry\",\"ERP Software Integration\",\"ERP System\",\"F&amp;B POS System Malaysia\",\"Finished Goods Inventory\",\"Food Inventory Management\",\"Goodwill\",\"HR Payroll System\",\"HR Software\",\"HR Software Malaysia\",\"HR System\",\"HRIS System\",\"HRMS System\",\"Inventory\",\"Inventory Control\",\"Inventory Forecasting\",\"Inventory management software\",\"inventory management software malaysia\",\"Inventory Management Strategies\",\"Inventory Management System\",\"inventory software\",\"inventory system\",\"Inventory System Malaysia\",\"Inventory Tracking\",\"Invoice Program\",\"Invoicing Software\",\"Invoicing Software Malaysia\",\"key performance indicators\",\"Kitchen Management System\",\"Malaysia\",\"Malaysia POS System\",\"Manufacturing Accounting Software\",\"Manufacturing Inventory\",\"Manufacturing Software\",\"Manufacturing System\",\"Opportunity Cost\",\"Order Processing\",\"Payroll Software Malaysia\",\"Payroll System Malaysia\",\"payslip\",\"Performance Appraisal\",\"Petty Cash\",\"pharmaceutical erp software\",\"Physical Inventory\",\"POS System\",\"POS System Restaurant\",\"Procurement Software\",\"Procurement Software Malaysia\",\"Profit Margin\",\"Profitability Ratio\",\"prorated salary\",\"recruitment software\",\"Restaurant Accounting Software\",\"Restaurant Management Software\",\"Restaurant Management System\",\"Restaurant POS System\",\"Restaurant Software\",\"Retail ERP Malaysia\",\"Retained Earnings\",\"Revenue Recognition Software\",\"ROA\",\"Robotic Process Automation\",\"SCM Malaysia\",\"SCM Software\",\"software for construction\",\"Special Journal\",\"Stocktake\",\"Stocktaking\",\"succession planning\",\"supply chain management\",\"supply management\",\"talent management\",\"TCO\",\"top erp software for pharmaceutical industry\",\"Total Cost of Ownership\",\"Types of ERP\",\"Voice Picking\",\"Warehouse Inventory Management Software\",\"Warehouse Management\",\"Warehouse Putaway\",\"warehouse storage\",\"Wave Picking\",\"Wholesale Distribution Software\",\"WMS Malaysia\",\"WMS System Malaysia\",\"Workflow Automation\",\"Zone Picking\"],\"articleSection\":[\"Construction\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/\",\"name\":\"Construction Productivity Tips for Faster Projects\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/05\/construction-productivity-hashmicro.webp\",\"datePublished\":\"2025-11-10T17:00:00+00:00\",\"dateModified\":\"2026-02-12T03:58:57+00:00\",\"description\":\"Improve construction productivity with practical tips to speed up workflows and complete projects faster and more efficiently.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/05\/construction-productivity-hashmicro.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/05\/construction-productivity-hashmicro.webp\",\"width\":1200,\"height\":675,\"caption\":\"construction productivity\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/my\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Construction Productivity Tips for Faster Projects\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/\",\"name\":\"HashMicro Malaysia\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/my\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#organization\",\"name\":\"HashMicro Malaysia\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp\",\"width\":422,\"height\":255,\"caption\":\"HashMicro Malaysia\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/f6667e0b454a9938c0688e22064ff64c\",\"name\":\"Zulkarnain bin Idris\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Zulkarnain-bin-Idris-BG-Tangga-1080x1080-1-96x96.webp\",\"contentUrl\":\"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Zulkarnain-bin-Idris-BG-Tangga-1080x1080-1-96x96.webp\",\"caption\":\"Zulkarnain bin Idris\"},\"description\":\"Zulkarnain bin Idris focuses on writing articles tailored to various industries, including manufacturing, distribution, and construction. He ensures each piece addresses industry-specific challenges and trends, helping readers understand how technology can transform their operations. By staying updated on market shifts, he develops fresh, relevant content that resonates with professionals in diverse sectors.\",\"url\":\"https:\/\/www.hashmicro.com\/my\/blog\/author\/zulkarnain-bin-idris\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Construction Productivity Tips for Faster Projects","description":"Improve construction productivity with practical tips to speed up workflows and complete projects faster and more efficiently.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/","og_locale":"en_US","og_type":"article","og_title":"Construction Productivity Tips for Faster Projects","og_description":"Improve construction productivity with practical tips to speed up workflows and complete projects faster and more efficiently.","og_url":"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/","og_site_name":"HashMicro Malaysia","article_published_time":"2025-11-10T17:00:00+00:00","article_modified_time":"2026-02-12T03:58:57+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/05\/construction-productivity-hashmicro.webp","type":"image\/webp"}],"author":"Zulkarnain bin Idris","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Zulkarnain bin Idris","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/"},"author":{"name":"Zulkarnain bin Idris","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/f6667e0b454a9938c0688e22064ff64c"},"headline":"Construction Productivity Tips for Faster Projects","datePublished":"2025-11-10T17:00:00+00:00","dateModified":"2026-02-12T03:58:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/"},"wordCount":1609,"commentCount":0,"publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/05\/construction-productivity-hashmicro.webp","keywords":["Account Reconciliation Software","accounting","Accounting Automation","accounting software","Accounting Software Malaysia","Amortization","Asset Management","Bank Reconciliation Software","Best Accounting Software Malaysia","best erp software for pharmaceutical industry","Best POS System Malaysia","Best Procurement Software","BPR","Business Intelligence Services","Business Intelligence Software","Business Intelligence Tools","Business Process Automation","Central Kitchen Software","Client Management Software","Client Management Software Malaysia","Cloud ERP","Cloud Inventory Software","Cloud POS System","construction asset management software","construction erp malaysia","Construction Estimating Software","construction management software","construction software malaysia","Credit Note","CRM Malaysia","CRM Software","CRM Software Malaysia","Current Ratio","Demand Forecasting","Distribution Accounting Software","Employee Attendance Management System","employee retention strategies","Employee Value Proposition","employee-retention","ERP for Packaging Industry","ERP in Malaysia","ERP Manufacturing","ERP Software","erp software for pharmaceutical industry","ERP Software Integration","ERP System","F&amp;B POS System Malaysia","Finished Goods Inventory","Food Inventory Management","Goodwill","HR Payroll System","HR Software","HR Software Malaysia","HR System","HRIS System","HRMS System","Inventory","Inventory Control","Inventory Forecasting","Inventory management software","inventory management software malaysia","Inventory Management Strategies","Inventory Management System","inventory software","inventory system","Inventory System Malaysia","Inventory Tracking","Invoice Program","Invoicing Software","Invoicing Software Malaysia","key performance indicators","Kitchen Management System","Malaysia","Malaysia POS System","Manufacturing Accounting Software","Manufacturing Inventory","Manufacturing Software","Manufacturing System","Opportunity Cost","Order Processing","Payroll Software Malaysia","Payroll System Malaysia","payslip","Performance Appraisal","Petty Cash","pharmaceutical erp software","Physical Inventory","POS System","POS System Restaurant","Procurement Software","Procurement Software Malaysia","Profit Margin","Profitability Ratio","prorated salary","recruitment software","Restaurant Accounting Software","Restaurant Management Software","Restaurant Management System","Restaurant POS System","Restaurant Software","Retail ERP Malaysia","Retained Earnings","Revenue Recognition Software","ROA","Robotic Process Automation","SCM Malaysia","SCM Software","software for construction","Special Journal","Stocktake","Stocktaking","succession planning","supply chain management","supply management","talent management","TCO","top erp software for pharmaceutical industry","Total Cost of Ownership","Types of ERP","Voice Picking","Warehouse Inventory Management Software","Warehouse Management","Warehouse Putaway","warehouse storage","Wave Picking","Wholesale Distribution Software","WMS Malaysia","WMS System Malaysia","Workflow Automation","Zone Picking"],"articleSection":["Construction"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/","name":"Construction Productivity Tips for Faster Projects","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/05\/construction-productivity-hashmicro.webp","datePublished":"2025-11-10T17:00:00+00:00","dateModified":"2026-02-12T03:58:57+00:00","description":"Improve construction productivity with practical tips to speed up workflows and complete projects faster and more efficiently.","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#primaryimage","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/05\/construction-productivity-hashmicro.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/05\/construction-productivity-hashmicro.webp","width":1200,"height":675,"caption":"construction productivity"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/my\/blog\/construction-productivity\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/my\/blog\/"},{"@type":"ListItem","position":2,"name":"Construction Productivity Tips for Faster Projects"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#website","url":"https:\/\/www.hashmicro.com\/my\/blog\/","name":"HashMicro Malaysia","description":"","publisher":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/my\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#organization","name":"HashMicro Malaysia","url":"https:\/\/www.hashmicro.com\/my\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp","contentUrl":"https:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/09\/logo.webp","width":422,"height":255,"caption":"HashMicro Malaysia"},"image":{"@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/f6667e0b454a9938c0688e22064ff64c","name":"Zulkarnain bin Idris","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/my\/blog\/#\/schema\/person\/image\/","url":"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Zulkarnain-bin-Idris-BG-Tangga-1080x1080-1-96x96.webp","contentUrl":"http:\/\/www.hashmicro.com\/my\/blog\/wp-content\/uploads\/2025\/10\/cropped-Zulkarnain-bin-Idris-BG-Tangga-1080x1080-1-96x96.webp","caption":"Zulkarnain bin Idris"},"description":"Zulkarnain bin Idris focuses on writing articles tailored to various industries, including manufacturing, distribution, and construction. He ensures each piece addresses industry-specific challenges and trends, helping readers understand how technology can transform their operations. By staying updated on market shifts, he develops fresh, relevant content that resonates with professionals in diverse sectors.","url":"https:\/\/www.hashmicro.com\/my\/blog\/author\/zulkarnain-bin-idris\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/12515","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/users\/38"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/comments?post=12515"}],"version-history":[{"count":13,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/12515\/revisions"}],"predecessor-version":[{"id":15708,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/posts\/12515\/revisions\/15708"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media\/12910"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/media?parent=12515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/categories?post=12515"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/my\/blog\/wp-json\/wp\/v2\/tags?post=12515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}