Methodology
How we calculate closure rates and which permits we count for Minneapolis.
What is a closure rate?
When a contractor pulls a building permit in Minneapolis, 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.
Included permits
Minneapolis’s Community Planning & Economic Development department publishes permits via an ArcGIS Feature Service. We include two permit types (the PermitType field) representing physical construction work:
| Permit Type | Description |
|---|---|
| Res | Residential construction permits (~103K) |
| Commercial | Commercial construction permits (~44K) |
Excluded permits
The following permit types are excluded from closure rate calculations:
| Excluded Type | Reason |
|---|---|
| Plumbing | Trade permit — tracks individual plumbing work, not construction projects (~154K) |
| Mechanical | Trade permit — tracks individual mechanical work, not construction projects (~84K) |
| Wrecking | Demolition permits — closure dynamics differ from construction (~985) |
| Site | Site work permits, not building construction (~219) |
Applicant identification
Minneapolis’s dataset includes an ApplicantName field identifying the contractor or applicant on the permit. This field is populated on approximately 100% of all permits, providing excellent contractor coverage for leaderboard rankings.
Status mapping
Minneapolis permits use a Status field. We map these values to our open/closed system:
| Status | Classification |
|---|---|
| Closed | Counted as closed — work verified complete |
| Issued | Counted as open — permit issued, work not yet completed |
| Open | Counted as open — permit active |
| Stop Work | Counted as open — work halted but permit still tracked |
| In Process | Counted as open — permit in review/processing |
| Expired | Excluded — permit expired without completion |
| Cancelled | Excluded — permit cancelled before work |
| Void | Excluded — permit voided |
| Withdrawn | Excluded — application withdrawn |
| Denied | Excluded — permit application denied |
Deduplication
Each permit has a unique PermitNumber. 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). 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 CCS Permits feature service published by the City of Minneapolis Community Planning & Economic Development. The dataset covers ~386K permits and 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 Minneapolis Community Planning & Economic Development at .