12 Matching Annotations
  1. May 2026
    1. What is CRF? (Intuitive explanation)

      This is way over-explained by AI. An external reference (even Wikipedia) would do it enough justice.

      As a general note, the site could offload some of the "clutter" by reference linking.

    1. Hydrolysates Adopted

      This is surprising. With 30k simulations, the mean of the simulated outcomes shouldn't deviate much from the slider's value. In my case I see 73% while the P(hydro) on a slider is 0.75 -- I'd expect the two to match.

    2. Distributions

      With arbitrary parameterisation the plots are somewhat unnecessary. Parameterisation is already discussed in Model Formulas and Metrics tab.

    1. relative sizes shift dramatically based on technology adoption

      Probably the most important conclusion. When adoption low and tech costs high, all other model components become an afterthought.

    2. 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: "Supplemental Proteins", value: mean(results.cost_supp_protein), color: "#e67e22"}, {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

      Expand/Collapse Chart button doesn't seem to do anything in my browser (Safari, Mac OS Tahoe 26.4.1)

    1. Key structural issues

      what's missing in this section: * the model relies fully on synthetically generated data (as opposed to empirical) * parameter/variable choices are largely arbitrary (though with clear links to actual practice, of course) * there's a varying level of granularity in model components -- some variables are lumped together into higher-order categories for simplicity's sake

    2. Sensitivity analysis:

      sensitivity testing is not a structural issue of the model -- consider either moving to a section dedicated to model testing or remove

    1. missing supplemental protein costs (albumin/transferrin/insulin), and the sensitivity chart being a dollar-swing ranking rather than a variance decomposition. We are addressing these incrementally.

      The observations mentioned are technicalities. More prominently, the review observed: strong (sometimes very) assumptions related to variables, their distributions and relationships between them.