Mushroom grow log: what to record and how to track lineage
A mushroom grow log records each culture's parent and generation, each block's substrate and spawn, and each flush's date and weight. This guide gives the fields, a lineage code, the BE and contamination formulas, a free template, and how the apps compare.

Derick16 min read

A grow log earns its keep when something goes wrong: it traces a bad batch to its source and tells a weak strain from a bad shelf.
Fill in the log on the day things happen. Writing about on-farm trials, Mississippi State University Extension warns that "it can be easy to forget eight, or even two, months prior" (Mississippi State Extension). A few columns kept current beat a detailed notebook filled in from memory.
This guide uses gourmet species throughout.
What should a grow log record?
A grow log should record seven things: each culture and its parent, each spawn jar or bag, each block, each flush, the conditions, any contamination, and the cost. The table merges the field lists from our other guides into one.
| Group | Record | Why |
|---|---|---|
| Culture and transfer | Code, parent code, strain, vendor and lot, generation, container, broth or agar recipe, agar test date and result, inoculation date | Traces every jar to its source, and shows how many transfers it is from it |
| Grain spawn | Code, parent code, grain, inoculation date, shake date, date fully colonized | Shows how fast each line colonizes, and where a slowdown starts |
| Block | Code, parent spawn, substrate recipe, dry substrate weight, spawn rate, inoculation date, date into fruiting, zone and shelf | Dry weight is the bottom half of the BE formula; the shelf separates a weak strain from a bad spot |
| Flush | Flush number, pin date, harvest date, fresh weight, dry weight if you dry it, notes | Fresh weight across all flushes is the top half of BE |
| Conditions | Low and high RH and temperature for each flush, the fastest hourly temperature change, CO₂ if you measure it, any setting you changed | Lets you check whether conditions drifted before a yield drop |
| Contamination | Date found, stage (incubation or fruiting), what it looked and smelled like, suspected cause, what you did | The pattern across batches points to the cause |
| Cost | Culture, grain, substrate and bags, plus power, water and equipment; add your time for a farm-style number | Turns yield into cost per pound |
The conditions row comes from our fruiting temperature guide, which logs the high, low and fastest hourly change for each flush. The humidifier guide adds RH at pinning and at each harvest. Our Martha tent guide shows how to turn the cost row into cost per pound.
Note what each culture looks like
Phenotype notes are the plain-language part of the record: how fast a transfer grew, its color and texture, anything odd. Penn State's culture-handling guide for button mushrooms advises noting how cultures look on arrival. It also says to check new transfers weekly for "uniformity of growth, sectoring, contamination, or abnormal appearance" (Penn State).
Sectoring is growth that differs in appearance, growth rate or color from the rest of the culture. Penn State advises against transferring from a sector. It also notes that no method was available to judge a culture's final productivity on agar, so the yield records are the real test.
Change one thing at a time
Log every change you make, and make one change at a time. Mississippi State's advice for on-farm trials is to "alter only one factor at a time," because several changes at once can confound the results. Cornell Small Farms and Fungi Ally give the same advice for lab work, watching for an effect "over the course of 3-4 weeks" (Cornell Small Farms and Fungi Ally). To compare strains, split each one across shelves, as our Martha tent guide explains.
How do you track culture lineage?
Track culture lineage by giving every plate, jar, bag and block a code that carries its parent's code, and logging the parent in its own column. It's a record of transfers, not a DNA test.
Give every container a code that carries its parent
Start each line with a short strain abbreviation, a source code and a number. Then add a letter or a number for each transfer, alternating, so the tenth jar from LM-NS-1A is LM-NS-1A10. A lion's mane syringe from a vendor you code NS becomes LM-NS-1.
| Container | Code | Transfers from the source |
|---|---|---|
| Syringe from the vendor | LM-NS-1 | 0 |
| First jar of liquid culture | LM-NS-1A | 1 |
| Second jar from the same syringe | LM-NS-1B | 1 |
| Grain jar from the first jar | LM-NS-1A1 | 2 |
| Grain bag expanded from that jar | LM-NS-1A1A | 3 |
In this scheme, letters and numbers alternate, and each one added after the root marks one transfer from the source. Siblings share a prefix: LM-NS-1A and LM-NS-1B came from the same syringe. Write the parent's code in its own column too, so a smudged label doesn't break the chain.
What do G0, G1, G2 and G3 mean?
A generation number counts transfers to fresh medium, whether agar, broth or grain. Sources start the count in different places, so write down where yours starts:
- La Mycosphère's liquid culture guide numbers generations "G0, G1, G2…" (La Mycosphère).
- Liquid Fungi says all its liquid cultures are G2, each jar made "directly from a living sample on petri plate" (Liquid Fungi).
- Fungi Perfecti sells its grain spawn as first- or second-generation, and describes expanding each "2nd generation spawn bag" ten times (Fungi Perfecti).
Use the vendor's number when it gives one. Otherwise call the culture as it arrives G0, as our liquid culture buyer's guide does, and add one for each transfer you make. Here is the same line counted both ways:
| Container | Vendor gives no count | Vendor says G2 |
|---|---|---|
| Syringe as it arrives | G0 | G2 |
| Liquid culture jar | G1 | G3 |
| Grain jar | G2 | G4 |
| Grain-to-grain bag | G3 | G5 |
So a vendor's G2 and the G2 in your own log can sit at different distances from the original culture. Keep the vendor's stated generation and your own transfer count in separate columns, and compare lines by transfer count.
Keep a mother culture on agar
A mother culture is a clean agar plate or slant you keep in reserve and take fresh working cultures from. La Mycosphère advises working from a "mother" culture, on agar or a slant if possible, and limiting the number of generations. A tired line can then restart close to its source, not from a jar that's already several transfers along.
North Spore says plate cultures keep up to 6 months in the fridge, with a viability check after 4, and slants up to a year. Pink oyster and almond agaricus cultures can't be refrigerated: keep them at room temperature and use them within a month (North Spore — affiliate link: we may earn a commission at no extra cost to you). Liquid Fungi keeps its own mother cultures in petri dishes or slants at 39°F and replaces them every three months. Give the mother culture a code like any other container, so every working culture traces back to it.
When should you retire a line?
Retire a line when your log shows it colonizing slower or yielding less than its own earlier generations. None of the sources cited here gives a tested safe number of transfers. La Mycosphère warns that repeated liquid-to-liquid expansions raise the risk of "genetic drift and a decline in vigor," without naming a limit.
A 2020 study of oyster mushrooms (Pleurotus ostreatus) notes that "successive subcultures usually lead to strain degeneration," with lower yield and a change in fruiting time (Molecules, via PMC). Its own tests found DNA damage building up through 15 generations of subculture. Degenerated mycelium looks normal, the authors add, and the decline doesn't show until fruiting. A jar can look healthy while its line slips, so the log catches what the jar hides. The study covered oysters only, so don't read its findings as a rule for other species.
When a line slips, restart it from the mother culture or an earlier generation, or buy fresh culture. Our liquid culture syringes guide covers expanding and testing new jars.
Lineage isn't a DNA test
A lineage log records handling history, not genetics. Two jars with the same prefix share a source, but the log can't prove that source was the strain on its label. Confirming identity takes lab DNA sequencing. The ITS region was proposed as the standard DNA barcode for fungi because it had the best chance of identifying the broadest range of fungi (PNAS, via PMC).
How do you calculate BE and contamination rate?
Biological efficiency (BE) is total fresh harvest ÷ dry substrate weight × 100, and contamination rate is containers lost to contamination ÷ containers started × 100. Weigh every block's dry substrate, and log every container you start, including the ones that fail.
Biological efficiency
BE (%) = total fresh weight of all flushes ÷ dry substrate weight × 100 (PMC)
BE can pass 100%, because it compares wet mushrooms with dry substrate. Weigh the substrate before you hydrate it, in the same units as the harvest. If you only know the wet weight, multiply it by the dry fraction. For example, a 5 lb block at 60% moisture holds 2 lb of dry substrate, so 1.5 lb of mushrooms across all flushes is 75% BE.

