Voice AI Prospect Radar / Engineering note

Explainable scoring for Voice AI prospecting

How Voice AI Prospect Radar ranks businesses with public signals and explicit missing-data rules, with a worked example and a separate AI brief.

Schematic of business discovery on a map leading to a ranked shortlist.

A score that a reviewer can inspect

Voice AI Prospect Radar helps a reviewer decide which local businesses to investigate for call handling or appointment workflows. I wanted someone looking at the shortlist to understand why one business ranked ahead of another. The scoring function returns both the number and the contribution of each rule, so a reviewer can inspect the result before deciding what to do next.

Here, explainable means that the same inputs produce the same score, and each contribution follows a visible rule. The score is a screening aid. A business can rank highly without having a missed-call problem or a reason to buy automation.

What goes into the score

The rubric adds points for category fit, a visible phone number, and whether the category is associated with appointments or higher-value services. It also weighs the website and signs of online booking. Public review count contributes zero points below 100, one from 100 to 399, and two from 400. The search code supplies additional signals from review volume and rating, which the rubric scores separately.

These signals need careful interpretation. The search looks for recognised booking platforms or booking terms in the website URL. A missing signal means the check did not find one. Review volume and rating are proxies for demand and possible friction, so they cannot show that a particular call was missed. Review count can influence both the demand points and the separate review signal; those weights reflect design judgement.

A missing website, visible phone number or review count subtracts one point per missing item, up to a maximum deduction of two. A known review count of zero earns no demand points but does not trigger the missing-count deduction. The function rounds the sum and limits the result to the 0–9 range.

Worked example: the same fictional clinic, less evidence

Take a fictional dental clinic with a visible phone number, a website with no recognised booking signal, 120 reviews and a 4.7 rating. The category configuration marks dental as high fit, appointment based and high value. That gives two points for category fit. The appointment and service flags and the visible phone give two points for call dependency and two for scheduling complexity. The website contributes one point for possible booking friction. Review volume supplies one demand point and one review signal worth half a point. There is no missing-data deduction. The total is 8.5, which rounds to 9.

If the review count is unavailable and the other inputs stay the same, the demand point and half-point review signal disappear. The missing count also subtracts one point. The new total is 2 + 2 + 2 + 1 − 1 = 6. The example illustrates how data coverage can change the ranking without any change in the underlying business.

The brief helps the reviewer; the rules set the rank

A reviewer can request an AI brief for a particular business. The model receives the existing score and business signals and can return a summary, an outreach angle and an optional category suggestion. The enrichment route stores those generated fields separately and can reuse a saved result during its cooldown. It does not replace the numeric score.

Keeping those responsibilities separate gives the reviewer a consistent ranking and a place to inspect the model’s interpretation. The brief can suggest a question to ask. The reviewer decides whether to pursue it and can record the next step in a saved review ticket.

What the tests cover and what remains unproven

The public Vitest suite covers the review-count thresholds, the difference between zero and missing reviews, the cap on missing-data deductions, and how out-of-range scores are displayed. Separate enrichment tests cover malformed JSON, invalid field types and blank output. These tests specify how the implementation should behave on those inputs.

The scoring weights are hand chosen and have not been calibrated against sales outcomes. A 9 is a priority under these rules, with no implied conversion probability. The useful result is a shortlist a person can interrogate: which inputs contributed, which were missing, and what to verify before following up.

Related case studyVoice AI Prospect Radar