Methodology
Score Method v1.0
Scores separate Credentials (A) from Google reviews (B). Not a quality rating of installation or outcomes.
Score based on public data, not a contractor quality rating.
Gates
- Only active ROC class 42 (R-42, C-42, CR-42) receive a score.
- Disciplinary actions are shown literally from the ROC CSV with "See ROC record". They are not a weight in score A.
Dimension A - Credentials (0-100)
Based on years since Issued Date to cutoff 2026-11-09, capped at 20 years. Linear: score_a = round((years / 20) * 100). weights_version: v1.0.
Bond and complaints omitted (not present in posting list).
Dimension B - Google (Bayes)
Empirical prior from GBP seed (n >= 5, high/medium match): m = 4.55 (weighted average of ratings by number of reviews), C = 29 (median n from 106 samples).
Formula: bayes = (C * m + n * r) / (C + n). Mapping: score_b = round((bayes - 1) / 4 * 100). If n < 5 or no high/medium match: "insufficient data" (never a fake 0).
Listings are never ordered solely by stars.
Outbound links (/go/)
Pages under /go/{slug}/ redirect to the contractor website when a high or medium GBP match exists, appending ?ref=rcf for tracking. Otherwise they redirect to the contractor profile. No invented destinations.
Sources (dated)
- Arizona ROC posting list class 42: 2026-11-09 (roc.az.gov/posting-list). Arizona ROC posting list 2026-11-09, disciplinary 2026-11-09, GBP seed 2026-11-09
- Arizona ROC disciplinary actions class 42: 2026-11-09.
- GBP seed: 2026-11-09 (Apify compass/crawler-google-places, cost under cap).
Disclosures
- Not affiliated with or endorsed by the Arizona Registrar of Contractors. Official license search: roc.az.gov.
- ROC records are shown as published. Scores are calculated separately and are not part of the ROC file. See score method above.
- Only class 42 licenses (R-42, C-42, CR-42) are included.
- No contact data from the ROC file is used for outreach. Phone and website appear only from the business Google profile or own site when a high or medium match exists. The ROC CSV is not downloaded or resold.
- Ranking order may include paid placement once paid listings start. For now no placement is paid.
Phoenix selection
City=Phoenix, active class 42, exclude Revoked/Suspended. Rank by A, tiebreak B if present else years else License No. Top 140. Eligible: 250, selected: 140.