Herd inventory roll-forward
Definition
Section titled “Definition”A herd inventory roll-forward explains how each inventory class got from its opening head count to its closing count over a period, usually a month. Each class has the same columns:
- Opening: last period’s closing count.
- Births: live calves added to the youngest class.
- Purchases: animals bought in.
- Sales: animals sold out (including culls).
- Deaths: animals that died.
- Transfers in / out: moves between classes, e.g. a springer that calves moves to milk cows; a heifer that ages out of one band moves into the next; a cow dried off moves from milk to dry.
- Adjustments: reason-coded corrections.
- Closing: the computed result.
Transfers net to zero across all classes; they move head, they don’t create or remove it. No class can close negative.
Census reconciliation
Section titled “Census reconciliation”The computed closing is compared with the observed count from the period-end census (the DC305 count or INV report). The difference is the residual:
- Every residual is explained with a reason code (late-entered event, unrecorded death, mis-keyed ID, purchase not yet entered, class boundary).
- Small residuals from month-end boundary timing are common and benign: events that happened on the last day of the month but were entered on the 1st or 2nd of the next.
- Large residuals (e.g. over about 2% of a class) should block the close until explained.
Period close and restatement
Section titled “Period close and restatement”Once a period is reported to the lender it is closed: its closing counts become the next period’s opening and are not edited in place. A correction found later is a restatement: a new version of the period that supersedes the old one, with a reason and the date it was made. Silent edits to a closed period break the chain of openings and make past certificates impossible to reproduce.
Formula
Section titled “Formula”Plain text:
closing (class) = opening + births + purchases − sales − deaths + transfers in − transfers out ± adjustmentsΣ transfers in = Σ transfers out (across all classes)residual = observed census − computed closingresidual % = residual / computed closing × 100LaTeX:
C_k = O_k + B_k + P_k - S_k - D_k + T^{\text{in}}_k - T^{\text{out}}_k \pm A_kR_k = N^{\text{census}}_k - C_k, \qquad \sum_k T^{\text{in}}_k = \sum_k T^{\text{out}}_kHow to pull it in DC305
Section titled “How to pull it in DC305”DC305 is the source for every column. Event names and remark codes vary by
herd; check the herd’s private dc305-vocab mapping first.
- Births: FRESH events (and calf entries) in the period; live heifer and bull calves by sex, excluding dead-at-birth.
- Freshening transfers: FRESH events with LACT=1 move heifers to milk cows.
- Sales and deaths: SOLD and DIED events in the period, by class at the date of the event.
- Purchases: the herd’s arrival/purchase event (spelling varies).
- Dry-offs: DRY events, where the herd records them.
- Census: period-end counts by class, or the herd’s INV reports.
EVENTS\B FRESH FOR FDAT=<first of month>-<last of month> FRESH in the period, including cows that left sinceCOUNT\B FOR LACT=1 FDAT=<period> first-calf freshenings, including heifers that left sinceEVENTS\D SOLD FOR <period date range> sales in the periodEVENTS\D DIED FOR <period date range> deaths in the periodEVENTS\5C event table by month, with PREG/OPEN countsECON\ID past / yearly cow inventory summaryECON\IHD past heifer inventoryEVENTSandCOUNTcover live animals only by default. Every event column needs\B(live and left) or\D(left only), or the animals that calved, were sold or died during the period and then left drop out of the roll-forward. Animals moved to the archive file need\L.- Select an event type by naming it after
EVENTS, or with\I(prompt for which events, as inEVENTS\2SI);\Sprompts for the date range. low-highin aFORcondition is an inclusive range;high-lowis exclusive (everything outside the range).ECON\IDandECON\IHDgive past cow and heifer inventories to check the census against.
Two known limits:
- Dry-offs are often not recorded as events, so milk vs dry can’t always be rolled forward from events. Use the census for that split and treat milk↔dry as a computed transfer.
- Age-band and springer moves happen by the calendar, not by an event. Compute them from birth dates and due dates at period end, or take the census split.
Typical range
Section titled “Typical range”Herd context: US Holsteins, freestall or dry-lot, monthly close reported to an ag lender; tolerances vary by lender.
- Residual per class: zero or a few head is normal; above about 2% of a class warrants investigation before the close.
- Monthly deaths: roughly 0.5% of cows per month for adult cows.
- Monthly sales (culls): roughly 2.5–3.5% of cows per month.
Common mistakes
Section titled “Common mistakes”- Opening ≠ last closing. The chain breaks when someone re-pulls the prior month instead of carrying the closed numbers forward.
- Unbalanced transfers. A heifer that calves leaves the springer class and must enter milk cows in the same period.
- Counting stillborn calves as births.
- Double-counting late entries: an event entered after the close is counted in the new month and also in a restated old month.
- Rolling milk/dry from events when dry-offs aren’t recorded.
- Editing a closed period instead of restating it.
- Ignoring residuals because the total herd ties: offsetting errors between classes hide real problems.