Yield varies widely, which is why it's worth tracking. In a USDA SARE-funded study, five specialty mushroom farms' average yields ran from 0.66 to 1.17 lb per 5-lb block. Cornell's own trial blocks, left to fruit for 8 weeks, gave 1.36 to 1.63 lb. The authors wrote that strain, substrate and method choices "could cut potential yields in half, or double them" (Cornell Small Farms and Fungi Ally). They recommend that farms track yields periodically and use them to guide changes.
Contamination rate
Work out contamination rate per batch and per strain, and keep the two stages apart, as our Martha tent guide does:
- Incubation loss (%) = containers contaminated while colonizing ÷ containers inoculated × 100
- Fruiting loss (%) = blocks contaminated while fruiting ÷ blocks moved into fruiting × 100
Small batches swing hard: one lost jar out of five is 20%. Read the pattern alongside the number. Cornell Small Farms and Fungi Ally write that when substrate is the problem, "contamination will be widespread throughout an entire batch." Problems from air, tools or surfaces show up spotty or sporadic; air problems pop up in one or two places. Contamination from spawn can be seen "jumping off of the grains" into the new substrate.
So tag each loss with its batch and its parent code. Losses that cluster under one parent point upstream, at that culture or its spawn. Our pink oyster grain spawn guide shows what contaminated spawn looks and smells like. To tell a real loss from a look-alike before you count it, see our contamination ID guide.
A free grow log template
Copy these three tables into a spreadsheet, one tab each, and name the tabs Blocks, Flushes and Conditions. Or save each header row as a .csv file. There's nothing to download and no email to give.
Every culture, jar, bag and block gets one row in Blocks, and the Parent column carries the lineage. The example rows show a grain jar two transfers from its source and a fruiting block made from it; leave a cell blank until you have the number.
Blocks
| Code | Parent | Strain | Vendor and lot | Vendor generation | Transfers | Type | Recipe or substrate | Dry substrate weight | Spawn rate | Inoculated | Shaken | Colonized | Into fruiting | Zone and shelf | Outcome | Lost at | Suspected cause | Cost | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LM-NS-1A1 | LM-NS-1A | Lion's mane | NS, lot from label | not stated | 2 | grain jar | rye | 2026-10-20 | |||||||||||
| LM-NS-1A1B | LM-NS-1A1 | Lion's mane | NS, lot from label | not stated | 3 | fruiting block |
Use a short list for Outcome (harvested, contaminated, other loss) and for Lost at (incubation, fruiting). Then filter on strain, Outcome and Lost at for each stage's losses. For the denominators, count that strain's rows with an Inoculated date and those with an Into fruiting date.
Flushes
| Code | Flush | Pin date | Harvest date | Fresh weight | Dry weight | Notes |
|---|---|---|---|---|---|---|
| LM-NS-1A1B | 1 |
In Blocks, column I is Dry substrate weight; in Flushes, column E is Fresh weight. BE for the block in row 3 of Blocks is =SUMIF(Flushes!A:A, A3, Flushes!E:E) / I3 * 100. Put it in a spare column of Blocks and copy it down; it shows an error until the dry weight is filled in.
Conditions
| Zone | From | To | Low RH | High RH | Low temperature | High temperature | Fastest hourly change | CO₂ | Changes made |
|---|---|---|---|---|---|---|---|---|---|
| Tent 1 |
Log conditions per zone, not per block, and match them to blocks by zone and date. A hygrometer that records highs and lows fills in most of this row.
Spreadsheet or app?
A spreadsheet is a fine grow log, and it can cost nothing. You choose every column, and the template above covers what most apps track. It gets harder once lineage runs several transfers deep, because every parent link is typed and checked by hand.
Apps take over that bookkeeping. The ones below are built for mushroom growers. Each is described from its own site or store listing, checked on 19 October 2026, and the order isn't a ranking.
| Tool and platforms | Lineage, as its own page describes it | Free option |
|---|---|---|
| Spreadsheet (any computer or phone) | A Parent column you fill in | Free spreadsheet apps work |
| MycoFile (iPhone, Android; web on paid plans) | "Family trees" of parent cultures | Hobby plan, 15 active batches |
| Mycro (web browser) | Each culture "takes a tracking code from its parent" | Grow Log with no login |
| MycoHub (iPhone, iPad) | "Visual lineage tree" | 5 active batches |
| SpawnLog (iPhone, iPad) | Not mentioned | 5 active batches |
| Myco Buddy (iPhone, iPad) | A generation field in its strain library | 1 batch |
| Kinoko (web, iPhone, Android) | A "Genetics module" in its plan table | None; every plan starts with two months free |
| Hypha, ours (iPhone, Android, web) | Family tree and culture codes | 25 active blocks |
- MycoFile tracks spores, cultures, spawn and bulk items in one view. Its App Store listing describes "family trees" of parent cultures, and it prints and scans QR labels on Wi-Fi and Bluetooth thermal printers. It also tracks supplies, recipes and cost of goods. Its free Hobby plan holds 15 active batches; paid Pro and Farm plans add the web app, photo logs and cost tracking.
- Mycro calls itself "free grow-operations software for small gourmet and functional mushroom farms." It runs in a browser and works out biological efficiency, contamination rate and cost per pound for you. Its free Grow Log needs no login and saves batches in your browser. It says its paid Grower and Farm plans "aren't open yet."
- MycoHub is an iPhone and iPad app that works fully offline, with "no cloud, no accounts." It logs transfers, contamination events and multi-flush harvests, and draws a visual lineage tree. It prints QR batch labels, and its Pro plan adds CSV export.
- SpawnLog is an iPhone and iPad batch and flush log that calculates BE% for you. It stores everything on the phone with no account, exports and imports CSV, and sells Pro as a one-time purchase. Its listing doesn't mention culture lineage.
- Myco Buddy is an iPhone and iPad grow journal for home growers. It logs photos, temperature and humidity with each entry, plus several flushes per batch with wet and dry weights. Data stays on the device, and its strain library records each strain's generation and source.
- Kinoko is farm-management software that brings "blocks, rooms, labels, harvests, and team workflows into one place." It keeps temperature, CO₂ and humidity history for each room, and its plan table lists a genetics module. It shows no permanent free plan; every plan, from Starter at 30 blocks a month, starts with two months free, with no card.
- Hypha is our app. Create each block as a transfer from its parent and Hypha extends the code for you, from LM-NS-1 to LM-NS-1A to LM-NS-1A1. A lineage view draws the family tree. The strain performance view shows contamination rates for spawn and bulk among finished blocks, for blocks started in the last 90 days or all time. Each block's Grow Summary shows its days, total wet harvest and flush count, and its label prints with a QR code. Export my data, in settings, downloads your records as CSV files.
Hypha has limits worth knowing before you choose it. It doesn't record a pin date, work out BE or keep a generation field; the code's suffix stands in for generation. Its bulk contamination rate counts blocks lost while colonizing and while fruiting together, so work out the two-stage split yourself. Any parent has to be set when you create the block; it can't be attached later. It needs an internet connection to save, with no offline mode. The free plan holds 25 active blocks, and every plate, jar and bag counts until you archive it. Pro raises that to 250 and adds cost per pound for blocks started from costed prep stock (pricing). That figure counts supplies and prep only, and Hypha doesn't yet split a jar's cost across the grain it inoculates. Sensor history comes only from our own Hypha Aeris (closed beta, not for sale yet); reservations are planned for 2027.
Choose by what you'll keep up with. SpawnLog, MycoHub and Myco Buddy keep data on the phone with no account. SpawnLog and Mycro work out BE for you. MycoFile, MycoHub, Mycro and Hypha all track lineage across transfers. A spreadsheet still makes sense if you want every column your way.
FAQ
Can a multispore culture have a lineage code?
Yes, but treat the code as covering a mix. GroCycle says a spore syringe usually gives "more than one variety," each with its own traits (GroCycle). Once you clone or isolate a good one on agar, start that plate as the root of a new line. Note the spore syringe it came from in the plate's notes.
What should go on the jar label itself?
Put at least the code, strain and date on the label. Our syringes guide also lists the recipe, generation and agar test result, following La Mycosphère. If those don't fit on a small or wet label, keep them in the log under the same code.
Do I need a logging sensor to track conditions?
No. A hygrometer and a notebook cover it: our humidifier guide suggests one line per flush with peak RH, low RH and any humidifier changes. A logging sensor saves the writing and can show the fastest hourly temperature change, which a min/max reading can't.