INSTANT COST ESTIMATOR
Calculate in 2 mins
MY Home Builders, Inc.

© 2026 MY Home Builders, Inc. All rights reserved. Licensed General Contractor, Los Angeles, CA.

Estimates are ballpark figures for planning purposes, subject to on-site physical inspection.

', '', '
', '
', ' MY Home Builders, Inc.', '
', '
Estimated Ballpark Summary
', '

' + serviceName + '

', '
', '
Ballpark Project Range
', '
' + rangeStr + '
', '
Please note: This ballpark estimate is for preliminary planning only and does not represent an official quote. The final price can only be calculated upon an on-site visit (Free of charge or commitment).
', '
', '
', '
', '
', fullName ? '
Prepared For: ' + fullName + '
' : '', '
Date: ' + dateStr + '
', '
', '
', '
Status: Consultation Requested
', '
License: CA Lic. #1002927
', '
', '
', '
', ' ', '
', ' ', '' ].filter(Boolean).join('\n'); doc.write(htmlContent); doc.close(); setTimeout(() => { try { printFrame.contentWindow.focus(); printFrame.contentWindow.print(); } catch (err) { window.print(); } }, 350); }; /* ========================================================================== 7. UI RENDERING ENGINE ========================================================================== */ function render() { const content = getEl('estimator-content'); // Smooth scroll to top of card on step transition const card = document.querySelector('.est-card'); if (card && state.step !== 0) { card.scrollIntoView({ behavior: 'smooth', block: 'start' }); } // ------------------------------------------------------------------------ // STEP 0: SERVICE SELECTION SCREEN (EXACT MATCH TO SCREENSHOT) // ------------------------------------------------------------------------ if (state.step === 0) { content.innerHTML = `

Calculate Your Remodel Ballpark Estimate

Select your project type below to begin our quick 2-minute design & installation questionnaire. Instant ballpark range with zero obligation.

1. CHOOSE YOUR SERVICE
${SERVICES.map(s => `
${s.name}
${s.name}
${s.desc}
`).join('')}
`; return; } // ------------------------------------------------------------------------ // RESULTS SCREEN // ------------------------------------------------------------------------ if (state.step === 'results') { const { min, max, items } = calculateCost(); const serviceName = SERVICES.find(s => s.id === state.selectedService)?.name || 'Remodeling Project'; content.innerHTML = `
Estimated Ballpark Summary

${serviceName}

Ballpark Project Range
${fmtRange(min, max)}
Please note: This ballpark estimate is for preliminary planning only and does not represent an official quote. The final price can only be calculated upon an on-site visit (Free of charge or commitment).
${state.contactSubmitted ? `
✓
Estimate Request Received!

A dedicated MY Home Builders project specialist will review your project specs and contact you within 1 business day to schedule your free on-site design consultation.

` : `
Ready to Take the Next Step?

Submit your contact info to receive a digital copy of this estimate and lock in a free, in-person design consultation with a licensed specialist.

`}
`; return; } // ------------------------------------------------------------------------ // QUESTION STEPS // ------------------------------------------------------------------------ const flow = FLOWS[state.selectedService]; const stepIndex = state.step; const stepData = flow.steps[stepIndex - 1]; const totalSteps = flow.steps.length; // Progress bar segments let progressHTML = `
`; for (let i = 1; i <= totalSteps; i++) { let segmentClass = 'progress-bar-segment'; if (i < stepIndex) segmentClass += ' filled'; else if (i === stepIndex) segmentClass += ' current'; progressHTML += `
`; } progressHTML += `
`; // Bottom Running Cost Bar: CLEAN, WITHOUT "ESTIMATED RUNNING TOTAL" text (per red strikethrough) const runningCost = calculateCost(); const runningCostHTML = `
${fmtRange(runningCost.min, runningCost.max)}
`; // Step-specific inner content let questionContentHTML = ''; // TYPE: INFO STEP (Scope List) if (stepData.type === 'info') { questionContentHTML = `
    ${stepData.scopeList.map(li => `
  • ✓ ${li}
  • `).join('')}
