Keep one dated daily log per tank covering feed given, water readings and deaths, capture it by phone (voice note or photo) at the tank, and let AI tidy it into a spreadsheet that flags unusual days. Then ask your regulator which records they inspect and for how long. The original entry stays the record; the AI only formats it.
The common failure is not a lack of records but records nobody can trust: totals that don't add up, missing days and a tidy summary that no longer matches what was written at the tank. The setup below keeps the raw entry, checks the sums and leaves every decision about fish health and reporting with your vet and your regulator.
What an inspector or vet wants to find in the log
Record rules differ by regulator, licence and species, so there is no honest universal list. What does recur across inspection checklists and vet visits is a short set of questions the log must answer without anyone being phoned for an explanation. Ask your regulator for their current guidance in writing, then check that your log answers each of these.
- Stock: how many fish are in each tank or pond today, where they came from, and when fish moved in or out.
- Feed: what was fed, how much, when, and which batch of feed it came from.
- Water: temperature, dissolved oxygen, pH and (in recirculating systems) ammonia and nitrite, with the time and the person who took each reading.
- Deaths: number per tank per day, what staff noticed, and what happened to the bodies.
- Treatments and medicines: which fish were treated, the medicine with its batch number and expiry, the amount used, the vet's instruction, the date the course finished and the withdrawal period before harvest. Fish-medicine record guidance for farmers lists the same items, and the withdrawal time usually comes from the prescription or the vet.
- Events: power cuts, aerator failures, escapes, disease signs and who was told.
Retention periods, signatures and whether digital copies are accepted all depend on your licence. Treat anything you cannot verify as a question for the regulator, not something to assume. That's the main reason this tutorial keeps the original entry alongside the AI's version.
One row per tank per day: the log template
A daily log works best as a flat table with one row per tank per day. Flat tables are what spreadsheets and AI handle well. A page of free text is pleasant to write and miserable to total at month end.
| Column | Example entry | Why it is there |
|---|---|---|
| Date and time | 2026-11-02 07:10 | Readings only mean something against time of day |
| Tank | T3 | One code per tank, never a nickname |
| Fish in tank (opening) | 4,200 | Denominator for mortality and feed rate |
| Feed type and batch | Grower 4 mm, batch 2291 | Links a feed problem back to a delivery |
| Feed given (kg) | 24.0 | Sum of all meals that day |
| Temperature (C) | 14.6 | Drives appetite and oxygen |
| Dissolved oxygen (mg/L) | 7.1 | The reading most worth a daily flag |
| pH | 7.2 | Trend matters more than one value |
| Ammonia / nitrite (mg/L) | 0.2 / 0.05 | Only where the system needs it |
| Deaths (count) | 1 | Counted, not estimated |
| Behaviour note | Slow to feed at far end | Free text kept short, so it can be searched |
| Recorded by | Initials | Accountability for the entry |
| Source | Voice / photo / typed | Tells a reviewer where to look if a value seems off |
Put the units in the column heading, as above, so nobody has to guess whether a feed figure is kilograms or grams. Keep the species-specific acceptable ranges on a separate "limits" sheet that your vet has approved, rather than hard-coding them into formulas you've forgotten about by next year.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowCapturing the entry at the tank with a phone
Most records fail at the point of capture: wet gloves, no pen, a clipboard back in the office. Two phone-based methods remove that problem, and a third is the fallback.
Voice note, read in a fixed order
Train staff to speak entries in the same order as the columns, with the tank first. A voice note might say: "Tank three, seven ten, oxygen seven point one, temperature fourteen point six, pH seven point two, one dead, feed twenty-four kilos grower four millimetre batch twenty-two ninety-one, slow to feed at the far end." Convert it to text with your phone's dictation, or upload the recording to your AI app. ChatGPT's help centre says audio uploads, which it can transcribe, come with paid plans but not the Free plan, and it warns that transcripts may contain errors, so the figures still get checked. Then give the text to the assistant with the prompt further down.
Photo of the meter or the sheet
Photograph the oxygen meter display next to a card showing the tank code, or photograph the day's paper sheet. Chat assistants that accept images can read digits from them, but seven-segment displays and handwriting are exactly where they slip, a 1 for a 7, a dropped decimal point. So the prompt asks for the values back in a table and a note on how sure the model is, and a person confirms against the picture.
Typed entry as the fallback
A shared form (a simple spreadsheet form or a tablet checklist) with the dropdown for tank codes is the dullest option and the most reliable. Use it where signal is poor or where a meter is persistently misread.
The prompt that turns a voice note into a row
Whatever tool you use, the instruction is the same: extract, do not infer. A model that "helpfully" fills a missing oxygen reading with a plausible number has just falsified a record.
You are formatting entries for a fish farm daily log. Extract only what is stated.
Return one row per tank with these columns, in this order:
date_time, tank, fish_opening, feed_batch, feed_kg, temp_c, oxygen_mg_l, ph, ammonia, nitrite, deaths, note, recorded_by.
Rules:
- If a value was not said, write MISSING. Never estimate or fill in.
- If a number sounds odd (oxygen above 20, pH outside 5-9, deaths above 50), keep it and add CHECK in the note.
- Keep my wording in "note", shortened, never reworded into a diagnosis.
- Do not give advice or say what a reading means.
Entry: [paste transcript]
Illustrative output for the T3 voice note above: 2026-11-02 07:10 | T3 | MISSING | batch 2291 | 24.0 | 14.6 | 7.1 | 7.2 | MISSING | MISSING | 1 | slow to feed at far end | [initials]. The assistant did well to write MISSING for the opening count and the two nitrogen readings. What you would fix: the opening count is pulled from yesterday's closing figure by the spreadsheet, not typed each day, so that column should be removed from the voice routine altogether.
Tank T3 over one week: feed, growth and deaths
Take an illustrative small recirculating farm with eight tanks. Tank T3 starts the week with 4,200 fish at an average of 310 g, a standing weight (biomass) of about 1,302 kg. A sample weighing at the end of the week gives an average of 340 g. Deaths across the week were 1, 0, 2, 1, 4, 3 and 3, a total of 14. Feed totals 168 kg, or 24 kg a day.
- Closing count: 4,200 minus 14 deaths = 4,186 fish.
- Closing biomass: 4,186 × 0.340 kg = about 1,423 kg.
- Growth: 1,423 minus 1,302 = about 121 kg, plus roughly 4.6 kg for the 14 fish that died at around 330 g each, so about 126 kg gained.
- Feed conversion ratio (FCR): 168 kg feed divided by 126 kg gained = about 1.33. Counting the dead fish's weight like this gives the biological FCR; leave them out and the economic FCR is 168 divided by 121, about 1.39. Pick one version and stick to it, because switching between them week to week makes the trend meaningless. Lower is better; compare it with your own previous weeks and your feed supplier's guidance for the species, not with a number from a forum.
- Feeding rate: average biomass is about 1,363 kg, so 24 kg a day is roughly 1.8% of body weight a day.
- Weekly mortality: 14 of 4,200 = 0.33%.
The week looks fine on totals alone. The daily row tells a different story: Friday's 4, then 3 and 3, after three days averaging barely one. This is the type of pattern a week-end total hides and a flag catches on Friday afternoon. Say the dissolved oxygen readings for T3 over those same mornings were 7.4, 7.3, 7.1, 6.8, 6.1, 5.8, 5.6. No single reading looks alarming, but the slide matches the deaths. An early flag would have sent someone to check the aerator and diffuser on Friday, not Monday. Whether this means low oxygen, a gill problem or something else is a question for the person walking the tank and your vet.
Flags in the spreadsheet
Build the flags in plain spreadsheet formulas rather than asking the AI to "spot anything odd" each day. Formulas give the same answer every time and you can show the regulator exactly how a flag works. Use AI to write the formulas, not to be the flag.
Deaths flag (column N), deaths in K, first day in row 2; enter in N3 and copy down:
=IF(AND(K3>=3, K3>2*AVERAGE(K$2:K2)), "AMBER", "")
Oxygen falling three days running (column O), oxygen in G; enter in O4 and copy down:
=IF(AND(G4<G3, G3<G2, G2-G4>=0.8), "AMBER", "")
Oxygen below the agreed floor from the limits sheet (column P):
=IF(G2<Limits!B2, "RED", "")
Run against the T3 week, both amber flags fire on Friday morning: the deaths flag because 4 is more than twice the average of 1 over the previous four days, and the oxygen flag because 6.1 follows 6.8 and 7.1, a fall of 1.0 mg/L. Those formulas are illustrative: the three-deaths trigger, the 0.8 mg/L slide and the floor come from your vet and your species, not from this page. Note that in a real sheet you would filter each tank separately, which is easiest if every tank gets its own tab or you use a lookup on the tank code. If you want help building that structure, ask the assistant to write the formulas for your actual column letters and paste in two example rows so it can check them.
A red flag should do two things: turn the cell red, and put a line in a "needs action" list with who has been told. Without the second part a flag is just a colour that people learn to ignore. If you also use a general monitoring approach for records in hydroponics or other water systems, reviewing nutrient and pH logs each week follows the same trend-over-single-reading logic.
A short check that each day's entry was right
Because the AI only reformats, the checks are about the capture. Run these before the day's rows count as final:
- Every tank has a row for the day; a missing row is itself a flag.
- No cell says MISSING or CHECK. If one does, the person who took the reading fills it or marks it "not taken" with a reason.
- Opening count today equals closing count yesterday. A mismatch means a transfer or a death went unrecorded.
- Feed totals match the feed store: kilograms out of the bag store should be close to kilograms entered across all tanks, within normal spillage.
- One tank's photo or voice file is opened and compared with its row, picked at random, and the check is initialled.
The fourth check is the one that finds problems most often, because feed disappears into the wrong tank or gets entered twice. Weighing the feed store at the start of each week takes five minutes and gives you an independent figure that no AI can influence.
Keeping the original, and a month-end summary that does not drift
Store three things: the original capture (voice file, photo or form entry), the structured row, and a locked monthly export. The locked export is a copy saved as a PDF or a read-only file, dated and named by month, so changing a cell later does not silently change history. If a correction is needed, add a new row or a dated correction note that says what changed and why; never overwrite.
For the monthly summary, give the assistant the table and ask it to summarise only from the numbers present. The sample prompt below also asks it to quote the row it used, so every figure can be checked.
Here is a month of daily fish farm log rows. Using only these rows, give me per tank:
total feed (kg), total deaths, deaths as % of opening stock, number of AMBER and RED flags.
Then list any tank where deaths in a single week were more than twice the average week.
After each figure, show the date range or row numbers you used. If a figure cannot be calculated from the rows, say so rather than estimating.
Do not suggest causes or treatments.
Check the output against a pivot table of the same data at least in the first few months. The assistant is usually right on sums over a few hundred rows, but it can slip on longer tables; a pivot is exact. If the two differ, trust the pivot and tighten the prompt. A wider guide to farm records and paperwork covers the general habits behind this, such as one place for every record and a named owner for each.
Where the regulator and the vet decide, not the AI
Some jobs stay with people, whatever tool you use.
- Whether something is reportable. A cluster of deaths, a suspected notifiable disease or an escape may carry a legal duty to tell someone. Staff learn the trigger list from the regulator and the vet, and the log notes who was told and when. AI can draft the timeline after the event, but it should not be asked "is this reportable?"
- Medicines and doses. Anything given to fish is on the vet's instruction. The log records what was prescribed and given; the assistant is not a prescriber, and a chat answer about dosing is not a substitute for the vet.
- Acceptable ranges. Limits for oxygen, ammonia and temperature differ by species and life stage. Ask your vet to sign off the limits sheet once a year.
- Retention and format. How long to keep records, and whether digital copies satisfy the licence, is the regulator's rule.
Power cuts, feed changes, transfers and cover staff
A power cut overnight
The phone alarm goes at 02:15 and the generator starts at 02:40. In the morning, the entry for each tank notes "power cut 02:15 to 02:40, generator ran, aerators back on at 02:42" in the behaviour note. A separate event line records who was called. The spreadsheet gets a column "event" so the date can be filtered later when the oxygen dip needs explaining.
A new feed batch
Batch 2291 replaces batch 2288 on Wednesday. Because batch is a column, a month later you can sort by batch and see whether appetite or growth changed at the switch. Without that column, you would be guessing from delivery notes.
Transferring fish between tanks
Move 600 fish from T3 to T6. Two rows are needed: minus 600 on T3, plus 600 on T6, with the same date and a transfer reference. The opening-count check catches the case where only one side is entered.
A temporary worker takes the readings
Cover staff are where records go wrong. Give them the fixed voice-note order on a laminated card at the tank and the prompt in a saved shortcut. Review their first three days' entries against the photos, then relax the checking.
The evening shift's misread oxygen meter
One farm-style scenario, offered as an illustration. A team adopts voice notes and finds in the second month that evening oxygen readings sit several tenths above the morning trend. The cause is not the AI: the evening reader says "seven point four" while looking at a display that reads 7.04, because the digits are small and the light is poor. The fix is a photo of the meter every evening, plus a rule that photo wins when it disagrees with the voice note. The structured log had hidden the problem for weeks because it looked tidy. Tidy and correct are different things, and the random photo check exists to tell them apart.
Other habits worth building: never let the assistant "clean" a record by rounding or smoothing; keep the AI instruction in one saved prompt so every day's rows are formatted the same way; and keep a short error log of AI misreads, so you know whether the same meter or the same person causes them.
Privacy and data settings for farm records
Production data such as feed weights, water readings and counts is usually low sensitivity, but it can still reveal your yields and your problems to competitors. ChatGPT Business, Enterprise and Edu workspaces and Claude's commercial plans are not used for model training by default. On personal ChatGPT Free, Plus and Pro accounts training is on until you turn off "Improve the model for everyone" under Settings, Data controls, and Claude's consumer plans use a "Model Improvement" setting in Privacy Settings (as of November 2026). Look at the actual setting before you upload a month of data, and keep licence numbers, supplier contract terms and staff names out of what you paste. If you use a project in either tool to hold your prompt and limits sheet, the same data rules apply to everything in it.
A first week to get this running
- Day 1: Ask the regulator in writing what records they inspect, in what form and for how long. Ask the vet for the limits sheet.
- Day 2: Build the spreadsheet with the columns above and a tab for limits. Paste in two weeks of past paper records to test the formulas.
- Day 3: Save the prompt. Test it on five old voice notes or sheet photos and compare with what the paper said.
- Days 4 to 7: Run paper and phone side by side. At the end of the week compare totals. When they agree for a full week, retire the paper duplicate, if the regulator's guidance allows.
The result should be about five minutes at each tank block, rather than a clipboard run and an evening of typing up. If you would rather map the whole flow with someone, from capture to flags to the month-end pack, that is what my AI implementation consultation covers.
Questions fish farmers ask about AI and their records
Can I keep only digital records for the regulator?
Often yes, but the rule is set by your regulator and your licence conditions, so ask them in writing. Whatever you choose, the record must be legible, dated, tied to a named person and kept for the full retention period. Keep the original entry (photo, sheet or voice file), not only the AI's tidied version.
Should I paste real tank data into ChatGPT or Claude?
Production figures such as feed weights and counts are low risk, but check your plan's data settings first. Business plans do not train on your content by default; on personal plans a privacy setting decides whether your chats are used. Leave out customer names, licence numbers and anything a competitor or the regulator should not see in the wrong place.
How do I record a disease event or an unusual death?
Record it factually in the log: date, tank, number, what staff saw and who was told. Then call your vet and follow your notification duties. AI can help you write a clear timeline afterwards, but it must never decide whether something is reportable.
What if the AI misreads a photo of a sensor display?
Treat every photo reading as a draft until a person has compared it with the image. Add a check column, and spot-check one tank each day. If the same meter keeps getting misread, change the photo angle or switch that meter to typed entry.
Can the spreadsheet tell me a fish is sick?
No. It flags numbers that moved faster than usual, such as deaths or oxygen. A flag is a prompt to walk to the tank and look at the fish, then speak to your vet if what you see worries you.
Further reads
- Farm Safety Plan: Draft Risk Assessments and Toolbox Talks With AI — Pair your daily log with a written safety plan for the site.
- Farm Equipment Maintenance Log: AI Builds Service Schedules From Manuals — Aerators, pumps and filters need their own service log.
- AI for Farm Business Management: A Monthly Margin Review by Enterprise — Turn feed cost and growth into a monthly margin review.
- AI Farm Business Plan: Draft One for a Lender From Real Records — Use clean records as evidence in a lender pack.
- AI Chatbot for Farmers: Answers From Your Own Farm Notes and SOPs — Let staff ask questions of your own procedures.
- Livestock Record Keeping App: Herdwatch vs AgriWebb AI Voice Notes — See how farm apps handle voice-note records.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: OpenAI's help centre (Data controls in ChatGPT; Uploading files and audio to ChatGPT), Anthropic's privacy centre model-training articles, a farm-animal medicines alliance's guidance on fish medicine records, and an aquaculture glossary on biological and economic FCR, all checked 5 November 2026. Record rules and retention periods vary by regulator; check yours directly.