Breeding plan brainstorm

Spinning this out as a standalone topic from Quick Gestation Calculator Form (1.x) - #6 by Skipper

Generally speaking, we are developing a nice pattern around “planning” modules (eg: Crop Plan and Grazing Plan mentioned above), which center around a simple relationship between the “plan” object (of which you can have one or many each year), and relationships to the underlying assets and logs that are directly relevent (eg: Crop Plans link to Plant assets, Grazing Plans link to movement logs).

In this case, I’m imagining a new farm_breeding_plan module that provides a breeding plan type, and a gestation plan record type. The latter would link the plan to an animal asset (the mother), and have an insemination_date field (representing the “planned” insemination date, similar to the seeding_date field in crop plans), and a gestation_days field (representing the expected days of gestation, similar to the maturity_days field in crop plans).

With this data model, we could display the information in a gantt chart similar to the ones in the Crop/Grazing plan screenshots links to in my quote above, where each row represents a single gestation. These could be grouped by Animal Type (similar to how the Crop Plan groups by Plant Type or Location, and the Grazing Plan groups by Animal Type or Location - in this case I’m not sure it makes sense to have a “by Location” grouping option, but curious if there are other ideas that would work similarly to the other plan types). Each row would display a colored bar on a timeline that starts with the “planned insemination date”, and ends where the “expected gestation period” ends. Within this colored bar, circles representing the actual logs associated with the mother animal asset would be displayed, giving you quick visibility and access to every relevant event.

In order to make the key events easier to create (I’m thinking specifically about insemination and birth), the plan UI could provide shortcut links to quick forms. The Birth quick form that comes with farmOS provides everything we need to record births. We don’t currently have an Insemination/Breeding quick form, but perhaps that could be added as well. Either way, manually adding logs that reference the mother would result in dots showing up on her timeline, so the quick forms are just handy shortcuts in that regard. We could build the Breeding Plan without a Breeding quick form as a first step, in other words, and work on that separately. This is the beauty of our modular approach to these things: they are all separate components that work together, but can also be built/used independently.

What do others think? If we consider this as the “core” framework for a Breeding Plan module, what other features would you like to see?

3 Likes

cc @BOTLFarm @danigrover @Symbioquine @Farmer-Ed @ibekannfarms @marlonv @WHFarms @pat @Guillermo @StuartP and anyone else with experience in this topic. :slight_smile:

1 Like

Love this concept. This has been on my wishlist for years now.

I would love to see it taken a step further with any other planned events around breeding. Weaning, castration, immunizations, stuff like that. For me these are all very structured timed events around birthing. 12 days before separate the sow, 3 days after castrate, 70 days after deworm, 100 days after wean, 118 days ready to rebreed. Being able to have these preset schedule after a breeding event is created would be nice.

Would also be cool to track heat cycles in a breeding plan.

2 Likes

Makes perfect sense! This would extend the range of the events/timeline I outlined above, which only focused on insemination->birth, and would also expand the data model to include the offspring assets as well. Perhaps those could automatically appear as new rows under each mother… with their own color-coded bars to represent planned post-birth stages.

Interesting. This would extend the plan in the other direction (before insemination), I imagine. Would love to hear more about what these requirements/use-cases might look like in the UI / data model, as I don’t have experience with this myself.

1 Like

These kinds of schedules feel like they could be generalized to all types of activities - so I also wonder if we could brainstorm some kind of general-purpose feature to accomplish this, which could then be linked to / leveraged from within plans. :thinking:

For me if I’m breeding a sow that has had a break I typically will track 2 or more heat cycles before breeding. This will let me better gauge when the sow will be I heat next so I can order semen for the correct time.

Agreed. This reminds me of a discussion years about about time tracking, reoccurring tasks, and timmers. Additional log "time" features - any interest?

1 Like

Interesting. Busy farming these days but I will think and return :cowboy_hat_face:

2 Likes

Hello guys
Any luck on creating a plan for gestation?

1 Like

@ibekannfarms I haven’t started anything. I was hoping to get some feedback on the idea I suggested above to see if there’s general interest, and if it makes sense.

That said, there’s no budget to prioritize this work currently, so no guarantees that anything will happen by volunteers. Sometimes I have a free morning and brain space and will volunteer time to sketch things up for fun, but that’s not something to rely on. If you want to see this happen it’s up to you to help make it happen. :slight_smile:

Relevant: How things get built... (from ideas to code)

There could be a lot of value in having “plans” for this to provide a mechanism for multiple future/planned breeding efforts to be grouped together - and perhaps abandoned/postponed together.

That said, you can do a lot with the current model - even without a concept of “breeding plans”.

Many small livestock are more ambiguous regarding whether breeding has been successful so you only really know it worked once they start nesting (in the case of rabbits) or if eggs show evidence of developing when candled (i.e. poultry). In those scenarios, the “breeding attempt” is a record that the male and female animals were placed in together - with perhaps a note saying that mating was observed.

For rabbits, we were just using an activity log for capturing those breeding attempts and a status page in Asset Link that shows recent breeding attempt logs then provides quick actions to capture births and generate the new assets for the babies.

2025_06_17_example_record_breeding

2023_03_10_rabbit_breeding_status_page

1 Like