Hi,
We raise pastured poultry and receive 125 - 250 chicks in at a time. I would love to be able to track activities such as hatch date, slaughter date, feed consumption, etc for the group without needing an entry for each individual bird. We typically do not track the individual birds unless there is an issue.

Thank you!

Ian

Comments

m.stenta’s picture

Yea, this is something I thought about when I first built the animal asset type. It has a way to assign animals to groups, but it still requires that each animal have a record in the system. This is necessary for managing heads of cattle, and other large animals, but does not work when you track animals en-masse, like chickens.

Perhaps there needs to be a dedicated poultry module that provides it's own asset type called "Flock". So for large groups of chickens, you could create a single "Flock", and for other animals you could create individual "Animal" records.

I could see this tying into the inventory management features I am planning. The idea being that a "Flock" is a type of asset that tracks inventory of itself, so birds can be added and removed from it. As opposed to say, an Animal asset, which does not track inventory of itself, because it is always only one. Still some details to work out with those ideas... Here is the discussion for that stuff: #2401531: [META] Farm Inventory Brainstorm/Discussion

ireilly’s picture

A "Flock" entry would work well, especially if there is a way to keep the record but make it inactive? Once all of the birds have been harvested we can keep the notes but won't want it to continue to show up in the "Animals" or "Groups" lists.

Thanks!

Ian

m.stenta’s picture

Yea, "inactive" assets is something I have had in mind for a while. I went ahead and created a separate feature request for that: #2477409: Inactive assets

m.stenta’s picture

Instead of creating a separate "Flock" type, I wonder if it makes sense to turn the existing "Animal Groups" that we have into full-fledged assets. I need to think through all the implications of that, but it might be a nice general way to reorganize things conceptually.

In that world, each group would be an asset itself, and you could potentially ALSO have individual assets that are linked to that group. ie: "Betty the Chicken" is in "Chicken flock 1". But "Chicken flock 1" would be an asset, not a taxonomy term as it is currently.

This would cover the use-case you described in the original description: "We typically do not track the individual birds unless there is an issue."

If there is an issue with a particular bird, you could create a specific Asset for it and place it "in" the Flock asset... so it can have it's own records separate from the flock.

Definitely need to think through all the implications, and how best to migrate the existing groups to assets... but I like these ideas... I think they would work nicely.

m.stenta’s picture

Project: farmOS » Farm Livestock
Version: 7.x-1.0-beta1 » 7.x-1.x-dev

Cleaning up some issues... moving this to the Livestock module queue.

m.stenta’s picture

Title: Addition of Flocks or groups instead of individual animals » Asset Groups
Project: Farm Livestock » farmOS

There has been some discussion outside of this thread around creating a new type of asset called an "Asset Group", which can contain children assets. Groups could be used for managing flocks/herds, or any other kind of general groups. For example, in https://www.drupal.org/node/2389921#comment-11419247 @BruceDawson mentioned the idea of grouping various equipment and areas together for the purpose of a "water system" (as one potential use-case). The ability to group assets of different types under the umbrella of one Asset Group could be very useful in a lot of ways.

BillFosher’s picture

Most of the animal management, especially movements that I do is group based. This is especially true of poultry. I raise my meat chickens in batches of a few hundred, and I raise several of them a year. None are individually identified. The only case in which individual birds get attention is in cases of morbidity and mortality. But not like "Bessie moved to hospital pen due to picking" and "Thomas dead from heart attack." More like the group was 350. 1 moved to hospital pen for picking. Group is now 349. One dead from heart attack, group is now 348. Hospital bird recovered, returned to main group. Hospital pen is now zero, main group is now 349. The other events that would need to be tracked would be group disasters -- several dead from heat or predation, or a disease outbreak. But again, this could be handled by deducting numbers from the head count of the group, rather than tracking specific individuals.

Layers and turkeys are the same on my farm -- they're just around for longer.

