Method & data sources
Read this first
- Living scores. Scores update as new and open permits change in the city's systems. Ranks and confidence can shift when the daily refresh lands.
- Independent. This is an independent analysis of public City of Ann Arbor permit records. It is not affiliated with, produced by, or endorsed by the City of Ann Arbor.
- Not a recommendation. A score is not a recommendation to hire or avoid any firm. Permit records capture only part of a firm's work and say nothing about price, workmanship you can see, communication, or customer service. Always check licenses, insurance, references, and reviews.
- Permit outcomes are shaped by many people (owners, designers, trades, plan reviewers, inspectors). A send-back or failed inspection is not proof of fault.
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 work | Typical permits |
|---|---|
| Windows & doors | Window/door/patio-door replacement, egress windows |
| Roofing | Re-roof, tear-off, roof repair |
| Radon | Radon mitigation systems |
| Solar / EV | Solar panels, EV chargers, generators, antennas |
| Siding / envelope | Siding, gutters, soffit/fascia, masonry & chimneys, insulation |
| Decks & porches | Decks, porches, exterior stairs, ramps |
| Foundation / structural | Foundation and basement wall repair, beams, piers, drain tile |
| Remodels | Kitchens, baths, basements, interior alterations |
| Additions / ADUs | Additions, attached garages, sunrooms, accessory dwelling units |
| New homes | New houses, townhomes, multi-family |
| Garages & accessory | Detached garages, sheds, fences, pools, retaining walls |
| Commercial alterations | Tenant finishes, change of occupancy, signs, canopies |
| Commercial new | New 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-score | Measures | GC weight | Architect weight |
|---|---|---|---|
| Inspections | Failed, re-inspection-required, partial, or conditional results per completed inspection | 30% | 20% |
| Plan quality / Revisions | Plans sent back for re-submittal, comments issued, revision rounds, "more information needed" holds | 25% | 40% |
| Time to permit | Days from application to approval/issue, relative to the median for the same kind of work | 10% | 10% |
| Completion | Issued permits that reached final inspection vs. expired/voided without a final | 15% | 10% |
| Compliance | License, stamp, seal or insurance holds, denials, stop-work / unpermitted-work flags | 15% | 20% |
| Reliability | Inspections 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
- A firm needs at least 5 permits in the scored set to get a score.
- Confidence: low (5–7 permits), medium (8–14), high (15+). The range shown under each score is a 90% bootstrap interval.
- Activity: active = 3+ permits in the last 3 years including 1+ in the last 12 months; occasional = some permits in the last 3 years; historical = none in the last 3 years (hidden from the default list).
- Featured = 10+ permits and active.
Data sources
- STREAM (City of Ann Arbor EnerGov self-service portal, stream.a2gov.org) — current permit system: permits, inspections, plan submittals/reviews.
- A2Trak (secure.a2gov.org/A2Trak) — the city's older permit system: permits, contacts, reviews, inspections.
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.