Catching Illegal Animal Relocation With a 1.5km Distance Check — and Why the Threshold Isn't Arbitrary
Under India's ABC Rules 2023, sterilized street dogs must be returned to their original capture location — moving them elsewhere is illegal, and historically very hard to prove or catch. I want to walk through the actual validation logic Finding Astro uses to flag suspicious returns.
The mechanism
Every capture event is logged with GPS coordinates at the moment it happens. Every corresponding return event is checked against that original location. If the return point is more than 1.5 kilometers from the capture point, the system flags the case as geo_validated = false and alerts the NGO overseeing it.
Why 1.5km, not 0km
A zero-tolerance threshold — flag any distance mismatch at all — would generate constant false positives. GPS accuracy on consumer mobile devices realistically varies by tens to low-hundreds of meters depending on conditions (urban canyon effects, device quality, indoor/outdoor transitions during logging). A rescuer might reasonably capture a dog at one end of a street and release it at the other end of the same territory — a legitimate, non-violation movement of a few hundred meters that a stricter threshold would incorrectly flag.
1.5km is calibrated to be well beyond realistic GPS noise and well beyond a dog's own reasonable territory range, while still being tight enough to catch genuine relocation — moving an animal to a different neighborhood or a different part of the city entirely, which is the actual pattern the rule exists to catch.
What the flag does and doesn't do
A geo_validated = false flag doesn't automatically accuse anyone of wrongdoing — GPS error, a phone with no signal at the moment of logging, or a legitimate edge case could all produce a false flag. What it does is surface the case for human review by the overseeing NGO, rather than either silently accepting all returns as valid or silently blocking anything outside the threshold. The system is designed to make illegitimate patterns visible, not to autonomously adjudicate them.
Why this matters more than it looks like it should
Before this kind of system existed, "was this dog actually returned to its territory" was effectively an unverifiable claim — you had only the rescuer's or authority's word for it. Making it a checkable data point, even an imperfect one, changes the incentive structure: a pattern that was previously invisible and unprovable becomes visible and reviewable.
I think a lot of accountability problems in under-digitized systems come down to exactly this: not bad actors specifically, but the complete absence of any record that could distinguish a bad actor from a good one. Sometimes the fix isn't a sophisticated model — it's just making a previously unrecorded fact recordable and checkable.
Top comments (0)