Multi-site aquaculture management: one shared record
What breaks when a farm outgrows one site and one manager: comparability, access, and who owns the number.
6 min read
Most aquaculture software is bought by a farm with one site and one person who knows everything that happens on it. That person is the system of record, and the software is a place to write things down.
The threshold that breaks this is not a headcount or a tonnage. It is the first time somebody has to ask a question about a site they were not standing on that week.
What breaks when a farm outgrows one manager
Three things fail, and they fail in a fixed order.
First the numbers stop being comparable. Two sites, or two departments on one site, describe the same reality in different words, and every cross-site figure becomes an argument about definitions before it becomes a decision.
Second, access becomes an all-or-nothing choice. Either everybody can see and change everything, which is how a grow-out supervisor closes a hatchery batch by accident, or people are locked out of the system and go back to a notebook, which is worse because the record now has holes nobody can see.
Third, no single figure has an owner. When four people can each produce a biomass number and none of them is defined as the one, the meeting spends its time reconciling instead of deciding.
Why comparability goes first
Comparability fails first because nothing prevents it. Two sites keeping their own records will name the same feed two ways, define a nursery phase differently, and spell a species inconsistently enough that a lookup misses half the rows.
None of that looks like a problem while each site reads only its own data. It surfaces the first time somebody asks which site converts feed better, and the honest answer is that the question cannot be answered from the data as it stands. Someone spends a week mapping one site’s vocabulary onto the other’s, produces a number, and the number is quietly distrusted because everyone watched it being assembled.
The fix is structural rather than procedural. Species, varieties, cultivation phases and feed products are defined once for the operation and used everywhere, so two sites recording the same thing produce rows that match without anybody reconciling them. That is what makes the feed matrix comparable across units rather than per-site.
Who should be able to see which tanks
The useful unit of access in aquaculture is not the site and not the job title. It is a group of tanks and the people who work them.
A farm with a hatchery and a grow-out side is really two operations sharing a balance sheet. The hatchery runs on a weekly rhythm of splitting and grading. Grow-out runs on a monthly rhythm of feeding and sampling. Each side wants its own units in front of it and the other side’s out of the way, and neither should be able to change the other’s stock.
In AquaOS this is handled with departments: a named group of tanks, and the users assigned to work it. A farm defines its own, so a nursery, a quarantine block or a second site is a setting rather than a feature request. The scoping applies to reads and to writes, which matters more than it sounds, because a system that hides a tank in the list but still accepts a write against it has not actually scoped anything.
One detail is worth naming. A user with no department assigned sees every unit. That is the right default for a farm that does not need scoping, and it is also the classic way a permissions model fails: somebody creates a user, does not notice the field, and unrestricted access happens by omission. So the choice is required at the point a user is created, with “all departments” as something you select rather than something you skip.
How to compare two sites honestly
Once the vocabulary is shared, comparison stops being a data exercise and becomes a real question, which is where the disagreements worth having live.
Run the same per-unit report over the same period for both. Biomass at each end, feed given, days nothing was fed, mortality, estimated feed conversion, and what the water was doing while it happened. Two of those reports side by side is usually enough to see whether a difference is performance or circumstance.
Two cautions. Feed conversion belongs to a unit, not to a farm: averaging it across ponds hides the pond that is dragging and flatters the ones that are not. And a modelled figure and a measured one should never be presented with the same confidence, which is why estimates on a production report say what they were derived from.
A shared feed matrix does not mean both sites must run the same one. It means that when they run different ones, the difference is a decision somebody made rather than an accident of two people typing.
What holds a record together when many people write to it
The more people writing, the more the record needs to be able to explain itself. Not to catch anyone, but because a number nobody can account for is a number that gets overridden.
The mechanism is an audit log that records who changed what, when, and what the value was before. That covers the ordinary case. The case that actually matters is a change that reaches backwards: a re-sampling that revises the weights the last three weeks of feeding were calculated from, for instance. Applied silently, that quietly rewrites history that other people have already acted on. Surfaced with a warning describing the effect before it is applied, it becomes a decision instead.
This is the difference between a shared record and a shared spreadsheet. Both let several people write. Only one of them can tell you afterwards what happened.
A second system stops being cheaper sooner than you expect
There is a point where a second system stops being cheaper than a shared one, and it arrives earlier than most operations expect. It is not when the second site opens. It is the first time a question about the group takes more than an afternoon to answer, because that afternoon repeats every month for as long as the arrangement lasts.
If you are near it, the test is simple enough to run without buying anything. Ask for feed conversion by unit across both sites for the same quarter, and time how long the answer takes. If the honest response is that the two sites record it differently, that is the threshold, and it will not resolve on its own.
See the platform overview for how the shared record is put together, hatchery management software for the two-operation case specifically, and bring your own structure to a demo rather than a generic one.