AspirtekCPWD DSR · State SOR
Menu
Home / DSR vs Market Rates
PILLAR 04

DSR vs Market Rates

Scheduled rates and the open market drift apart over time. Knowing when — and by how much — protects both your margin and your bid.

2 articles·Reviewed Jun 2026·Pricing & risk
In this hub
→
Start here · Analysis

DSR vs market: a structured comparison

Where scheduled rates lag the open market, and the line items most exposed to price drift.

9 min
01
Guide

Real-time rate adjustments

Building a defensible adjustment on top of a dated DSR base, item by item.

7 min

Compare DSR against live rates

Price a BOQ on the DSR base, then see where market adjustments matter most.

Try the free BOQ tool → How EstimateNext prices a BOQ →

Articles in this pillar

3 guides · updated as we publish

DSR vs Market Rate Comparison
Understanding DSR vs Market Rate Differences in Construction Estimation
Explore the factors that create gaps between DSR and market rates in construction estimation, and learn methods to bridge these differences effectivel
Real-Time Rate Adjustments
How to Integrate Market Rates into DSR for Accurate Cost Estimation
Combine market rates with CPWD DSR for accurate, competitive construction cost estimation.
DSR vs Market Rate Comparison
How Do DSR Rates Compare to Market Rates? A Contractor's Perspective
Understand the differences between DSR and market rates, and learn practical steps to adjust for real-world conditions to stay competitive and profita

Articles in this pillar

3 guides · updated as we publish

DSR vs Market Rate Comparison
Understanding DSR vs Market Rate Differences in Construction Estimation
Explore the factors that create gaps between DSR and market rates in construction estimation, and learn methods to bridge these differences effectivel
Real-Time Rate Adjustments
How to Integrate Market Rates into DSR for Accurate Cost Estimation
Combine market rates with CPWD DSR for accurate, competitive construction cost estimation.
DSR vs Market Rate Comparison
How Do DSR Rates Compare to Market Rates? A Contractor's Perspective
Understand the differences between DSR and market rates, and learn practical steps to adjust for real-world conditions to stay competitive and profita

', …), // where dollar-quote and dollar-amp are special replace tokens; and it lives in a // JS template literal that eats backslash escapes. So keep this block free of the // dollar sign and of backslash escapes: exact-match CTA texts (no regex end-anchor) // plus a space-only collapse regex. var cnxCtaTexts = ['book a demo','request a demo','get a demo','book demo','schedule a demo','talk to sales','talk to us','talk to the team','get in touch','contact us','contact sales','contact the team','contact']; function cnxIsContactCta(el){ if (el.id && el.id.indexOf('cnx-') === 0) return false; if (el.hasAttribute && el.hasAttribute('data-cnx-contact')) return true; var raw = ((el.getAttribute && el.getAttribute('href')) || '').toLowerCase(); var hh = raw.split('?')[0].split('#')[0]; if (raw === '#contact' || hh === '/contact' || hh === 'contact' || hh === 'contact.html' || (hh.length >= 8 && hh.lastIndexOf('/contact') === hh.length - 8) || (hh.length >= 13 && hh.lastIndexOf('/contact.html') === hh.length - 13)) return true; var t = (el.textContent || '').replace(/ +/g, ' ').trim().toLowerCase(); if (t.length > 24) return false; for (var k = 0; k < cnxCtaTexts.length; k++) { if (t === cnxCtaTexts[k]) return true; } return false; } document.addEventListener('click', function (e) { var el = e.target; while (el && el !== document) { if (el.tagName === 'A' || el.tagName === 'BUTTON') break; el = el.parentNode; } if (!el || el === document) return; if (cnxIsContactCta(el)) { e.preventDefault(); e.stopPropagation(); openModal(); } }, true); if (closeBtn) closeBtn.addEventListener('click', closeModal); if (scrim) scrim.addEventListener('click', function(e){ if(e.target === scrim) closeModal(); }); if (form) form.addEventListener('submit', function(e){ e.preventDefault(); var note = document.getElementById('cnx-note'), err = document.getElementById('cnx-err'), btn = document.getElementById('cnx-submit'); note.style.display='none'; err.style.display='none'; if (form.website_url && form.website_url.value){ note.style.display='block'; return; } // honeypot var payload = { name: form.name.value, email: form.email.value, company: form.company.value, phone: form.phone.value, message: form.message.value, subscribe_newsletter: form.subscribe_newsletter && form.subscribe_newsletter.checked, turnstile_token: form.turnstile_token ? form.turnstile_token.value : '', _token_ts: tsEl ? tsEl.value : tokenTs() }; if (!payload.name || !payload.email || !payload.company || !payload.phone || !payload.message){ err.textContent='Please fill in all required fields.'; err.style.display='block'; return; } if (payload.phone.replace(/[^0-9]/g, '').length < 7){ err.textContent='Please enter a valid phone number.'; err.style.display='block'; return; } btn.disabled = true; btn.textContent = 'Sending…'; post(payload).then(function(d){ if (d && d.success){ form.style.display='none'; note.style.display='block'; } else { err.textContent = (d && d.message) || 'Something went wrong — please try again.'; err.style.display='block'; btn.disabled=false; btn.textContent='Send message'; } }).catch(function(){ err.textContent='Network error — please try again.'; err.style.display='block'; btn.disabled=false; btn.textContent='Send message'; }); }); // --- Progressive enhancement: wire a site's OWN contact form to the CRM --- // Targets forms that look like contact forms (have an email field AND a // textarea/message field), aren't ours, and aren't opted out. Field mapping is // heuristic; company falls back to the entered name so the CRM never rejects. function pick(f, res){ for (var i=0;i