I suppose if someone were breeding poultry, individual records would be important. When you buy batches of day old chicks, especially straight run where sex is unknown, it isn't really a good use of time to create hundreds of records that will then almost always be treated as a single unit.

For cattle, sheep, and hogs, it probably makes more sense to have individual records tied into a group, especially as groups may be reconfigured at different times of the year in breeding flocks and herds. But it would also be handy (and I think easy to set up) that entire groups can be added or removed from other groups. For instance, ewes and unweaned lambs are together until weaning, then all ewes are moved and lambs remain as a separate group. At some point later on, the weaned lambs are broken down into breeders and feeders, which may or may not be separated. Certain medical procedures will be handled on all animals in a group at once.

To add another wrinkle, I'd like to be able to have a group identifier remain with the individuals even when they are combined with other groups. For instance, I'd like to always know what litter a piglet came from, even if I've combined a few litters into a group of feeder hogs that is managed as a single unit. Ditto for lambs, calves, etc.

Here's a typical series of events that piglets might go through on my farm:

purchased eight piglets from Chris (group 1)
purchased four piglets from Tom (group 2)

Both groups are placed where they can see each other, but are kept separate for a time

Groups 1 and 2 are combined for management through the growing period (group 3)

but at the end, I'd like to be able to look back and see if piglets from Chris or Tom did better, produced more fat or bacon, etc.

Lambs and calves might have similar processes.

Is any of this possible, and would it be useful to others?

m.stenta’s picture

Thanks @BillFosher! All great considerations!

I'm excited to implement this feature - I think it will have immediate usefulness in a lot of different scenarios.

BruceDawson’s picture

Hi Bill! Good idea. It inspired an "asset group type" entity for me... You can have several "types" of groups - one would have individual entities, another would just have a number. Some might have "qualities" of individuals ("have cough", or "are male", ...)

At first, it seems like it would be applicable only to reporting (like "grouping" in a report), but could also be used for management - keeping track of what type is where, ...

BillFosher’s picture

When I think of the loggable animal processes that I have done over the years, they break down into a few categories --

Distinctly individual events, such as:

  • birth
  • death
  • individual illness
  • treatment for individual illness
  • giving birth

Events that may be individual or group based

  • breeding
  • purchase
  • sale
  • slaughter
  • management practices (in sheep, foot trimming, dagging)

Events that are almost always group events

  • paddock shifts/movements (with the possible exception of moving a single male breed a group of females)
  • shearing
  • vaccination

Not sure if this is helpful, but it is how I have done things on paper (remember that, Bruce?) for years.

m.stenta’s picture

@BillFosher: GREAT info! Thanks! I like that you separated things by "single" and "multi" asset relationships. It is helpful to think about things in these terms, especially in light of the discussion here: #2755237: [META] Discussion: Logs vs Revisions

m.stenta’s picture

For anyone following this issue, you may also be interested in the discussion happening here: #2905112: [META] Discussion: Asset membership vs location

m.stenta’s picture

OK - we've got a decision to make here... looking for input.

I'm working on two new modules for farmOS right now: Inventory and Group. Inventory will add the ability to track inventory levels on certain asset types. Group will add a new asset type called "Group" which can be used to represent groups of things, but also allows you to assign other assets to be "members" of the Group (creating a hierarchy).