`; // Default record for info step if (!state.answers[stepData.id]) { state.answers[stepData.id] = { label: 'Base Scope', minVal: stepData.minVal, maxVal: stepData.maxVal }; } } // TYPE: SELECT (Single Choice) else if (stepData.type === 'select') { const selectedVal = state.answers[stepData.id]?.value; const isOtherFloorSelected = (stepData.id === 'floor_type' && selectedVal === 'other'); questionContentHTML = `
${stepData.choices.map((c, idx) => `
${c.label} ${c.sub ? `${c.sub}` : ''}
`).join('')}
${isOtherFloorSelected ? `
📞 Please note: For custom floor products, our specialist will provide a tailored quote during your free in-home consultation.
` : ''} `; } // TYPE: MULTISELECT (Multiple Choice) else if (stepData.type === 'multiselect') { const selectedList = state.answers[stepData.id] || []; questionContentHTML = ` ${stepData.subTitle ? `

${stepData.subTitle}

` : ''}
${stepData.choices.map((c, idx) => { const isSelected = selectedList.some(item => item.value === c.value); return `
${c.label}
`; }).join('')}
`; } // TYPE: RELOCATION STEP (Conditional Question per MD Specs) else if (stepData.type === 'relocation_step') { const relocState = state.answers['relocate_fixtures'] || { relocate: null, items: [] }; const isRelocating = relocState.relocate === 'yes'; const isNotRelocating = relocState.relocate === 'no'; questionContentHTML = `
No, keep all fixtures in their existing positions Plumbing rough-ins stay in current locations
Yes, relocate one or more plumbing fixtures Move drain lines, water supply lines, or reconfigure layout
${isRelocating ? `
Select which fixtures you plan to relocate:
${stepData.choices.map(c => { const isChecked = relocState.items.includes(c.value); return `
${c.label}
`; }).join('')}
` : ''} `; } // Next button disabled validation let isNextDisabled = false; if (stepData.type === 'select' && !state.answers[stepData.id]) { isNextDisabled = true; } if (stepData.type === 'multiselect' && (!state.answers[stepData.id] || state.answers[stepData.id].length === 0)) { isNextDisabled = true; } if (stepData.type === 'relocation_step') { const relocState = state.answers['relocate_fixtures']; if (!relocState || !relocState.relocate) { isNextDisabled = true; } else if (relocState.relocate === 'yes' && relocState.items.length === 0) { isNextDisabled = true; } } content.innerHTML = `
${progressHTML}
STEP ${stepIndex} OF ${totalSteps}

${stepData.title}

${questionContentHTML}
`; } window.render = render; /* ========================================================================== 8. INITIALIZATION ========================================================================== */ function initEstimator() { // Modal events getEl('modal-close-x')?.addEventListener('click', closeTermsModal); getEl('modal-agree-btn')?.addEventListener('click', agreeTermsAndClose); getEl('terms-modal')?.addEventListener('click', (e) => { if (e.target === getEl('terms-modal')) closeTermsModal(); }); // Initial render render(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initEstimator); } else { initEstimator(); }

Garage Conversion & Addition to ADU - Inglewood, CA

Contact Us Today for a Free Consultation!

 

Our home design and remodeling experts are eager to understand your vision and create a space that truly reflects your personality and accomodates your needs. Send us a message or call us today to arrange your complimentary consultation with MY Home Builders!

See what projects we've completed near you

Let's Connect

At MY Home Builders, we are dedicated to providing comprehensive construction and remodeling services to each and every one of our valued clients. Send us a message to get a free quote or schedule a consultation for your upcoming home construction or remodeling project!

1Your Contact Information
2Property Address Details
3Choose Your Service

1. your contact information

tell us about you

Name(Required)
Last Name(Required)