Methodology

How we calculate closure rates and which permits we count for Philadelphia.

What is a closure rate?

When a contractor pulls a building permit in Philadelphia, 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?

Philadelphia’s L&I building permit data spans two systems of record — HANSEN (1/1/2007–3/13/2020) and the current ECLIPSE system (3/16/2020–present). We include construction permits from both:

HANSEN system (pre-2020)

Permit TypeDescription
Electrical PermitElectrical wiring, panels, service work
Plumbing PermitPlumbing installations and modifications
Alteration PermitRenovations and alterations to existing buildings
Mechanical PermitHVAC and mechanical system installations
Suppression PermitFire suppression system installations
New Construction PermitNew building construction
Demolition PermitBuilding demolition
Addition PermitBuilding additions
Fast Form Building PermitStreamlined building permits for smaller projects

ECLIPSE system (2020–present)

Permit TypeDescription
Electrical PermitElectrical installations and modifications
Plumbing PermitPlumbing installations and modifications
Residential Building PermitResidential construction, renovations, and additions
Commercial Building PermitCommercial construction and alterations
Mechanical / Fuel Gas PermitHVAC, mechanical, and fuel gas systems
Fire Suppression PermitFire suppression system installations
Demolition PermitBuilding demolition
General Permit MinorSmaller-scale general construction work
General PermitGeneral construction permits
Site / Utility PermitSite work and utility installations

Applicant identification

Philadelphia’s permit data has two relevant fields: a Contractor Name field identifying the contractor on the permit, and a separate Applicant Type field indicating the role of the person who applied (Professional / Tradesperson, Tenant, or Owner). We use the Contractor Name as the applicant for closure rate tracking.

About 22% of permits have no contractor name — these are typically owner-filed permits where no contractor was designated. These permits are still tracked but do not appear on any applicant’s record.

The dataset includes a SYSTEMOFRECORD field that identifies which L&I system each permit originates from: HANSEN (1/1/2007–3/13/2020) or ECLIPSE (3/16/2020–present).

What is excluded?

We exclude permits where low closure rates are systemic or the permit type doesn’t represent inspectable construction work:

Permit TypeReason
Zoning / Use PermitsLand use and zoning compliance, not construction work
Administrative PermitsAdministrative permits, not inspectable construction
Operations PermitsOperational permits, not construction work
Sign PermitsSign installation, not building construction
Zoning Admin ReviewAdministrative zoning review, not construction work
Master PlanPlanning-level permits, not construction work

Deduplication

The dataset may contain a small number of duplicate permit numbers where the same permit appears in both the legacy and ECLIPSE systems. The standard deduplication process runs during each nightly refresh to handle these cases.

Status classification

Per L&I’s data documentation, a “Completed” status means “construction should be wrapped up and any additional work would require additional permits.” The HANSEN and ECLIPSE systems use different status values. We map both to a common classification:

HANSEN (legacy) system

StatusClassification
COMPLETED / CLOSEDCounted as closed — work verified complete
ACTIVECounted as open — permit active, work not yet completed
EXPIREDCounted as open — permit expired without completion
ABANDONEDExcluded — permit abandoned, closure not applicable
REVOKEDExcluded — permit revoked

ECLIPSE system

StatusClassification
CompletedCounted as closed — work verified complete
IssuedCounted as open — permit issued, work not yet completed
ExpiredCounted as open — permit expired without completion
CancelledExcluded — permit cancelled before work
Refused / DeniedExcluded — permit application refused or denied
Stop WorkExcluded — work halted
WithdrawnExcluded — application withdrawn

We classify Expired as “open” because it indicates the contractor did not complete and close the permit before it expired. The dataset also includes a permitcompleteddate field, but we use the status field for classification as it is the authoritative indicator of permit completion.

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., Electrical, Plumbing). 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

All data comes from the L&I Building and Zoning Permits dataset on OpenDataPhilly. 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 Philadelphia Department of Licenses & Inspections at [email protected].