Agreed this would be a great feature! I could see this being useful generally too, perhaps, outside of grazing plans. But starting with it in a grazing plan is probably the easiest first step.
The tricky thing is just defining what “last activity” means. In a grazing plan specifically it’s about figuring out when the animals LEFT the pasture. farmOS movement logs track when assets ENTER a location, but it is possible to figure out when they left too, as long as there’s another log that moved them somewhere else (or unset their location).
One other big potential complexity comes to mind…
It’s possible for animals to move multiple times within the same Land asset, but with different sub-geometries (eg: moving temporary fencing around within a larger paddock). So just calculating when they left the Land asset isn’t really enough in that case. We would need to be figuring it out at a geometry level. The only way I can think to reasonably visualize that would be on a map somehow. So it’s not just a simple text output of “X days since they grazed here” (because geometries could be completely arbitrary and non-repeating).
Alternatively, maybe we need to draw a line somewhere and say “this will only work if you are using permanent land assets, and not temporary sub-geometries”. But even that would require some thinking…
@BOTLFarm mentioned on a recent call that the old v1 Grazing module provided this info. But notably, that module did NOT support sub-geometry rotations (if I remember correctly). Every paddock needed to be explicitly defined.
This actually feels very similar to this discussion: Medical Logs, withdrawal flags (which itself reminded me of @paul121’s “Restricted Entry Interval” module). Perhaps we should look at all of those cases again together and see if we can solve them all in a similar way in farmOS core.
Yea! The v1 Grazing module included a bunch of logic for calculating this! It would be good to revisit that and see what makes sense to bring over.
I think I would like to think about it in terms of components that can be stacked together to reach the desired estimation. For example, there is a farmOS Animal Weight module that is specifically for tracking weight in a standard way. We’ve also talked a bunch about a Configurable Observation Quick Form that could be used to make a standard “Pasture Condition Observation” quick form (eg: whenever you move your animals, you fill out this form for both the pasture they are leaving and the one they are going to, with measurements for things like grass height, etc). These two components could be independent of one another, and could be used standalone for other purposes, but together they can help feed data into the Grazing module for providing DMI calculations/suggestions.