How LocalVein scores 19 vulnerability signals
Every prospect gets a 0–100 opportunity score. Here are the 19 signals that go into it, the exact weight each one carries, and where the underlying data comes from. No black box. Audit any score against this page.
The 19 signals
Sorted by weight. A signal contributes its full weight only when the trigger condition is fully met — partial conditions yield partial contribution. When the underlying datum hasn’t been collected yet, the signal contributes zero (the score reflects only available data).
| Signal | What it measures | Why it predicts vulnerability | Weight | Source category |
|---|---|---|---|---|
| Few reviews | Total reviews on the public profile. | Few reviews = thin social proof an agency can quickly compound. | 13 pts | Google Business Profile |
| Stale site | Months since the site last meaningfully changed. | A site that hasn’t shipped in 2+ years is a textbook redesign sale. | 12 pts | Site-age signal |
| Below-average rating | Star rating on the public profile. | Below-average rating signals reputation work an agency can win. | 11 pts | Google Business Profile |
| No website | Whether the business has a website on file. | No site at all is the highest-intent agency lead in the data. | 11 pts | Google Business Profile |
| Incomplete Google Business Profile | Completeness of the public profile fields. | Half-filled profile = owner not paying attention; pitch lands. | 11 pts | Google Business Profile |
| License expiring soon | Trade license within 60 days of expiry. | Operational deadline = owner attention is on the business this week. | 8 pts | State contractor records |
| No social presence | Number of social profiles linked from the site. | No social presence = a whole channel left on the table. | 7 pts | Site analysis |
| Slow site | Mobile performance score of the homepage. | Slow site bleeds conversions — easy before/after for the agency. | 7 pts | Site analysis |
| Past license suspensions | Past license suspensions on record. | History of compliance friction = operator likely open to outside help. | 5 pts | State contractor records |
| SSL invalid or expired | Whether HTTPS resolves with a valid certificate. | Broken SSL = obvious credibility hit and a same-day fix to pitch. | 4 pts | Site analysis |
| No ad pixels detected | Presence of common ad / analytics pixels. | No pixels = no paid acquisition running. Greenfield for the agency. | 4 pts | Site analysis |
| Reviews trickling in | New reviews per month over the last year. | Slow review cadence = no review-generation system in place. | 4 pts | Engagement signals |
| Established 10+ years | Years since the domain was first registered. | Old domain + tired site = established business coasting on word-of-mouth. | 4 pts | Domain registry |
| Yelp listing unclaimed | Whether the secondary review listing is owner-claimed. | Unclaimed listing = the channel is running without supervision. | 4 pts | Public review channel |
| No schema markup | Whether the site emits structured-data markup. | Missing schema = visible technical-SEO gap to close on day one. | 3 pts | Site analysis |
| WordPress site (often DIY) | Whether the site runs a common DIY platform. | DIY stack often means owner-built, owner-maintained, owner-stuck. | 3 pts | Site analysis |
| Not actively hiring | Whether the business has active job posts. | Not hiring = capacity headroom; growth marketing has somewhere to land. | 3 pts | Engagement signals |
| Crowded local market | Competitor count per 10K residents in the local market. | Crowded market = differentiation pressure agencies are built for. | 3 pts | Off-site signal |
| Yelp/Google rating mismatch | Gap between primary and secondary channel ratings. | Reputation drift across channels = no consistent review process. | 2 pts | Public review channel |
How the composite works
The 119 points of weight stack additively. A prospect with no website, a stale site, and few reviews carries the full weight of all three signals. A prospect with all 19 signals in the “vulnerable” state caps at 100 — the score is clamped at both ends.
Signals only contribute when the underlying datum has been collected. A fresh prospect with only base profile fields will score on review count, rating, and website presence. Once the full audit pass completes (site analysis, domain history, site- age signal), the remaining signals come online and the score refines.
The top three active factors are surfaced inline on every prospect row — so the score is never a number you have to take on faith.
What this score does not measure
It’s not revenue. It’s not buying intent. It’s not marketing budget. It’s the size of the gap between how a local business presents online today and how a competent agency could make it present tomorrow. That gap is the pitch — nothing more.
Refresh cadence
Reviews, rating, hours, website, and site-audit signals re-fetch every time a scan touches the business. Phone classification and domain history are cached for the long term — they don’t change week to week. Site-age signal refreshes opportunistically when a prospect lands back in a scan.
Why we publish this
Any tool can call a number an “opportunity score.” The signals and weights above are the entire definition of ours. If a row scores 84 in your account, every point of it is accountable to this page.
Run a scan and audit the math
Pick a city, pick a vertical, get a list of prospects with the score and the top three contributing signals on every row.