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.
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.
Process Mode (realized)
Is a blend of different densities attainable in one facility?
Cheap
How is "cheepness" defined?
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.
Distributions
With arbitrary parameterisation the plots are somewhat unnecessary. Parameterisation is already discussed in Model Formulas and Metrics tab.
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.
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)
30,000
Sure? In the model that we reviewed it was 200k.
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
Sensitivity analysis:
sensitivity testing is not a structural issue of the model -- consider either moving to a section dedicated to model testing or remove
sensitivity analysis caveats
irrelevant, please remove
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.