Skip to main content
Mechanism

How the matching works, exactly.

No black box. Discovery ranking in WhiskerMatch is a pure, explainable preference comparison: known and unknown facts on one side, must-have and nice-to-have preferences on the other, with every decision the system makes returned as a reason or a warning in plain words. This page walks through each step.

Inputs

What the ranking reads about each animal.

Eleven kinds of facts. Each one is known, with a value and a source, or unknown. That distinction is the foundation everything else stands on.

Species

dog or cat

Breed

as recorded, or unknown

Age stage

puppy, young, adult, senior

Size

small, medium, large

Sex

as recorded, or unknown

Energy level

as reported, or unknown

Compatibility

with dogs, with cats, with children

Special-care needs

known, or not confirmed

Transport

available or not, as reported

Location

approximate, with an uncertainty radius

Availability

confirmed available by the source

Your side of the comparison is your stated preferences: species, breeds, age stages, sizes, sexes, energy levels, compatibility with dogs, cats and children, comfort with special-care needs, transport needs, and a maximum distance from a search center. Each preference you set is marked must-have or nice-to-have, and nice-to-haves carry a strength: gentle, normal, or strong.

The mechanism

Five steps, no hidden ones.

  1. Read the animal's facts, each one known or unknown

    Every attribute on a listed animal is read as known, with a value, or unknown. There is no third state, no 'probably'. A fact the source did not state is unknown, and unknown is handled explicitly at every step below, never silently.

  2. Read your preferences, each one must-have or nice-to-have

    Each preference you set carries an importance. Must-have means a known conflict excludes the animal. Nice-to-have means a match adds a small amount of internal ordering weight, gentle, normal, or strong, and a mismatch simply adds nothing. Preferences you do not set are not evaluated at all.

  3. Compare, attribute by attribute

    For each preference, the system checks the animal's fact. A known fact that conflicts with a must-have produces a hard conflict with a named reason, and the animal is excluded from matches. A known fact that matches produces a reason in plain words. An unknown fact produces a warning that the fact is unconfirmed, and the animal stays.

  4. Handle the two special cases

    Special-care needs are asymmetric: being open to them never means the animal must have them. Availability is a gate before everything else: only animals a source confirmed available may enter live discovery, and adoption-pending or unconfirmed animals are excluded or warned accordingly.

  5. Order without scoring

    Matching animals are ordered by their internal ordering weight, then by a fairness rotation, then by a stable identifier tiebreak. The weights are ordering mechanics. They are never returned as a score, a percentage, or a rank, because a number would be read as a verdict, and verdicts belong to people.

A concrete example

You mark "good with cats" as must-have and "adult" as a nice-to-have. An animal whose profile reports cat compatibility gets a reason: "The profile reports compatibility with cats." An animal whose profile says nothing about cats gets a warning: "Cat compatibility has not been provided," and stays in your results. An animal known to be incompatible with cats is excluded, with the conflict named. An adult animal gets a small ordering lift; a puppy simply does not. You see the reasons and the warnings. You never see a number.

Mechanism

The simpler path: filters.

Beside the preference ranking, a plain filter path narrows a list: species, breed, age, size, sex, energy, compatibility, special needs, transport, house-trained, spayed or neutered, organization, area. The governing rule is the same.

The governing rule

A filter on a fact the source did not state never drops the animal. Unknown stays visible as unknown. Only a known conflict excludes.

Filtering "house-trained only" removes animals known not to be house-trained. It does not remove animals whose training was never recorded. The animal is not punished for the record's incompleteness.

Fairness

What never counts.

The ranking accepts a fixed set of inputs: your stated preferences and the animals' recorded facts. The following are not inputs, cannot become inputs, and would be rejected if offered.

Paid placement

No one can pay to appear first. The ranking does not accept money as an input.

Photo count

An animal with one photo is not ranked below an animal with ten.

Clicks and popularity

The most-viewed animal gets no boost for being viewed. Attention does not compound.

Provider order

Equal candidates rotate through a stable seed so no source's ordering can monopolize exposure.

Inferred traits

Nothing is guessed from photos, wording, or patterns. If a fact is unknown, it stays unknown.

Honest limits

What the ranking does not do.

It does not recommend. It orders a browsing list.

The output of the ranking is a list with reasons and warnings attached, not a recommendation. "This animal matches your must-haves and two nice-to-haves" is the strongest true statement the system can make, and it is deliberately weak. Whether an animal suits a household is decided by people who meet the animal, not by weights.

It does not learn from you

There is no behavioral model, no collaborative filtering, no "people like you also liked". Your clicks do not change anyone's ranking. The system compares your stated preferences against recorded facts, the same way, every time. That is a limitation and a promise.

Distance is the fuzziest input, and the system admits it

Public positions are deliberately approximate. The ranking computes distance from the center of that approximation and carries an uncertainty radius: an animal is excluded on distance only when even the nearest possible position is outside your range. Every distance result warns that it is estimated. If your range is tight, expect surprises near the edge; that is the privacy tradeoff working as designed.

The ranking is only as honest as the listings it reads

In live discovery, only animals a source confirmed available in the last 36 hours may enter. In the illustrative preview, the animals are labeled fictional and cannot be applied for. The ranking does not verify listings; the availability gate and the source attribution do. Read the source line on every listing you care about.

This mechanism is part of building in the open: the reasoning is stated plainly enough to be checked, argued with, and improved. If you work on matching, ranking fairness, or adoption research, the design choices above are the ones worth debating.

The adoption science behind these choices →

Founder-supported pilot.

Work on matching or adoption research? Bring your questions.

The ranking is pure, deterministic, and auditable. If you study how people find animals, or how systems should rank them, we want the critique.