Methodology

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

What is a closure rate?

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

Included permits

Cleveland’s Department of Building and Housing publishes permits via an ArcGIS Feature Service. We include permits by PERMIT_SUBTYPE:

SubtypeDescription
ResidentialResidential construction permits (~136K)
CommercialCommercial construction permits (~51K)
Building / Building PermitsGeneral building permits
Elevator or Dumbwaiter / Elevator, Escalator, Lifts / EscalatorElevator and escalator permits (~2.5K)
MechanicalMechanical work permits

The PERMIT_CATEGORY field provides further classification (New, Electrical, HVAC, Plumbing, etc.) and is available as a leaderboard filter option.

Excluded permits

The following records are excluded from closure rate calculations based on their PERMIT_CATEGORY:

Excluded CategoryReason
Board-upsEmergency property securing, not construction work (~20K rows)
AntennaAntenna installation, not building construction
Storm Water Run-offEnvironmental permits, not building construction
Zoning (Fences, Signs, Parking, Review)Zoning approvals, not construction permits
Pre-issuance statusesApplication, review, and plan check statuses excluded (not yet issued)
Cancelled/voidedCancelled permits excluded from all calculations

Applicant identification

Cleveland’s dataset includes two contractor fields: CONTRATOR_BUSINESS_NAME (business name, preferred) and CONTRACTOR_NAME (individual name). We use the business name when available, falling back to the individual name. Together these fields are populated on approximately 86% of all permits.

Status mapping

Cleveland permits use a CURRENT_TASK_STATUS field with 40 distinct values. We map these to our open/closed system:

StatusClassification
Inspection Approved / Inspection PassedCounted as closed — inspection passed
Permit ClosedCounted as closed — formally closed
Permit Closed/Non-CompliantCounted as closed — closed non-compliant
Inspection Approved - C.O. ReqCounted as closed — CO required
CompleteCounted as closed — work complete
Permit Issuance Approved / IssuedCounted as open — permit issued
Inspection Pending / FailedCounted as open — awaiting or failed inspection
Reopened / Closure PendingCounted as open — in progress
All other statusesExcluded — pre-issuance, cancelled, or administrative

Deduplication

Each permit has a unique PERMIT_NUMBER. The standard deduplication process runs during each nightly refresh to handle any edge cases.

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., Residential, Commercial, Electrical, HVAC, 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 Approved Building Permits dataset on Cleveland Open Data. 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 City of Cleveland Department of Building and Housing at .