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.
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.
Five steps, no hidden ones.
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.
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.
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.
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.
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.
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.
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.
What the ranking does not do.
It does not recommend. It orders a browsing list.
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
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
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
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.
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.
