423 Matching Annotations
  1. May 2026
    1. The welfare mapping is unresolved

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

    2. 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.

    3. 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

    4. 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 ?

    5. 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.

    6. 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

    7. 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

    8. 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.

    9. 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

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

      this doesn't seem to follow from the previous sentence

    11. 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."

    12. 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

    13. 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'.

    14. 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.

    15. 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

    16. 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.

    17. 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.

    18. 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)

    19. 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.

    20. 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.

    21. 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. 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

    2. 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.

    3. 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?

    4. 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?'

    5. 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.

    6. 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

  2. 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. (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

    6. 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.
  3. 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.

    2. here Animal welfare & food systems High Priority Mar 24, 2026 |EAFORUM gpt-5.4-mini ▾ Details This looks l

      the EA forum linked papers are not showing the actual paper titles

    1. Pure wet cell mass vs. cultivated ingredient vs. hybrid product vs. retail-equivalent

      quick tooltip and also link to an explainer (in the 'learn') section detailing these differences between these definitions of output ... Also, which papers do what here? If it's complicated, do that in a tooltip.

    2. Basis

      Column widths are off. Make the columns with more text wider than the columns with little text. Make that a skill or a sort of general instruction. It comes up a lot whenever you generate these HTML documents. !

    Annotators

    1. A latent factor (0=nascent, 1=mature) that affects all technology adoption, reactor costs, and financing. High maturity = correlated improvements.

      better explanation (or link) how this particular modeling was chosen, as well as the defaults here

    2. Cell Density Range Code viewof density_lo = Inputs.range([10, 100], { value: 30, step: 10, label: "Cell Density Low (g/L)" }) viewof density_hi = Inputs.range([50, 300], { value: 200, step: 10, label: "Cell Density High (g/L)" })

      allow 'reset defailt' here too

    3. Model Parameters Code viewof simpleMode = Inputs.toggle({label: "Simplified view (recommended)", value: true})

      A button to 'hide parameter setting' and 'show parameter setting/ could help, then whin it's hidden, the rest of the page content could be bigger so we can see chart sbetter

    4. Two controls for growth factors:

      This is too much information for this dashboard, and I think most of it is present in either the learn or the technical reference dashboard. Give it as mostly a TL;DR, and then link that section for further explanation.

    5. How far along the price reduction curve we are within each regime:

      This needs further explanation. What year are you talking about for this "How far along"?

    6. Cost Breakdown by Component (Total: $122.59/kg):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 chart below bigger

    7. Model Structure Code viewof include_capex = Inputs.toggle({label: "Include capital costs (CAPEX)", value: true}) viewof include_fixed_opex = Inputs.toggle({label: "Include fixed operating costs", value: true}) viewof include_downstream = Inputs.toggle({label: "Include downstream processing", value: false})

      You should have a box to show/hide the 'blending share' parameter

    8. Pure cells vs. consumer products: Most cultivated meat products on the market or in development are hybrid products — 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.

      Tooltip some specific quotes on blending share

    1. The paper’s object is an abstract characterization of strategy-proof social choice rules for selecting a public-good level. While public decision rules can matter in principle, the abstract theorem is not tied to a concrete policy domain, institution, or implementation setting. There is no evident link to a specific decision-maker, welfare question, or operational policy lever where an evaluation would affect choices at scale.

      So why did you rate it 10/10 for decision relevance?

    2. This is a strong Unjournal candidate: it is directly about improving job recommendation systems used by a public employment service, has clear welfare implications for job seekers, and uses randomized field experiments rather than purely predictive metrics. The paper addresses a decision-relevant policy question—how to design algorithms that improve worker outcomes rather than platform clicks/applications—and appears to offer actionable guidance for public and private labor-market intermediaries. As a working paper with experimental evidence and a model-based welfare metric, it has high timing value and likely benefit from independent evaluation.

      I don't see what global priorities relevant decision this targets. Not sure why this was prioritized.

    1. Following our evaluation of Rethink Priorities' cultured meat forecasting work and ongoing TEA evaluations, this workshop focuses on what the evidence tells us about cultivated meat's production cost trajectory. We recognize that consumer acceptance, regulatory pathways, and environmental implications also matter — but we're centering on costs because this seems among the most pivotal and tractable questions right now, and we want to bring focused expertise to bear. Pivotal Questions Initiative → 📊 Cost Modeling Dashboard → EA Forum: CM Viability → CM_01 on Metaculus → RP Evaluation →

      this feels overwhelming/too many links -- find a way to make it less cluttered

    2. Or mark your availability on the grid (optional) Click cells for any time blocks you could join. Click a date to select that row, a time header to select that column, or a week label to select the whole week. All times US Eastern; hover for UK/CET.

      adJust this to start on April 15th and go through the first week of May #implement

    3. Note: This workshop is still in early planning. We're gathering initial interest and availability. Final dates and agenda will be confirmed once we have responses from key participants.

      Make it clear that we're planning for the late April or very early May #implement

    1. We're continuing the discussion asynchronously and will be publicly sharing key materials soon. This site is evolving into a resource page.

      We're continuing the discussion asynchronously and will be publicly sharing key materials soon. This site is evolving into a resource page and hub for feedback, dialogue, and belief elicitation.

    1. Evaluation: Cash Transfers vs Psychotherapy in Liberia (McGuire et al.) Unjournal Evaluation Summary Applied Comparison Direct experimental comparison of cash transfers and psychotherapy in an LMIC context. Particularly relevant because it measures multiple outcomes—psychological distress, consumption, life satisfaction—allowing cross-metric comparison. Evaluation Summary

      This is not the title nor the authors -- fix this hallucination

    2. Essential

      'essential' is too strong. Maybe 'Most important for discussion'. And note there's no way to do a thorough read of all of these in 2 hours. Just leave that 'time allotment' out'

    1. 📚 Further Reading: Unjournal Evaluations The Unjournal has commissioned independent evaluations of papers relevant to this debate: → StrongMinds & Friendship Bench Evaluation — Critical assessment of HLI's meta-analysis and cost-effectiveness claims → Long-Run Effects of Psychotherapy on Depression — Cuijpers et al. meta-analysis on therapy durability → Cash Transfers vs Psychotherapy: Comparative Impact — McGuire et al. direct comparison in Liberia → Mental Health Therapy as a Core Strategy (Ghana) — Barker et al. on scaling community-based therapy

      Put this somewhere else - I don't think it belongs within the focal case folding box. It should have its own folding box in the reading section and references

    1. Practical guidance for funders now Given the uncertainties above, what should funders actually do? This section offers a decision-oriented framework, not a single prescription.

      I didn't want the AI to give this 'practical guidance' -- that's meant to come out of the session!!

    1. Zoom chat for quick reactions;

      No, I only want the Zoom chat to be used by the session organizers and mainly just to guide people on the structure of the workshop and where we're going next

    2. Segment structure is set; timing may adjust slightly. Updated March 11, 2026

      12 Mar 2026 -- Not entirely set -- we may add some small things. But close to set, and trying to harden the timings so we can send out a schedule soon that people can trust

    1. calibrated

      Give the definition of 'calibration' here as a footnote/tooltip. Roughly, things that when you say something will happen X% of the time it in fact occurs X% of the time, not much more nor less.

      If you are asked to give 80% CIs, the true values should fall in those intervals close to 80% of the time. If it happens less than 8/10 times, you're being overconfident, and stating too narrow intervals. If it happens more than 8/10 times, you're being underconfident, and stating overly wide intervals

    2. Consider the value obtained when using the best feasible measure for cross-intervention comparison in contexts like the focal context. What share of this value is obtained, in expectation, from using the simple linear WELLBY measure (as defined above) for all interventions?

      Above the 'operationalized version' Add a discussion box here for people to answer the more general question.

    1. We're organizing the discussion around four key questions:

      Restate this to more directly address the question in the heading on "what we want to achieve".

      We want to: - Help researchers understand practitioners' highest-value questions and considerations and trade-offs. - Help practitioners understand the most relevant and useful up to date research and its implications - Enable communication and collaboration, by getting on the same page, agreeing on terminology, identifying points of consensus and high-value cruxes, etc. - State and measure our beliefs about key issues and questions openly, with precision and calibrated uncertainty, driving high "value of information" Bayesian updating - Drive better decisions over measuring the impact of interventions in LMICs and using existing measures, leading to better funding decisions

      (This is a bit long -- just adjust the basic first sentence a tiny bit, and then footnote this more detailed theory of change. ) #implement

    2. The neutral point is the life satisfaction level representing neither positive nor negative welfare—essentially the boundary between "life worth living" and "suffering." Estimates range from 2-5 on the 0-10 scale. Peasgood et al. (2018) tentatively estimate ~2.

      Add: "This is particularly important for comparing interventions that have impacts on mortality (and perhaps fertility). We should discuss this in this workshop to an extent, but we might de-emphasize it to avoid overstretching the scope, depending on interest and timing.

    3. Other measures include QALYs (quality-adjusted life years), income-equivalent measures, and multi-dimensional poverty indices. QALYs are similar to DALYs but measure health gained rather than lost.

      This is being adjusted. NB we focus more on DALY than QALY because it's used a lot more in the LMIC intervention context, largely due to its ease of collection

    4. Unlike WELLBYs, DALYs are based on expert-derived disability weights rather than self-reported wellbeing—weights are constructed through surveys of health professionals rating hypothetical health states.

      Are you sure that it's through surveys of health professionals? I thought the surveys were of people in the general population. And this explanation doesn't mention how an individual's DALY is constructed based on asking them about their health states or something. What's the data used?

    5. Vignette exercises: respondents rate hypothetical people's life satisfaction based on descriptions, revealing how individuals anchor the scale and enabling cross-person calibration.

      Do they actually do this in the paper? doublecheck

    6. Calibration questions ask respondents to rate well-defined scenarios (e.g., "How satisfied would you be if you won $1,000?"). By observing how people rate the same reference points, researchers can estimate individual differences in scale use.

      Is this a reasonable examlpe? Do they ask questions like that in the exercises mentioend in the paper?

    7. Cost-effectiveness estimates vary by an order of magnitude depending on how WELLBYs are valued relative to DALYs.

      What's the source for this OOM claim?? Find and link it with a verbatim quote . #implement

      Also it's not in our 'evaluation summary as far as I know'

    1. Each scale point represents an equal welfare increment. If violated, summing is invalid and interventions targeting different baselines become incomparable.

      David Reinstein --- personally, this is the one I find least plauslible and most important.

    2. nterpersonal Comparability LSA = 7 ≈ LSB = 7 implies UA ≈ UB When two people report the same score, they experience similar welfare. Scale-use heterogeneity violates this assumption.

      I don't think this one is necessary if we can (instead) assume that differences are equivalent. For example, if we assume that person A is actually experiencing higher welfare at all levels of reported score, but the differences between the scores are comparable, then compared to interventions for measured differences in well-being, that shouldn't matter.

      I think it could also still be reliable if the distribution between the two populations is the same, even though we don't have specific inter-person comparability between any two compared individuals.

    3. 1 WELLBY = 1-point increase on a 0-10 life satisfaction scale × 1 person × 1 year W = Σi Σt LSit

      Those are not clearly defined here, nor the indexing

    1. We'll produce a practitioner-focused summary document, belief elicitation results with confidence intervals, and structured notes.

      Change this to "we hope to" and "We will share outputs". -- I can't guarantee right now that we'll get enough input or have bandwidth to produce this. #implement