Individual ruminant
CLEM.Resources.Ruminant
A individual ruminant in the herd.

The individual-based ruminant herd model in CLEM manages a list of individual ruminants that model activities can work with, updating the state of each individual as the simulation progresses. This approach provides a valuable opportunity to interrogate the current status of any individual when exploring the model performance in ways often not possible with field trials or even on-farm management. The model provides a large number of properties (the current value of a characteristic or state) and methods (a means of calculating a value or performing a task on the individual, e.g. Wean) for each individual that can be used to select individuals of interest with filtering, report to output for detailed analysis of animal performance, or manage animals with custom management code (new activities, see Developing resources).
There are two additional sub-types of individual ruminants that hold the properties and methods specific to females and males.
2025 Major Upgrade
This section has been updated to reflect the new management of ruminant properties into a range of new objects that better track states and allow you to find the properties you need in reports and filtering.
See Major upgrade 2025 page for full details.

The following properties are available for each individual, most of which are provided when applying filters and sorting.

These properties relate to the age of the individual and timing of life events. Age is determined by calculating the time since particular events were recorded (as dates).

This calculated property provides the age in days as an integer number and is derived from [DateOfBirth] which is also available as a Date.

This calculated property provides the age in years as a decimal number and is derived from [DateOfBirth] which is also available as a Date.

This calculated property provides the age in whole years as an integer. and is derived from [DateOfBirth] which is also available as a Date.
The following properties report age at or since an event.

This provides the age of the individual (in days) at the time of purchase. It will be double.NAN if the individual was born into the simulation. This property uses the [DateOfPurchase] property.

This provides the age of the individual (in days) when they entered the simulation. This property uses the [DateEntered] property.

This calculated property provides the age (in days) at which this individual will naturally wean if not weaned by a Wean ruminants activity.

The number of days since the individual was weaned.

The number of days since the individual was purchased.

A measure of each individual animal's condition is often used in management decisions and the calculation of animal production, mortality and conception. This score is often assigned from visual inspection of the animals physical condition in the field using measures such as the shape and presence of bones showing on the rump. These measurements relate to the weight of the animal relative to it's average weight or size expected for its age and therefore show whether the individual is underweight or in better condition than expected normal. The method of calculating the Body Condition Score in the model is that used widely in other Australian herd models (AusFarm, GrassGro) provided in SCA (2007) where the ratio of the animal's weight to normalised weight is represented on a simple scale.
Two parameters of the Ruminant type are required to define the Body Condition Score, The first is Body Condition Score range (min, mid, max) which defines the range to use with the mid value representing the animal with weight equal to the expected normal weight. The second is the Relative Body Condition to Score rate that defines the amount of change in the relative body condition (base weight divided by normal weight) for each unit of the Body Condition Score.
For sheep and cattle this is usually on a scale from 0 to 5 with a value of 3 representing the normal weight for age. Values less than 3 represent underweight with a greater chance of mortality though being underweight at the lowest scores. Scores greater than 3 represent an animal in better than average condition. The score is limited to the minimum and maximum values.
This property is a new release and needs testing. Previous simulations will not be affected while Proportion of body weight needed for survival is set to a value between 0 and 1. See Ruminant type

The name of the breed. This value is obtained from the Parameters.Details property for this individual which links to the Ruminant type of the individual.
Breed will determine mating and what individuals are available for a range of activities when determining the CurrentHerd and is inherited from the parents.

This property returns the breeder specific class details as used by Class which also returns suckling and weaner.

The current class of the individual. Individuals can only be in one class at a time which has defined the class cut-off decisions. A property is available to check whether the individual is currently of a specified class and these are in the form of "Is" followed by the class label (e.g. IsWeaner will determine if the individual is currently a weaner). These properties have not been provided in the property list.

An individual still suckling (property to check IsSuckling) and also includes orphaned individuals (mother sold or moved without suckling offspring, or died) that will be forced to survive on reduced pasture intake.
This class was previously Calf and used IsCalf but was changed to reflect multiple ruminant types. The IsCalf property will now throw an error directing you to use the new IsSuckling.

