Loading PetZu…
Content is loading, please wait.Loading PetZu…
Content is loading, please wait.A behind-the-scenes look at the scoring system that ranks vet search results.
When you search for a vet on PetZu, the results aren't sorted by distance alone, or by rating alone — they're ranked by a weighted score that tries to approximate what actually matters to you. Here's a simplified version of how it works.
Four signals feed the score: rating, review volume (a 5.0 from 3 reviews shouldn't outrank a 4.8 from 800), distance, and whether the provider is currently accepting new patients. Each gets normalized to a 0–1 range before weighting.
interface ScoringInput {
rating: number; // 0-5
reviewCount: number;
distanceMiles: number;
acceptingNewPatients: boolean;
}
function scoreProvider(input: ScoringInput): number {
const ratingScore = input.rating / 5;
const volumeConfidence = Math.min(input.reviewCount / 200, 1);
const distanceScore = 1 - Math.min(input.distanceMiles / 25, 1);
const availabilityBoost = input.acceptingNewPatients ? 1 : 0.4;
return (
ratingScore * 0.4 +
volumeConfidence * 0.2 +
distanceScore * 0.25 +
availabilityBoost * 0.15
);
}A perfect rating with almost no reviews is a weaker signal than a slightly lower rating with hundreds — the `volumeConfidence` term prevents a brand-new, unreviewed profile from ever accidentally outranking an established, trusted one on rating alone.
This version doesn't personalize based on your own search history or the specialties you've searched for before — that's a reasonable next iteration, but it adds a cold-start problem we haven't solved cleanly yet.
Senior Engineer at PetZu
Jordan builds the systems behind PetZu's vet-matching and booking flows, and occasionally writes about how the sausage gets made.
Vet-reviewed care guides, delivered weekly. No spam, ever.