Originally, the Group asset with inventory tracking was how I was thinking we would handle things like Flocks, Herds, etc (see my comment #4 above). So you would create a new "Group" asset called "Herd 1", and give it an inventory of 50. But you would also be able to create an individual Animal asset record (ie: "Betty the cow") and make it a member of the group. Importantly, Group assets would have inventory tracking, but Animal assets would NOT (they would be strictly intended for individual animals).

In discussing the new Grazing module that I'm working on with Stephen Woodbridge - we are rethinking this.

Would it make more sense for Animal assets to allow inventory tracking, and Groups not? In that case, a Herd or Flock would be represented with an Animal asset, in the same way that an individual animal would, but it would have the ability to have a head-count associated with it. Group assets would ONLY be used for grouping purposes, and would not have the ability to track inventory themselves.

This is an important decision because if we ALLOW inventory tracking on any asset type, we cannot remove that ability in the future - because people may start using it once it's available. We can more easily open up the restriction for asset types in the future, but removing the ability is harder/impossible. So I want to put some good thought into it before we include it in the next release.

I think the main considerations boil down to:

  • Are there cases where you WOULD want to be able to track inventory of a Group asset? Think broadly... not just with groups of animals.
  • Is it problematic to allow Animal assets to be used for both individual animals AND herds/flocks/etc? Once we allow inventory tracking on Animal assets, we can't take it back.

There are some clear benefits to using the Animal assets themselves to track inventory: less ambiguity overall, and you'll be managing animals all in one place (/farm/assets/animals) rather than groups in one place and individual animals in another.

What do you all think?

m.stenta’s picture

FYI, here is the inventory issue, which describes what I'm working on with regards to inventory management: #2912091: Farm Inventory

BruceDawson’s picture

I think it would be useful to know how many are in any group. For instance(s):
- "Needing repair" group might have Hoses (2), Pumps (1), truck (2). [Number in parenthesis is number of individuals in that group.]
- "Pregnancy Test" group might have sub groups Need and Done (because we do pregnancy testing in batches).

Let me know if you need further examples.

m.stenta’s picture

Thanks @BruceDawson!

That actually brings up a key distinction to this... and a really good one to add to the todo list. I would call that feature request:

"Show a count of how many assets are members of a group"

This is a bit different than the "inventory" functionality I'm working on currently, and it helps to distinguish the two ideas as separate features. Both useful!

To summarize, these are the two separate use-cases:

  1. The ability to say "This animal asset represents 100 animals", and also add/subtract from that number via logs... all within the context of a SINGLE asset (one row in the {farm_asset} database table). This gives you the ability to use a single asset to represent a flock/herd, etc, where you don't need individual records for each animal, you just need a head count (this can also be used to manage the inventory of other things in the future like seeds, materials, etc)
  2. The ability to say "These assets are all part of a group", and show a count of how many assets are in the group. In this case you have 1 asset record for the group itself, and other asset records for each of the members. From this, you can just run a COUNT() query to get the number of assets within that group.

Hopefully that clarifies my original question above a bit better:

Are there cases where you WOULD want to be able to track inventory of a Group asset? Think broadly... not just with groups of animals.

I'm debating whether or not inventory (aka use-case #1) should be available on Group assets. This would then allow you to have BOTH a count of group members (assets in the group) AND an arbitrary ledger-record of increases and decreases in the "number" of a group. Having both doesn't really make much sense, and would be confusing, I think - which is part of the reason I'm considering NOT allowing "inventory" on Group assets.

So I would say your input supports that direction too... as long as we ALSO have the ability to show a count of group members (#2 above).

Sorry if my terminology decisions are making things more confusing too... "Inventory" is sort of confusing as a name for this feature it seems... :-)

m.stenta’s picture

Title: Asset Groups » [META] Discussion Asset Groups/Hierarchy
Related issues: +#2912091: Farm Inventory

I'm going to change this issue to a [META] Discussion, and start a new issue for the specific implementation details once that's all figured out.

Also, I'm closing this other issue because it's basically part of this already: #2540560: Asset hierarchy

And referencing the separate, but related, "inventory" feature: #2912091: Farm Inventory

m.stenta’s picture

Title: [META] Discussion Asset Groups/Hierarchy » [META] Asset Groups/Hierarchy Discussion
m.stenta’s picture

Title: [META] Asset Groups/Hierarchy Discussion » [META] Discussion: Asset Groups/Hierarchy
Related issues: +#2915217: Group asset type with membership tracking

I started a new issue that I'll use to outline the specific implementation details for the "Group" asset type, based on this discussion. We can continue to use this issue for general discussion around the topic. I'll incorporate/organize final decisions over there...

#2915217: Group asset type with membership tracking

m.stenta’s picture

Had some discussion about this in an email thread last week... copying some of that correspondence here for posterity:

@BruceDawson:

I've been thinking of "groups" mostly as a "membership" thing. You create a group and place assets in it, and remove them from it; with the additions/modifications as logs.

Having a count of the number it assets in the group would be nice, but not critical.

And having the count show up on the map would also be nice, assuming the location isn't null, and its a product of the current filter.

@m.stenta:

Thanks Bruce! And for your comment in the issue - I think that helps to clarify what's needed a lot actually. See my comment for more details, but it sounds like we need two different types of "inventory" counts... one that counts actual assets in a group, and one that can be used for arbitrary increments/decrements of a number (ie: birds in a flock).

That suggests to me that the "Group" asset type does NOT need the arbitrary numbers, if we allow that on the Animal asset type itself. Then Group assets can be dedicated just for group membership/hierarchy of assets.

Brooks:

Hey guys - my question would be if you would be able to make groups of groups?

For FSA every year I have to go out and count all my livestock and assign them a value to make sure we still have the collateral for the farm. If I made a group for each type of pig (sow, boar, feeder pig, shoat, gilt) with assigned values and inventories, and then had the ability to group those groups as needed (putting gilts and sows together for grazing, moving boars in with gilts instead of sows, etc) would that hierarchy exist if it was just grouped in animals? Then for FSA, I could pull the entire hierarchy of groups of swine and poultry and grazing animals to get the total value of inventory on the farm. Is that the right thinking here?

To answer the question, I think for pigs, I would definitely want to have 'inventory' tracking for group assets so I could see in a couple clicks how many of each type of animal are on the farm at any moment. Ideally I would be assigning every pig on the farm as an animal and then putting it into a group. With chickens, though, I wouldn't really need that. For me, it only makes sense to track number of chicks arrived at the farm, and then weights and numbers butchered. Then, I have each "batch" accounted for, but I don't need to know if there are 520 or 510 out in a shelter at any one time. I would imagine it would work the same for a group of laying hens. What really matters is the feed input and the egg output, not the number of hens on the ground any given day.

@m.stenta:

Yes! It would be possible to make one Group asset a member of another Group.

The one thing I will need to prevent is circular membership - ie: Group A is a member of Group B which is a member of Group A. That would make things pretty screwy.

I am going to make it possible to give Animal assets a counter (aka "inventory"), so you will be able to say, for example, "this animal is a batch of 500 chickens". So Animal assets will be capable of representing individual animals OR multiple animals. By default, an Animal asset will have an inventory of 1 - it will assume that it is an individual animal, in other words. But you will be able to add/remove to that number with Inventory Adjustments on logs (activities, observations, etc).

I will ALSO be adding a new asset type called Group. With this asset type, you will be able to assign other assets as members of the group. So if you have 1 Animal asset for "Harry the rooster" (with inventory = 1) and 1 Animal asset for "Meat birds" (inventory = 500) you can put both of those into a Group called "Chicken Flock". So the "Chicken Flock" group would have 2 assets in it, and would have a total inventory of 501.

The important difference from the plan I've been talking about for a while is: Group assets will NOT have the inventory counter on them, and Animal assets WILL. Originally I was planning on doing it the other way around - keeping Animal assets dedicated to representing individual animals, and using Groups to represent multiples. But that was getting tricky to represent and think about, because Groups had two functions: inventories AND membership/hierarchy. So now, Groups will ONLY be used to represent membership hierarchies (and movements of assets from Group to Group). It will, however, be possible to calculate the total inventory of assets within a group by looking at the inventory counters of those individual assets to get a total (ie: the 501 in the example above).

m.stenta’s picture

Status: Active » Fixed

A new "Group" asset type was added. See http://farmos.org/guide/assets/groups/

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.