A non-suckling individual less than 12 months old (property to check IsWeaner). An individual will be considered a weaner as soon as it meets the criteria of a Wean ruminants activity or is separated from mother (mother's death) or exceeds the natural weaning age (see Natural Weaning Age property of Ruminant type) at the start of the month until 12 months old.
While IsWeaner identifies any individual meeting this criteria (non-suckling and less than 12 months old), not all Weaners are Weaned. The Weaned property will be True only after an individual has been managed by a Wean ruminants activity and relates to the management action of weaning. Thus, naturally separated individuals (by age or death of mother) are not considered Weaned until assessed by a Wean ruminants activity.

A weaned individual between 12 months old and minimum breeding age and less than minimum weight at first mating (property to check IsPreBreeder).
This class equates to the common definition of a heifer in cattle herds with differences in the definition relating to when a heifer is regarded a breeder. As any individual can only have one class, a Pre breeder is assumed to become a breeder as soon as it reaches the required age and weight criteria. For this reason we do not use the term Heifer in the model.

A weaned individual of breeding age and achieved minimum size at first mating (property to checkIsBreeder).
Males designated as Breeders are not flagged as Sires have entered the breeding pool of males through management (e.g. they were not castrated and sold as steers). These individuals may also have missed mustering through the yards for sales if incomplete herd management and could be referred to as "wild breeders".

A castrated individual (e.g. steer, or draught animal) (property to checkIsCastrated).

A breeding sire. These animals are differentiated from breeding males as special breeders that can have a different price and specific management. (property to check IsSire).

Indicates if the individual has died this time-step before removal from the herd.

This property is provided by a RuminantInfo object which is responsible for managing and tracking related properties. To access energy properties in Reports you will need to access the individual.Energy.[PropertyName]. All properties are reported on a daily basis and in MJ unless otherwise stated.
The order of supplying energy in growth models generally follows the following order Energy.FromIntake -> ForMaintenance (ForBasalMetabolism + ForHPViscera -> ForGrazing (ToMove + ToGraze)) -> ForFetus -> ForLactation -> ForWool -> ForGain (Net).

[AfterLactation] provides the energy from intake remaining after everything up to and including lactation have been accounted for.

[AfterPregnancy] provides the energy from intake remaining after everything up to and including pregnancy have been accounted for.

[AfterWool] provides the energy from intake remaining after everything up to and including wool production have been accounted for.

[AvailableForGain] provides the energy from intake that is available for gain. Same as Net.

[ForBasalMetabolism] provides the energy provided for basal metabolism. This is included in ForMaintenance.

[ForFetus] provides the energy used for fetus and conceptus development in the time-step.

[ForGrazing] provides the energy used for grazing. This is the sum of ToMove and ToGraze.

[ForHeatProduction] provides the energy used for heat production and is the sum of ForBasalMetabolism , ForHPViscera and ForProductFormationAverage.

[ForHPViscera] provides the energy provided for HP viscera.

[ForLactation] provides the energy provided for lactation.

[ForMaintenance] provides the energy provided for maintenance. This is the sum of ForBasalMetabolism , ForHPViscera and ForGrazing.

[ForProductFormation] provides the energetic cost of depositing protein and fat. Heat for product formation. (Not used in all growth models)

[ForProductFormationAverage] provides the average of the average product formation and the current energetic cost of depositing protein and fat. (Not used in all growth models)

[ForWool] provides the energy provided for wool.

[FromIntake] provides the metabolisable energy provided from intake.

[kg] is the current energy use efficiency for growth.

[kl] is the current energy use efficiency for lactation.

[km] is the current energy use efficiency for maintenance.

[kw] is the current energy use efficiency for wool production.

[Net is the net energy available for gain. Same as AfterWool.

[ToGraze is the energy required for the act of grazing.

[ToMove is the energy required for moving to graze.

[StoredInWool returns the current energy stored in the clean fleece on the animal.
The following properties are RuminantTrackingItems which are used to track the state of measures and have a current .Amount, .Previous amount and .Change properties.

This tracks the total energy in the fat stores as well as the amount in the last time-step and the change.

This tracks the total energy in the fat stores as well as the amount in the last time-step and the change.

This provides a separate pool for tracking visceral protein in some growth models.

The name of the herd this individual belongs to obtained from the name of the Ruminant type component in the tree above the initial cohorts. Therefore the different Ruminant types could be the same breed but managed as separate herds. Herds are considered separately in the summary reports.
A calf will be assigned the herd name of the mother.
An additional HerdNameToDisplay property will only return the herd name if multiple herds are provided in the simulation. This is used in in reporting the RelatesTo column of Resource ledger report.

Every individual in the simulation is given a unique identifier. This property provides the unique id of the individual.

This property is provided by a RuminantInfo object which is responsible for managing and tracking related properties. To access intake properties in Reports and filters you will need to access the individual.Intake.[PropertyName].

[CrudeProtein] provides the total crude protein (kg/time-step).

[DegradableProtein] provides the total degradable protein (kg/time-step).

[DMD] provides the dry matter digestibility of solid non-milk intake (percent).

[DPLS] provides the Digestible Protein Leaving the Stomach.

[kDPLS] returns the current efficiency of using DPLS.

[FMEI] provides the Fermentable Metabolic Energy from Intake.

[IndigestibleUDP] provides the Indigestible undegradable protein.

[ME] provides the Metabolisable energy from intake (MJ).

[IsUnfed] determines if an individual was not fed in the current time-step.

[SolidsME] provides the Metabolisable energy from solids intake (MJ).

[MDSolid] provides the Metabolisable energy density from solids intake (MJ/kg).

[MilkME] provides the Metabolisable energy from Milk intake (MJ).

[NitrogenPercent] provides the percent nitrogen content of solid (non-milk) intake (%).

[ProportionMilk] provides the proportion of milk in the diet.

[ProportionOfPotentialIntakeObtained] Determines the proportion of the potential intake actually obtained.

[RDP] provides the Rumen Degradable Protein.

[RDPRequired] provides the Rumen Degradable Protein required.

[UseableDPLS] returns the product of DPLS and kDPLS.

[SolidIntake] provides the amount of solid intake in diet.

[SolidsME] provides the Metabolisable energy from solids (non-milk) intake.

[UDP] provides the Rumen Undegradable Protein (RUP = UDP)..

[UseableDPLS] returns the product of DPLS and kDPLS.
The following properties are ExpectedActualContainers which are used to record the amount expected, available and actually obtained of a range of feed items.

[MilkDaily] provides the potential and actual milk intake of the individual (kg).

[SolidsDaily] provides the potential and actual solids intake of the individual (kg).
The following methods are available from Intake

[AddFeed()] A method to add intake as a FoodResourcePacket and track rumen totals of N, CP, DMD, Fat and energy.

[AdjustIntakeBasedOnFeedQuality(IsLactating)] A method to adjust intake consumed based on feed quality.

[GetStore(FeedType feedType)] A method to return the food resource store identified by feed type.

[GetStore(FeedType feedType)] A method to return the food resource store details identified by feed type.

[CalculateDigestibleProteinLeavingStomach(rdpRequired, milkProteinDigestibility)] A method to calculate the digestible protein leaving the stomach (Metabolisable Protein) based on RDP required.

The following properties provide a boolean (true/false) response to each check of state. These properties use the naming convention Is[State].

[IsAbleToBreed] will return true when all conditions for an individual to breed have been met. These include the criteria for first mating (age and weight) as well as time since last birth.

[IsAbleToBreed] Reports if the individual has a sale flag other than None.

[IsReplacementBreeder] will return true if the individual has been identified as required as a breeder in future.

[IsSterilised] will return true if the individual has been sterilised. This includes webbing and spaying of females and castration in males..

[IsSuckling] will return true when the individual is still suckling.

[IsSuckling] will return true when the individual is still suckling with mother.

[IsWeaned] will return true when the individual is no longer suckling. This will result from either the Wean ruminants activity or the individual reaching the age of natural weaning.

[IsWeaner] will return true when the individual is weaned [IsWeaned] and age is less than 12 months.

The location of the individual. This allows various activities to move individuals or determine the individuals at a given location. Locations are the names of Graze food store type (paddocks) or empty (referring to unspecified location so considered the general yards).
The value stored for each individual only uses the Name of the Graze food store type and not the full name including the Graze food store parent component separated by a full stop as shown in the drop down list of the Move ruminants activity. For example, if you wanted to identify all individuals currently in the Native pasture (GrazeFoodStore.NativePasture) you would define the Location property as just NativePasture (e.g. (GrazeFoodStore.NativePasture). Note: including the full component path will result in no individuals returned.

This property returns a RuminantFemale that represents the mother of the individual. This property is only available while the mother is alive in the herd as after death the individuals are removed from the list of ruminants and lost from the model (see MotherID). Access to the mother allows the model to determine the various properties needed for the offspring such as mother's milk production and number of suckling offspring to provide milk intake for the individual.

The unique identifier of an individual's mother. This property allows reporting of all offspring of a female regardless of whether she is still alive and in the herd.

Default 1 for individual herd model. May be used in future for deterministic herd model.

This property is provided by a RuminantInfo object which is responsible for managing and tracking related properties. To access outputs in Reports you will need to access the individual.Outputs.[PropertyName].

[Manure] provides the amout of manure produced in the time-step.

[Methane] provides the amount of methane produced in the time-step.
CHECK. Enteric methane is now handled by separate activities.

[Nitrogen] provides the amount of nitrogen lost.

[NitrogenExcreted] provides the amount of nitrogen excreted. This is the sum of [NitrogenFaecal] and [NitrogenUrine] .

[NitrogenFaecal] provides the amount of nitrogen in the faecal material.

[NitrogenUrine] provides the amount of nitrogen in the urine.

This property determines the direction of herd change based upon the sale flag of the individual, with -1 for sales, 0 for no flag, 1 for purchases. This allow herd ledgers to report the direction of herd change with each entry (gain or loss).

A herd change reason label identifying this individual as marked for sale. The HerdChangeReason is used to determine the reason any individual was added or removed form the herd and is used here for an activity to flag the reason for sale or purchase. A subset of these herd change reasons are provided in the MarkForSaleReason as identified below.

The grow-out individual has reached the age or weight specified for sale (e.g. steer sales).
MarkedForSaleReason

The individual was born.
Born

The individual is a breeder purchase.
BreederPurchase

The individual was slaughtered for consumption.
MarkedForSaleReason

The individual was part of a destocking activity and marked for sale
MarkedForSaleReason

The individual died due to dystocia.
DiedDystocia

The individual died due to toxaemia.
DiedToxaemia

The individual died due to loss of weight.
DiedUnderweight

The individual died due to the mortality rate.
DiedMortality

The individual was identified as a dry breeder for sale/culling.
MarkedForSaleReason

The individual was identified as an excess breeder.
ExcessBreederSale

The individual was identified as an excess pre-breeder.
ExxcessPreBreederSale

The individual was identified as an excess sire.
ExcessSireSale

The individual was part of the model filling the herd to numbers required at the start of the simulation when specified by the user.
FillInitialHerd

The individual was part of the initial herd at the start of the simulation.
InitialHerd

The individual is to be sold as a sale marked by a Mark ruminants for sale activity.
MarkedForSaleReason
The individual has the maximum age permitted and is ready for sale.
MarkedForSaleReason

The individual remains in the herd.
MarkedForSaleReason - Not Provided

The individual was removed by the model to maintain correct herd size at the start of the simulation when specified by the user.
ReduceInitialHerd

The individual was part of a restocking activity and requested for purchase.
RestockHerd

The individual is a new sire purchase
SirePurchase

The individual is part of a trade herd purchase.
TradePurchase

The individual is part of a trade herd sale.
TradeSale
The individual is part of a specified weaner sale.
WeanerSale
Returns the sex of the individual.

Returns the sex of the individual with the current class (e.g. Female.Breeder).

This property is provided by a RuminantInfo object which is responsible for managing and tracking related properties. To access weight properties in Reports and filters you will need to access the individual.Weight.[PropertyName].

[AdultEquivalent] provides the adult equivalent of the individual. This uses the base individual weight from Ruminant parameters general.

[AtBirth] provides the weight of the individual at birth.

[BodyCondition] is base weight / weight normalised for age.

[EmptyBodyMass] provides the empty body mass of the individual (kg).

[EmptyBodyMassChange] provides the change in empty body mass of the individual (kg) for the time-step.

[EmptyBodyMassWithFleece] provides the empty body mass of the individual (kg) with greasy wool weight added (zero if ruminant with no wool).

[EmptyBodyMassChangeWithFleece] provides the change in empty body mass of the individual (kg) for the time-step plus the change in greasy wool weight (zero if ruminant with no wool).

[EBF] provides the proportion of the empty body mass that is fat and used as a measure of condition..

[Gain] is the change in weight over the last time-step. Live - Previous.

[HighestAttained] provides the highest weight the individual has attained.

[IsStillGrowing] determines if the relative size by highest weight achieved is less than or equal to 0.9.

[Live] is the current live weight of the individual.

[MaximumNormalisedForAge] provides the maximum normalised weight for current age.

[NormalisedForAge] provides the normalised weight for current age.

[ForMaintenance] provides the energy provided for maintenance.

[Previous] provides the previous weight of the individual (previous base + previous conceptus + previous wool).

[ProportionOfHighWeight] provides the current live weight as a proportion of highest weight achieved.

[ProportionOfNormalisedWeight] provides the current live weight as a proportion of the normalised weight for age.

[RelativeCondition] is the relative condition (base weight / normalised weight). This does not include conceptus weight in pregnant females.

[RelativeSize] is the normalised weight divided by the Standard Reference Weight.

[RelativeSizeByHighWeight] is the highest weight achieved divided by the Standard Reference Weight.

[StandardReferenceWeight] is the Standard reference weight of the individual. This takes into account the sex and any sterilisation (castration).
The following properties are RuminantTrackingItems which are used to track the state of items and have a current .Amount, .Previous amount and .Change properties. In this case these track specific weights on the individual.

[Base] tracks the base weight of the individual.

[Conceptus] tracks the conceptus weight in pregnant females.

[ConceptusFat] tracks the conceptus fat weight in pregnant females.

[ConceptusProtein] tracks the conceptus protein weight in pregnant females.

[Fat] tracks the weight of fat.

[Fetus] tracks the weight of the individual fetus in a pregnant female. This is then multiplied to work with multiple births.

[FetusFat] tracks the weight of fat in each fetus in a pregnant female. . This is then multiplied to work with multiple births.

[FetusProtein] tracks the weight of protein in each fetus in a pregnant female. . This is then multiplied to work with multiple births.

[Protein] tracks the weight of protein.

[ProteinViscera] tracks the weight of visceral protein when needed in the growth model. When used Protein represents the other body protein.

[Wool] tracks the weight of greasy wool the individual.

[CleanWool] tracks the weight of clean wool the individual.

A label that combines Class with Sex (e.g. Calf.Female).

A quick estimate of health on a scale of 0 - 1, where 0 is mortality weight, 0.5 is normalised weight and 1 is maximum size of animal
This property is replaced by Body Condition Score and will be depreciated in future.

The amount of milk currently available for this individual taking into account the mothers lactation cycle timing and number of competing offspring suckling.

The following methods are used to report a value or make changes to the individual. These are used by the model code but may also be applicable to reporting.

Allows an activity to add intake to the individual's intake manager. This method passes a FoodResourcePacket that contains details such as amount, nitrogen and dry matter digestibility of the food (IFeedType interface, seeRuminant intake).

Returns the normalised weight (kg) of an individual of the age (in months) passed as an argument.

Get the group label for this individual based on the transaction category style set in Ruminant herd.
This method requires the RuminantTransactionsGroupingStyle and PurchaseOrSalePricingStyleType
The value "All" is returned when RuminantTransactionsGroupingStyle is set as Combined.

A method to set the age the individual entered the simulation with the age (in months) passed as an argument. This should only be used by specific activities such as where animals are purchased and not born.

A method to set the weaned status to false for new born in the code.

A method to organise the weaning of the individual. This method updates the mothers current offspring and total number weaned counts. A argument indicating whether to report the wean is also provided along with a weaning reason (natural weaning, or managed weaning) if selected.

The following properties are specific to females in the herd. Most of these are available when applying filters and sorting.

The following properties report age at or since an event for females.

The number of days since the individual last conceived.

The number of days since the individual last gave birth. This also included failed pregnancies. This is also used as lactation day.

The number of days into the current pregnancy.

The proportion of the current pregnancy complete.

The following properties provide a boolean (true/false) response to each check of state. These properties use the naming convention Is[State].

Determines if the female is currently able to breed. This includes being a breeder (IsBreeder) and not pregnant, the time since last birth is greater than minimum days between birth and conception.

[IsBirthDue] will return true when all conditions for an individual to give birth in the current time step are met.
Age >= Age at last conception + Breed.Gestation length

[IsBreeder] determines if the female is currently considered a breeder. This includes being weaned, an age greater or equal to the minimum age at first mating, and her highest weight achieved is greater than the minimum proportion of standard reference weight before conceiving. A method to organise the weaning of the individual. This method updates the mothers current offspring and total number weaned counts. A argument indicating whether to report the wean is also provided along with a weaning reason (natural weaning, or managed weaning) if selected

[IsHeifer] will return true if the individual has been identified as a heifer.
The CLEM definition of a heifer is over 12 months old (IsWeaner = false) and up to first birth. Note: Others may require this definition to be up to end of first lactation, but this will need to be an additional property.

[IsLactating] will return true if the individual is lactating which means she has suckling offspring, or is being milked, and the time is within the lactation length.

[IsPreBreeder] will return true when the individual is weaned and has not met the criteria for first mating.

[IsPregnant] will return true while the individual still a fetus count.
Carrying count > 0

[IsSpayed] will return true if the individual has been spayed. This will also define IsSterilised as true.

[IsWebbed] will return true if the individual has been webbed. This will also define IsSterilised as true.

[SuccessfulPregnancy] determines whether the last pregnancy was successful.
AgeAtLastBirth - AgeAtLastConception = this.BreedParams.GestationLength

The following properties provide counters relating to the female.

The number of fetus/conceptus the individual is currently carrying.

The total number of successful births (at least one offspring survived) where twins is a single birth (see Number of offspring).

The total number of successful births (individuals) this timestep.

The total number of months this female has been able to breed.

The total number of successful conceptions.

The number of fetuses conceived in last conception

The total number of offspring born.

The total number of sucklings still with mother.

The total number of offspring that went onto being weaned while she was alive.

This property is provided by a RuminantInfo object which is responsible for managing and tracking related properties. To access lactation properties in Reports you will need to access the female.Individual.Lactation.[PropertyName].
All lactation rates are measures of energy (MJ/day) while stocks are in kg.

[Available] provides the total amount currently available (kg).

[Lag] provides the lag term for milk production.

[MaximumRate] provides the maximum rate of milk production possible (MJ/day).

[Milked] provides the amount milked by Ruminant milking for the time-step (kg).

[MilkingPerformed] Determines if milking has been performed on individual to increase milk production.

[NutritionAfterPeakLactationFactor] records the last value for checking.

[PotentialRate] provides potential rate of milk production (MJ/day).

[Produced] provides the amount of milk produced in the time-step (kg).

[ProductionRate] provides the rate of milk production (MJ/day) accounting for suckling intake.

[ProductionRatePrevious] provides the rate of milk production (MJ/day) accounting for suckling intake from the previous time-step.

[ProportionMilkProductionAchieved] provides the proportion of the potential milk production achieved in timestep.

[Suckled]The amount of milk suckled this time step (kg).

[Fat] provides the total fat required for milk production (kg).

[Protein] provides the total protein required for milk production (kg).

These properties relate to the weight of the individual and are part of the RuminantFemale. All weights are in kg.

[WeightAtConception] provides the live weight at time of conception.

[WeightAtParturition] provides the live weight at parturition.

[BodyConditionParturition] provides the body condition at parturition.

[HighWeightWhenNotPregnant] provides the highest live weight attained when not pregnant.

[ScaledBirthWeight] provides the predicted birth weight of offspring scaled by mother's relative weight.

The current birth scalar based on number of fetus carried.

[MixedSexMultipleFetuses] Are the fetuses of a multiple birth mixed sex.

The style of the last mating for the individual. This allow for the identification of any mating by unintended wild breeders.

The conception rate in the previous time step used in uncontrolled mating.

Provides access to the list of Ruminant individuals currently suckling.

The following methods are used to report a value or make changes to the individual. These are used by the model code but may also be applicable to reporting.

This method will determine the number of offspring this pregnancy given multiple offspring birth rates.

[DaysLactating(offset)] The number of days into the lactating period.

Manages the birth of all fetus, creates new individuals and prepares for lactation.

Manages the death of a foetus/conceptus.

Removed milk from female stores. This method requires the amount to take and the reason where the reason can be Suckling or Milked.

This method will update the conception details based on the arguments passed to the method. This method would be used by a breeding activity.

The following properties are specific to males in the herd. Most of these are available when applying filters and sorting.

The following properties provide a boolean (true/false) response to each check of state. These properties use the naming convention Is[State].

Determines if the male is currently able to breed. This includes being a breeder (IsBreeder) and not sterilised.

[IsCastrated] will return true when the individual's attribute list contains an entry for Castrated.

[IsPreBreeder] will return true when the individual is weaned and has not met the criteria for first mating.

[IsSire] is a male specific version of IsBreeder and specifies that this individual was marked as a breeding sire through purchases or herd replacement.

[IsWildBreeder] will return true if the individual is a breeder but not marked as a sire.
See also