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.