California Commercial Building Permit Cost Estimator

ANALife Services AuthorityNational Calculator Authority›California Commercial Building Permit Cost Estimator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

California Commercial Building Permit Cost Estimator

Estimate commercial building permit fees in California based on project construction valuation, occupancy classification, and jurisdiction size. Fees follow ICC Building Valuation Data tables and California local fee schedules.

Total Construction Valuation ($)

Total project cost including labor and materials

Occupancy Type

B – Business (Office, Professional) A – Assembly (Restaurant, Theater, Church) E – Educational (School, Daycare) F – Factory / Industrial H – High Hazard I – Institutional (Hospital, Care Facility) M – Mercantile (Retail, Store) R – Residential (Hotel, Apartment 4+ units) S – Storage (Warehouse) U – Utility / Miscellaneous

Jurisdiction Tier

Large City (LA, SF, San Diego, San Jose) Medium City (100k–500k population) Small City / County (<100k population)

Building Square Footage

Gross floor area of the project

Number of Stories

Project Type

New Construction Addition / Alteration Tenant Improvement

Calculate Permit Cost

function calCalculate() { // --- Input retrieval --- var valuation = parseFloat(document.getElementById('cal-valuation').value); var occupancy = document.getElementById('cal-occupancy').value; var jurisdiction = document.getElementById('cal-jurisdiction').value; var sqft = parseFloat(document.getElementById('cal-sqft').value); var stories = parseInt(document.getElementById('cal-stories').value); var projectType = document.getElementById('cal-newconstruction').value; var resultDiv = document.getElementById('cal-result');

// --- Validation --- var errors = []; if (isNaN(valuation) || valuation 500000000) errors.push("Valuation cannot exceed $500,000,000 for this estimator.");

if (errors.length > 0) { resultDiv.style.display = 'block'; resultDiv.innerHTML = 'Please fix the following:' + errors.map(function(e){ return ''; }).join('') + ''; return; }

// ============================================================ // STEP 1: BASE BUILDING PERMIT FEE // Based on California/ICC tiered valuation fee table // Source: ICC Building Valuation Data + typical CA municipal schedules // ============================================================ var baseFee = 0; var v = valuation;

if (v 2) { storySurcharge = adjustedBaseFee * (stories - 2) * 0.03; }

// ============================================================ // STEP 11: FIRE & LIFE SAFETY REVIEW FEE // Occupancies A, E, H, I, R require fire department review // Typically 15–25% of building permit fee // ============================================================ var fireFee = 0; var fireOccupancies = ['A', 'E', 'H', 'I', 'R']; if (fireOccupancies.indexOf(occupancy) !== -1) { var fireRate = (occupancy === 'H' || occupancy === 'I') ? 0.25 : 0.18; fireFee = adjustedBaseFee * fireRate; }

// ============================================================ // STEP 12: ACCESSIBILITY (ADA/CBC) REVIEW FEE // Commercial projects: $0.05 per sq ft, min $200 // Source: CBC Chapter 11B // ============================================================ var accessibilityFee = Math.max(sqft * 0.05, 200); if (projectType === 'tenant') accessibilityFee = Math.max(sqft * 0.03, 150);

// ============================================================ // STEP 13: TECHNOLOGY / DOCUMENT MANAGEMENT SURCHARGE // Typically 3–5% of building permit fee (ePermit systems) // ============================================================ var techSurchargeRate = (jurisdiction === 'large') ? 0.05 : 0.03; var techFee = adjustedBaseFee * techSurchargeRate;

// ============================================================ // TOTALS // ============================================================ var subtotalFees = adjustedBaseFee + planCheckFee + smipFee + localSmipFee + calGreenFee + energyFee + storySurcharge + fireFee + accessibilityFee + techFee;

// State-level surcharge: 1% of total fees (BSCC, HCD, etc.) var stateSurcharge = subtotalFees * 0.01;

var totalFee = subtotalFees + stateSurcharge;

// Fee as % of valuation var feePercent = (totalFee / valuation * 100).toFixed(3);

// ============================================================ // FORMAT OUTPUT // ============================================================ function fmt(n) { return '$' + n.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ','); }

var occupancyLabels = { 'B':'B – Business','A':'A – Assembly','E':'E – Educational', 'F':'F – Factory','H':'H – High Hazard','I':'I – Institutional', 'M':'M – Mercantile','R':'R – Residential','S':'S – Storage','U':'U – Utility' }; var jurisdictionLabels = { 'large':'Large City','medium':'Medium City','small':'Small City / County' }; var projectTypeLabels = { 'new':'New Construction','addition':'Addition / Alteration','tenant':'Tenant Improvement' };

var html = '### Estimated Permit Cost Breakdown ' + '' + 'Fee ComponentAmount' + 'Building Permit Fee (base)' + fmt(baseFee) + '' + 'Occupancy Multiplier (' + occupancy + ' × ' + occMult.toFixed(2) + ')—' + 'Jurisdiction Multiplier (' + jurisdictionLabels[jurisdiction] + ' × ' + jurMult.toFixed(2) + ')—' + 'Project Type Modifier (' + projectTypeLabels[projectType] + ' × ' + projMult.toFixed(2) + ')—' + 'Adjusted Building Permit Fee' + fmt(adjustedBaseFee) + '' + 'Plan Check Fee (' + (planCheckRate100).toFixed(0) + '% of permit fee)' + fmt(planCheckFee) + '' + 'SMIP Seismic Fee (0.013% of valuation)' + fmt(smipFee) + '' + 'Local SMIP Fee (0.010% of valuation)' + fmt(localSmipFee) + '' + 'CALGreen Surcharge (' + fmt(calGreenRate) + '/sq ft × ' + sqft.toLocaleString() + ' sq ft)' + fmt(calGreenFee) + '' + 'Title 24 Energy Compliance Review' + fmt(energyFee) + '' + (storySurcharge > 0 ? 'Multi-Story Surcharge (' + stories + ' stories, 3%/story above 2)' + fmt(storySurcharge) + '' : '') + (fireFee > 0 ? 'Fire & Life Safety Review Fee' + fmt(fireFee) + '' : '') + 'Accessibility (ADA/CBC) Review Fee' + fmt(accessibilityFee) + '' + 'Technology / Document Management Surcharge' + fmt(techFee) + '' + 'State Surcharge (BSCC/HCD, 1%)' + fmt(stateSurcharge) + '' + 'TOTAL ESTIMATED PERMIT COST' + fmt(totalFee) + '*' + '' + 'Permit Fee as % of Valuation:** ' + feePercent + '%

' + 'Project Summary: ' + projectTypeLabels[projectType] + ' | ' + occupancyLabels[occupancy] + ' | ' + jurisdictionLabels[jurisdiction] + ' | ' + sqft.toLocaleString() + ' sq ft | ' + stories + ' stor' + (stories === 1 ? 'y' : 'ies') + ' | Valuation: ' + fmt(valuation) + '

' + 'This is an estimate only. Actual fees vary by jurisdiction. ' + 'Contact your local building department for official fee schedules before submitting permits.

';

resultDiv.style.display = 'block'; resultDiv.innerHTML = html; }

#### Formula & Fee Components

Total Permit Cost = Adjusted Permit Fee + Plan Check Fee + SMIP Fees + CALGreen Fee + Energy Review + Story Surcharge + Fire Review + Accessibility Fee + Tech Surcharge + State Surcharge

#### Assumptions & References

More Calculators

Read Next

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References