Arizona Commercial Permit Fee Estimator

ANALife Services AuthorityNational Calculator Authority›Arizona Commercial Permit Fee 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; } }

Arizona Commercial Permit Fee Estimator

Estimate commercial building permit fees in Arizona based on project valuation, occupancy type, and jurisdiction. Fees are calculated using ICC Building Valuation Data and standard Arizona municipal fee schedules.

Total Project Valuation ($)

Enter the total construction valuation (materials + labor)

Occupancy / Use Type

-- Select Occupancy Type -- A – Assembly (restaurants, theaters, churches) B – Business (offices, banks, clinics) E – Educational (schools, daycare) F – Factory / Industrial H – High Hazard I – Institutional (hospitals, nursing homes) M – Mercantile (retail, stores) R – Residential (hotels, apartments 3+ units) S – Storage (warehouses, parking garages) U – Utility / Miscellaneous

Jurisdiction

-- Select Jurisdiction -- Phoenix Tucson Mesa Chandler Scottsdale Tempe Gilbert Peoria Surprise Unincorporated / Other County

Building Square Footage (sq ft)

Gross floor area of the proposed commercial structure

Number of Stories

Fire Sprinkler System?

No Yes

Sprinkler systems require a separate fire permit fee

Plan Review Required?

Yes (standard commercial projects) No (minor alterations / tenant improvements under $50k)

Calculate Permit Fee

