Methodology
How we calculate closure rates and which permits we count for San Diego.
What is a closure rate?
When a contractor pulls a building permit in San Diego, an inspector needs to verify the work was completed correctly before the permit can be closed. A closure rate measures the percentage of an applicant’s permits that have been properly closed:
The 365-day eligibility rule
A contractor who pulled a permit last month hasn’t had time to complete the work yet. To avoid penalizing recent activity, we only count permits issued more than 365 days ago when calculating closure rates.
Permits issued within the last year still appear in the data but are dimmed in the table and not factored into the rate.
Which permits are included?
San Diego’s Development Services Department (DSD) publishes permit data through the City’s Open Data Portal. We include construction permits that represent real trade work where closure is a meaningful signal of contractor accountability:
| Permit Type | Description |
|---|---|
| Combination Building Permit | Full-scope building permits covering multiple trades |
| Building Permit | Standard building permits for construction and alterations |
| No-Plan Residential Combo (Mech/Elec/Plum) | Residential permits covering mechanical, electrical, and plumbing in one filing |
| Electrical Pmt | Electrical wiring, panels, and service work |
| Electrical PV Combo | Solar photovoltaic installations with electrical work |
| Photovoltaic - SB 379 | Solar panel installations under state streamlining law |
| No-Plan Nonresidential Electrical | Commercial/multifamily electrical permits |
| Mechanical Pmt | HVAC and mechanical system installations |
| No-Plan Nonresidential Mechanical | Commercial/multifamily mechanical permits |
| Plumbing Pmt | Plumbing installations and modifications |
| No-Plan Nonresidential Plumbing | Commercial/multifamily plumbing permits |
| Fire Pmt (Alarm / Suppression / Underground / Kitchen Hood) | Fire protection system installations |
| Demolition Pmt | Building demolition |
| Grading Pmt | Excavation and grading work |
Applicant identification
San Diego’s dataset includes an Approval Permit Holder field — the entity the permit is issued to. This is typically the contractor or solar installer who pulled the permit.
About 23% of active permits have no permit holder listed. These permits are still tracked but do not appear on any applicant’s record. The closed permits file has 97% permit holder coverage.
What is excluded?
We exclude permits where low closure rates are systemic or the permit type doesn’t represent inspectable construction work:
| Permit Type | Reason |
|---|---|
| Traffic Control Permit | Traffic management, not building construction |
| Transportation Permit | Transportation-related, not building construction |
| Construction Noise Permit | Administrative noise approval, not construction work |
| Sign Pmt | Sign installation, not building construction |
| Right of Way Pmt | Public right-of-way work, not building construction |
| Zoning / Use Certificates | Land use compliance, not construction work |
| Planning Permits (Conditional Use, Site Development, etc.) | Discretionary planning approvals, not construction work |
| Temporary Use Pmt | Temporary events and structures |
| Spectrum Act Permit | Telecommunications equipment, not building construction |
| Agreements, Maps, Easements | Administrative and legal documents, not construction work |
Deduplication
San Diego’s data comes from two files: active approvals and closed approvals. Both are ingested and merged during each nightly refresh. Each approval has a unique ID, but a permit may appear in both files during status transitions. We deduplicate on approval ID, keeping one row per unique permit.
During dedup, we reconcile permit status: if any copy of a permit was marked as closed, the surviving row is updated to reflect that closure — ensuring we never lose a legitimate completion.
Status classification
San Diego permits have many status values. We classify them into three groups for closure rate calculations:
| Status | Classification |
|---|---|
| Closed / Completed / Finaled | Counted as closed — work verified complete |
| Issued | Counted as open — permit issued, work not yet completed |
| Opened / Open | Counted as open — permit active |
| Inspection Followup / Inspecting | Counted as open — inspections pending |
| Approved Upon Final Payment | Counted as open — awaiting final payment |
| Expired | Counted as open — permit expired without completion |
| Cancelled / Withdrawn | Excluded — permit cancelled or withdrawn |
| Pending Invoice Payment / In Review / Created | Excluded — pre-issuance statuses |
San Diego’s data begins in 2018 when the DSD migrated to its current cloud-based permitting system. Historical permits from the legacy system are not included.
Leaderboard criteria
The leaderboard applies two additional filters:
- Minimum 20 rated permits — avoids surfacing statistically insignificant data.
- Active in the last 3 years — prevents the list from being populated by defunct companies.
The leaderboard can be filtered by permit type (e.g., Building, Electrical, Mechanical). When filtered, both thresholds apply only to permits of the selected type.
Median comparison
On applicant detail pages, each closure rate is compared to the median closure rate across all leaderboard-eligible applicants in the same category. This gives context — a 50% closure rate means something different in a category where the median is 40% versus one where it’s 80%.
Medians are calculated from the same pool of applicants who meet the 20-permit minimum threshold.
Data source
Data comes from the Development Permits dataset on the City of San Diego Open Data Portal (active and closed approvals). The dataset is refreshed nightly.
Limitations
This site shows permit closure data. It does not evaluate the quality of anyone’s work. There are legitimate reasons a permit may remain open:
- Client non-cooperation — the property owner may fail to schedule the final inspection or grant access.
- Administrative backlog — work may be inspected and approved but not yet updated in the system.
- Project delays — financing, design changes, supply chain issues, or other factors outside the applicant’s control.
- Multi-phase projects — large commercial projects may legitimately take years to complete.
- Permit holder vs. contractor — the applicant may be a GC, architect, or owner — not necessarily the person scheduling the inspection.
If you believe there are inaccuracies in the underlying permit data, contact the Development Services Department at [email protected].