Ann Arbor Permit Report Cards

Method & data sources

Read this first

What the score means

Every score is 0–100, where 50 is the peer average for the same role (general contractor or architect/engineer), the same kind of work (see below), and the same permit system era. Above 55 is labeled better than peers, 45–55 typical, and 45 or below worse than peers.

Each sub-score compares the firm's rate of an outcome to the rate expected for its mix of jobs. Rates are statistically "shrunk" toward average, so firms with few permits are pulled toward 50 on purpose. Recent permits count more than old ones.

Kinds of work

Each permit is tagged with one of 13 kinds of work, using the city's permit type / work class first and the permit description only when the class is vague (for example "Alteration/Repair"). Firms are then compared only with peers doing the same kind of work, so a window installer is measured against other window jobs, not against kitchen remodels or new houses. Easy, routine jobs no longer lift a firm above firms doing harder work.

Kind of workTypical permits
Windows & doorsWindow/door/patio-door replacement, egress windows
RoofingRe-roof, tear-off, roof repair
RadonRadon mitigation systems
Solar / EVSolar panels, EV chargers, generators, antennas
Siding / envelopeSiding, gutters, soffit/fascia, masonry & chimneys, insulation
Decks & porchesDecks, porches, exterior stairs, ramps
Foundation / structuralFoundation and basement wall repair, beams, piers, drain tile
RemodelsKitchens, baths, basements, interior alterations
Additions / ADUsAdditions, attached garages, sunrooms, accessory dwelling units
New homesNew houses, townhomes, multi-family
Garages & accessoryDetached garages, sheds, fences, pools, retaining walls
Commercial alterationsTenant finishes, change of occupancy, signs, canopies
Commercial newNew commercial buildings, shells, commercial additions

Trade work on a commercial building (for example a commercial re-roof) is grouped with the trade, so specialists are compared with specialists. About 4% of permits have a vague class and no telling words in the description; those default to Remodels (residential) or Commercial alterations (commercial).

Specialty badge: a firm is labeled a specialist in a kind of work when it makes up at least half of its permits in the last 3 years (or of all its permits, if it has fewer than 10 recent ones); otherwise it is Mixed / general. Each card shows the firm's job mix, its rank among firms with the same specialty, and a score for each kind of work with 5+ permits. The list can be filtered by specialty.

Sub-scores

Sub-scoreMeasuresGC weightArchitect weight
InspectionsFailed, re-inspection-required, partial, or conditional results per completed inspection30%20%
Plan quality / RevisionsPlans sent back for re-submittal, comments issued, revision rounds, "more information needed" holds25%40%
Time to permitDays from application to approval/issue, relative to the median for the same kind of work10%10%
CompletionIssued permits that reached final inspection vs. expired/voided without a final15%10%
ComplianceLicense, stamp, seal or insurance holds, denials, stop-work / unpermitted-work flags15%20%
ReliabilityInspections cancelled (counted at half weight because the record doesn't say who cancelled)5%0%

When a firm has too little data for a sub-score (for example fewer than 3 completed inspections) we show not enough data instead of a number.

Who gets a card

Data sources

Only building permits are included so far (trade permits like electrical/plumbing/mechanical come later). Firm names are de-duplicated across both systems by name, license and registry data; mistakes are possible.

Not shown on purpose: fee amounts (they reflect project size, not quality), inspector and city staff names, homeowner names or contact details, and the contents of plan attachments.

Disputes & corrections

If a firm is merged or split incorrectly, a permit is attributed to the wrong firm, or a record is misread, we want to fix it. Each card links the underlying public permit records so you can check them. A formal correction request channel is being set up; until then, corrections can be sent to the site operator, and corrected records will be reflected in the next refresh.