Skip to content

Per-cow profitability report

Open Operations → Reports → Browse all reports → Per-cow profitability to rank active female animals currently in the Lactating or Dry stage. Use the page to investigate a cow whose recorded feed and health/breeding costs are high relative to milk income. It is a management estimate based on saved records and a selected milk-price scenario, not an accounting profit statement or an automatic cull recommendation. Other farm costs and unrecorded feed or medicine are not inferred.

The selected dates filter the milk and costs, but the roster and displayed stage come from the animal’s current status and current lifecycle stage. A cow that has since left the active herd is absent from an older window, and a current cow is labelled with today’s Lactating or Dry stage rather than her stage during that historical window. Treat a past-window result as a current-roster review of past records, not a closed historical herd statement.

Control What to do
From Select the first farm-local day, initially 30 days before today. Presets are available.
To Select the final farm-local day, initially today. The range includes this whole day and To cannot precede From. Changing either date resets the table to page 1 and returns the price control to the farm-configured price for that window.
Scenario price per litre Initially shows the farm’s configured price effective at the window’s To date. Enter a non-negative number in currency per litre to model a different price. This is a page-only scenario, not a saved farm price. Leaving an explicitly edited control blank means no scenario price; it does not silently return to the configured rate.
Export CSV Downloads the complete ranked roster in bounded batches of 100 rows, not just the visible table page. It is unavailable while the page recalculates, when the price is invalid or absent, or while another export runs. If the full export fails, the page displays an error rather than offering a known partial CSV.

The date or price change can take a moment because the server recomputes and sorts the complete eligible roster before showing a page. Recalculating and ranking the complete roster… tells you new results are in progress; avoid interpreting the previous rows as the newly selected scenario. If no price is configured, milk volume and recorded costs remain visible, but Income, Profit and Margin show dashes until you enter a price. A zero scenario price is valid and represents zero-valued milk for that what-if calculation.

The report sums each eligible cow’s active milk records in the selected dates, converts kilograms to litres using the farm’s milk-density setting, and multiplies litres by the configured or scenario price. Fat and SNF are first averaged across records on each day and those daily averages are then weighted by that day’s milk yield; a missing component day does not enter that component’s average. Feed cost includes individual feeding events and the cow’s prorated share of pen feeding while she belonged to that pen. A pen event uses the animal count saved on that feeding event as its divisor. A feeding event without a unit cost contributes zero. Feed cost is included only when the organisation has the required Feed/inventory cost entitlement; otherwise an information notice says feed cost is not in this calculation. Do not interpret a zero Feed cost in that case as free feed.

Health cost includes non-cancelled treatment cost, vaccination cost and breeding-stock consumption assigned to the animal within the selected farm-local window. Farm-wide vet-visit charges are excluded. Total cost = feed cost + health cost. Profit = milk income − total cost when a price exists. Margin = profit ÷ milk income × 100 only when milk income is greater than zero; a dash means no valid percentage denominator. A dry cow can have current-period cost and no milk income, so her profit can be negative without implying the dry period was a mistake. Review the underlying animal and treatment/feed records before making a herd decision.

The six cards are complete-roster totals: Cows, Total milk in litres, Income, Total cost, Profit and Margin. Changing table page size or going to another page does not change these cards. If there are no eligible active lactating or dry females, the page shows an information message instead of a zero-valued table.

The table initially sorts by Profit, highest first; choose any sortable column heading to sort the whole roster by that measure. Choosing the same heading again reverses direction; a new heading starts descending. Its columns are Animal (tag, name, national ID, breed and stage), Milk (L), Avg fat, Avg SNF, Income, Feed cost, Health cost, Total cost, Profit and Margin. A dash for fat or SNF means that component was not recorded, not zero composition. Negative-profit rows are shaded red. Page subtotal below the rows totals only the visible page, while the summary cards above cover all eligible cows. Use the page controls to view more cows and change the page size.

The CSV includes tag, name, national ID, breed, stage, milk litres, average fat/SNF, income, cost components, profit and margin for all returned cows under the currently chosen dates, price and sort. To investigate an unexpectedly poor ranking, check milk-record completeness, the cow’s pen membership and feeding events, allocated health/breeding stock, and the price basis. The linked Cull dashboard offers a separate review, not an instruction to sell or remove the animal.