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:

closure rate = closed / (open + 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 TypeDescription
Combination Building PermitFull-scope building permits covering multiple trades
Building PermitStandard building permits for construction and alterations
No-Plan Residential Combo (Mech/Elec/Plum)Residential permits covering mechanical, electrical, and plumbing in one filing
Electrical PmtElectrical wiring, panels, and service work
Electrical PV ComboSolar photovoltaic installations with electrical work
Photovoltaic - SB 379Solar panel installations under state streamlining law
No-Plan Nonresidential ElectricalCommercial/multifamily electrical permits
Mechanical PmtHVAC and mechanical system installations
No-Plan Nonresidential MechanicalCommercial/multifamily mechanical permits
Plumbing PmtPlumbing installations and modifications
No-Plan Nonresidential PlumbingCommercial/multifamily plumbing permits
Fire Pmt (Alarm / Suppression / Underground / Kitchen Hood)Fire protection system installations
Demolition PmtBuilding demolition
Grading PmtExcavation 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 TypeReason
Traffic Control PermitTraffic management, not building construction
Transportation PermitTransportation-related, not building construction
Construction Noise PermitAdministrative noise approval, not construction work
Sign PmtSign installation, not building construction
Right of Way PmtPublic right-of-way work, not building construction
Zoning / Use CertificatesLand use compliance, not construction work
Planning Permits (Conditional Use, Site Development, etc.)Discretionary planning approvals, not construction work
Temporary Use PmtTemporary events and structures
Spectrum Act PermitTelecommunications equipment, not building construction
Agreements, Maps, EasementsAdministrative 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:

StatusClassification
Closed / Completed / FinaledCounted as closed — work verified complete
IssuedCounted as open — permit issued, work not yet completed
Opened / OpenCounted as open — permit active
Inspection Followup / InspectingCounted as open — inspections pending
Approved Upon Final PaymentCounted as open — awaiting final payment
ExpiredCounted as open — permit expired without completion
Cancelled / WithdrawnExcluded — permit cancelled or withdrawn
Pending Invoice Payment / In Review / CreatedExcluded — 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].