Farm Module Concepts
This page explains how the Farm module sees a livestock operation: what gets recorded, where the numbers meet accounting, and the working order that keeps the reports correct. Read this before opening any form.
Who This Module Is For
- Broiler, layer, dairy cattle, goat, and other operations managed per house and per production cycle.
- House operators who record daily events: deaths, feed, eggs, weight, milk, and animals coming in or going out.
- Owners and supervisors who judge a cycle by mortality, HD, FCR, ADG, and finally cost and margin per house.
- Accounting staff who want feed to become an expense and harvest to become inventory without retyping anything.
Four Layers of Data
Each layer answers one question. Filling them bottom-up will fight you; the right order is always top-down.
| Layer | Answers | Nature |
|---|---|---|
| Animal Type | Which metrics apply - eggs, weight, or milk? | Master data, rarely changes |
| House / Coop | Where are the animals, and which division carries their cost? | Master data, holds every setting |
| Batch | When did the cycle start, and with how many head? | One house is used by many batches over time |
| Daily Record | What happened that day? | One row per day per batch |
One House Is One Division
This is the decision that shapes the whole module, and once it clicks the rest follows.
- In Zayeen the ledger and cost of goods are separated per division. Departments only separate stock locations; they do not separate profit and loss.
- So one house maps to one division. That division is its cost center: all of the house stock, COGS, and journal entries land there.
- A division may be held by only one house. If two houses share a division, the promise of "cost and margin per house" is void - their journals mix and can no longer be separated once posted.
- Departments act as sub-locations inside a house, for example the feed store and the animal area, and they are the endpoints of inventory transfers.
- Licensing consequence: a farm with more than one house needs the Multi Division and Multi Department features.
Feed: the Schedule Suggests, the Daily Detail Is Booked
A cycle almost never uses a single feed - age phases change, and now and then a stock-out forces another brand.
- The Feed (kg) column on the daily record is not typed. It is the total of its detail rows and updates itself whenever a row is saved or deleted.
- The product list on the daily detail only offers feeds configured on that house. If a stock-out forces another brand, add that brand to the age schedule or to the house default feed first - one extra step that keeps the decision in the master data instead of buried in one daily row.
- Posting refuses feed recorded without product detail. Guessing the product means issuing stock that never left.
| What you fill in | Its role |
|---|---|
| Feed Schedule by Age, inside the House form | Suggests the product when a detail row is added, and limits which feeds that house may use |
| House default feed product | Fallback suggestion when the schedule does not cover that day age |
| Feed Usage Detail, inside the Daily Record | The source of truth. This is what leaves stock and is expensed on posting |
Inventory Posting: Where Accounting Meets the Farm
Daily records never touch stock. Inventory Posting does, and the separation is deliberate: daily records are corrected often, and corrections that silently move stock cannot be traced.
- The mortality line is only created when the house declares a Livestock Product and a Mortality Expense Account. Without them the module behaves as before: deaths stay in the population figures and mortality reports, but never touch stock.
- Saving a posting row again means posting again: the previous result is cleared first, so a changed date range leaves no orphaned stock behind.
- Deleting a posting row reverses every transaction it created, including stock cards and journals, and releases the daily rows for correction.
- Daily rows that joined a posting are locked. To correct one, delete its posting first.
| From the daily records | Becomes | Journal |
|---|---|---|
| Feed usage detail | Stock issue in the house division, one line per product | Debit feed expense, credit feed inventory |
| Eggs or milk | Stock receipt in the house division | Debit harvest inventory, credit harvest account |
| Morning + evening deaths | Livestock stock issue in the house division | Debit mortality expense, credit livestock inventory |
What Posting Does NOT Create
This boundary matters, otherwise the same movement is counted twice.
| Event | Recorded where | Why not in posting |
|---|---|---|
| Animals in (chicks, pullets, heifers) | Ordinary purchase or goods receipt | Stock is bought like any other item, with its price and supplier |
| Animals sold | Ordinary sales transaction, its number typed on the daily record | The sales invoice already issues the stock and recognises the revenue |
| Animals moved to another house | Inventory transfer between divisions | The transfer moves the cost along with the animals |
| Animals lost | Inventory adjustment | A different event from mortality, so it does not belong in the same account |
Working Through One Cycle
- Prepare the masters once: Animal Types, then a Division and Department per house, then the House itself with its feed product, harvest product, livestock product, and accounts.
- Buy feed into the warehouse through an ordinary purchase or goods receipt.
- Transfer feed from the warehouse to the house division. Its cost moves along, so the feed expense is later valued at what was actually paid.
- Bring the animals into the house division through a purchase, then open a new Batch from inside the House form and enter its initial count.
- The operator fills the Daily Record every day: deaths, feed with its detail, eggs or milk, weighed weight, and animals added, sold, moved out, or lost.
- At the end of the week or the cycle, create an Inventory Posting row for the date range. Check the transaction numbers that appear in its result columns.
- Transfer the harvest from the house to the warehouse when it is ready to sell, then sell it through sales or POS like any other item.
- Close the cycle by setting its status to Closed, then read Batch Performance and Cost & Margin per Coop.
The Metrics
| Metric | Meaning | Derived from |
|---|---|---|
| Population | Animals alive on that date | Initial count, plus additions and transfers in, minus deaths, sales, transfers out, and losses |
| Mortality % | Share of animals lost since the cycle began | Cumulative deaths divided by the initial count |
| HD % (Hen-Day) | Daily laying productivity | Eggs that day divided by the population that day |
| FCR | Feed efficiency - lower is better | Total feed divided by harvest or weight gain |
| ADG | Average daily weight gain | Weight difference divided by the number of days |
Before You Start: Setup Checklist
- The Farm Management feature is active on the licence. For more than one house, add Multi Division and Multi Department.
- Each house division has its own inventory transaction number format, unique across divisions. Two divisions sharing a format would issue the same number, and that number is the transaction key - posting is refused until the formats differ.
- Feed products use kg as base unit, milk litres, eggs pieces or kg depending on the house setting, and livestock head. The product base unit must match the unit recorded daily.
- Products used by posting must be ordinary goods - not services, and not serial-numbered items.
- The feed expense, harvest, and mortality expense accounts already exist in the chart of accounts.