Model formulas
Equations, Parameters, and Code Documentation
Return to: Interactive Cost Model | New to this topic? How Cultured Chicken is Made | Audio Review (MP3) | Workshop (May 2026)
For substantive questions, corrections, methodology debates, or alternative-source suggestions — please post in the 🧠 Substantive discussion hub →. That’s where technical debate can get involved, with threaded replies others can build on. See the 📖 Discussion Map for domain-organized sub-threads (media, growth factors, bioreactors, correlations, welfare).
For quick inline notes on a specific equation or parameter, use Hypothesis (click the < tab on the right edge). For anything beyond a brief highlight, prefer the Substantive hub so the conversation stays organized and discoverable.
Overview
This document provides complete technical documentation for the cultured chicken cost model. If you want to understand exactly what the interactive dashboard is computing — every equation, parameter range, distribution choice, and source — this is the reference.
- Model Formulas — Mathematical structure and equations (top-down: total cost → components)
- Parameter Definitions — All inputs with distributions, ranges, and source citations
- Code Reference — Implementation details and links to source code (JavaScript in index.qmd, Python reference). A historical Squiggle implementation exists but is no longer synced with the dashboard — see the note in the Code Reference section.
- Limitations — Known caveats, simplifications, and recommendations for use
- New: TEA Comparison — Side-by-side breakdown of published cost analyses
Model Formulas
This section presents the model structure top-down: starting with the final output and unpacking each component.
| # | Component | Equation | Key variables |
|---|---|---|---|
| 1 | Total Cost | Unit Cost = VOC + CAPEX/kg + Fixed/kg + Downstream/kg | — |
| 2 | VOC | VOC = Media + GFs + Other | — |
| 2a | Media | (1000/density) × multiplier × $/L | density (g/L), media-use multiplier, \(/L | | 2b | **[Growth Factors](#growth-factor-cost)** | GF Cost = g_GF x P_GF | quantity (g/kg), price (\)/g) |
| 3 | CAPEX/kg | (CAPEX × CRF) / Output | CRF, annual output |
| 3a | CRF | r(1+r)n / ((1+r)n − 1) | r=WACC, n=years |
| 3b | Scale | CAPEXref × (Q/Qref)s | s=0.6-0.9 |
| 4 | Adoption | bound(Pbase + k(m−0.5), 0, 1) | k, m (maturity) |
Click any link to jump to the detailed explanation.
1. Total Unit Cost
The model estimates unit production cost ($/kg) by summing four components:
\[\boxed{\text{Unit Cost} = \underbrace{\text{VOC}}_{\text{variable}} + \underbrace{\text{CAPEX}_{/\text{kg}}}_{\text{capital}} + \underbrace{\text{Fixed OPEX}_{/\text{kg}}}_{\text{overhead}} + \underbrace{\text{Downstream}_{/\text{kg}}}_{\text{optional}}}\]
Output basis: All costs in this model are expressed as $/kg of pure cultured cell mass (wet weight), not hybrid products, retail products, or dry biomass. This matters when comparing to published TEA figures, some of which report costs for blended/hybrid products. See our TEA comparison page for a systematic breakdown of how published estimates differ in output basis.
What does each term mean?
| Term | Description | Typical range |
|---|---|---|
| VOC | Variable operating costs — inputs that scale with production | $5–100/kg |
| CAPEX/kg | Annualized capital costs (bioreactors, facilities) | $1–20/kg |
| Fixed OPEX/kg | Labor, maintenance, overhead | $1–10/kg |
| Downstream/kg | Scaffolding, texturization (for structured products) | $2–15/kg if enabled |
2. Variable Operating Costs (VOC)
VOC is the sum of three input categories:
\[\text{VOC} = \text{Media} + \text{Growth Factors} + \text{Other}\]
Earlier versions of this model carried a separate food-grade micronutrients line (vitamins, minerals, trace salts). External review flagged that this double-counted basal media — the model already described media as providing “amino acids, glucose, vitamins” — and that the range (0.1–10 g/kg) was not coherent with the literature. O’Neill et al. (2021) treat vitamin and mineral sourcing as a relatively low-cost issue, while Pasitka et al. (2024) imply roughly 0.15 kg vitamins/minerals per kg wet biomass — orders of magnitude above our old slider. We now fold basal micronutrients into media $/L and reserve any future separate term for supplemental recombinant proteins (insulin, transferrin, albumin), which can be sourced from supplier quotes.
2a. Media Cost
Media is the liquid nutrient broth that feeds growing cells. Media cost depends on how much liquid you need per kg of meat:
\[\text{Media Cost} = \underbrace{\left(\frac{1000}{\text{density}}\right)}_{\text{nominal L per kg wet cells}} \times \underbrace{\text{multiplier}}_{\text{media-use multiplier (net)}} \times \underbrace{\text{price}}_{\text{\$/L}}\]
Variable definitions:
- Cell density (g/L): Final concentration of cells at harvest. Higher density = less media needed per kg. The 1000 converts g/L to L/kg (since 1 kg = 1000 g).
- Media-use multiplier (net): A dimensionless ratio equal to net fresh media consumed per kg of cells divided by the nominal reactor-fill volume
1000/density. Batch systems sit at ≈1, perfusion at ≈2–3, and recycling / fed-batch / harvest concentration can push it below 1. This is a bundled parameter — it’s not a literal count of reactor-volume changes. See the Learn page on media-use mechanisms for the three real processes that can take it below 1, or the simulate() source code for the legacy variable name (media_turnover). - Price ($/L): Cost per liter of basal media (amino acids, glucose, vitamins, minerals, trace salts — excludes growth factors and supplemental recombinant proteins, which are modeled as a separate cost component). Some literature sources report “complete medium” costs that include growth factors; our model separates these to allow independent uncertainty analysis.
Example calculation:
- Cell density: 50 g/L → need 1000/50 = 20 L per kg
- Media-use multiplier: 3× (perfusion system) → 20 × 3 = 60 L total per kg
- Media price: $0.50/L (hydrolysates) → 60 × 0.50 = $30/kg
Why does density vary? Achievable density depends on cell type, bioreactor design, and operating mode. Batch cultures typically reach 30–50 g/L; perfusion cultures with optimized conditions can reach 100–200 g/L (Humbird 2021).
Hydrolysates vs. pharma-grade amino acids:
| Scenario | Price range ($/L) | What it means | Source |
|---|---|---|---|
| With hydrolysates | $0.20 – $1.20 | Amino acids from digested plant/yeast proteins | O’Neill et al. 2021, Believer 2024 |
| Pharma-grade amino acids | $1.00 – $4.00 | Individual purified amino acids | Humbird 2021 |
Hydrolysates cost less because they’re produced from commodity feedstocks via enzymatic digestion, rather than synthetic chemistry or purification.
Is $/L meaningful if density varies?
Yes. Media cost ($/L) refers to the cost of preparing one liter of complete growth medium — the liquid that fills the bioreactor. This cost is relatively fixed for a given formulation, regardless of how many cells you eventually grow in it.
What varies is $/kg meat, which depends on:
- How dense the cells grow (cell density, g/L)
- The effective media-use multiplier (bundling perfusion, recycling, and harvest concentration)
A $1/L medium costs $60/kg meat at 50 g/L density × 3 multiplier, but only $15/kg meat at 200 g/L × 1 multiplier. The $/L is the input; $/kg is the output.
Media Cost per kg at Different Cell Densities
Since both $/L and cell density matter, here’s how they combine (assuming multiplier = 3):
| Cell density | Liters/kg | @ $0.50/L (hydrolysates) | @ $2.00/L (pharma-grade) |
|---|---|---|---|
| 30 g/L | 100 L | $50/kg | $200/kg |
| 50 g/L | 60 L | $30/kg | $120/kg |
| 100 g/L | 30 L | $15/kg | $60/kg |
| 200 g/L | 15 L | $7.50/kg | $30/kg |
Key insight: Doubling cell density cuts media cost in half — density improvements are as valuable as halving media price.
2b. Growth Factor Cost
Growth factors are signaling proteins that tell cells to proliferate. They are the most price-volatile component.
Key growth factors used in cultured meat:
| Abbreviation | Full name | Function | Why it’s needed |
|---|---|---|---|
| FGF-2 | Fibroblast Growth Factor 2 | Promotes cell proliferation | Keeps cells dividing; prevents differentiation |
| IGF-1 | Insulin-like Growth Factor 1 | Cell growth and survival | Supports metabolism and prevents cell death |
| TGF-β | Transforming Growth Factor β | Differentiation control | Triggers muscle fiber formation at end of culture |
Growth factor cost equation:
\[\text{GF Cost} = \underbrace{g_{\text{GF}}}_{\text{grams/kg meat}} \times \underbrace{P_{\text{GF}}}_{\text{\$/gram}}\]
How GF Cost Feeds into Total Cost
Growth factor cost is one of the four components of Variable Operating Costs:
\[\text{VOC} = \text{Media} + \underbrace{\text{Growth Factors}}_{\text{this section}} + \text{Other}\]
And VOC feeds into total unit cost (see Section 1).
Two Ways to Explore GF Uncertainty
The dashboard provides two controls for growth factor prices that work together:
| Control | What it does | When to use |
|---|---|---|
| Binary toggle (Bernoulli) | Flips between “cheap” and “expensive” price regimes | Default Monte Carlo — samples from uncertain future |
| Progress slider | Manually sets a point between current and target prices | Scenario analysis — “what if we’re 50% of the way there?” |
How they interact: The slider overrides the binary toggle. When you move the slider from 0%, you’re saying “ignore the coin flip; assume this level of progress.”
The Progress Slider Formula
The slider interpolates between current prices (0%) and target prices (100%):
\[P_{\text{GF}} = P_{\text{current}} \times (0.01)^{\text{progress}}\]
In plain text: GF Price = Current Price x (0.01)^progress, where the exponent “progress” ranges from 0 (no progress) to 1 (full breakthrough).
How to read this formula:
- \(P_{\text{current}}\) = today’s growth factor prices (the starting point)
- \(\text{progress}\) = a value from 0 to 1 (the slider position, where 0 = 0% and 1 = 100%)
- \((0.01)^{\text{progress}}\) = the price multiplier, which shrinks as progress increases
Why the base 0.01? We chose 0.01 because industry targets are roughly 100× cheaper than current prices. Since \(0.01^1 = 0.01 = 1/100\), setting progress to 100% gives a 100× price reduction — matching GFI’s target estimates:
- Current FGF-2: ~$50,000/g → Target: ~$500/g (100× reduction)
- Current TGF-β: ~$1,000,000/g → Target: ~$10,000/g (100× reduction)
| Progress slider | Price multiplier | Intuition |
|---|---|---|
| 0% | × 1.00 | Today’s prices |
| 25% | × 0.32 | ~3× cheaper |
| 50% | × 0.10 | ~10× cheaper |
| 75% | × 0.032 | ~30× cheaper |
| 100% | × 0.01 | ~100× cheaper (targets achieved) |
The Binary “Cheap vs. Expensive” Toggle
In Monte Carlo mode (slider at 0%), the model flips a coin (50% probability by default) to select between two price regimes:
“Expensive” regime (limited progress):
| Parameter | Range | Source |
|---|---|---|
| Quantity | 0.0005 – 0.02 g/kg | Higher usage due to degradation |
| Price | $500 – $50,000/g | Current FGF-2 ~$50,000/g, TGF-β up to $1M/g (GFI analysis) |
“Cheap” regime (breakthrough achieved):
| Parameter | Range | Source |
|---|---|---|
| Quantity | 0.0001 – 0.005 g/kg | Lower usage (thermostable, recycling) |
| Price | $1 – $100/g | GFI industry targets — studies suggest $4/g achievable |
Why binary, not continuous? The breakthrough technologies are substitutes:
- Autocrine cell lines — cells produce their own FGF2 → GF cost ≈ $0
- Plant molecular farming — target $1-10/g
- Precision fermentation — target $10-100/g
If any one succeeds, the industry shifts to the cheap regime. We’re asking “will at least one breakthrough work?” — a yes/no question.
Why not model each technology separately?
The objection: “Each breakthrough technology has independent effects on GF cost. Why collapse them into a single binary switch?”
Our reasoning:
Substitutes, not complements: You only need one cheap GF source. If autocrine lines work, you don’t also need plant farming. Multiple successes don’t stack — the first success captures most of the value.
Correlated outcomes: The technologies share underlying capabilities (protein engineering, regulatory approval for novel food ingredients, scale-up expertise). If one succeeds, others are more likely to succeed too. Treating them as independent would understate the probability of at least one working.
Parsimony: Modeling 4+ independent technologies with separate probabilities, partial success states, and interactions would add many parameters without clear empirical grounding. The binary approach captures the key decision-relevant question: “Will GF costs be a dealbreaker or not?”
What we lose: The binary model can’t represent “partial success” scenarios where, say, precision fermentation reaches $50/g (10× improvement but not full breakthrough). The progress slider partially addresses this for scenario analysis.
Alternative approach (not implemented): A continuous model could sample GF price from a mixture distribution — e.g., 50% chance of $1-100/g, 50% chance of $500-50,000/g. This would be mathematically equivalent but less interpretable.
3. Annualized Capital Costs
Capital costs are annualized using the Capital Recovery Factor (CRF):
\[\text{CAPEX}_{/\text{kg}} = \frac{\text{Total CAPEX} \times \text{CRF}}{\text{Annual Output (kg)}}\]
Where CRF converts a lump sum to annual payments:
\[\text{CRF} = \frac{r \cdot (1+r)^n}{(1+r)^n - 1}\]
Variables in this formula:
- \(r\) = WACC (weighted average cost of capital) — your cost of financing
- \(n\) = asset life in years — how long the equipment lasts
What is CRF? (Intuitive explanation)
Capital Recovery Factor answers: “If I borrow $X at interest rate \(r\) for \(n\) years, what annual payment covers both principal and interest?”
Intuition: Think of CRF as the “annual rent” you pay on capital. If you buy a $100M facility:
- At CRF = 10%, you pay $10M/year
- At CRF = 20%, you pay $20M/year
CRF is always higher than just “1/asset_life” because you’re also paying interest, not just depreciation.
Why does the formula look so complicated?
The formula \(\text{CRF} = \frac{r(1+r)^n}{(1+r)^n - 1}\) comes from the math of constant payments over time. Here’s the intuition:
- If you borrowed $100 at 10% interest for 1 year, you’d owe $110 at the end → CRF = 110% (or 1.10)
- If you could pay over 2 years with equal payments, each payment is smaller, but you pay more total interest → CRF ≈ 58%
- As the loan period gets longer, each payment shrinks, but the total interest paid grows
- The formula balances these two effects to give you the constant annual payment
Numerical example: At r=10%, n=15 years: - CRF = 0.10 × (1.10)^15 / ((1.10)^15 - 1) = 0.10 × 4.18 / 3.18 = 13.1% - A $100M facility costs $13.1M/year to finance
Why does CRF matter? It converts a one-time construction cost into an annual charge that gets divided across all kg produced. Higher CRF = higher $/kg.
| WACC (\(r\)) | Asset Life (\(n\)) | CRF | Annual payment on $100M | Source context |
|---|---|---|---|---|
| 10% | 15 years | 13.1% | $13.1M/year | Established food company financing |
| 15% | 10 years | 19.9% | $19.9M/year | Growth-stage company |
| 20% | 8 years | 26.1% | $26.1M/year | Early-stage / high-risk (Humbird 2021) |
Higher WACC or shorter asset life → higher annual capital charge → higher $/kg.
4. Technology Adoption & Maturity
The model uses a maturity factor to create realistic correlations between different aspects of industry development. Without this, the Monte Carlo simulation would generate unrealistic scenarios (e.g., breakthrough growth factor technology but prohibitively expensive financing).
Why should these be correlated? The underlying logic is not that technology causes cheaper financing or vice versa. Rather, both are driven by a common set of enabling conditions – investor confidence, regulatory clarity, talent availability, and demonstrated unit economics. In a world where the cultured meat industry develops well by the projection year, we would expect both technological breakthroughs and improved financing terms, because both flow from the same underlying industry momentum. See the detailed explanation below for the full causal story.
The Maturity Factor (\(m\))
The maturity factor is a single number between 0 and 1 representing overall industry development:
- \(m = 0\): Nascent industry — early R&D stage, no scale-up
- \(m = 0.5\): Moderate development — pilots running, some commercial activity
- \(m = 1\): Mature industry — established supply chains, proven technology
Each simulation draws \(m\) from a Beta distribution (default: mean 0.5, stdev 0.2).
How Maturity Adjusts Adoption Probabilities
Each technology’s adoption probability is adjusted based on the maturity draw. The key variables are \(k\) (sensitivity coefficient – how strongly maturity affects this technology) and \(m\) (the maturity factor – overall industry development level):
\[P_{\text{adopted}} = \text{bound}\Big(P_{\text{base}} + k \cdot (m - 0.5),\; 0,\; 1\Big)\]
Variable definitions (all terms in the equation above):
| Variable | Meaning | Typical values |
|---|---|---|
| \(P_{\text{base}}\) | Base adoption probability set by the user via slider | 0.50–0.75 |
| \(k\) | Sensitivity coefficient — how strongly maturity affects this technology’s adoption | 0.20–0.30 |
| \(m\) | Maturity factor — overall industry development level, drawn from Beta distribution | 0–1 (mean ~0.5) |
| \(\text{bound}(\cdot, 0, 1)\) | Clips the result to valid probability range [0, 1] | — |
Intuition for \(k\): When \(k = 0.25\), a one-standard-deviation shift in maturity (\(\Delta m = 0.2\)) changes the adoption probability by \(0.25 \times 0.2 = 0.05\) (5 percentage points).
Example: If hydrolysates have \(P_{\text{base}} = 0.75\) and \(k = 0.25\):
- In a “bad world” (\(m = 0.2\)): \(P = 0.75 + 0.25 \times (0.2 - 0.5) = 0.675\)
- In a “good world” (\(m = 0.8\)): \(P = 0.75 + 0.25 \times (0.8 - 0.5) = 0.825\)
What does “bound” mean?
bound(x, 0, 1) ensures the result stays between 0 and 1. Also called “clip” or “clamp” in programming.
- If x < 0, return 0
- If x > 1, return 1
- Otherwise, return x
This prevents impossible probabilities like -0.2 or 1.3.
5. Monte Carlo Simulation
The model runs 30,000 simulations, each time:
- Draw random values for all uncertain parameters
- Draw technology adoption outcomes (Bernoulli coin flips)
- Calculate unit cost for that scenario
- Collect results into a distribution
This produces the histograms and probability thresholds shown in the dashboard.
Parameter Definitions
This section defines all model inputs. Each parameter links back to where it appears in the cost equations.
Basic Parameters
| Parameter | Symbol | Distribution | Default | Unit | Used in |
|---|---|---|---|---|---|
| Plant capacity | \(Q\) | Lognormal(p5, p95) | 5–50 | kTA/year | CAPEX/kg, Fixed OPEX |
| Utilization | \(u\) | Beta(mean, sd) | 0.90 | fraction | Annual output = \(Q \times u\) |
| Maturity index | \(m\) | Beta(mean, sd) | 0.50 | 0–1 | Technology adoption, WACC adjustment |
Why these distributions?
- Lognormal for plant capacity: Capacity is positive and right-skewed (most plants are medium-sized, few are very large). Lognormal naturally captures this. The p5/p95 parameterization lets us specify “90% of plants are between 5 and 50 kTA.”
- Beta for utilization and maturity: Both are bounded between 0 and 1. Beta distributions are flexible for modeling proportions and can be parameterized with mean/stdev.
These choices follow standard practice in techno-economic assessments (Humbird 2021, Risner et al. 2021). Humbird 2021 uses lognormal distributions for cost inputs and triangular distributions for some parameters; we use lognormal throughout for positive-valued quantities because it avoids the sharp bounds of triangular distributions. The Bernoulli draws for technology adoption (hydrolysates, food-grade, cheap GFs) reflect discrete yes/no events rather than continuous uncertainty — see Section 4 for details.
Technology Adoption
Each technology has a base adoption probability, adjusted by the maturity factor:
\[ P_{\text{adopted}} = \text{bound}(P_{\text{base}} + k \times (m - 0.5), 0, 1) \]
| Technology | Base Prob | \(k\) | Effect on cost | Notes |
|---|---|---|---|---|
| Hydrolysates | 75% | 0.25 | Reduces media $/L by ~70% | Plant/yeast protein digests replace purified amino acids |
| Food-grade micronutrients | 65% | 0.20 | Reduces micronutrient $/g by ~90% | Food-grade vitamins, minerals, and trace elements vs. pharma-grade |
| Scalable GF technology | 50% | 0.25 | Switches to “cheap” GF prices (see price tables) | Any breakthrough: autocrine, plant farming, precision fermentation. See binary toggle rationale |
Process Intensities
These parameters determine how much media is needed per kg of meat. They feed directly into the Media Cost equation:
\[\text{Media Cost} = \frac{1000}{\text{cell density}} \times \text{media-use multiplier} \times \text{price per L}\]
| Parameter | Range (p5–p95) | Unit | Definition | Where in cost equation |
|---|---|---|---|---|
| Cell density | 30–200 | g/L | Final biomass concentration at harvest | Denominator of \(\frac{1000}{\text{density}}\) — higher density → fewer liters per kg |
| Cycle time | 0.5–5 | days | Duration of one production batch | Affects annual throughput (and thus CAPEX/kg via $/kg = CAPEX × CRF / output), not media cost directly |
| Media-use multiplier | 0.5–3.0 (was 1–10 before April 2026) | × | Net fresh media consumed per kg of cells, divided by the nominal reactor-fill volume (1000/density) |
Multiplier on liters/kg — see change log below |
What changed. The parameter previously labeled “Media turnover” with a default p5–p95 range of 1–10× was renamed to “Media-use multiplier” and narrowed to 0.5–3.0×. The internal code variable is still media_turnover for git-history stability, but the user-facing name and semantics are new.
Why the rename. “Turnover” in biology/lab usage literally means “how many times the media was changed,” which implies a hard floor at 1. The cost model, however, uses the parameter as a bundled effective media-use ratio that includes real mechanisms producing values below 1 — media recycling, fed-batch with concentrated feeds, and harvest-side cell concentration. “Media-use multiplier” signals the bundling and makes sub-1 values physically coherent rather than nonsensical. See Learn: media-use mechanisms for the full walkthrough of the three mechanisms.
Why the range change. GFI’s 2023 recombinant-protein report assumes 8–13 L media per kg of meat as its cost-competitive target. At 60–90 g/L cell density, the nominal reactor-fill volume is 11.1–16.7 L/kg, which back-solves to a multiplier of ≈0.48–1.17. The old floor of 1.0 mechanically excluded the lower end of the GFI range regardless of how high density was pushed — the dashboard simply could not represent the “cost-competitive future” scenario. The new floor of 0.5 fixes that.
Values in the 5–10× region remain conceivable for heavily media-intensive processes but are now a stress-test region rather than the default sampled range.
Legacy name. The media_turnover variable in simulate() still uses the old name because renaming it would churn all the sensitivity-analysis wiring for no behavioral benefit. Treat media_turnover as a legacy identifier for the media-use multiplier.
Basal micronutrients (vitamins / minerals / trace salts)
Not modeled as a separate line item. Basal vitamins, minerals, and trace salts are included inside media $/L along with amino acids and glucose. See the callout under Section 2 (VOC) for why the previous standalone “food-grade micronutrients” term was removed, and the model change log on the main page for the full rationale.
If/when we add a separate uncertainty term in this slot, it will be repurposed to supplemental recombinant proteins — insulin, transferrin, and possibly albumin — which have defensible per-g prices (supplier quotes) and per-kg usage levels in the literature. These are distinct from the growth factors (FGF-2, IGF-1, TGF-β) modeled in the GF section.
Growth Factor Price Scenarios
These parameters feed into the GF Cost equation: GF Cost = \(g_{\text{GF}}\) (quantity) × \(P_{\text{GF}}\) (price).
The model uses two discrete price scenarios, selected by a Bernoulli draw (see why binary above):
| Scenario | Quantity (g/kg) | Price ($/g) | What it represents | Source |
|---|---|---|---|---|
| Scalable tech achieved | 0.0005 – 0.002 | $1 – $100 | At least one breakthrough reaches commercial scale; usage reduced ~3× via thermostable variants / autocrine / recycling | GFI 2024 targets |
| Limited progress | 0.001 – 0.006 | $500 – $50,000 | Humbird formulation (FGF 0.1 mg/L + TGFβ 0.002 mg/L) × 8–60 L/kg media use, no step-change | GFI 2023 recombinant-protein report; Humbird 2021 |
Earlier model versions used a very broad 0.0001–0.02 g/kg range with no specific citation. That range was tightened to align with primary sources:
Humbird formulation (as reproduced in GFI 2023 recombinant-protein analysis): \[\underbrace{1.0 \times 10^{-4}\ \text{g/L}}_{\text{FGF}} + \underbrace{2.0 \times 10^{-6}\ \text{g/L}}_{\text{TGF}\beta} \approx 1.02 \times 10^{-4}\ \text{g/L true GF}\]
Media-use assumptions from the same report and the cell-density × media-use-multiplier math on the main page:
| Media use (L/kg) | True-GF quantity (g/kg) |
|---|---|
| 8 L/kg (GFI efficient-future scenario low) | ≈0.00082 |
| 13 L/kg (GFI efficient-future scenario high) | ≈0.00133 |
| 60 L/kg (less-optimized, e.g. 30 g/L density × 1.8× media-use multiplier) | ≈0.00612 |
Empirical cross-check. Pasitka et al. (2024)’s ACF chicken TEA implies ≈0.00187 g growth factor/kg wet biomass, which sits comfortably inside this band.
The “cheap” regime (0.0005–0.002 g/kg) models approximately a 3× usage reduction beyond the Humbird baseline, reflecting thermostable FGF2-G3 variants (longer half-life → less replenishment), autocrine cell lines (cells producing their own FGF), recycling systems, and polyphenol substitution.
The “expensive” regime (0.001–0.006 g/kg) is the Humbird formulation across the plausible media-use range, with no breakthrough-driven usage reduction.
Outside the default. Values of 0.01–0.02 g/kg remain conceivable for wildly less-optimized processes (much more complex media formulations, much higher media use), but are no longer part of the default sampled range and should be treated as a stress test.
Why different quantities too? Breakthrough technologies often reduce both price and required amount:
- Thermostable variants (e.g., FGF2-G3 from Enantis) have 20-day half-life vs. hours, reducing dosing frequency
- Autocrine lines produce GFs continuously, maintaining optimal concentrations
- Recycling systems recover GFs from spent media
Breakthrough technologies (any one could trigger “cheap”):
| Technology | Mechanism | Current status | Target price |
|---|---|---|---|
| Autocrine cell lines | Cells engineered to produce own FGF2 | Proof of concept | ~$0/g |
| Plant molecular farming | GFs expressed in tobacco, rice | Pilot scale | $1–10/g |
| Precision fermentation | Microbial production at scale | Scaling up | $10–100/g |
| Small molecule substitutes | Chemicals that activate GF receptors | Research | <$1/g |
Capital Cost Parameters
This section explains how capital costs (bioreactors, facilities) are calculated. The key equation is:
\[\text{CAPEX}_{/\text{kg}} = \frac{\text{Total CAPEX} \times \text{CRF}}{\text{Annual Output}}\]
Where Total CAPEX depends on plant size and equipment type, and CRF converts a lump sum to annual payments (see Section 3 for the CRF formula).
Reference Scale: Why 20 kTA?
kTA = kilo-tonnes per annum (thousands of metric tons per year). So 20 kTA = 20,000 tonnes/year of cultured meat output. For context, a single large conventional chicken processing plant handles ~200 kTA, so 20 kTA is a modest commercial facility.
The model defines CAPEX at a reference scale of 20 kTA, then adjusts for actual plant size using economies of scale. We use 20 kTA because:
- It matches the scale in Risner et al. (2021), enabling direct comparison
- It represents a plausible first commercial-scale facility (current pilots are <1 kTA)
- Published cost estimates are most reliable around this scale — extrapolating far beyond it introduces large uncertainty
How the reference scale is used: We define “CAPEX at 20 kTA” as our baseline, then scale up or down using the economies of scale formula below. This is standard practice in chemical engineering cost estimation (“factored estimation” or “Lang factor” method).
Why pharma-grade appears here: The baseline CAPEX parameter ($5-25/kg capacity) is anchored to published estimates that assume pharmaceutical-grade equipment (316L stainless steel, full cleaning validation). Most TEAs use pharma-grade as the starting point because that is what current facilities use. The model then applies a custom reactor ratio (0.35-0.85) to simulate the cost reduction if food-grade equipment is adopted instead — so pharma-grade is the pessimistic baseline, not an assumption about the future.
Economies of Scale: The \(K \sim Q^s\) Relationship
Capital costs don’t scale linearly with capacity. A plant 10× larger doesn’t cost 10× more — it benefits from economies of scale:
\[\text{CAPEX} = \text{CAPEX}_{\text{ref}} \times \left(\frac{Q}{Q_{\text{ref}}}\right)^s\]
Where:
- \(K\) = total capital cost (we use \(K\) as shorthand for CAPEX)
- \(Q\) = plant capacity; \(Q_{\text{ref}}\) = reference capacity (20 kTA)
- \(s\) = scale exponent (0.6–0.9)
What the exponent means:
| Scale exponent \(s\) | If capacity doubles… | Example industries |
|---|---|---|
| 1.0 | CAPEX doubles (no economies) | Modular, containerized systems |
| 0.7 | CAPEX increases 62% | Chemical plants, refineries |
| 0.6 | CAPEX increases 52% | Power plants, large bioreactors |
The range 0.6–0.9 reflects uncertainty about whether cultured meat will achieve chemical-industry economies (0.6) or remain more modular (0.9).
Pharma-Grade vs. Food-Grade Equipment
Why this matters for CAPEX: The cultured meat industry emerged from pharmaceutical cell culture, which uses expensive equipment designed for injectable drugs. A key cost question is whether the industry can transition to simpler, cheaper food-grade equipment.
This distinction directly affects CAPEX\(_{\text{ref}}\) in the scaling equation — pharma-grade equipment costs 2–10× more than food-grade, and the custom reactor ratio parameter captures this uncertainty.
Pharma-grade bioreactors are built to pharmaceutical manufacturing standards:
- 316L stainless steel, electropolished surfaces
- Extensive validation, documentation (GMP compliance)
- Designed for injectable drug production
- Cost: $50–500 per liter installed capacity — typical pharmaceutical bioreactors cost £250,000+ for standard units
Food-grade (or “custom”) equipment is simpler:
- Standard stainless steel (304 or food-grade 316) — 304 can replace pharma-required 316 for food operations
- Less stringent validation (GRAS vs. pharmaceutical purity)
- Similar to brewing or dairy equipment
- Target cost: $10–50 per liter — Meatly’s 320L pilot bioreactor costs ~£12,500 (~$39/L), comparable to beer brewing ($5–15/L)
The custom reactor ratio (0.35–0.85) represents the cost of food-grade equipment relative to pharma-grade. At 0.5, custom equipment costs half as much.
| Parameter | Range | Definition | Equation |
|---|---|---|---|
| WACC | 8–20% | Weighted average cost of capital | \(r\) in CRF = \(\frac{r(1+r)^n}{(1+r)^n-1}\) — see Section 3 |
| Asset life | 8–20 years | Equipment depreciation period for bioreactors, buildings, and support facilities | \(n\) in CRF = \(\frac{r(1+r)^n}{(1+r)^n-1}\) — see Section 3 |
| Scale exponent | 0.6–0.9 | Economies of scale power (how much CAPEX grows as plant capacity increases) | \(s\) in \(\text{CAPEX} = \text{CAPEX}_{\text{ref}} \times (Q/Q_{\text{ref}})^s\) — see economies of scale section. Note: \(s\) (scale exponent) is distinct from \(r\) (WACC) used in the CRF formula. |
| Pharma-grade CAPEX | $5–25 / kg capacity | Base capital cost at 20 kTA | \(\text{CAPEX}_{\text{ref}}\) in scaling equation |
| Custom reactor ratio | 0.35–0.85 | Food-grade ÷ pharma-grade cost | Multiplier on \(\text{CAPEX}_{\text{ref}}\) when using food-grade |
WACC Justification
WACC (Weighted Average Cost of Capital) represents the blended cost of debt and equity financing. Our 8–20% range reflects:
| Benchmark | Typical WACC | Source |
|---|---|---|
| Established food companies (Tyson, JBS) | 6–10% | Industry averages (Damodaran) |
| Biotech startups (pre-revenue) | 15–25% | VC expected returns |
| Cultured meat companies | 12–20% | Humbird (2021), CE Delft (2021) |
Why the range is wide: The low end (8%) assumes the industry matures to food-company norms – stable revenue, proven unit economics, low technology risk. The high end (20%) reflects today’s reality: most cultured meat companies are venture-backed with no revenue, unproven at scale, and facing regulatory uncertainty. As the industry matures (higher \(m\)), WACC should decline toward food-industry norms. Our 8-20% range brackets both Humbird’s 10% baseline and CE Delft’s 7-12% range.
Code Reference
The full model implementation is available in multiple formats:
| Format | Location | Notes |
|---|---|---|
| JavaScript (interactive) | Embedded in dashboard | Primary implementation — the authoritative version |
| Python (reference) | dashboard/model.py | Standalone script; kept for reference but not used by the dashboard |
An earlier Squiggle version of a related cost model exists at models/cm_cost_v0.2.squiggle and on Squiggle Hub. It is not currently synced with this dashboard — parameter ranges, the technology-adoption structure, the micronutrient revision (April 2026), the growth-factor quantity tightening (April 2026), and the dollar-swing sensitivity analysis all diverge between the two. Treat the Squiggle version as a historical snapshot, not an equivalent reference implementation. Re-syncing the Squiggle model with the dashboard parameters is on the project TODO list but has not yet been done.
Key Functions
The JavaScript implementation includes:
simulate(n, seed, params)— Main Monte Carlo loopsampleLognormalP5P95(rng, p5, p95, n)— Sample from lognormal given percentilessampleBetaMeanStdev(rng, mean, sd, n)— Sample from beta distributioncrf(wacc, years)— Capital Recovery Factor calculationspearmanCorr(x, y)— Rank correlation for sensitivity analysis
View the page source for the complete implementation.
Limitations
Known Limitations
Static snapshot model — Projects costs for a single projection year (adjustable 2026-2050). Does not model year-over-year learning curves; instead, the “maturity” parameter serves as a proxy for cumulative industry development.
Downstream is optional — Scaffolding, texturization, and forming costs can be included via toggle (+$2-15/kg for structured products).
No geography — Assumes generic global costs, not region-specific labor, energy, or regulatory factors.
Limited contamination modeling — No batch failure or contamination event distributions.
Some correlations may be underspecified — While the maturity factor induces correlation between technology adoption, reactor costs, and WACC, other potential correlations (e.g., between cell density and cycle time) are treated as independent.
Recommendations for Use
| Recommendation | What it means | Why |
|---|---|---|
| Use for relative comparisons | Compare scenarios (e.g., “Cheap GF tech reduces costs by 40%”) rather than absolute predictions (“Costs will be $8.50/kg”) | When parameters are uncertain, the difference between scenarios is more stable than the absolute baseline — see example below |
| Focus on probability thresholds | Ask “What’s P(cost < $10/kg)?” not “What’s the expected cost?” | Probabilities integrate over uncertainty and map to decisions (“Is this worth pursuing?”) |
| Validate parameters with experts | Before publishing, check that ranges match current industry knowledge | Published literature lags industry by 1–3 years; some parameters (GF costs) change rapidly |
| Report uncertainty ranges | Always show 90% CI, not just median | Wide intervals reflect genuine uncertainty; suppressing them gives false confidence |
| Explore correlated scenarios | Use the maturity slider to see “good world” vs “bad world” bundles | Technologies, financing, and supply chains often develop together — though some breakthroughs (e.g., GF biotech) may be partially independent of others (e.g., bioreactor manufacturing). See correlation assumptions for discussion |
What “relative comparisons” means in practice
✅ Good use: “Achieving 150 g/L cell density instead of 50 g/L would reduce costs by 40–60%”
❌ Risky use: “Cultured chicken will cost $8.50/kg by 2030”
The model is better at estimating how much a technology improvement helps than what the final cost will be, because relative effects are less sensitive to baseline assumptions.
Sources
- Risner et al. (2021) - UC Davis ACBM Calculator — Original academic cost model
- Humbird (2021) - Scale-Up Economics — Independent TEA analysis
- Good Food Institute - State of the Industry Reports — Annual industry overview
- The Unjournal - Cultured Meat Evaluations — Independent research evaluations
Changelog
| Version | Date | Changes |
|---|---|---|
| v0.3 | 2026-02 | Separated Learn page, consolidated technical docs |
| v0.2 | 2026-02 | Explicit scale/uptime, beta distributions, maturity factor |
| v0.1 | 2026-01 | Initial Squiggle model based on UC Davis |