function ariCalc() { // --- Gather inputs --- var valuation = parseFloat(document.getElementById('ari-valuation').value); var occupancy = document.getElementById('ari-occupancy').value; var jurisdiction= document.getElementById('ari-jurisdiction').value; var sqft = parseFloat(document.getElementById('ari-sqft').value); var stories = parseInt(document.getElementById('ari-stories').value) || 1; var sprinkler = document.getElementById('ari-fire-sprinkler').value; var planReview = document.getElementById('ari-plan-review').value; var resultDiv = document.getElementById('ari-result');

// --- Validation --- var errors = []; if (isNaN(valuation) || valuation 0) { resultDiv.style.display = 'block'; resultDiv.innerHTML = 'Please fix the following:' + errors.map(function(e){ return ''; }).join('') + ''; return; }

// --------------------------------------------------------------- // STEP 1: BASE BUILDING PERMIT FEE // Source: ICC / IBC fee schedule adopted by most AZ jurisdictions. // Tiered fee table based on total project valuation. // --------------------------------------------------------------- function baseBuildingFee(val) { // Tiered schedule (common AZ municipal adoption of IBC fee table): // $1 – $500: $23.50 flat // $501 – $2,000: $23.50 + $3.05 per $100 over $500 // $2,001 – $25,000: $69.25 + $14.00 per $1,000 over $2,000 // $25,001 – $50,000: $391.25 + $10.10 per $1,000 over $25,000 // $50,001 – $100,000: $643.75 + $7.00 per $1,000 over $50,000 // $100,001 – $500,000: $993.75 + $5.60 per $1,000 over $100,000 // $500,001 – $1,000,000: $3,233.75 + $4.75 per $1,000 over $500,000 // Over $1,000,000: $5,608.75 + $3.65 per $1,000 over $1,000,000 var fee = 0; if (val 2) { storySurcharge = baseFee * 0.02 * (stories - 2); }

// --------------------------------------------------------------- // STEP 6: FIRE SPRINKLER PERMIT FEE // Flat rate per head estimate: $0.50/sq ft for sprinkler permit // Source: Phoenix Fire Department fee schedule // --------------------------------------------------------------- var sprinklerFee = 0; if (sprinkler === 'yes') { sprinklerFee = Math.max(sqft * 0.50, 150); // minimum $150 }

// --------------------------------------------------------------- // STEP 7: STATE SURCHARGE (Arizona) // ARS §34-451: 1% of building permit fee goes to state fund // --------------------------------------------------------------- var adjustedBase = (baseFee + storySurcharge) * occMult * jurFactor; var stateSurcharge = adjustedBase * 0.01;

// --------------------------------------------------------------- // STEP 8: TECHNOLOGY / ADMIN FEE // Many AZ jurisdictions charge 3–5% admin/technology fee // --------------------------------------------------------------- var adminFee = adjustedBase * 0.03;

// --------------------------------------------------------------- // TOTAL // --------------------------------------------------------------- var totalFee = adjustedBase + planReviewFee * occMult * jurFactor + storySurcharge * 0 // already in adjustedBase + sprinklerFee + stateSurcharge + adminFee;

// Recalculate cleanly: var buildingPermitFee = (baseFee + storySurcharge) * occMult * jurFactor; var adjustedPlanReview = planReviewFee * occMult * jurFactor; stateSurcharge = buildingPermitFee * 0.01; adminFee = buildingPermitFee * 0.03; totalFee = buildingPermitFee + adjustedPlanReview + sprinklerFee + stateSurcharge + adminFee;

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

var occupancyLabels = { 'A':'Assembly','B':'Business','E':'Educational','F':'Factory/Industrial', 'H':'High Hazard','I':'Institutional','M':'Mercantile','R':'Residential','S':'Storage','U':'Utility' }; var jurisdictionLabels = { 'phoenix':'Phoenix','tucson':'Tucson','mesa':'Mesa','chandler':'Chandler', 'scottsdale':'Scottsdale','tempe':'Tempe','gilbert':'Gilbert','peoria':'Peoria', 'surprise':'Surprise','unincorporated':'Unincorporated / Other County' };

var html = '### Estimated Permit Fee Breakdown '; html += ''; html += 'Fee ComponentAmount'; html += 'Base Building Permit Fee' + fmt(baseFee) + ''; if (stories > 2) { html += 'Multi-Story Surcharge (' + (stories-2) + ' extra stories × 2%)' + fmt(baseFee * 0.02 * (stories-2)) + ''; } html += 'Occupancy Adjustment (' + occupancyLabels[occupancy] + ' × ' + occMult.toFixed(2) + ')× ' + occMult.toFixed(2) + ''; html += 'Jurisdiction Adjustment (' + jurisdictionLabels[jurisdiction] + ' × ' + jurFactor.toFixed(2) + ')× ' + jurFactor.toFixed(2) + ''; html += 'Adjusted Building Permit Fee' + fmt(buildingPermitFee) + ''; if (planReview === 'yes') { html += 'Plan Review Fee (65% of adjusted building fee)' + fmt(adjustedPlanReview) + ''; } if (sprinkler === 'yes') { html += 'Fire Sprinkler Permit Fee ($0.50/sq ft, min $150)' + fmt(sprinklerFee) + ''; } html += 'Arizona State Surcharge (1% per ARS §34-451)' + fmt(stateSurcharge) + ''; html += 'Technology / Admin Fee (3%)' + fmt(adminFee) + ''; html += 'TOTAL ESTIMATED PERMIT FEE' + fmt(totalFee) + ''; html += '';

html += ''; html += 'Project Summary: ' + fmt(valuation) + ' valuation | ' + sqft.toLocaleString() + ' sq ft | ' + stories + ' stor' + (stories===1?'y':'ies') + ' | Occupancy ' + occupancy + ' | ' + jurisdictionLabels[jurisdiction]; html += '';

html += ''; html += '⚠ Disclaimer: This is an estimate only. Actual fees are determined by the local jurisdiction at time of permit application. Contact your local building department for official fee schedules.'; html += '';

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

#### Formula

Building Permit Fee = (Base Fee + Multi-Story Surcharge) × Occupancy Multiplier × Jurisdiction Factor

Base Fee is calculated from a tiered IBC valuation schedule:

Plan Review Fee = Adjusted Building Permit Fee × 65%

Multi-Story Surcharge = Base Fee × 2% × (Stories − 2), for buildings over 2 stories

Fire Sprinkler Permit = max($0.50 × sq ft, $150)

Arizona State Surcharge = Building Permit Fee × 1% (ARS §34-451)

Admin / Technology Fee = Building Permit Fee × 3%

Total = Building Permit Fee + Plan Review Fee + Sprinkler Fee + State Surcharge + Admin Fee

#### Assumptions & References

More Calculators

Read Next

Event Venue Capacity Planner ANA › Life Services Authority › National Calculator Authority › Event Venue Capacity Planner .calc-container { max-width:...

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

References