How HomeClip Trust Scores work
Every business on HomeClip has a single 0–100 score. Here's exactly how it's built — and what no amount of paying us can change.
The score has seven components
| Component | Weight (licensed trades) | Weight (unlicensed trades) | What it measures |
|---|---|---|---|
| License verification | 30% | 0% (or 5% bonus if voluntary) | Active state license, no disciplinary actions |
| Reliability sentiment | 20% | 29% | On-time, communication — extracted from review text |
| Quality | 15% | 21% | Workmanship + safety sentiment |
| Reddit sentiment | 10% | 14% | Upvote-weighted overall recommendation |
| Responsiveness | 10% | 14% | How recently they replied on public channels |
| BBB record | 8% | 12% | Complaints filed and complaint-resolution rate |
| Pricing fairness | 7% | 10% | Quote accuracy and surprise-charge mentions |
Trade-aware licensing
Texas state law requires licenses for plumbers, electricians, HVAC contractors, pest control operators, and pool builders. For these trades, the License component is a hard 30% of the score — an unlicensed plumber simply can't score high on HomeClip.
For trades the state doesn't license — handymen, cleaners, landscapers, painters, deck builders — the 30% redistributes proportionally to the other components. A great handyman with strong reviews and Reddit support can score 90+ without ever needing a license they aren't required to have.
Time decay
Signals from the last 90 days count fully. Signals 3–6 months old count at 60%. 6–12 months at 30%. Older than that at 10%. A contractor who was great three years ago and now ghosts doesn't ride past reputation.
Platform weighting
Different platforms get slightly different weights based on signal quality:
- HomeClip internal: 1.3× — verified customers, highest credibility
- Reddit: 1.2× — public, hard to game, upvote-weighted
- Google + BBB: 1.0× — high volume, mixed quality
- Yelp: 0.9× — useful but filter-biased
- Facebook: 0.8× — easier to inflate
Upvote weighting
Reddit comments with more upvotes count more, capped at 2×. A 200-upvote warning beats a 1-upvote complaint. A single viral comment can't dominate.
Confidence cap
A business with two perfect reviews doesn't get a perfect score. The score is multiplied by a confidence factor of 1 − e−n/12, where n is the count of contributing signals. ~50% confidence at 8 signals, ~95% at 36. New businesses appear with “Trust Score: building” instead of a misleadingly precise number.
7-day grace period
Every new signal is held for 7 days before counting toward the Trust Score. During that window, the business can file a dispute with proof, which pauses the signal's impact until reviewed. More on disputes.
What paying us cannot do
- Pay to rank above a higher-scoring business — never
- Pay to remove or hide a negative signal — never
- Pay for a higher confidence multiplier — never
- Pay to reset a red flag event — never
Pro subscribers ($29/mo) get a verified badge, faster dispute review, real-time lead alerts, and priority placement within their score band. Among two businesses scoring 88, the Pro shows first. A Pro scoring 72 never outranks a free listing scoring 88.
Transparency report
Once per quarter we publish anonymized dispute resolution stats — how many were filed, how many were upheld vs. removed vs. annotated, median time to resolution. This will appear here once we have enough data to be statistically meaningful.
Want the full math?
The authoritative formula lives in our open codebase. The SQL function is compute_trust_score() in our database schema. The TypeScript mirror is in lib/trust-score.ts. Two implementations, same numbers, used for production scoring and dashboard simulation respectively.
