Ear tags have no GPS. Each collar continuously scans for tags and reports, once per epoch, every tag it heard together with the mean signal strength (RSSI) and the number of adverts caught. When two or more collars hear the same tag, those sightings are combined into a position estimate: the RSSI-weighted centroid of the collars’ GPS fixes, pulled toward the collars with the strongest signal. A tag heard by a single collar is placed on that collar, as before. Settings → Tag positioning exposes every lever of that model. Nothing is hard-coded: a blank field uses the default shown beside it, and a saved value applies to the farm on the next estimate with no restart.

The model

For each sighting inside the contact window the collar’s nearest-in-time fix is looked up, the RSSI is converted to a distance, and the sighting is weighted: Each estimate reports how many collars and sightings contributed, a radius (the model’s mean RSSI-derived distance to the weighted collars) and a spread (how far the contributing collar fixes sit from the centroid). A small radius with a large spread means the model thinks the tag is close to collars that are far apart — the reference RSSI is probably set too low for your hardware.

Calibration from collected data

Like breed calibration, the tab reads the sightings the farm has already collected and suggests settings. There is no ground truth in the field (tags carry no GPS), so the suggestions are deliberately simple and documented:
  • Reference RSSI = the 95th percentile of observed RSSI — the near-contact sightings anchor the distance curve at “very close”.
  • RSSI floor = the 5th percentile — trims the noisiest tail.
  • Contact window = 3× the median gap between successive sightings of the same tag–collar pair, so a window holds about three sightings per collar.
  • Collar fix max age = 2× the median collar fix interval.
Apply writes a suggestion straight into the model. The Heard by 2+ collars figure is the diagnostic that matters most: it is the share of tag-windows with more than one observer, and below roughly 20% the centroid can do little better than placing a tag on its single sentinel — add collars to the mob before tuning further. The Current estimates table shows what the saved model produces right now, so a change can be checked against the flock immediately. The Dashboard and Farms maps draw ear tags from the same estimate: a tag heard by two or more collars sits at its centroid, and a tag heard by one collar is scattered a few metres around that collar so a mob does not stack on its sentinel. The map’s window ends at the freshest collar fix rather than the wall clock, so a paused or backfilled feed still renders.
Bench-test with the simulator first: it emits a linear RSSI of −45 dBm minus 0.6 dBm per metre, so switching the model to linear with a reference of −45 reproduces its geometry closely. Real collars want log-distance; expect to raise the path-loss exponent once tags are on animals.