292 Matching Annotations
  1. Last 7 days
    1. we could first build a public candidate list

      this would be integrated with AI tools, enabling efficient use of people's time, and clear learning and improvement. See (and note, and link) https://uj-prioritization-prototype.netlify.app/ as an early prototype ... that one mainly for economics+, not law atm.

      This should be an important part of this section

    2. Practical applicability and influence

      These criteria leave out 'existing prominence and influence' which is also important for this consideration. If the paper is already being widely read, quoted, and used in important impactful ways, that makes it more relevant for public evaluation .

    3. Publish citable evaluations and ratings, with evaluator anonymity optional.

      add a bit more on the conversation with practitioner organizations and impact-driven funders about the impications of the research and the evaluations .

    4. Working papers, workshop drafts, and preprints could benefit from fast structured feedback before journal placement, policy uptake, or citation in public debate.

      This is sort of generic -- why is this especially relevant to legal scholarship?

    5. Scholarship can shape legislation, court reasoning, agency action, policy design, and what future lawyers learn to treat as authoritative.

      annotations with relevant references here, especially mentioning the importance of jurisprudence in the USA

    6. , and improve it.

      remove 'and improve it' because the 'it' here is vague. The idea is to help us improve this curation and it's usefulness. We should also invite experts and practitioners to suggest additional research.

    1. Claude: Deep-research update (June 2026) — new sources added on omnivore fraction of PBM consumers.

      Three high-confidence new findings integrated:

      1. GFI US Consumer Snapshot (Jan 2025, Morning Consult Dec 2024, n=3,079): 72% of past-year US PBM eaters are active meat-eaters (57% omnivore + 15% carnivore); only 11% veg*n/pescatarian. Retail panel corroboration: 87% of US retail PBM dollars come from meat-buying households ($970M of $1,118M, NielsenIQ Homescan 2023). Now shown as primary chart in §04.5, replacing the less-precise Hartman Group range.

      2. Neuhofer & Lusk (2022, Scientific Reports — already at src-29) details added: 85.97% of PBMA-buying households also purchased conventional ground meat; only 2.79% were exclusive PBMA buyers. Peer-reviewed, IRI scanner panel, n=38,966 households — the strongest methodological data point in the set.

      3. Bryant Research UK (July 2023, n=1,000, new src-48): Occasional UK PBM consumers ~67% omnivore (consistent with prior claims). Key nuance: frequent UK PBM buyers split ~1/3 each (omnivores, flexitarians, non-meat-eaters). The ≥50% arithmetic lower bound for weekly consumers still holds regardless of frequency segmentation, but the 70–80%+ claim is better supported for occasional buyers or all-buyers combined than for the most committed frequent buyers specifically. This caveat is now added to the §04.5 evidence table and §08.

      Stat card updated: '≥50%' replaced by '72%' (US direct survey) as the headline figure, with UK lower bound in the tooltip. TLDR and §08 paragraphs updated accordingly.

    1. Product label + independent confirmation from: Food Navigator, Bloomberg Intelligence, SPINS/NielsenIQ, or academic publication

      these should be checked -- this is AI suggestions

  2. May 2026
    1. Give both tools the same one-hour task: create a sample template_map.csv from three approved, non-confidential documents and produce a lawyer-readable Markdown summary. Compare setup friction, edit quality, citations to source files, and how easy it is to resume the work later.

      this seems like a good test

    1. Unjournal Pivotal Questions — Annotate this page via Hypothes.is (select any text to comment). This working note assesses whether current PBM market evidence is informative enough to study substitution and welfare impact — input to the workshop's research-value question. Produced by David Reinstein with iterative AI prompts.

      make it clearer that this is a living document, under active adjustment, and responsive to suggestions

    2. hicken, shrimp, fish, beef, pork, eggs — since welfare weights differ sharply across them

      link or tooltip support for this, for people not familiar with welfare weights etc

    3. (c) which animal types bear that displacement and in what proportions,

      Put the 'which animal products, and their welfare burden' as the fourth item (d instead of c), because that weighting acts on 'the net reduction in production of each animal product'

    4. supply

      I'd make (c) 'how much the production of each animal product adjusts in response in market equilibrium' [tooltip: this may not be 1 for 1, e.g., with scarcity or increasing marginal costs, if some consumers purchase less of an animal product, other consumers may pick up the slack. For example, with an ~inelastic supply of wild fish, if some consumers switch to plant-based equivalents, this may drive prices down, getting other consumers to buy more wild fish]

    5. This is a relatively lenient threshold (a product can be marginally worse for the median consumer and still cross it

      I don't see how this follows -- if 50%+ rate it as as good or better than the conventional product, that should imply that the median consumer finds it 'as good or better'. Correct?

    6. Market-share premium: categories with better average taste vs. worse-tasting categories²⁴ 10× more market share

      This wotks better as a note than a quantitative report. Same for "Most favorable public category result" -- perhaps put those at the bottom in a few sentences rather than a tabular format

    7. The strongest indicator for self-consumption is the lapsed-buyer taste data:

      I don't think this is 'the strongest evidence'. To me the GFI Germany/UK surveys seems particular strong at least for the EU.

    8. How to read the evidence for the Pivotal Question

      This should be a folding box folded by default, but also I'm not sure these explanations are particularly helpful here.

    9. his is about the information content of share data — not an argument against studying displacement rates directly through scanner panels or field experiments

      I don't think this sentence is necessary. It's deeply confusing as well. You should probably remove this.

    10. he retail market-share, consumer-panel, and taste-comparability data compiled here give partial evidence on term (a). They give weak or no direct evidence on (b), (c), or (d).

      I don't think I agree with this. I don't see how retail market share or taste comparability data tell you about the impact of interventions on plant-based consumption, for example. . Maybe leave these last two sentences out. Or put them in a very speculative tool tip.

    11. but price is the most studied and arguably the most tractable intervention

      I'm not sure that either of these things are true. Cut the last part of the sentence, maybe. We're focusing on price because it's something economists are familiar with studying, and there potentially is actual data and variation in prices. (And also, we try to focus on one thing at a time rather than an overwhelmingly large set of questions. )

    12. d the consumer surveys that establish omnivore dominance do not ask whether the purchase was for the respondent's own

      However, we've reported on this -- doublecheck it and rethink/revise

      In Germany and the UK, the consumer survey story is also broader than a vegn niche. GFI Europe’s late-2024 survey found that 47% of German adults and 41% of UK adults said they were already reducing meat or following a meatless diet, and that 60% in Germany and 56% in the UK reported at least monthly consumption of some plant-based product category. For plant-based meat specifically, 25% of Germans and 23% of Brits reported consuming it in the last month. [DR: That’s an interesting and high level! Consuming (eating?) or just buying it? – digging in here – https://gfieurope.org/wp-content/uploads/2025/05/UK-Understanding-plant-based-category-dynamics-motivations-and-consumers.pdf it seems like we are talking about omnivores actually consuming PBM (regularly), which is important for our question about ‘is it mostly vegns eating PBM’? ] That supports a “mainstream-adjacent but imperfectly integrated” story much better than either a niche-vegan story or a full-substitution story. [13]

    13. within

      I'd change the order of the channels. Start with the taste parity, then the PBM buyers mostly being omnivores, and finally, the greater penetration in the natural/specialty channel as well as for some particular products like breakfast patties (the "greater penetration in some products and channels" can be bundled together as point three).

    14. The welfare mapping is unresolved

      this is a complication but not an insurmountable barrier. Some products are indeed individually distinguished in the relevant data.

    15. Market share is at best a ceiling on displacement.

      this is true but it doesn't justify "not studying discplacement through scanner data, experiments, etc." The market share we're looking at here is meant to help us understand how plausible it is that substitution patterns currently matter.

    16. displacement ratio × displaced animal mix

      This 'X' is not quite clear ... it would have to be some sort of vector multiplication or summed multiplication for the 'mix' part

    17. Consumer surveys and purchase panels consistently show that the large majority of PBM buyers are omnivores or flexitarians who also purchase conventional meat. The category is not, and has never been, predominantly a vegetarian market.

      Dig in on this more carefully -- are we sure these are 1. 'regular PBM buyers?' and 2. They are not just buying it for veg*n friends and relatives ?

    18. households would have bought on the specific PB occasions.

      "Would have bought otherwise, over the relevant period". Note that displacement need not occur in the exact same shopping trip. Intertemporal concerns could cut both ways. E.g., the 'within-trip substitution' would overstate the total substitution if people commpensate for having purchased PBM on one trip with "now let's eat more real meat" on the next trip or in a restaurant.

    19. Rough conventional meat + aquatic-animal food flow, before a retail price conversion³¹³²

      Do the rough price conversion, and also give the 'food flow' for the PBA -- we need a like-for-like comparison

    20. No public source here gives a like-for-like global conventional retail denominator. A rough calibration is still possible: 365 Mt of global meat plus roughly 165 Mt of aquatic animals used for direct human consumption implies about 530 Mt of conventional animal-product flow before retail conversion. At illustrative retail-equivalent prices of $3, $5, and $8/kg, the denominator would be about $1.6T, $2.7T, and $4.2T, making the $6.6B PB meat/seafood category roughly 0.4%, 0.25%, or 0.16% of that broad scale. This is not a matched market-share estimate.

      make this estimate a bit more prominent

    21. s where most of the value and animal-suffering of conventional meat sits,

      Can you provide a source for 'where most of the animal-suffering of conventional meat sits'? E.g., what share of chicken consumption is 'whole cut'? What share is on-bone? What about shrimp consumption globally -- whole vs ground up/paste.

    22. Current PB buyers are mostly dual-buyers, not substituters. GFI/SPINS data shows 96% of US plant-based meat buyer households also buy conventional meat, and they buy conventional meat far more frequently. Plant-based meat is functioning as an addition to existing diets in most cases, not a replacement. This complicates the welfare arithmetic: each dollar of PB sold may displace much less than a dollar of conventional.

      See previous discussion. This actually makes it MORE interesting to study, and offers more potential for displacement, the case in which it seemed that only prior vegetarians were buying this stuff

    23. Trajectories from current data may be misleading for projecting future adoption with better products.

      this doesn't seem to follow from the previous sentence

    24. Quality at parity hasn't unlocked majority adoption. Plant-based nuggets — the format that has reached sensory parity in blinded testing — still hold only 2 to 3% of the conventional nugget category. If matching taste isn't sufficient, then taste investments alone may have lower returns than the parity-headroom argument suggests.

      Think about this more and state in a a more reasoned logical way. Note that we're largely thinking about price here (as well as taste, nutrition and availability). We're largely focused on the the impact of cost and price on consumption and substitution. In fact, skeptics were saying that "we don't care too much about substitution and price impacts because 1. it has such a low market share and 2. it's not taste or nutrition comparable."

    25. Foodservice growth is real where products work. EU plant-based burger servings grew 90% from 2019 to 2023 in the Big 5 according to Circana. In channels where the product fits the use case and the price gap is hidden in menu pricing, adoption looks very different from retail. This is itself a quality-of-format finding.

      Looks like circular reasoning here. I'm not sure that this 'finding' is meaningful. It might need rephrasing

    26. because most PB buyers are dual-buyers, but the category is not literally too small to matter.

      At the end, it doesn't quite make sense. If all PBM buyers (or consumers) were previously vegetarians, then the displacement would be close to zero. If they all only ate meat or PBM and consumed the exact same amount of protein every day, the displacement would be 100%. So it's not the 'dual buyers' that makes displacement less than 100% per se. The question is to what extent consumers, whether vegetarians or omnivores, are buying PBM 'instead of meat' or 'instead of other vegetarian/vegan food'.

    27. evidence that taste is one binding constraint.

      I'd say "evidence suggesting that it may be a binding constraint" ... people may report one thing, but actually something else could be fundamentally behind their decision, perhaps even something ~subliminal that they can't identify themselves.

    28. NECTAR 2024 sensory study: category-level parity with conventional²⁰ Nuggets only

      An important fact, but a little bit strange to mix in here. It really belongs in the section below. ... tit's not quantitative either

    29. closest international analogu

      ? Have you really checked all other countries? Are you saying the US is a leader as well as Germany? That doesn't comport with my casual empiricism.

    30. but the cleanest topline is not the 6 to 7% US patty figure; it is the combination of low overall share with selective format-level strength and partial taste parity.

      skip This last bit, it's tpo AI, "not this but that" and the patties are a distraction.

      Consider whether this is really overlapping the bit in italics just after the title.

    31. Public format-level summaries suggest much higher penetration in a few reformed categorie

      "reformed categories" Is not clear here. Give an example number (other than patties)

    32. Germany at 3.1% with similar product quality to the US's 1.4% shows that non-product factors (sausage culture, retailer strategy, private-label investment)

      "Shows" It is too strong. Maybe quotes suggest, but even then you're not really providing transparent reasoning here.

    33. Roughly 9% of US households tried plant-based meat and stopped.

      That's just a simple subtraction of 20% -11%? Because it's also possible that more than 9% stopped but some new users entered.

    34. n the US it reaches 6 to 7% of conventional packaged patty dollar sales². The category-average understates penetration in the formats where taste and texture gaps are smallest, but the patty figure is itself an overstatement of plant-based meat's share of all hamburger consumption (see caveat below).

      Leave the 'patty' figure out -- put that whole discussion in a tooltip. Add back some numbers about EU or German share of some other relevant categories like sausage (or what's the highest penetration category other than patties?)

    1. The sceptical concerns are partially but not fully supported. Overall share is genuinely low (US retail: 1.4%; Germany: 3.1%) and most products lag on taste. But three patterns make the evidence more informative than a simple dismissal implies: within the US, channel-level penetration varies widely — natural/specialty retailers such as Whole Foods reach ~8% of packaged-meat dollars vs 1.4% in mainstream multi-outlet retail; most buyers are omnivores or flexitarians rather than prior veg*ns, though whether they buy for their own consumption or as proxy for a veg*n household member remains open (§04.5); and better-tasting product categories capture 10× more market share, suggesting taste improvements have measurable adoption effects. Whether these patterns extrapolate to higher-quality, larger-market conditions is the central unresolved question.

      Most of this is given in the 'a quick take' below. Just make this 2 sentences and flag 'unfold below for a quick take on the evidence'. And incorporate " better-tasting product categories capture 10× more market share, " with the reference tooltip into the fold below. -- Everything else here is basically already covered in that fold!

    2. versus 1.4% in mainstream multi-outlet.

      wait -- 1.4% is also the OVERALL -- are you sure 1.4% is 'mainstream"? The natural organic channel is virtually none of the market!

    3. Each footnote in the dashboard links to a numbered row here. The full quote (or specific evidence) is shown in italics. URLs are direct links to the cited page or PDF where available.

      some numbers are missing -- e.g., where is 36-39?

    4. here someone has published

      "where someone has published" -- this language is a bit too informal and amateurish. Improve it ... something like "where we could find a published cross-tabulation..."

    5. in formats, channels, and geographies to study?

      not sure we need this type of variation .. more like 'is there sufficient available relevant data to permit meaningful statistical analysis.

    1. r: how much do plant-based products actually replace animal products? This is the focus of The Unjournal's Plant-Based Substitution Pivotal Question.

      We are expanding this focus a bit for the workshop to consider substitution issues more generally, and perhaps more.

    2. Background note: a first-pass Claude summary of evidence on PBA penetration and taste-comparability is available for sharing. It is exploratory rather than a vetted literature review.

      "Background: Is the PBA market mature enough for substitution measures to matter" -- make that the italiicized header for this but

    3. ROI and Research Gaps (~20 min) — Is PBA funding competitive with corporate campaigns given current evidence? What research would most reduce uncertainty?

      This is only going to work if we have people involved with animal welfare funding and modeling it on board

    4. rticipants share updated beliefs

      Belief elicitation and updating probably cannot occur in real time. Too much thinking is needed. As in, the previous workshops will encourage people to submit their beliefs before the workshop, and then talk them through it during the workshop, and then ask them to submit their beliefs after the workshop. Finally, share what others thought and ask them to update their beliefs.

    5. live discussion of disagreements

      We're probably going to need to structure this live discussion. It's not clear what an organic discussion of this would look like. Do we have specific computing models? Will people be citing certain papers? Will it just be vibes?

      Also don't use the word "disagreements" here?

    6. credibility and limitations of each

      I don't think you need this bit at the end. I think that's kind of obvious. Instead, we could frame it in terms of ~'which approaches are (more) reliable for the practical questions?'

    7. Methods Debate (~30 min) — Structured exchange between demand-estimation approaches and experimental/survey approaches; credibility and limitations of each

      This should be longer if we get participation from researchers in this area.

    8. he empirical finding that most PBA purchasers are omnivores;

      This is stated too strongly. We don't have this as a finding yet. It was just an initial literature review.

    1. What share of cultured meat companies (those with capex over $10 million) will design and build their own bioreactors by 2036?

      Consider: is this more about fit-for-purpose equipment vs. pharma-grade-- the former could also include CM-specific B2B offerings.

    1. Achievable densities in a 20kL bioreactor2420,000L used as reference scale for industrial production in most TEAs. Smaller facilities are R&D-scale. by 2036 (CM_16); binding constraints; and trade-offs in custom-built vs. off-the-shelf bioreactor design25Off-the-shelf: pharma-grade bioreactors, expensive but proven. Custom-built: fabricated to reduce capex (some claim under $1M for 20kL). The choice significantly affects capex in TEAs. Learn: bioreactor types →. Discussion space — unfold & annotate via Hypothes.is

      20k L or 10k L?

    1. Other Pivotal Questions Workshops 🥩 Cultivated Meat (Apr 2026) 🥗 Plant-Based Alternatives (May 2026)

      PBM workshop probably deferred to June -- update

  3. Apr 2026
    1. New to this model? Start with the Simplest Model → — a shorter version with only the biggest levers, line-of-sight explanations, and no jargon. You can carry your settings over to this Advanced Model when you’re ready.

      skip the 'and no jargon' ... and it's "focusing on some key levers"

    2. Save / share this scenario:

      The ability to do this should be a bit more prominent and signposted perhaps at the top and the very bottom as well. Ideally there should be a way to save this and then have a page that gives a side-by-side comparison of the results from two scenarios without extra clutter ... This would be particularly useful if it's something that's easy to develop.

      For now you can explain (tooltip) how you could do something like this by copying two shareable links and looking them in side-by-side browsers, or saving the results somewhere and feeding it into an LLM to ask it to give a comparative analysis

    1. Earlier versions of this model carried a separate

      Make it clearer here initially that these micronutrients seems to be only a tiny cost, anyways.

      Also you don't need to make the quote "April 2026" change part of the header - perhaps just make that a note or a tooltip. This is too much discussion of our process

    2. he CDMO toll is sampled from a lognormal distribution (default p5 = $4/kg, p95 = $40/kg) representing the range of per-kg fees a future food-grade contract manufacturer might charge. See the CDMO mode section below for a full description.

      Is it reasonable to think of the CDMO total as being per kilogram? Or is that just the result of other computations? Look for references in discussion about this to verify

    3. Return to: Interactive Cost Model | New to this topic? How Cultured Chicken is Made | Audio Review (MP3) | Workshop (May 2026)

      Let's update the audio review with new content

    4. Sensitivity check: Users can explore partially-correlated scenarios by: - Setting maturity high but technology probabilities low (tests “scale-up succeeds, tech fails”) - Setting maturity low but one technology probability high (tests “isolated breakthrough”)

      itemized list not rendering

    1. Cell Density / Media-Use Override Code viewof override_mode_constraints = Inputs.toggle({ label: html`Override process mode constraints <abbr style="cursor:help;text-decoration:underline dotted;font-size:0.85em;color:#888;" title="When ON: process-mode sampling is bypassed and you can specify density and media-use ranges directly. Useful for experts wanting to model specific bioreactor configurations.">(?)</abbr>`, value: urlBool("override_mode_constraints", false) }) Override process mode constraints (?)override_mode_constraints = false Code viewof density_lo = Inputs.range([10, 100], { value: urlNum("density_lo", 30), step: 10, label: "Cell Density Low (g/L)" }) viewof density_hi = Inputs.range([50, 300], { value: urlNum("density_hi", 200), step: 10, label: "Cell Density High (g/L)" }) Cell Density Low (g/L) density_lo = 30 Cell Density High (g/L) density_hi = 200 What is cell density and why does it matter so much? (click to expand) Cell density (g/L at harvest) determines how much meat you get per liter of bioreactor volume. Higher density means less media per kilogram of product, which directly reduces the largest variable cost. Density Media per kg Typical context 10 g/L ~100 L/kg Current lab scale 50 g/L ~20 L/kg Near-term commercial target 200 g/L ~5 L/kg Optimistic TEA projection This is multiplicative. If media costs $1/L, going from 10 to 50 g/L cuts media cost from $100/kg to $20/kg. Going to 200 g/L cuts it to $5/kg. Cell density is arguably the single most important technical parameter for cost reduction. Current state: Most published data shows 10-50 g/L. Some companies claim higher, but these claims are difficult to verify independently. Lever VC’s 2025 report claims 60-90 g/L has been achieved by “second generation” companies. Whether 200 g/L is achievable by 2036 is a genuine open question. What about bioreactor volume / tank size? (click to expand) Bioreactor volume is another major uncertainty that is currently implicit in this model rather than a direct parameter. The model computes total working volume as: total_volume = annual_output / (density × productivity × 365). It then applies a power-law scaling for CAPEX. But individual bioreactor tank size matters for several reasons: Factor Small tanks (2,000-5,000L) Large tanks (20,000-50,000L) Cost per liter Higher Lower (economies of scale) Contamination risk Lower Higher (single failure = large loss) Mixing/O2 transfer Easier Harder at scale Flexibility More modular Less redundancy Industry precedent Pharma standard Requires new engineering Key debate: Some companies (e.g., Vow) claim to have built 20,000L bioreactors for under $1M in 14 weeks using custom food-grade designs. If true, this dramatically changes the CAPEX picture. Humbird’s analysis assumed pharma-grade bioreactors at $50-500/L. Why it’s not a direct slider (yet): Adding individual tank size would require modeling the number of tanks, contamination batch-failure rates, and the trade-off between scale and reliability. This is a planned enhancement. For now, the Plant Capacity and Cell Density parameters together determine total working volume, and the custom reactor ratio (in full view) captures the pharma-vs-food-grade cost difference. Workshop discussion: This is one of the key cruxes for the upcoming CM workshop — what bioreactor scale is realistic, and what does it cost? Advanced: Media-use multiplier (×) What is this — and why can it be below 1? (click to expand) The model computes media volume per kg as (1000 / density) × multiplier. A value of 1 is traditional batch mode (fill reactor once, harvest); >1 is perfusion (multiple media-volume equivalents flow through during the run); <1 represents media recycling, fed-batch with concentrated feeds, or harvest-side cell concentration. The Learn page walks through all three mechanisms. Why the range changed (April 2026): the default p5–p95 was tightened from 1–10× to 0.5–3.0×. The old floor of 1.0 was too restrictive — the GFI 2023 cost-competitive scenarios assume 8–13 L/kg, which at 60–90 g/L density implies a multiplier of roughly 0.5–1.2. A floor of 1.0 mechanically excluded those scenarios no matter how high you pushed density. The new range covers both recycled/fed-batch (<1) and standard perfusion (up to ~3×); values of 5–10× remain plausible for heavily media-intensive processes but are now a stress-test region rather than the default. Show multiplier sliders Code viewof media_turnover_lo = Inputs.range([0.25, 2], { value: urlNum("media_turnover_lo", 0.5), step: 0.05, label: "Media-use multiplier p5 (low end)" }) viewof media_turnover_hi = Inputs.range([1, 10], { value: urlNum("media_turnover_hi", 3.0), step: 0.1, label: "Media-use multiplier p95 (high end)" }) Media-use multiplier p5 (low end) media_turnover_lo = 0.5 Media-use multiplier p95 (high end) media_turnover_hi = 3 Code // URL state writer: serialize every viewof value that DIFFERS FROM ITS // DEFAULT into ?key=val pairs, then debounce-write to the URL via // history.replaceState. Critical invariant: if every slider is at its // default, the URL stays bare (pathname + hash only) — no query string. // This is required so Hypothes.is can find annotations on the canonical // bare URL; a polluted URL breaks annotation lookup for every visitor. // The writer depends on every viewof name below so OJS re-runs it // whenever any input changes. Reads nothing from urlParams. { // Hard-coded defaults must stay in sync with each Inputs.range() / // Inputs.toggle() declaration above and with the reset_adoption button. const defaults = { simpleMode: true, include_blending: false, blending_share: 0.25, filler_cost: 3, include_capex: true, include_fixed_opex: true, include_downstream: false, cdmo_mode: false, cdmo_toll_p5: 4, cdmo_toll_p95: 40, bundled_media: false, bundled_media_p5: 50, bundled_media_p95: 500, plant_capacity: 20, uptime: 0.90, maturity: 0.5, target_year: 2036, p_fedbatch: 0.20, p_perfusion: 0.50, p_continuous: 0.30, override_mode_constraints: false, p_hydro: 0.75, p_recfactors: 0.5, gf_progress: 50, wacc_lo: 8, wacc_hi: 20, asset_life_lo: 8, asset_life_hi: 20, density_lo: 30, density_hi: 200, media_turnover_lo: 0.5, media_turnover_hi: 3.0 }; const state = { simpleMode, include_blending, blending_share, filler_cost, include_capex, include_fixed_opex, include_downstream, cdmo_mode, cdmo_toll_p5, cdmo_toll_p95, bundled_media, bundled_media_p5, bundled_media_p95, plant_capacity, uptime, maturity, target_year, p_fedbatch, p_perfusion, p_continuous, override_mode_constraints, p_hydro, p_recfactors, gf_progress, wacc_lo, wacc_hi, asset_life_lo, asset_life_hi, density_lo, density_hi, media_turnover_lo, media_turnover_hi }; const usp = new URLSearchParams(); let hasDiff = false; for (const [k, v] of Object.entries(state)) { const def = defaults[k]; let matches; if (typeof v === "boolean") matches = (v === def); else if (typeof v === "number") matches = Math.abs(v - def) < 1e-9; else matches = (v === def); if (!matches) { hasDiff = true; if (typeof v === "boolean") usp.set(k, v ? "1" : "0"); else if (typeof v === "number" && Number.isFinite(v)) usp.set(k, String(v)); } } if (window._urlWriteTimer) clearTimeout(window._urlWriteTimer); window._urlWriteTimer = setTimeout(() => { try { const newUrl = hasDiff ? (location.pathname + "?" + usp.toString() + location.hash) : (location.pathname + location.hash); history.replaceState(null, "", newUrl); } catch (e) { console.warn("URL state update failed:", e); } }, 300); return null; } null

      This bit at the bottom seems to have generated some sort of error. It says "null"

    2. In our sensitivity analysis,

      A little bit more cagey about this. I'm not sure this holds in a robust way, not sure we fully checked. Say something like, "In our preliminary sensitivity analysis these seem to contribute less ..."

    3. doption, reactor costs, and financing. High maturity = correlated improvements.

      I'm going to link the fuller explanation in the formula and explainers page

    1. How is this cost calculated?

      I think we need a bit more explanation here, perhaps even including some unfolded quick points about what kind of model this is, how the uncertainty comes in through simulations, etc., and what we're assuming about correlation or lack thereof between the different elements. We don't want to keep this simple and short but people should have some idea of what exactly they're looking at

    2. Full formula documentation → Model formulas & metrics Code html`<div style="margin-top:1.5rem; padding:0.8rem; background:#f0f8ff; border:1px solid #3498db; border-radius:6px; font-size:0.88em;"> <strong>Want more control?</strong> The <a href="index.html">Advanced Model</a> exposes all parameters: financing (WACC, asset life), plant capacity, cell density, media-use multiplier, CDMO mode, bundled media pricing, and more. <div style="margin-top:0.5rem;"> <a href="${(() => { const cont=Math.max(0,100-p_fedbatch_s-p_perfusion_s); const p=new URLSearchParams({target_year:target_year_s,p_hydro:(p_hydro_s/100).toFixed(2),p_recfactors:(p_recfactors_s/100).toFixed(2),p_fedbatch:(p_fedbatch_s/100).toFixed(2),p_perfusion:(p_perfusion_s/100).toFixed(2),p_continuous:(cont/100).toFixed(2),include_blending:include_blending_s?1:0,blending_share:(blending_share_s/100).toFixed(2)}); return 'index.html?'+p.toString(); })()}" style="font-weight:600;">→ Open Advanced Model with these settings</a> </div> </div>`

      I think those formula explanations pertain to the full model. Perhaps it would be better to have this linked directly to a new page or part of the page that just explains this simpler model

    3. Standard equipment life range

      Give a bit more reference for this. I'm actually a bit confused as to which equipment we're talking about. Sourced reference would give more credibility.

    4. 8–20% range Typical food/biotech financing range

      Explain this more. Are we drawing this from this particular distribution? Make a note or a tool tip about how the results are generally not particularly sensitive to this parameter, given the explanation you gave before, where the capital costs are really a rather small component in this context.

    5. Parameter Value Why fixed Industry Maturity 0.5 (neutral) At 0.5 the maturity factor has zero net effect on probabilities or financing

      This explanation is incomplete or it just doesn't make sense. Can you elaborate, and why is this the baseline you think maturity should matter for something?

    6. Probability Thresholds Code { function card(thresh, prob, label, color, bprob) { const bc = prob > 30 ? color : '#ddd'; const blend = include_blending_s && bprob !== undefined ? `<div style="font-size:0.8em; color:#1a5276; background:#f0f8ff; border-radius:3px; padding:2px 5px; margin-top:4px;"> Blended: <strong>${bprob.toFixed(1)}%</strong> chance &lt; $${thresh}/kg </div>` : ''; return `<div style="border:2px solid ${bc}; padding:0.9rem; border-radius:8px; text-align:center;"> <h5 style="margin:0 0 0.2rem;">P(Pure cells &lt; $${thresh}/kg)</h5> <h2 style="color:${color}; margin:0.2rem 0;">${prob.toFixed(1)}%</h2> <small style="color:#666;">${label}</small> ${blend} </div>`; } const grid = `<div class="grid" style="grid-template-columns:repeat(4,1fr); gap:0.75rem; margin-bottom:1.5rem;"> ${card(10, stats_s.prob_10, 'could approach conventional chicken (~$5-10/kg retail)', '#27ae60', stats_s.bprob_10)} ${card(25, stats_s.prob_25, 'range where premium cultured products may be viable', '#3498db', stats_s.bprob_25)} ${card(50, stats_s.prob_50, 'potential niche/specialty market', '#f39c12', null)} ${card(100, stats_s.prob_100, 'substantially below current lab-scale costs', '#e74c3c', null)} </div>`; const blendRow = include_blending_s ? ` <p style="font-size:0.88em; color:#1a5276; font-weight:500; margin:0.5rem 0 0.3rem;"> Blended product (${stats_s.bs*100|0}% CM + ${((1-stats_s.bs)*100)|0}% filler at $3/kg) — consumer-relevant prices: </p> <div class="grid" style="grid-template-columns:repeat(3,1fr); gap:0.6rem; margin-bottom:1.5rem;"> <div style="border:2px solid ${stats_s.bprob_5>20?'#27ae60':'#ddd'}; padding:0.8rem; border-radius:8px; text-align:center;"> <h5 style="font-size:0.85em; margin:0 0 0.2rem;">P(Blend &lt; $5/kg)</h5> <h2 style="color:#27ae60; margin:0.2rem 0;">${stats_s.bprob_5.toFixed(1)}%</h2> <small>competitive with conventional chicken</small> </div> <div style="border:2px solid ${stats_s.bprob_8>30?'#3498db':'#ddd'}; padding:0.8rem; border-radius:8px; text-align:center;"> <h5 style="font-size:0.85em; margin:0 0 0.2rem;">P(Blend &lt; $8/kg)</h5> <h2 style="color:#3498db; margin:0.2rem 0;">${stats_s.bprob_8.toFixed(1)}%</h2> <small>competitive with premium chicken/beef</small> </div> <div style="border:2px solid ${stats_s.bprob_12>50?'#f39c12':'#ddd'}; padding:0.8rem; border-radius:8px; text-align:center;"> <h5 style="font-size:0.85em; margin:0 0 0.2rem;">P(Blend &lt; $12/kg)</h5> <h2 style="color:#f39c12; margin:0.2rem 0;">${stats_s.bprob_12.toFixed(1)}%</h2> <small>affordable specialty market</small> </div> </div>` : ''; return html([grid + blendRow]); } TypeError: Cannot read properties of null (reading 'toFixed')

      The probability thresholds yield this error when you select that you want to show blended product.

    7. TypeError: Cannot read properties of null (reading 'toFixed')

      I'm getting "TypeError: Cannot read properties of null (reading 'toFixed')" for the probability thresholds here

    8. Blended Product Code viewof include_blending_s = Inputs.toggle({ label: "Show blended product analysis", value: urlBool_s("include_blending", false) })

      A bit more signposting here, please. Tooltip, if it will fit nicely. Maybe move this one to the top. And make it selected by default.

    9. Projected 2036 Cost Distribution:where(.plot-d6a7b5) { --plot-background: white; display: block; height: auto; height: intrinsic; max-width: 100%; } :where(.plot-d6a7b5 text), :where(.plot-d6a7b5 tspan) { white-space: pre; }

      Make it easier to expand this or zoom in on it, perhaps making it full screen. However, type tool tips within the graph could also be helpful, to be able to see the lower percentiles better. I'm not seeing the P80 here.

    10. Year

      Important. Nothing seems to be changing when I change the projection year! I would think that this model allows for technological change, even if they don't explicitly set the equitment maturity parameter"!

    11. Continuous (auto): 35%

      Let them set all three, but still have them automatically add up.

      These parameters need a lot more explanation.

      I think we can use this space better here. If you're only going to be showing a small set of "results" tables (maybe with others in folding boxes), you could just put these below the results, allowing a more fleshed out and spacious explanation of what the parameters mean, rather than this sidebar.

    12. xposes only the biggest levers on cultured chicken

      that's potentially too strong a claim. yes, some of the most important levers are here, but we also focused on the ~'simpler' elements requiring less explanation #implement.

      I'd say something like "the simplest model lets you adjust some of the more important levers..."

    1. 38.7% chance blended product (25% CM, $3/kg filler) < $10/kg

      This is basically also given in the boxes below, but with slightly different thresholds, which is confusing.We only need one or the other, as far as I understand it. Simplify (if this is also the case in the intermediate sluttage advanced model, fix it there too. )

    1. Parameter Sensitivity: Dollar Swing in Mean Unit Cost :where(.plot-d6a7b5) { --plot-background: white; display: block; height: auto; height: intrinsic; max-width: 100%; } :where(.plot-d6a7b5 text), :where(.plot-d6a7b5 tspan) { white-space: pre; }

      financing cost should be here too

    1. Simplified view: Less pivotal parameters (plant capacity, uptime, financing costs, media-use multiplier) are set to reasonable defaults. In our sensitivity analysis, these contribute less than 10% of the variance in cost estimates. Switch off to adjust all parameters. Code // Reactive style block to hide/show full-mode-only and cdmo-only inputs html`<style> .full-mode-only { display: ${simpleMode ? 'none' : 'block'}; } .cdmo-only { display: ${cdmo_mode ? 'block' : 'none'}; } .override-mode-only { display: ${override_mode_constraints ? 'block' : 'none'}; } .separable-only { display: ${bundled_media ? 'none' : 'block'}; } .bundled-only { display: ${bundled_media ? 'block' : 'none'}; } .blending-only { display: ${include_blending ? 'block' : 'none'}; } </style>` .full-mode-only { display: none; } .cdmo-only { display: none; } .override-mode-only { display: none; } .separable-only { display: block; } .bundled-only { display: none; } .blending-only { display: none; }

      even the 'nonsimplified view' should have some baseline capital cost, w a reasonable default ... and does it enter into the tornado table?

    1. Cultured Chicken Production Cost Model CodeShow All CodeHide All CodeView Source

      Should we make a page for a "much simpler model" that is much more legible ... and that can be an introduction to this more complicated model --- potential nest

    2. P(Scalable Growth Factor (GF)

      This needs more signposting, explaining, and opening. It seems like it must be making some very ad hoc decisions here as to what scalable growth factor technology means.

    1. Cell Density (g/L)

      This is very much determined by which process we are using. It's not that you can adjust the cell density on its own. -- should it/can it switch to being the sensitivity to 'process choice'

    2. Which parameters have the most impact on the final cost? Each bar shows the dollar swing in mean unit cost between simulations where the parameter is in its top 10% versus its bottom 10%. Larger bars = bigger levers on cost. Code { const uc = results.unit_cost; // Deduplicated parameter list. // Removed vs. previous version (see explainer below for details): // • L/kg (volume) — deterministic function of density × media-use multiplier // • Uses Hydrolysates — regime-switch subsumed into Media $/L // • Has Cheap GFs — regime-switch subsumed into GF Price / GF Quantity const params = [ {name: "Cell Density (g/L)", data: results.density_samples, kind: "primitive"}, {name: "Media-use multiplier (×)", data: results.media_turnover_samples, kind: "primitive"}, {name: "Media $/L (incl. hydrolysate regime)", data: results.media_cost_L_samples, kind: "mixture"}, {name: "GF Price ($/g, incl. regime)", data: results.price_recf_samples, kind: "mixture"}, {name: "GF Quantity (g/kg, incl. regime)", data: results.g_recf_samples, kind: "mixture"}, {name: "Industry Maturity (latent — see note)", data: results.maturity_samples, kind: "latent"}, {name: "Plant Capacity (kTA)", data: results.plant_kta_samples, kind: "primitive"}, {name: "Utilization Rate", data: results.uptime_samples, kind: "primitive"} ]; const swings = params.map(p => ({ name: p.name, kind: p.kind, swing: conditionalSwing(p.data, uc, 0.10) })); const sorted = swings .map(s => ({...s, absSwing: Math.abs(s.swing)})) .sort((a, b) => b.absSwing - a.absSwing); const maxAbs = Math.max(...sorted.map(s => s.absSwing), 1); const pad = maxAbs * 0.30; const tornadoPlot = Plot.plot({ width: 900, height: 440, marginLeft: 290, marginRight: 100, x: { label: "Δ mean unit cost ($/kg): top 10% − bottom 10% of parameter", domain: [-maxAbs - pad, maxAbs + pad], grid: true, labelOffset: 40, tickFormat: d => (d >= 0 ? "+$" : "−$") + Math.abs(d).toFixed(0) }, y: { label: null, tickFormat: d => d, tickSize: 0 }, color: { domain: ["Increases cost", "Decreases cost"], range: ["#e74c3c", "#27ae60"] }, style: { fontSize: "13px" }, marks: [ Plot.barX(sorted, { y: "name", x: "swing", fill: d => d.swing > 0 ? "Increases cost" : "Decreases cost", sort: {y: "-x", reduce: d => Math.abs(d)} }), Plot.ruleX([0], {stroke: "black", strokeWidth: 1}), Plot.text(sorted, { y: "name", x: d => d.swing > 0 ? d.swing + maxAbs * 0.025 : d.swing - maxAbs * 0.025, text: d => (d.swing > 0 ? "+$" : "−$") + Math.abs(d.swing).toFixed(1) + "/kg", textAnchor: d => d.swing > 0 ? "start" : "end", fontSize: 12, fontWeight: 500 }) ] }); return html`<div style="font-size: 1em;"> <div style="font-weight: normal; font-size: 1.05em; margin-bottom: 0.5rem; color: #333;">Parameter Sensitivity: Dollar Swing in Mean Unit Cost</div> ${tornadoPlot} </div>`; }

      Make it clearer, explain better that this is about parameters not just the cost inputs.

    3. Sensitivity Analysis (Tornado Chart)

      Adjust this chart so everything is in absolute value outcome -- no need for positive vs negative (unless these switch sighns, I doubt it) #implement

    4. Technology Adoption & Process Mode (Realized) Code { const isOverride = results.mode_is_override; const pct_fb = (results.pct_fedbatch * 100).toFixed(0); const pct_pf = (results.pct_perfusion * 100).toFixed(0); const pct_ct = (results.pct_continuous * 100).toFixed(0); const modeCard = isOverride ? html`<div class="card" style="border: 1px solid #ddd; padding: 1rem; border-radius: 8px; text-align: center; grid-column: 1 / -1;"> <h5>Process Mode</h5> <div style="color: #888; font-size: 0.9em;">Override — using manual density / media-use ranges</div> </div>` : html`<div class="card" style="border: 1px solid #16a085; padding: 1rem; border-radius: 8px; grid-column: 1 / -1;"> <h5 style="margin-bottom:0.5rem;">Process Mode (realized)</h5> <div style="display:flex; gap:1.5rem; justify-content:center; font-size:1.1em;"> <span>Fed-batch <strong style="color:#e67e22;">${pct_fb}%</strong></span> <span>Perfusion <strong style="color:#16a085;">${pct_pf}%</strong></span> <span>Continuous <strong style="color:#2980b9;">${pct_ct}%</strong></span> </div> </div>`; return html`<div class="grid" style="grid-template-columns: repeat(2, 1fr); gap: 1rem; margin: 2rem 0;"> <div class="card" style="border: 1px solid #ddd; padding: 1rem; border-radius: 8px; text-align: center;"> <h5>Hydrolysates Adopted</h5> <h2 style="color: #27ae60;">${(results.pct_hydro * 100).toFixed(0)}%</h2> <small>of simulations use hydrolysates</small> </div> <div class="card" style="border: 1px solid #ddd; padding: 1rem; border-radius: 8px; text-align: center;"> <h5>Cheap Growth Factors</h5> <h2 style="color: #9b59b6;">${(results.pct_recf_cheap * 100).toFixed(0)}%</h2> <small>of simulations have cheap factors</small> </div> ${modeCard} </div>`; }

      this needs a reminder ... what generated it

    5. Where does the cost come from? This chart shows the average contribution of each cost component across all simulations. The largest bars are the cost drivers to focus on — these are where technological progress or parameter uncertainty has the most impact. Code { const mediaLabel = bundled_media ? "Complete Media (incl. GFs)" : "Media (incl. basal micros)"; const allComponents = [ {name: mediaLabel, value: mean(results.cost_media), color: "#27ae60"}, {name: "Growth Factors", value: mean(results.cost_recf), color: "#9b59b6"}, {name: "Other VOC", value: mean(results.cost_other_var), color: "#7f8c8d"}, {name: "CAPEX (annualized)", value: mean(results.cost_capex), color: "#e74c3c"}, {name: "Plant overhead OPEX", value: mean(results.cost_fixed), color: "#f39c12"}, {name: "CDMO Toll", value: mean(results.cost_cdmo_toll), color: "#e67e22"}, {name: "Downstream", value: mean(results.cost_downstream), color: "#1abc9c"} ]; // Filter out zero-value components (e.g., downstream when not included) const components = allComponents.filter(c => c.value > 0.001).sort((a, b) => b.value - a.value); const total = components.reduce((s, c) => s + c.value, 0); const chartContainer = document.createElement("div"); chartContainer.style.position = "relative"; // Expand/collapse button const expandBtn = document.createElement("button"); expandBtn.textContent = "Expand Chart"; expandBtn.style.cssText = "padding: 0.3rem 0.7rem; font-size: 0.8rem; cursor: pointer; border: 1px solid #ccc; border-radius: 4px; background: #f8f9fa; margin-bottom: 0.5rem;"; let expanded = false; expandBtn.onclick = () => { expanded = !expanded; expandBtn.textContent = expanded ? "Collapse Chart" : "Expand Chart"; chartEl.replaceWith(makeChart(expanded)); chartEl = chartContainer.querySelector(".cost-breakdown-plot"); }; chartContainer.appendChild(expandBtn); function makeChart(large) { const w = large ? 1200 : 1000; const h = large ? 700 : 580; const fontSize = large ? 14 : 13; const p = Plot.plot({ width: w, height: h, marginLeft: 200, marginRight: 140, x: { label: "Average Cost ($/kg)", grid: true }, y: { label: null }, marks: [ Plot.barX(components, { y: "name", x: "value", fill: "color", sort: {y: "-x"} }), Plot.text(components, { y: "name", x: d => d.value + 0.5, text: d => `$${d.value.toFixed(2)} (${(d.value/total*100).toFixed(0)}%)`, textAnchor: "start", fontSize: fontSize }) ], title: `Cost Breakdown by Component (Total: $${Math.round(total)}/kg)` }); p.classList.add("cost-breakdown-plot"); return p; } let chartEl = makeChart(false); chartContainer.appendChild(chartEl); return chartContainer; } Expand Chart

      collapse/expand not doing much here

    1. Why it matters: If production costs for pure cells reach ~$10/kg, even 100% cultured products could compete with conventional chicken. At $25-50/kg, hybrid products with moderate cell inclusion rates may still reach price parity. If costs remain >$100/kg, even hybrid products face significant price premiums. These thresholds inform whether animal welfare interventions should prioritize supporting this industry. Code html`<div class="grid" style="grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 2rem;"> <div class="card" style="background: linear-gradient(135deg, #3498db, #2980b9); color: white; padding: 1.5rem; border-radius: 8px;"> <h4 style="margin: 0; opacity: 0.9;">Median Pure Cell Mass Cost (p50)</h4> <h2 style="margin: 0.5rem 0;">$${Math.round(stats.p50)}/kg</h2> <small>$/kg pure cell mass (wet weight) — half of simulations above, half below</small> </div> <div class="card" style="background: linear-gradient(135deg, #27ae60, #1e8449); color: white; padding: 1.5rem; border-radius: 8px;"> <h4 style="margin: 0; opacity: 0.9;">Optimistic (p5)</h4> <h2 style="margin: 0.5rem 0;">$${Math.round(stats.p5)}/kg</h2> <small>Only 5% of simulations cheaper</small> </div> <div class="card" style="background: linear-gradient(135deg, #e74c3c, #c0392b); color: white; padding: 1.5rem; border-radius: 8px;"> <h4 style="margin: 0; opacity: 0.9;">Pessimistic (p95)</h4> <h2 style="margin: 0.5rem 0;">$${Math.round(stats.p95)}/kg</h2> <small>95% of simulations cheaper</small> </div> </div> ${include_blending ? html`<div style="background: #eaf7ea; border-left: 4px solid #27ae60; padding: 0.8rem 1rem; margin-top: 0.5rem; font-size: 0.9em;"> <strong>Blended product estimate (${Math.round(blending_share * 100)}% CM, ${Math.round((1-blending_share)*100)}% filler at $${filler_cost}/kg):</strong> Median <strong>$${stats.blended_p50.toFixed(1)}/kg</strong> · 90% CI: $${stats.blended_p5.toFixed(1)} – $${stats.blended_p95.toFixed(1)}/kg </div>` : html`<div style="background: #fef9e7; border-left: 4px solid #f39c12; padding: 0.8rem 1rem; margin-top: 0.5rem; font-size: 0.9em;"> <strong>Hybrid product estimate:</strong> At a CM inclusion rate of ~25% with plant-based filler at ~$3/kg, the blended ingredient cost would be approximately <strong>$${(stats.p50 * 0.25 + 3 * 0.75).toFixed(1)}/kg</strong> (median). Enable "Show blended product cost" in the sidebar to adjust these assumptions. </div>`} </div>`

      use tooltips for more for parts of this explanation to save some space

    2. Results Summary Code html`<div style="background: #f8f9fa; padding: 1rem 1.25rem; border-left: 4px solid #3498db; margin-bottom: 1.5rem; font-size: 0.95em; line-height: 1.6;"> <strong>What these numbers represent:</strong> Simulated <strong>production cost per kilogram of pure cultured chicken cells</strong> (<span title="Wet weight = the mass of cells as harvested from the bioreactor, including water content (~70-80%). This is the standard output basis used in most TEAs (Humbird 2021, Pasitka 2024). It does NOT include downstream processing into structured products, blending with plant-based ingredients, or retail margins. For comparison: Humbird reports $37/kg wet cell mass; Pasitka reports $13.75/kg wet cell mass (large perfusion). The widely-cited ~$6/lb Pasitka figure is for a 50/50 hybrid product, not pure cell mass. See our TEA Comparison page for details." style="text-decoration: underline dotted; cursor: help;">wet weight, unprocessed &#9432;</span>) in <strong>${target_year}</strong>, based on ${stats.n.toLocaleString()} Monte Carlo simulations. This is the cost to produce cell mass in a bioreactor — not the cost of a consumer product, and not retail price. <a href="compare.html" style="font-size: 0.9em;">[Compare to published TEAs →]</a> <br><br> <strong><span title="UPSIDE Foods' chicken cutlet is a blend of cultured chicken cells and plant-based ingredients. SuperMeat's chicken burger used ~30% cultured cells. The GFI State of the Industry 2024 report notes that 'hybrid products combining cultivated and plant-based ingredients are the most likely near-term path to market.' Eat Just/GOOD Meat's Singapore-approved product uses cultured chicken in a plant-protein matrix.">Pure cells vs. consumer products:</span></strong> Most cultivated meat products on the market or in development are <em>hybrid products</em> — blending a fraction of cultured cells with plant-based or mycoprotein ingredients. A product with (say) 20% cultured cells and 80% plant-based filler at $3/kg would have a blended ingredient cost far below the pure-cell cost shown here. The "price parity with conventional meat" threshold may therefore be achievable at higher per-kg cell costs than these numbers suggest. <br><br> <strong>Why it matters:</strong> If production costs for pure cells reach <strong>~$10/kg</strong>, even 100% cultured products could compete with conventional chicken. At <strong>$25-50/kg</strong>, hybrid products with moderate cell inclusion rates may still reach price parity. If costs remain <strong>>$100/kg</strong>, even hybrid products face significant price premiums. These thresholds inform whether animal welfare interventions should prioritize supporting this industry. </div>`

      Make this 'results summary' more prominent -- it should be at the top

    1. Process Mode Mix Code viewof p_fedbatch = Inputs.range([0, 1], { value: urlNum("p_fedbatch", 0.20), step: 0.05, label: html`Fed-batch weight <abbr style="cursor:help;text-decoration:underline dotted;font-size:0.85em;color:#888;" title="Low density (5–30 g/L), moderate media use (1–2×). Semi-continuous: nutrient-concentrated feeds added periodically. Less efficient than perfusion.">(?)</abbr>` }) viewof p_perfusion = Inputs.range([0, 1], { value: urlNum("p_perfusion", 0.50), step: 0.05, label: html`Perfusion weight <abbr style="cursor:help;text-decoration:underline dotted;font-size:0.85em;color:#888;" title="Medium-high density (30–150 g/L), higher media throughput (1–5×). Continuous media exchange with cell retention. Currently the industry standard for high-density CM production.">(?)</abbr>` }) viewof p_continuous = Inputs.range([0, 1], { value: urlNum("p_continuous", 0.30), step: 0.05, label: html`Continuous weight <abbr style="cursor:help;text-decoration:underline dotted;font-size:0.85em;color:#888;" title="Highest density (50–200 g/L), efficient media use (0.5–3×). Near-steady-state operation; cells grown and harvested continuously with optimized recycling.">(?)</abbr>` })

      needs more explanation

    1. Process Mode Mix Code viewof p_fedbatch = Inputs.range([0, 1], { value: urlNum("p_fedbatch", 0.20), step: 0.05, label: html`Fed-batch weight <abbr style="cursor:help;text-decoration:underline dotted;font-size:0.85em;color:#888;" title="Low density (5–30 g/L), moderate media use (1–2×). Semi-continuous: nutrient-concentrated feeds added periodically. Less efficient than perfusion.">(?)</abbr>` }) viewof p_perfusion = Inputs.range([0, 1], { value: urlNum("p_perfusion", 0.50), step: 0.05, label: html`Perfusion weight <abbr style="cursor:help;text-decoration:underline dotted;font-size:0.85em;color:#888;" title="Medium-high density (30–150 g/L), higher media throughput (1–5×). Continuous media exchange with cell retention. Currently the industry standard for high-density CM production.">(?)</abbr>` }) viewof p_continuous = Inputs.range([0, 1], { value: urlNum("p_continuous", 0.30), step: 0.05, label: html`Continuous weight <abbr style="cursor:help;text-decoration:underline dotted;font-size:0.85em;color:#888;" title="Highest density (50–200 g/L), efficient media use (0.5–3×). Near-steady-state operation; cells grown and harvested continuously with optimized recycling.">(?)</abbr>` })

      better explanation not only in tooltip

    1. The beliefs form is at uj-cm-workshop.netlify.app/beliefs.html. A short pre-workshop version goes out ~May 1. The in-workshop portion is lightweight: we'll orient you to the form at the breaks, and ask for a live response on CM_01 (the focal cost question) and one or two subquestions.

      This discussion of belief elicitation should not be within this S3 box. You can put it somewhere else, perhaps at the top or between S1 and S2? ()Folded box, folded by default.

    2. What should The Unjournal evaluate next — which papers, which questions, which specialists? [Suggested discussants]Suggested discussants:Matt McNulty (Tufts CCA) — wants to discuss tea_review + business_environment; strategic view of research priorities from an academic CM centerDavid Manheim (Technion/ALTER) — evaluator; wants to discuss modeling_hack; systematic view on what would be most informative to evaluate

      As I said in previous hypothesis comments, I don't want to make this so much about the Unjournal. To the extent that this is related to the Unjournal, it should be focused on the pivotal question ellipses. Which papers/projects best informs this ... Building on the framework and resources we've put together so far?

    3. Believer Meats published favorable TEA results in Nature Food yet shut down in late 2025.

      I don't like posing this contrast so specifically. It seems like casting aspersions. There must be a better way of expressing this.

    4. EU/CET participants likely available (15:00–16:00 CET):Aleksandra Fuchs (ACIB, Graz) — presenting in S1; likely joining earlyJordi Morales-Dalmau (Cultimate Foods, Berlin) — CET; indicated flexible availabilityMirjam Capuder (Univ Maribor) — indicated 15:00 CET availability on May 8Tom Bry-Chevalier (Univ de Lorraine) — CET; indicated May 8 availableJakub Kozlowski (Zurich

      no bold is needed here

    5. Claude: Implemented 6 items on /agenda (April 29): 1. All [Suggested discussants] tooltip triggers renamed from [suggested] to [Suggested discussants] 2. European drop-in row: added [likely attendees] tooltip listing EU/CET participants likely available at 15:00-16:00 CET (Aleksandra Fuchs, Jordi Morales-Dalmau, Mirjam Capuder, Tom Bry-Chevalier, Jakub Kozlowski + Bruno Cell, S2AQUAcoLAB, Cell Ag UK) 3. S1 intro: 'Pivotal Questions initiative' now links to GitBook page; 'Overview of cultivated meat biology...' links to learn.html 4. S1 intro: '(ideally presented by a participant with direct CM expertise)' parenthetical converted to a [note] tooltip 5. S3 public label: sharing rules inline text converted to [sharing rules] tooltip linking to recording-policy fold 6. S3 off-record label: same conversion with full S2 rules summary Replied to: Oana/gene-editing annotation (already in tooltip), European RSVP confirmation

    6. (ideally presented by a participant with direct CM expertise; otherwise DR will walk through the key model inputs and assumptions).

      make process parentheticals like this tooltips

    7. Claude: Implemented ~15 new annotations on /agenda (April 27): 1. S1 intro description updated: UJ/PQ/workshop intro, TEA overview by CM-expert participant 2. Aleksandra timing: '~10 min presentation + ~5 min comments/Q&A' 3. S1 Q&A slot: structured bullet list of proposed discussion topics (bioreactor scale, gene editing, etc.), note these are indicative not exhaustive 4. Timings note: overall session times fixed, within-session will be firmed up 5. Both break rows: '~5 min beliefs form orientation then ~10 min break' 6. S2 description: softer 'reduces barriers to frank exchange' framing; CDMO tooltip added 7. S2 discussion: CDMO bullet softened; push-back bullet expanded to emphasize ground-level knowledge 8. S2 opt-in sharing: clarified that others' comments need their approval too 9. S3 public/off-record: sharing rules labelled (S1 rules / S2 rules respectively) 10. S3 off-record text: revised away from 'what should UJ prioritize' to 'what follow-up is most valuable' 11. Post-workshop timing: made tentative ('still being finalized') 12. Attribution promise: softened to 'intended to remain confidential, policy still being worked out' 13. CM_12 discussion question rewritten (broader than just regulatory barriers); links to beliefs form CM_12 14. Process choice question: added 'which most likely at commercial scale' + model link tooltip 15. Cell line technology: added tooltip definition Still open: peHeekJx (cell line technology wording query), ttWCXkJx (RSVP check for European session — need form access), 68dkPEJx (additional structure/speakers for Q&A — needs David input).

    8. Claude: Implemented 5 annotations on /agenda (April 27): 1. Recording & sharing policy is now a collapsible fold, closed by default 2. Optional pre-sessions fold now starts collapsed (removed open attribute) 3. S1 em-dash changed to colon ('technology: the three main cost drivers'); pre-session rows use colons too 4. Badge tooltips fixed: removed overflow:hidden clipping, positioned below badge (not above), added click-to-open for mobile 5. Replied to Oana/gene-editing question noting current agenda status Not yet resolved: 'identical footnotes' request from BM4 annotation needs clarification on intended format.

    9. Claude: Done — 7 annotations implemented on /agenda: 1. Pre-sessions wrapped in a collapsible fold (starts open) — 'Optional pre-sessions & alternate slots' 2. 'Public · Recorded' badge on S1 now has a hover tooltip explaining recording, sharing, and opt-out 3. 'Internal · Off-record' badge on S2 now has tooltip explaining no-recording policy and opt-in sharing 4. Off-record fold renamed to 'Why this session is off the record — and what will be shared' 5. S2 sharing paragraph expanded to include the self-recording option (record your own, no other participants' audio) 6. S1 confirmed presentation fold now shows rough timings (11:00/11:30/11:50 ET) + gene editing context 7. Footnote updated from 'subject to minor adjustment' to honest 'still being finalized'

    10. If you are presenting slides in S2 and would like them shared more widely, just let us know and we will circulate them separately.

      Or would you like to record your own presentation to share on our channel

      implement

    1. Claude: Implemented all 16 of Oana Kubinyecz's Apr 9 annotations on learn.qmd:

      • 'rare natural trait' → 'rare spontaneous mutational event' (spontaneous immortalization row)
      • Cell source: added 'or from tissue at slaughter (more common at scale)' in two places
      • Cell line abbr: 'derived from a single cell' → 'derived from a selected population of cells'
      • Immortalized abbr: 'naturally or artificially' → 'spontaneously or through targeted genetic modification'
      • Cell types table: split Immortalized lines into spontaneous vs gene-edited rows; each with appropriate pros/cons
      • Added Embryonic stem cells (ESCs) row (naturally immortal, consumer acceptance concerns)
      • iPSCs: 'Can become any cell type' → 'Can differentiate into many cell types'
      • Cell banking: clarified that a proper bank maintains consistent performance; replacement is when vials run out or performance unexpectedly degrades
      • Cycle time: added abbr noting '5-10 days' is for fed-batch; true batch would be shorter
      • GF technology column: 'Technology breakthrough?' → 'Multiple strategies in development' with abbr listing precision fermentation, autocrine, gene editing to reduce GF dependence, cell adaptation
      • GM restriction note: corrected to explain GFs as processing aids are NOT restricted in EU; the jurisdictional fork concerns gene-edited cells in the final product, not GF production method
    1. Against this, Kalkar argued the opposite — that the contested empirical picture creates an opening: it may make sense to be a first-mover and evaluate now, given Ord's reframed 2027+ predictions"it may actually make sense to be a 'first-mover' and evaluate it now. Given that Toby Ord's reframed his predictions to 2027+, there's a window of opportunity"— Uma Kalkar.

      In spite of the mixed/negative opinions I'm slightly tempted to commission some sort of (limited) evaluation of this or of the Khatri et al. paper, to get our hands dirty in what seems to be an important space that we might be well suited for. -- David Reinstein

    2. I think engage with funders of AI and catastrophic risk, alignment etc. (I think Schmidt is interested, but are only funding research right now) -- it might be useful to reach out to them to provide an open evaluation of the work that they are commissioning / providing grants to. This way we also get to engage with AI researchers working at the forefront (at least in economics, broadly).

      @anirudh -- that sounds promising. Do you have a contact there?

    3. Claude: Implemented all 10 annotations from David's Apr 26 review:

      1. Tagat 'warning' reframed — it's a positive signal (lots to evaluate), not a deterrent. Section and tensions entry updated.
      2. NBER-track: added Tagat's actual quote + clarification that this is about a faster UJ evaluation pipeline, not that NBER is overlooked.
      3. Model cards tension noted — reviewing model cards/tech reports overlaps with technical AI safety territory; tension with anti-expansion consensus flagged.
      4. Habermacher realpolitik: marked as underspecified; further discussion needed.
      5. Governance cluster differentiated by tractability: risk parameters (quantitative, fits UJ) vs. middle-power/IR work (step beyond current empirical approach).
      6. Pre-booking: David's endorsement added + extension (evaluators choosing from a set).
      7. Technical AI safety: David's nuance added — not convinced the space is fully covered; Alignment Journal example.
      8. GCR relevance question added to labor/economics framing.
      9. Hypothes.is embed added with openSidebar:true — sidebar now opens by default for all visitors.
  4. Mar 2026
    1. The NBER format implies a working-paper stage

      not necessarily, it could also be published in a journal and still on NBER ... Sometimes you can see that in NBER, and sometimes not.