Automatic Bird Weighing in Broiler Sheds: How Platform Scales Work, How Many Birds You Need, and What to Do With the Curve

100 birds. That is the least Aviagen's broiler guidance asks anyone to catch, hold, weigh and release each week from day 21, or 1 percent of the flock if that is larger. In a 20,000-bird shed it means 200 birds, caught from at least three places so the sample is not just the ones that were easy to reach, every single week of the crop. It is stressful for the birds, tiring for the crew, and it gives the farmer one number per week to steer a 40-day crop.
An automatic platform scale promises the opposite: a weight every day, no catching, thousands of readings instead of hundreds. The promise is real, and so is the catch, which is that a platform only weighs the birds that choose to step on it. Whether that is a fair sample of the flock is a question of design, filtering and statistics, not of hardware alone.
This post is a framework for getting a trustworthy number out of a platform scale and doing something useful with it. It has four layers, and each one fails in its own way: measure the bird, select which readings count, estimate the flock's mean, spread and uniformity with honest error bars, and decide what the farm does when the curve bends. The statistics and the filtering code have been run and the outputs shown, and the target growth curve used for the examples is illustrative, so every farm should substitute the breeder's published targets for its own genetics.
A platform scale gives you a lot of weights from a few kinds of birds. Accuracy comes from the filter and from regular manual cross-checks, not from the number of readings.
A note on scope. This is about floor-reared broilers in housed systems. Breeder flocks, layers and cage systems use different scales and targets. Where a figure comes from breeder guidance, it is labelled as breeder guidance.
Why Weigh Broilers at All
Bodyweight is the plainest indicator a broiler farm has, and several decisions hang on it. The processor expects the flock on a planned day at a target weight. A flock that is behind its curve for two days has a problem (water, feed, temperature, ventilation or health) that the farmer would like to find before the mortality figures show it. A flock whose daily gain is on target will reach the planned weight on the planned day. A flock that is uneven will deliver a wide spread of weights at the plant, which costs money in grading and rejects.
Breeders publish weighing guidance for these reasons. Aviagen's broiler guidance, as summarised in industry press, says birds should be weighed at least once a week with sample sizes large enough to be representative, and that more frequent weighing and larger samples near depletion give more precise predictions of live weight and uniformity. Between 0 and 21 days birds are weighed in bulk, which gives the average only. From around 21 to 28 days they are weighed individually so that the spread can be calculated, with a minimum of 100 birds or 1 percent of the population, whichever is greater, caught in at least three locations and weighed at the same time of day.
A weekly number is enough to know whether a flock is roughly on track. It is not enough to notice a two-day stall, to see whether the afternoon heat is slowing growth, or to predict the finishing day with any precision. That is the gap automatic weighing fills.
Manual sample weighing | Automatic platform weighing | |
Frequency | Weekly, sometimes twice weekly near depletion | Daily, continuous |
Sample | 100 birds or 1 percent, chosen by the crew | Hundreds to thousands of birds, chosen by the birds |
Stress on the flock | Catching and handling | Low, birds step on voluntarily |
Labour | Several people for an hour or more | Almost none after set-up |
Bias risk | Crew bias (catching the easy or the heavier birds) | Selection bias (which birds visit) |
What it tells you | Mean and spread, weekly | Mean, spread and gain, daily |
Weak point | Infrequent, labour-hungry | Needs cleaning, filtering and cross-checks |
Neither replaces the other. The best use of a platform is as a daily trend and a spread estimate, calibrated by the weekly manual weighing that the breeders recommend anyway.
How a Platform Scale Works
A broiler platform scale is a metal or plastic platform on the litter, connected by cable to a control box in the house. It weighs one bird at a time, and it re-zeroes itself when nothing is on it, which is the feature that lets it live with droppings, litter and dust building up on the surface. When a bird steps on, the reading rises, and the system records the weight when the bird is stable, or in some designs when it leaves. Several birds can be on a large platform at once, which is a design problem the electronics must detect and reject.
Research systems show what the sensing looks like. A 2023 study in Frontiers of Agricultural Science and Engineering describes an automatic weighing platform for floor-reared broilers with two strain-gauge sensors under each platform, a real-time communication terminal, software and a phone interface. The system sampled the platform at intervals of 6 seconds and filtered outliers and repeated readings before estimating the flock's weight. It compared the estimates against the established live-bird sales weighing at the end of the crop and found strong agreement in both average weight and variance, which the authors take as a sign that the flock's uniformity was captured as well as its mean.
The electronics behind that are a load-cell problem, and most of the lessons from our earlier post on load-cell drift apply. A quick budget shows why the numbers are comfortable and why a few pitfalls remain. A 5-kilogram load cell rated at 2 millivolts per volt, excited at 5 volts, has a full-scale output of 10 millivolts, which is 2 microvolts per gram. Resolving 5 grams needs only about 1,000 counts across the range, which any modern converter handles easily. A stray 4 microvolts of thermoelectric or amplifier offset equals 2 grams, so offsets at the level that wrecked the milk-collection scale in that post matter far less here. What matters more is mechanical.
The mechanical problems that spoil a platform
Litter and droppings. A film of droppings on a platform adds weight that changes by the hour. Self-zeroing handles slow build-up, as long as the zero-tracking is smart enough not to follow a bird standing still on the platform.
Height and size. A platform sized for week-five birds is a cliff for day-ten chicks, and a platform sized for chicks is crowded by large birds. Adjustable height, a ramp, and a size suited to the stage are standard answers, and each adds something to wipe.
Perching and roosting. Birds will stand on a platform and rest. A shape that discourages resting, or an event filter that rejects long stationary stays, keeps one lazy bird from supplying a hundred readings.
Placement. The breeders' advice is plain: place automatic weighing systems where birds congregate and where individual birds will remain long enough for weights to be recorded. A platform in a corridor nobody uses records nothing, and one under the feeder records the birds that are eating, which is a biased group.
Dust, ammonia, washdown. The platform and control box face the same environment described in our poultry-shed vision post, so the same fixes apply: sealed enclosures, coated electronics, glands, and a design that survives a washdown between crops.
Power and cables. Cables on the floor get chewed, wet and cut. Run them out of reach, protect the entry points, and let the control box buffer data through power cuts.
Treat the platform as an instrument that lives in the dirtiest place in the shed. If cleaning it takes more than a minute, it will not be cleaned.
From Raw Readings to Weights That Count
A platform produces a stream of numbers, most of which are not a single bird standing still. Someone has to decide which readings are birds. The decisions are simple to state and easy to get wrong:
Stability. A bird walking across the platform produces a wobbling signal. Accept a reading only when the weight has been steady for a few seconds.
A plausibility window. Accept only weights within a band around the expected weight for the day. Breeder guidance for automatic breeder scales suggests a window of about 30 percent above and below the average weight. Anything lighter is a chick or a lump of litter, anything heavier is two birds.
A single event per visit. Record the weight once per visit, not once per second, so that a bird that rests on the platform for ten minutes counts once.
Self-tare discipline. Update the empty-platform zero only when the platform has been empty for a while, never while a bird is on it.
Rejection counts. Log how many readings were rejected and why. A sudden jump in rejections is a diagnostic: a loose platform, a wet cable, a changed bird behaviour.
The filter below implements the first three rules and runs on simulated visits so its behaviour can be checked:
# accept_events.py -- keep only readings that look like one bird standing still
import numpy as np
def accept_events(events, expected_kg, window=0.30, min_stable_s=3, max_cv=0.03):
"""events: list of (duration_s, [weights during the stay]) one per bird step-on."""
lo, hi = expected_kg * (1 - window), expected_kg * (1 + window)
accepted = []
for dur, ws in events:
if dur < min_stable_s or len(ws) < 3:
continue # too short to trust
m, s = float(np.mean(ws)), float(np.std(ws))
if s / m > max_cv:
continue # moving or restless bird
if not (lo <= m <= hi):
continue # outside the expected window: chick, two birds, litter
accepted.append(m)
return accepted
On a simulated flock of 20,000 birds with a true mean of 1.50 kilograms and a coefficient of variation of 12 percent, with 3,000 platform visits of which about one in ten were restless stays, the filter accepted about 2,570 of 3,000 visits, and the accepted weights reproduced the flock's mean to within 0.1 percent when every bird was equally likely to visit. The accepted spread came out at about 11.4 percent against the true 12.0, which is the filter trimming the tails: the plausibility window cuts off the lightest and heaviest birds, so the platform slightly understates the spread. That is a design fact to remember when reading its uniformity numbers.
Reading type | How it shows up | What the filter does | What to check if it grows |
Walking bird | Weight wobbling over seconds | Rejects on instability | Platform too large for the stage, or a loose mount |
Two birds | Weight near double the expected | Rejects on the plausibility window | Platform too big, birds crowding |
Chick or litter lump | Weight far below expected | Rejects on the window | Litter build-up, platform height |
Resting bird | Long stay with the same weight | Counts as one visit | Platform shape inviting roosting |
Empty platform drift | Zero creeping up through the day | Self-tare updates when empty | Wet cable, dirty platform, temperature gradient |
The Statistics: How Many Birds Do You Need?
For a manual sample, the arithmetic is the classical sample-size formula. To estimate the flock's mean weight within a chosen error at 95 percent confidence, the number of birds needed is the square of the product of 1.96 and the coefficient of variation, divided by the allowed error, with both expressed in percent. The code is five lines, and so is the relation between the coefficient of variation and the uniformity figure that breeders quote, which is the percentage of birds within 10 percent of the average weight:
# flock_stats.py -- sample size and uniformity from the coefficient of variation
import math
from statistics import NormalDist
N = NormalDist()
def sample_size(cv_pct, err_pct, conf=0.95):
z = N.inv_cdf(0.5 + conf / 2)
return math.ceil((z * cv_pct / err_pct) ** 2)
def uniformity_from_cv(cv_pct, band_pct=10.0):
z = band_pct / cv_pct
return 2 * N.cdf(z) - 1 # share of birds within +-band of the mean, if weights are near-normal
Running it gives the figures below.
Coefficient of variation | Sample for the mean within +-2 % | Sample for +-1 % | Uniformity (share within +-10 %) |
8 % | 62 birds | 246 birds | 78.9 % |
10 % | 97 birds | 385 birds | 68.3 % |
12 % | 139 birds | 554 birds | 59.5 % |
15 % | 217 birds | 865 birds | 49.5 % |
These numbers explain the breeders' advice. At a coefficient of variation of 10 percent, a sample of about 100 birds gives the mean to within roughly 2 percent, which is what the 100-bird minimum buys. A trade article on broiler weighing puts it in plain words: weigh 100 birds at random and the estimate lands within 1 percent of the true house average about two-thirds of the time, which is what a standard error of 1 percent means. As the flock grows more variable, the same sample says less, and the formula shows why guidance asks for more birds, or for samples from more places, as the crop ages.
The uniformity column carries a warning. The relation assumes weights are close to normally distributed. Real flocks have tails, and a practical example in breeder literature shows it: a sample of 254 birds with a coefficient of variation of 10.8 percent had a measured uniformity of 61 percent, against the 64.6 percent the formula predicts. Use the formula to sense-check, and use the flock's own histogram when it matters.
An automatic scale solves the sample-size problem by volume. A few hundred accepted visits a day put the standard error of the mean far below a percent. That is exactly why accuracy stops being a question of sample size and becomes a question of bias.
The Bias Problem: Whose Weights Are You Measuring?
A manual sample can be biased by the crew, who catch the birds that are easiest to reach and, as one extension publication warns, may let the smaller ones escape. A platform is biased by the birds themselves. If lighter birds are bolder, hungrier, or less able to compete at the feeder and so wander more, they will visit more often. If heavier birds are lazier and visit less, the platform sees them less. Either way, the average of the visits is not the average of the flock.
Whether and how strongly this happens depends on the house, the age and the placement, and the sources reviewed for this post do not quantify it, so the following is a simulation to show the size of the effect, not a measurement. In the same simulated flock, with visit probability falling as a bird's weight rises, the platform's mean came out as follows:
Selection strength in the simulation | Accepted visits | Platform mean | True mean | Error |
None (every bird equally likely to visit) | 2,572 | 1.502 kg | 1.501 kg | +0.1 % |
Moderate (lighter birds visit more) | 2,605 | 1.474 kg | 1.501 kg | -1.8 % |
Strong | 2,573 | 1.442 kg | 1.501 kg | -3.9 % |
A bias of 2 to 4 percent is the size of a day or two of growth near the end of the crop. It would make a flock look behind its curve when it is not, and nobody would notice from the dashboard because the readings look consistent and the sample is large. That is why the breeders' guidance on automatic scales contains a quiet instruction: cross-check automatic weights by manual weighing at least once a week.
A large sample from a biased visitor pool is a precise wrong answer. The weekly manual weighing is the control that tells you how wrong, and the ratio between the two is worth logging every week.
A practical way to use the cross-check is to calculate the ratio of manual to automatic mean at each weekly weighing and track it. A stable ratio close to one means the platform is a fair trend sensor. A stable ratio away from one can be applied as a correction factor, written down and applied openly. A drifting ratio is a sign that the platform's visitors are changing, that the platform needs cleaning or moving, or that the filter's window is cutting the wrong birds. In every case, do not apply a correction silently: a hidden fudge factor is how a farm ends up distrusting its own data.
From Weights to Decisions
A daily mean is only useful if it is compared with something. The comparison is the breeder's target weight for each day, the deviation as a percentage, and the daily live-weight gain against the target gain. The alert logic can be small. The illustrative target curve below passes through plausible weights at weeks one to five, and the rule raises a flag when the flock is more than 3 percent under target for two days running:
# growth_alerts.py -- compare daily mean weights with a target curve (ILLUSTRATIVE curve)
import numpy as np
DAYS = [0, 7, 14, 21, 28, 35]
TARGET = [0.042, 0.19, 0.46, 0.90, 1.50, 2.20] # kg, illustrative only: use the breeder's table
def target(day): return float(np.interp(day, DAYS, TARGET))
def deviation_alerts(daily_mean_kg, start_day, tol=0.03, run=2):
alerts, bad = [], 0
for i, w in enumerate(daily_mean_kg):
d = start_day + i
dev = (w - target(d)) / target(d)
bad = bad + 1 if dev < -tol else 0
if bad >= run:
alerts.append((d, round(dev * 100, 1)))
return alerts
# A stalling flock from day 21: 0.93, 0.98, 1.03, 1.09, 1.14, 1.20, 1.25, 1.30 kg
# -> alerts on days 24 to 28, deviation growing from -5.8 % to -13.3 %.
On that stalling flock the rule fires on day 24 at 5.8 percent under target and the deviation reaches 13.3 percent by day 28. The last day's gain is 50 grams against a target gain of about 100 grams a day on the illustrative curve. At that rate the flock would take far longer than the plan to reach the processing weight, and the finishing day moves with it. A projection is a useful number to show the farmer, with a warning that gain rates change, so it is a prompt to act and not a forecast to bank.
What the farmer does with an alert matters more than the alert. The scale does not diagnose, it points. A short checklist that goes with each alert turns it into action:
Signal | Things to check first | Who and how fast |
Mean below target for two days | Water supply and drinker line pressure, feeder function and feed quality, house temperature and ventilation | Shed supervisor, same day |
Gain stalls, mean still near target | Heat stress in the afternoon, feed access, health signs | Supervisor and vet, same day |
Spread (CV) rising faster than usual | Feeder and drinker space, stocking density, a pocket of poor environment | Supervisor, within a day |
Platform mean and manual mean diverge | Platform cleanliness, position, filter window, visiting birds | Technician, at the next weekly weighing |
Event count drops | Platform fouled, cable fault, power cut, birds avoiding it | Technician, same day |
The scale points and the farmer decides. Write the first three things to check next to every alert, so that the person who receives it at 6 a.m. knows what to do.
What to Send From the Shed
A platform control box can generate thousands of events a day. The cloud does not need them. A compact daily summary per platform carries everything the decisions above use, and a small histogram carries the spread:
// 28-byte daily summary per platform (little endian)
typedef struct __attribute__((packed)) {
uint16_t day_of_crop; // days since placement
uint16_t accepted; // accepted visits that day
uint16_t rejected; // rejected readings that day
uint16_t mean_g; // mean accepted weight, grams
uint16_t sd_g; // standard deviation, grams
uint16_t p10_g, p90_g; // 10th and 90th percentile, grams
uint16_t empty_zero_g; // empty-platform weight at day end (drift watch)
uint8_t hist[8]; // 8-bin histogram of accepted weights, relative to the day's mean
uint8_t flags; // bit0 cable fault, bit1 power cut, bit2 platform dirty, bit3 manual cross-check due
uint8_t batt_dv; // backup battery, 0.1 V steps
} platform_day_t; // 28 bytes
Send the empty-platform weight at the end of each day. A drift in that number is the earliest warning of a wet cable, litter build-up or a failing cell, and it is far cheaper to watch than to discover through a wrong average. Buffer summaries on the control box and send them when the link returns, because the grid and the signal will both fail in the crop, and a missing day in a growth record is itself information.
A Broiler Shed Through One Crop
A representative composite, genericised and not a named client, shows how the layers fit. A mid-sized broiler farm installed three platform scales in one house, placed where birds congregate between the drinker lines, with a control box in a dry cabinet outside the shed and a small backup battery.
In the first week the platforms were set low, and young chicks used them freely. By day twelve the birds had outgrown the height and the accepted-visit count fell by half. The crew raised the platforms, and the count recovered. Around day sixteen, a wet spell and a pile of damp litter around one platform made its empty weight creep up by about 40 grams. The empty-platform value in the daily summary showed it three days before anyone would have noticed in the mean, and a wipe and a litter rake fixed it.
At the first weekly manual cross-check, on day twenty-one, the platform mean was about 2.5 percent below the crew's hand-weighed mean. The farm logged the ratio and kept it, and the next two weeks gave nearly the same figure, which suggested a steady bias in who visited the platforms, not a fault. They applied the ratio openly as a correction and labelled the dashboard "corrected by manual ratio".
On day twenty-six the corrected curve fell more than 6 percent under target for the second day. The supervisor followed the checklist, found pressure low on the far end of one drinker line, and fixed it. The curve recovered over the next three days. Near the end of the crop, the projection suggested the flock would reach the processor's target weight a day later than planned, and the farm talked to the processor and shifted the lift by a day. The figures in this account illustrate the pattern and are not a published result. What generalises is the sequence: a diagnostic number (empty weight) caught a hardware drift early, the manual cross-check caught a bias, and the curve plus the checklist turned a deviation into a repair.
When Not to Install a Platform Scale
A small flock with an owner who walks the shed daily. A weekly manual weighing may be enough, and the platform adds cleaning and maintenance.
A farm that will not do the weekly cross-check. Without it nobody knows the bias, and the platform becomes a confident wrong number.
A shed where the platform cannot be kept clean. A fouled platform produces a drifting zero and rejected readings. If the crew will not wipe it, do not buy it.
No place where birds naturally linger. A platform nobody visits produces no data.
A product that claims flock uniformity from a handful of readings. Ask for the sample size behind each reported number.
No action attached. If a below-target day changes nothing the farm does, weight data is decoration.
The One-Page Brief for a Supplier
Item | Requirement | Reason |
Sensing | Load cell or cells rated to the heaviest bird with margin, ratiometric measurement, temperature-compensated | Stable zero and span in a hot shed |
Resolution | 5 grams or better on the accepted reading | Daily gain is tens of grams |
Self-zero | Updates only when the platform is empty for a set time; empty weight reported daily | Handles litter without chasing a standing bird |
Event logic | Stability test, plausibility window tied to the day's expected weight, one record per visit | Rejects walking birds, pairs and litter |
Platform design | Adjustable height or ramp, non-roosting shape, easy to wipe, sealed edges | Chicks to finishers, hygiene |
Enclosures | Sealed, washdown-tolerant, coated electronics, corrosion-resistant connectors | Dust, ammonia, moisture |
Power | Battery or UPS ride-through, fast unattended restart, battery-backed clock | Outages and brown-outs |
Outputs | Daily mean, spread, percentiles, histogram, accepted and rejected counts, empty weight | Decisions and diagnostics |
Comparison | Breeder target curve loaded per house, deviation and gain alerts | The curve is what decides |
Cross-check | Weekly manual ratio log in the software, with the correction shown openly | Control for selection bias |
Placement guidance | Positions where birds linger, documented per house | Representative visits |
Data | Local buffering, summaries sent, raw events kept on the device for a period | Bandwidth and audit |
Starting on Monday
Write down the decisions. List what the farm will do on a below-target day, a stalled gain, a rising spread, and a platform fault.
Pick the placements. Walk the house at different times and mark where birds linger. Start with two or three platforms.
Choose the filter window and stability time, and write them down with the reasons.
Load the breeder's target curve for the flock's genetics and set the deviation rule.
Set up the weekly manual weighing: at least 100 birds or 1 percent, from at least three places, at the same time of day, with scales calibrated before each session.
Log the manual-to-automatic ratio each week and display any correction openly.
Watch the empty-platform weight and the rejected-reading count as health checks for the instrument.
Review after one crop: which alerts led to an action, how stable the ratio was, and what the farm would change about placement and cleaning.
What the Curve Is For
A platform scale does not make a flock grow faster. It makes the farm notice, a day or two earlier than a weekly weighing would, that something has changed, and it narrows the search for what. Get the platform to weigh a fair sample, keep the instrument clean and honest, check it against the crew's hands every week, and write down what to do when the curve bends. The birds will do the rest.
EurthTech is an engineering-first product design and embedded systems company with a development center in Hyderabad. To discuss a project, write to connect@eurthtech.com or see https://www.eurthtech.com/case-studies.




Comments