{"id":66489,"date":"2025-02-11T09:54:20","date_gmt":"2025-02-11T09:54:20","guid":{"rendered":"https:\/\/www.hashmicro.com\/blog\/?p=66489"},"modified":"2026-02-02T04:04:53","modified_gmt":"2026-02-02T04:04:53","slug":"schedule-of-rates","status":"publish","type":"post","link":"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/","title":{"rendered":"Understanding Schedule of Rates and How It Helps Projects"},"content":{"rendered":"<p>As a steel factory manager, you want higher output without rising costs. A Schedule of Rates (SoR) standardizes rates for materials, services, and labor, so budgeting and pricing stay consistent.<\/p>\r\n<p>The challenge is keeping rates accurate when market prices shift. Small scope or measurement errors can also create cost gaps and rework.<\/p>\r\n<p>Keep rates updated, tie them to real production data, and review variances often to catch waste early. Are your estimates reliable enough for the next production run?<\/p>\r\n<p><span style=\"font-weight: 400;\"> <\/span><\/p>\r\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%\">\r\n<tbody>\r\n<tr>\r\n<td style=\"padding: 15px; border: none;\">\r\n<h3 style=\"margin-bottom: 10px;\"><span style=\"background-color: #990000; color: #ffffff; padding: 5px;\"><b>Key Takeaways<\/b><\/span><\/h3>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Cost <a href=\"#overruns\">Control<\/a>:<\/b><span style=\"font-weight: 400;\"> Schedule of Rates (SoR) helps businesses manage costs by establishing standard pricing for materials, labor, and services, reducing budget overruns.<\/span><span style=\"font-weight: 400;\"><br \/><\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b><a href=\"#efficiency\">Efficiency<\/a>:<\/b><span style=\"font-weight: 400;\"> SoR streamlines project scheduling, improving resource allocation and reducing delays, leading to faster project completion.<\/span><span style=\"font-weight: 400;\"><br \/><\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b><a href=\"#flexibility\">Flexibility<\/a>:<\/b><span style=\"font-weight: 400;\"> SoR provides flexibility in adjusting prices based on market changes, enabling businesses to adapt without compromising project timelines.<\/span><span style=\"font-weight: 400;\"><br \/><\/span><\/li>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b><a href=\"#contractor\">Risk Reduction<\/a>:<\/b><span style=\"font-weight: 400;\"> SoR minimizes risks by clearly defining project costs and expectations, leading to improved contractor performance and reducing disputes.<\/span><\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\"><style>\r\n.button-cta-custom {\r\n    background-color: #8a0e19;\r\n    color: #fff !important;\r\n    -webkit-transition: all .3s ease;\r\n    transition: all .3s ease;\r\n    padding: 8px 24px;\r\n    display: inline-block;\r\n    border-radius: 8px;\r\n    font-size: 16px;\r\n    font-weight: bold;\r\n}\r\n.button-cta-custom:hover{\r\n\tbackground-color:#991b26\t\t\r\n}\r\n<\/style>\r\n<a class=\"button-cta-custom\" href=\"https:\/\/www.hashmicro.com\/free-product-tour\/?medium=cta-button\" target=\"_blank\">Click Here to Get the Free Demo!<\/a><\/span><\/p>\r\n<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<a href=\"https:\/\/www.hashmicro.com\/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>\r\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\">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\r\n<h2><b>What is the Schedule of Rates?<\/b><\/h2>\r\n<p>A Schedule of Rates (SoR) is a document listing fixed costs for tasks and services in a project, covering labor, materials, and equipment. Unlike traditional estimates, which focus on quantities, an SoR is based on specific tasks, making it ideal when the scope is uncertain.<\/p>\r\n<p>This approach offers flexibility, enabling businesses to manage projects efficiently even when exact quantities are undefined. By listing work units (e.g., per hour, per square meter) and their corresponding rates, an SoR helps businesses control costs and avoid renegotiating contracts for unforeseen changes.<\/p>\r\n<p><span id=\"overruns\">Key components include work descriptions, units of measurement, and rates, allowing businesses to maintain transparency, manage risks, and ensure clear cost calculations throughout the project lifecycle.<\/span><\/p>\r\n<h2><b>What is the Purpose of the Schedule of Rates?<\/b><\/h2>\r\n<p><a href=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Banner-Azriel-2.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-66507\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Banner-Azriel-2.jpg\" alt=\"\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Banner-Azriel-2.jpg 1200w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Banner-Azriel-2-300x169.jpg 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Banner-Azriel-2-1024x576.jpg 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Banner-Azriel-2-768x432.jpg 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Banner-Azriel-2-747x420.jpg 747w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Banner-Azriel-2-150x84.jpg 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Banner-Azriel-2-696x392.jpg 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Banner-Azriel-2-1068x601.jpg 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\r\n<p><span style=\"font-weight: 400;\">The purpose of a Schedule of Rates (SoR) is to provide businesses with a clear, flexible framework for managing project costs, especially when the full scope of work isn\u2019t defined upfront. It sets predetermined rates for tasks such as labor, materials, and equipment, helping businesses calculate expenses accurately and avoid cost overruns.\u00a0<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">This approach enables more reliable cost estimation, even when project requirements change unexpectedly. What makes an SoR particularly valuable is its ability to adjust to unforeseen project changes. As work evolves, the predefined rates allow businesses to quickly assess the cost impact of these changes, without needing to renegotiate contracts.\u00a0<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">This flexibility ensures that companies can stay on budget, even when the scope of the project fluctuates. Additionally, a Schedule of Rates helps streamline cost management by clearly outlining each work item and its associated rate. <\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">This transparency ensures that businesses can easily compare prices from different contractors or suppliers, making it easier to control expenses and optimize project delivery.\u00a0<\/span><span style=\"font-weight: 400;\">Overall, an SoR offers businesses the reliability and flexibility they need to effectively manage costs and stay competitive.<\/span><\/p>\r\n<h2><b>How is the Schedule of Rates Being Used by Businesses?<\/b><\/h2>\r\n<p><span style=\"font-weight: 400;\">The <\/span><b>Schedule of Rates (SoR)<\/b><span style=\"font-weight: 400;\"> serves as a structured framework that businesses use to standardize rates for various transactions, resources, and services. It\u2019s commonly utilized across industries like construction, finance, and project management, helping businesses manage costs and streamline operations. Here\u2019s how it\u2019s effectively used in different areas:<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Costing and budgeting\u00a0<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Businesses calculate labor, material, and non-labor costs by applying predefined rates, ensuring accurate budgets and financial forecasts. This clarity helps businesses manage expenses from the get-go, whether it\u2019s for regular labor costs or for calculating the use of specific equipment.<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\">\r\n<h3><b>Billing and revenue management\u00a0<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">They allow businesses to determine accurate billing amounts for clients by applying predefined rates, ensuring transparency in invoicing for both labor and non-labor transactions. <\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">Moreover, rate schedules are essential in <\/span><b>financial planning<\/b><span style=\"font-weight: 400;\">, providing organizations with a reliable way to forecast revenues, align project budgets, and keep operations in check.<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\">\r\n<h3><b>Project management<\/b><span style=\"font-weight: 400;\">\u00a0<\/span><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">It relies on rate schedules to allocate costs to specific tasks and activities. This simplifies tracking and adjusting project costs, ensuring everything stays within budget. Furthermore, rate schedules help businesses set <\/span><b>pricing strategies<\/b><span style=\"font-weight: 400;\">, define profit margins, and stay competitive.\u00a0<\/span><\/p>\r\n<ul>\r\n<li style=\"font-weight: 400;\" aria-level=\"1\">\r\n<h3><b>Regulatory compliance<\/b><span style=\"font-weight: 400;\">\u00a0<\/span><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Here SoRs play a key role by ensuring cost transparency and adherence to industry standards, ultimately contributing to smooth operations and financial integrity. By providing a clear framework for cost allocation, businesses can make informed decisions, minimize financial risks, and enhance profitability.\u00a0<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">Whether it\u2019s managing day-to-day operations, planning for future projects, or ensuring compliance with regulations, the Schedule of Rates offers businesses the tools to maintain control, optimize resources, and achieve consistent financial outcomes.<\/span><\/p>\r\n<p>&nbsp;<\/p>\r\n<h2><b>What are the Benefits of Using a Schedule of Rates?<\/b><\/h2>\r\n<p><a href=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Why-is-It-Important-to-Use-Cost-Per-Unit-1.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-66508\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Why-is-It-Important-to-Use-Cost-Per-Unit-1.jpg\" alt=\"\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Why-is-It-Important-to-Use-Cost-Per-Unit-1.jpg 1200w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Why-is-It-Important-to-Use-Cost-Per-Unit-1-300x169.jpg 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Why-is-It-Important-to-Use-Cost-Per-Unit-1-1024x576.jpg 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Why-is-It-Important-to-Use-Cost-Per-Unit-1-768x432.jpg 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Why-is-It-Important-to-Use-Cost-Per-Unit-1-747x420.jpg 747w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Why-is-It-Important-to-Use-Cost-Per-Unit-1-150x84.jpg 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Why-is-It-Important-to-Use-Cost-Per-Unit-1-696x392.jpg 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Why-is-It-Important-to-Use-Cost-Per-Unit-1-1068x601.jpg 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\r\n<p><span style=\"font-weight: 400;\">After you understand how it is being used by businesses, this section explains various benefits the schedule of rates could offer to businesses. By defining clear rates for labor, materials, and services, SoRs provide businesses with a reliable framework for budgeting, estimating costs, and managing resources effectively.\u00a0<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">In industries such as construction, project management, and procurement, SoRs help businesses maintain transparency, control costs, and foster fair competition. Here are some of the benefits it could possibly offer:<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Enhanced cost control<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">By establishing predefined rates for different project components, SoRs enable businesses to predict costs with greater accuracy, reducing the risk of budget overruns. This structure ensures that all expenses, from labor to materials, are accounted for and managed efficiently.<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Transparency and fairness<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\"><span id=\"efficiency\">SoRs create a level playing field by ensuring all parties use the same rates for pricing, reducing the chances of inflated bids during tendering processes. This transparency not only promotes fair competition but also minimizes the potential for disputes over costs, as work is valued according to the established rates.<\/span><\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Efficiency in contract management<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\"><span id=\"flexibility\">Managing contracts becomes more straightforward with SoRs, as they provide a clear reference point for pricing variations and additional work. This reduces the time spent on negotiations and allows businesses to adjust project scopes flexibly without the need for extensive contract amendments.<\/span><\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Flexibility<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">One of the key advantages of SoRs is their adaptability. Whether a project experiences changes in scope or unforeseen circumstances arise, SoRs allow businesses to maintain control over costs while still adjusting to evolving project needs, all without disrupting timelines or project flow.<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Standardization<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">SoRs help businesses standardize pricing across multiple projects, ensuring that costs are aligned with current market rates. This consistency makes cost estimation more accurate and helps in benchmarking against competitors, improving market intelligence and future planning.<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Time and cost savings<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">The use of SoRs significantly cuts down on time spent negotiating individual rates for each project task. By having predefined rates in place, businesses can move through the planning and execution phases more quickly, while also simplifying billing and payment processes to reduce administrative costs.<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Improved quality assurance<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Fixed rates under SoRs encourage contractors to uphold quality standards. Since the rates are predefined and transparent, contractors are incentivized to meet the agreed-upon terms without compromising on the quality of their work to lower costs.<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Risk mitigation<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">SoRs help mitigate risks by providing a documented, agreed-upon pricing structure. This transparency reduces the likelihood of legal disputes over pricing and ensures that businesses are not exposed to unexpected financial liabilities.<\/span><\/p>\r\n<h2><b>What are Differences Between Schedule of Rates and Bill of Quantites?<\/b><\/h2>\r\n<p><span style=\"font-weight: 400;\">The <\/span><b>Schedule of Rates (SoR)<\/b><span style=\"font-weight: 400;\"> and the <\/span><b>Bill of Quantities (BoQ)<\/b><span style=\"font-weight: 400;\"> are two essential tools used in construction and project management. While both are crucial for effective project costing, they differ in their purpose, scope, and application. Take a look at the table below for comparison to highlight their key differences:<\/span><\/p>\r\n<p><a href=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-001617.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-66509\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-001617.png\" alt=\"\" width=\"958\" height=\"1045\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-001617.png 958w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-001617-275x300.png 275w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-001617-939x1024.png 939w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-001617-768x838.png 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-001617-385x420.png 385w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-001617-150x164.png 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-001617-300x327.png 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-001617-696x759.png 696w\" sizes=\"auto, (max-width: 958px) 100vw, 958px\" \/><\/a><\/p>\r\n<p><span style=\"font-weight: 400;\">Both tools are crucial in their respective contexts, and when used together, they can provide a comprehensive approach to project management and cost control, particularly in the diverse and dynamic business environment of Singapore.<\/span><\/p>\r\n<p>&nbsp;<\/p>\r\n<h2><b>What is the Example of the Schedule of Rates?<\/b><\/h2>\r\n<p><span style=\"font-weight: 400;\">A well-defined <\/span><b>Schedule of Rates (SoR)<\/b><span style=\"font-weight: 400;\"> is essential for businesses to manage costs efficiently, streamline contract negotiations, and ensure pricing transparency. It serves as a standardized framework that companies across various industries use to estimate costs, set pricing structures, and facilitate billing. <\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">Whether in construction, IT services, or facilities management, rate schedules provide a reliable reference for budgeting and financial planning.<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">By implementing a structured SoR, businesses can <\/span><b>avoid cost overruns, enhance operational efficiency, and maintain consistency in pricing<\/b><span style=\"font-weight: 400;\">. Below are some industry-specific examples of how businesses apply rate schedules in their operations.<\/span><\/p>\r\n<h3><b>1. Construction industry<\/b><\/h3>\r\n<p><a href=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-225705.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-66510\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-225705.png\" alt=\"schedule of rates\" width=\"2129\" height=\"719\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-225705.png 2048w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-225705-300x101.png 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-225705-1024x346.png 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-225705-768x259.png 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-225705-1536x519.png 1536w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-225705-1244x420.png 1244w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-225705-150x51.png 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-225705-696x235.png 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-225705-1068x361.png 1068w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-225705-1920x648.png 1920w\" sizes=\"auto, (max-width: 2129px) 100vw, 2129px\" \/><\/a><\/p>\r\n<p><span style=\"font-weight: 400;\">Construction firms frequently use SoRs to estimate project costs, manage budgets, and create transparent pricing structures for clients. Standardized rates help contractors bid competitively while ensuring fair pricing across the industry.<\/span><\/p>\r\n<h3><b>2. IT and software services<\/b><\/h3>\r\n<p><a href=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-230501.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-66511\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-230501.png\" alt=\"schedule of rates\" width=\"1230\" height=\"399\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-230501.png 1230w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-230501-300x97.png 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-230501-1024x332.png 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-230501-768x249.png 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-230501-150x49.png 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-230501-696x226.png 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-230501-1068x346.png 1068w\" sizes=\"auto, (max-width: 1230px) 100vw, 1230px\" \/><\/a><\/p>\r\n<p><span style=\"font-weight: 400;\">Within the tech industry, predefined rates ensure transparency in pricing software development, IT support, and cybersecurity services. Clients benefit from clear expectations, while service providers can quote projects more accurately.<\/span><\/p>\r\n<h3><b>3. Cleaning and maintenance services<\/b><\/h3>\r\n<p><a href=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-231244.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-66512\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-231244.png\" alt=\"Schedule of rates\" width=\"1168\" height=\"399\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-231244.png 1168w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-231244-300x102.png 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-231244-1024x350.png 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-231244-768x262.png 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-231244-150x51.png 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-231244-696x238.png 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-10-231244-1068x365.png 1068w\" sizes=\"auto, (max-width: 1168px) 100vw, 1168px\" \/><\/a><\/p>\r\n<p><span style=\"font-weight: 400;\">For businesses in facilities management, SoRs ensure consistent pricing for routine and specialized cleaning services, reducing disputes and improving service efficiency.<\/span><\/p>\r\n<h3><b>Why These are Matters for Businesses?<\/b><\/h3>\r\n<p><span style=\"font-weight: 400;\">With a structured rate schedule, businesses can <\/span><b>ensure pricing consistency, improve cost management, and simplify financial planning<\/b><span style=\"font-weight: 400;\">. This not only enhances transparency but also helps in building trust with clients and suppliers. Regardless of industry, an effective SoR contributes to smoother operations and better financial control.<\/span><\/p>\r\n<h2><b>What are the Challenges of Using a Schedule of Rates?<\/b><\/h2>\r\n<p><a href=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/12.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-66513\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/12.jpg\" alt=\"\" width=\"1200\" height=\"675\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/12.jpg 1200w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/12-300x169.jpg 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/12-1024x576.jpg 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/12-768x432.jpg 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/12-747x420.jpg 747w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/12-150x84.jpg 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/12-696x392.jpg 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/12-1068x601.jpg 1068w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><\/p>\r\n<p><span style=\"font-weight: 400;\">While a <\/span><b>Schedule of Rates (SoR)<\/b><span style=\"font-weight: 400;\"> is a valuable tool for cost control and contract management, businesses must navigate several challenges to ensure its effectiveness. From maintaining accuracy to preventing disputes, addressing these issues proactively can help companies maximise the benefits of an SoR while minimising risks.<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Complexity and ongoing maintenance<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Developing an SoR is not a one-time task; it requires significant time and expertise. Businesses must carefully define rates for different tasks, materials, and services, ensuring they reflect real-world costs. However, the challenge doesn\u2019t stop there.\u00a0<\/span><\/p>\r\n<p><b>Frequent updates are essential<\/b><span style=\"font-weight: 400;\"> to keep up with market fluctuations, rising material costs, and evolving labour rates. Without regular reviews, businesses may face cost discrepancies, which could lead to budget overruns and potential disputes with contractors.<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Ensuring accuracy and completeness<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">An effective SoR must provide precise and comprehensive pricing details. Inaccurate rates can create major financial risks, leading to differences between estimated and actual costs. When costs are not correctly accounted for, projects may experience financial strain, requiring adjustments that disrupt budgeting and scheduling.<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Inflexibility in changing market conditions<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">One of the biggest challenges of using an SoR is its <\/span><b>rigid structure<\/b><span style=\"font-weight: 400;\">. Once the rates are fixed, businesses may find it difficult to make changes, even when market conditions shift. This lack of flexibility can limit opportunities to optimize costs or take advantage of better pricing options.<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Risk of misuse and cost escalation<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">If not managed correctly, an SoR may lead to higher costs instead of savings. Outdated rates can distort project budgets, while unclear cost structures may create <\/span><b>room for manipulation<\/b><span style=\"font-weight: 400;\">. Furthermore, businesses may require additional resources to verify whether the agreed rates accurately reflect actual costs incurred.<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Contractor incentives and project delays<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">An SoR typically compensates contractors based on the volume of work completed. While this ensures a fair valuation of tasks, it can sometimes lead to unintended consequences. <\/span><b><br \/><\/b><\/p>\r\n<p><b>Contractors might not be incentivised to complete work efficiently<\/b><span style=\"font-weight: 400;\">, as prolonging the project could generate additional revenue. This can lead to delays, increased costs, and inefficiencies.<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Interpretation issues leading to disputes<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Disagreements may arise when subcontractors interpret an SoR differently from the main contractor or client. For instance, they might claim that certain rates only apply to specific conditions, such as particular <\/span><b>project sizes or durations<\/b><span style=\"font-weight: 400;\">. If there is ambiguity in how rates should be used, disputes can disrupt project flow and lead to additional costs.<\/span><\/p>\r\n<h2><b>How HashMicro Manufacturing Software Could be the Best Solution for Your Business?<\/b><\/h2>\r\n<p><a href=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-085551.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-66516\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-085551.png\" alt=\"schedule of rates\" width=\"2048\" height=\"1326\" srcset=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-085551.png 2048w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-085551-300x194.png 300w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-085551-1024x663.png 1024w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-085551-768x497.png 768w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-085551-1536x995.png 1536w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-085551-649x420.png 649w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-085551-150x97.png 150w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-085551-696x451.png 696w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-085551-1068x692.png 1068w, https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-11-085551-1920x1243.png 1920w\" sizes=\"auto, (max-width: 2048px) 100vw, 2048px\" \/><\/a><\/p>\r\n<p><b>HashMicro&#8217;s Manufacturing Software<\/b><span style=\"font-weight: 400;\"> is an all-in-one solution designed to help businesses in Singapore streamline their <\/span><b>Schedule of Rates (SoR)<\/b><span style=\"font-weight: 400;\"> management. SoR management is critical in industries where cost control, accurate pricing, and efficient production are essential to maintaining profitability.\u00a0<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">This software provides businesses with the tools needed to tackle the complexities of SoR management by improving cost accuracy, scheduling, flexibility, and risk reduction. <\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">In doing so, it enables companies to make informed decisions, optimize their operations, and stay competitive in a dynamic market. Here\u2019s how <\/span><b>HashMicro&#8217;s <\/b><a href=\"https:\/\/www.hashmicro.com\/blog\/manufacturing-software-singapore\/\"><b>Manufacturing Software<\/b><\/a><span style=\"font-weight: 400;\"> can help your business achieve greater operational success:<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Ensure accurate pricing &amp; cost control<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">First and foremost, Manufacturing Cost Actualization &amp; BoM Cost Forecast ensures that businesses can align their actual production costs with their planned budget. This reduces discrepancies and keeps your SoR pricing precise and up-to-date.<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">Additionally, with Real-Time Stock Input and Output for Production, businesses can maintain accurate material cost calculations, protecting themselves from price fluctuations that could otherwise lead to financial risks.<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Simplify sor management<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">Managing SoR can be complex, but Manufacturing Gantt Chart Schedule Management streamlines production scheduling. This eliminates confusion when applying rates, ensuring smooth operations throughout the production process.\u00a0<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">Moreover, the Stock Requisition Based on Planned Production feature ensures that materials are available exactly when needed. This helps businesses maintain SoR consistency without running into unnecessary cost overruns, enhancing overall efficiency.<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Stay flexible to meet market demands<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">In today\u2019s fast-paced market, flexibility is crucial. Manufacturing Planning &amp; Work Order Tracking enables businesses to adapt their SoR pricing dynamically based on changing market conditions. This means businesses can remain competitive, adjusting rates as necessary without being locked into rigid pricing structures.\u00a0<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">Unbuild Order Management further adds to this flexibility, allowing businesses to modify work orders easily while ensuring that pricing adjustments are fair and transparent.<\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Reduce financial &amp; operational risks<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">To mitigate financial and operational risks, OEE Tracking (Overall Equipment Effectiveness) ensures that your equipment is being used optimally. This means your SoR pricing is based on actual productivity, rather than assumptions or inefficient operations.\u00a0<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\"><span id=\"contractor\">Additionally, Manufacturing Quality Control guarantees that your products meet SoR-based quality standards. This not only reduces the chance of disputes but also ensures customer satisfaction, which is key to maintaining long-term business relationships.<\/span><\/span><\/p>\r\n<ul>\r\n<li aria-level=\"1\">\r\n<h3><b>Improve contractor &amp; subcontractor performance<\/b><\/h3>\r\n<\/li>\r\n<\/ul>\r\n<p><span style=\"font-weight: 400;\">When it comes to managing external partners, Made to Order Completion Forecast is an invaluable tool. It accurately predicts order completion times, helping businesses avoid delays and stay within budget.\u00a0<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">Furthermore, Manufacturing Subcon Management allows you to monitor subcontractor efficiency, reducing the risk of overbilling and ensuring that SoR agreements are followed fairly.<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">By incorporating <\/span><a href=\"https:\/\/www.hashmicro.com\/hash-manufacturing-software\"><span style=\"font-weight: 400;\">HashMicro&#8217;s Manufacturing Software<\/span><\/a><span style=\"font-weight: 400;\">, businesses in Singapore can streamline their Schedule of Rates management. This ultimately leads to improved decision-making, better cost control, and enhanced profitability, all while minimizing risks and maintaining operational success.\u00a0<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">Whether you\u2019re in manufacturing or other industries, HashMicro provides the tools you need to thrive in a competitive market.<\/span><\/p>\r\n<p>&nbsp;<\/p>\r\n<h2><b>Conclusion<\/b><span style=\"font-weight: 400;\">\u00a0<\/span><\/h2>\r\n<p><span style=\"font-weight: 400;\">Effective Schedule of Rates (SoR) management is crucial for maximizing profitability and efficiency in today\u2019s competitive manufacturing landscape. By ensuring precise cost control, optimizing production schedules, and minimizing financial risks, businesses can enhance overall performance.<\/span><\/p>\r\n<p><span style=\"font-weight: 400;\">With real-time stock tracking and cost alignment, companies stay ahead in a fast-paced market. Meanwhile, dynamic work order tracking and equipment monitoring improve productivity while effective subcontractor management prevents unnecessary expenses.<\/span><\/p>\r\n<p><a href=\"https:\/\/www.hashmicro.com\/hash-manufacturing-software\"><span style=\"font-weight: 400;\">HashMicro\u2019s Manufacturing Automation<\/span><\/a><span style=\"font-weight: 400;\"> simplifies SoR management, streamlining processes, improving cost accuracy, and boosting operational efficiency. By reducing manual effort, it lets your team focus on growth and productivity. Take the next step toward smarter operations; try our <\/span><a href=\"https:\/\/www.hashmicro.com\/id\/tour-produk-gratis\/\"><span style=\"font-weight: 400;\">free demo<\/span><\/a><span style=\"font-weight: 400;\"> today and see the transformation firsthand.<\/span><\/p>\r\n<a href=\"https:\/\/www.hashmicro.com\/hash-manufacturing-software?medium=moneysite-banner\" target=\"_blank\"><img decoding=\"async\" loading=\"lazy\" width=\"712\" src=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/06\/Manufacturing.webp\" alt=\"Hash Manufacturing Automation\"><\/a>\r\n","protected":false},"excerpt":{"rendered":"<p>As a steel factory manager, you want higher output without rising costs. A Schedule of Rates (SoR) standardizes rates for materials, services, and labor, so budgeting and pricing stay consistent. The challenge is keeping rates accurate when market prices shift. Small scope or measurement errors can also create cost gaps and rework. Keep rates updated, [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":66506,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[89,253],"tags":[2939],"class_list":{"0":"post-66489","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-industries","8":"category-manufacturing","9":"tag-nobanner"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.6 (Yoast SEO v26.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Understanding Schedule of Rates and How It Helps Projects<\/title>\n<meta name=\"description\" content=\"Discover what a Schedule of Rates (SoR) is and how it helps you control project costs with clear pricing for labor, materials, and equipment\" \/>\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\/blog\/schedule-of-rates\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding Schedule of Rates and How It Helps Projects\" \/>\n<meta property=\"og:description\" content=\"Discover what a Schedule of Rates (SoR) is and how it helps you control project costs with clear pricing for labor, materials, and equipment\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/\" \/>\n<meta property=\"og:site_name\" content=\"BusinessTech\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/web.facebook.com\/hashmicro\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-11T09:54:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-02T04:04:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Blue-Doodle-Project-Presentation-2.jpg\" \/>\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\/jpeg\" \/>\n<meta name=\"author\" content=\"Anatha Ginting\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:site\" content=\"@hashmicro\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Anatha Ginting\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/\"},\"author\":{\"name\":\"Anatha Ginting\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/fd6a863bec7b351016c5ae3ec08948a6\"},\"headline\":\"Understanding Schedule of Rates and How It Helps Projects\",\"datePublished\":\"2025-02-11T09:54:20+00:00\",\"dateModified\":\"2026-02-02T04:04:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/\"},\"wordCount\":2581,\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Blue-Doodle-Project-Presentation-2.jpg\",\"keywords\":[\"NoBanner\"],\"articleSection\":[\"Industries\",\"Manufacturing\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/\",\"name\":\"Understanding Schedule of Rates and How It Helps Projects\",\"isPartOf\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Blue-Doodle-Project-Presentation-2.jpg\",\"datePublished\":\"2025-02-11T09:54:20+00:00\",\"dateModified\":\"2026-02-02T04:04:53+00:00\",\"description\":\"Discover what a Schedule of Rates (SoR) is and how it helps you control project costs with clear pricing for labor, materials, and equipment\",\"breadcrumb\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/#primaryimage\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Blue-Doodle-Project-Presentation-2.jpg\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Blue-Doodle-Project-Presentation-2.jpg\",\"width\":1200,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.hashmicro.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Understanding Schedule of Rates and How It Helps Projects\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#website\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/\",\"name\":\"BusinessTech\",\"description\":\"Business Management Blog\",\"publisher\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hashmicro.com\/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\/blog\/#organization\",\"name\":\"HashMicro\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png\",\"contentUrl\":\"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png\",\"width\":334,\"height\":51,\"caption\":\"HashMicro\"},\"image\":{\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/web.facebook.com\/hashmicro\/\",\"https:\/\/x.com\/hashmicro\",\"https:\/\/www.linkedin.com\/company\/hashmicro\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/fd6a863bec7b351016c5ae3ec08948a6\",\"name\":\"Anatha Ginting\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/01a5baa16cb50808f3b9f5bf1e75940409ab0912a720fcd78e68157b9e1d31e3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/01a5baa16cb50808f3b9f5bf1e75940409ab0912a720fcd78e68157b9e1d31e3?s=96&d=mm&r=g\",\"caption\":\"Anatha Ginting\"},\"description\":\"A full-time Content Writer at HashMicro. Strive to develop my writing skill and knowledge in terms of business, technology, and other relevant issues.\",\"url\":\"https:\/\/www.hashmicro.com\/blog\/author\/anatha\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Understanding Schedule of Rates and How It Helps Projects","description":"Discover what a Schedule of Rates (SoR) is and how it helps you control project costs with clear pricing for labor, materials, and equipment","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\/blog\/schedule-of-rates\/","og_locale":"en_US","og_type":"article","og_title":"Understanding Schedule of Rates and How It Helps Projects","og_description":"Discover what a Schedule of Rates (SoR) is and how it helps you control project costs with clear pricing for labor, materials, and equipment","og_url":"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/","og_site_name":"BusinessTech","article_publisher":"https:\/\/web.facebook.com\/hashmicro\/","article_published_time":"2025-02-11T09:54:20+00:00","article_modified_time":"2026-02-02T04:04:53+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Blue-Doodle-Project-Presentation-2.jpg","type":"image\/jpeg"}],"author":"Anatha Ginting","twitter_card":"summary_large_image","twitter_creator":"@hashmicro","twitter_site":"@hashmicro","twitter_misc":{"Written by":"Anatha Ginting","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/#article","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/"},"author":{"name":"Anatha Ginting","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/fd6a863bec7b351016c5ae3ec08948a6"},"headline":"Understanding Schedule of Rates and How It Helps Projects","datePublished":"2025-02-11T09:54:20+00:00","dateModified":"2026-02-02T04:04:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/"},"wordCount":2581,"publisher":{"@id":"https:\/\/www.hashmicro.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Blue-Doodle-Project-Presentation-2.jpg","keywords":["NoBanner"],"articleSection":["Industries","Manufacturing"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/","url":"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/","name":"Understanding Schedule of Rates and How It Helps Projects","isPartOf":{"@id":"https:\/\/www.hashmicro.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/#primaryimage"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Blue-Doodle-Project-Presentation-2.jpg","datePublished":"2025-02-11T09:54:20+00:00","dateModified":"2026-02-02T04:04:53+00:00","description":"Discover what a Schedule of Rates (SoR) is and how it helps you control project costs with clear pricing for labor, materials, and equipment","breadcrumb":{"@id":"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/#primaryimage","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Blue-Doodle-Project-Presentation-2.jpg","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2025\/02\/Blue-Doodle-Project-Presentation-2.jpg","width":1200,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/www.hashmicro.com\/blog\/schedule-of-rates\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hashmicro.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Understanding Schedule of Rates and How It Helps Projects"}]},{"@type":"WebSite","@id":"https:\/\/www.hashmicro.com\/blog\/#website","url":"https:\/\/www.hashmicro.com\/blog\/","name":"BusinessTech","description":"Business Management Blog","publisher":{"@id":"https:\/\/www.hashmicro.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hashmicro.com\/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\/blog\/#organization","name":"HashMicro","url":"https:\/\/www.hashmicro.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png","contentUrl":"https:\/\/www.hashmicro.com\/blog\/wp-content\/uploads\/2016\/02\/bt_logo-1.png","width":334,"height":51,"caption":"HashMicro"},"image":{"@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/web.facebook.com\/hashmicro\/","https:\/\/x.com\/hashmicro","https:\/\/www.linkedin.com\/company\/hashmicro"]},{"@type":"Person","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/fd6a863bec7b351016c5ae3ec08948a6","name":"Anatha Ginting","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hashmicro.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/01a5baa16cb50808f3b9f5bf1e75940409ab0912a720fcd78e68157b9e1d31e3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/01a5baa16cb50808f3b9f5bf1e75940409ab0912a720fcd78e68157b9e1d31e3?s=96&d=mm&r=g","caption":"Anatha Ginting"},"description":"A full-time Content Writer at HashMicro. Strive to develop my writing skill and knowledge in terms of business, technology, and other relevant issues.","url":"https:\/\/www.hashmicro.com\/blog\/author\/anatha\/"}]}},"order_j":"","_links":{"self":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/66489","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/comments?post=66489"}],"version-history":[{"count":9,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/66489\/revisions"}],"predecessor-version":[{"id":79126,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/posts\/66489\/revisions\/79126"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/media\/66506"}],"wp:attachment":[{"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/media?parent=66489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/categories?post=66489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hashmicro.com\/blog\/wp-json\/wp\/v2\/tags?post=66489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}