Live: https://asclepius-lyart.vercel.app · methodology index · worked example
Asclepius is the first open rNPV tool that prices the path-dependency between a sponsor's balance sheet and their trial's probability of success. Capital-constrained sponsors run worse trials; well-capitalized sponsors enable adaptive designs and stronger regulatory engagement. We make that explicit and quantifiable, with citations on every number.
A biotech venture valuation workbench: phase-gated probability of success with an explicit reflexivity adjustment, risk-adjusted NPV with 10,000-path Monte Carlo and tornado sensitivity, an 8-pillar diligence scorecard (including a novel computational-infrastructure pillar), and cited deal comparables — all built on a modular registry pattern so new analysis modules, data sources, and runtime agents can be added by dropping a folder.
The architecture is intentional and replicable. Every methodology decision is documented in
methodology/; every reference value is in versioned JSON with a source field;
every PoS adjustment is logged with rationale and citation. Asclepius is built as a maintained
methodology platform with a quarterly refresh cadence tied to BIO/Informa and Damodaran's
publication calendars — not a one-shot portfolio artifact.
The headline result — adagrasib, applied as a retrospective backtest using only public information available before the KRYSTAL-12 Phase 3 readout (June 2022 cutoff):
| Scenario | Framework value | Reality |
|---|---|---|
| Pre-readout (Phase 2) base case | $516M | Mirati's market cap at cutoff |
| Pre-readout Monte Carlo P25–P75 | $290M – $700M | Distribution over 10K simulated paths |
| Post-readout (at NDA) base case | $4,581M | — |
| Actual BMS acquisition (Oct 2022) | $4,800M | Brackets within 5% |
| Winner's-curse-adjusted private value | $4,400M – $4,600M | Pfizer was reported as competing bidder |
The verdict: BMS paid a 4.6% premium to the success-weighted central case — defensible as strategic KRAS-franchise value, but no margin of safety for a financial buyer. Read the full worked example.
# Backend (Python 3.11+)
cd api
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
uvicorn app.main:app --reload --port 8000
# Frontend (Node 20+, pnpm 10+)
cd web
pnpm install
pnpm devThen open http://localhost:3000/diligence/adagrasib.
The hero interaction: drag the reflexivity slider in the left sidebar from "Adequate" to "Well capitalized" and watch the PoS waterfall, rNPV base case, Monte Carlo distribution, and tornado all update live. That single interaction is the framework's load-bearing demo.
A DiligenceRecord pydantic model is the single source of truth; three auto-discovered
registries (data_sources/, modules/, agents/) plug into FastAPI on startup; the Next.js
frontend reads the /api/modules manifest endpoint and dynamically renders one panel per
module.
See docs/architecture.md for the full contract on adding a new
module, data source, agent, or exporter without touching the core.
- PoS engine with a six-step adjustment chain (base rate → modality → mechanism modifiers → regulatory designations → reflexivity), every step logged in the audit trail with a primary-source citation
- rNPV engine with phase-gated cash flows, mid-year discount convention, Monte Carlo over log-normal peak sales / beta LOA / normal WACC / triangular COGS, and tornado sensitivity
- 8-pillar diligence scorecard with red/green flag mechanics — including the novel computational-infrastructure pillar that explicitly prices a sponsor's AI/ML/data assets
- Cited deal comparables with provenance on every cohort row (encorafenib, selpercatinib, larotrectinib; the kinase-TKI single-asset M&A cohort)
- Methodology folder — seven writeups, ~20,000 words, every empirical claim cited to a peer-reviewed source or labeled as an analytical choice with explicit rationale
- Worked example anchored to the BMS / Mirati adagrasib transaction, framed as retrospective calibration (not prediction)
- CI workflow running
ruff+pytest+pnpm typecheck+pnpm buildon every push
- v1.1 — three runtime agents: Auto-Diligence (spelunker-powered), Memo Writer (investment-memo-writer skill), Game-Theory Adversary (signaling-screening + auction-theory + bayesian-persuasion). Each maps to one UI button; coordination is via the deterministic core, not agent-to-agent calls.
- v1.5 — ML-PoS Prior + Calibration Dashboard: BioBERT classifier as a second-opinion PoS path benchmarked against the CT Open public benchmark, plus SQLite-backed Brier-score tracking. Architectural test of the registry pattern — zero edits to existing core code.
- v2 — portfolio-sizing tab and conversational "Ask Asclepius": different audience (biotech fund manager) and different surface (chat). The chat tab is seductive but weakly differentiated; the portfolio tab is a separate product.
See the product thesis for the three strategic trajectories (portfolio artifact, maintained methodology platform, embedded in real workflows) and why Trajectory B is the realistic ceiling.
Asclepius is positioned as a maintained tool, not a frozen artifact:
| Trigger | Effort |
|---|---|
| BIO/Informa publishes the next annual cohort (typically Q2) | 30 min — refresh api/app/data/base_rates.json |
| Damodaran's January cost-of-capital update | 15 min — refresh api/app/data/wacc_benchmarks.json |
| Major biotech M&A closes | 30 min per deal — add a new JSON to api/app/data/comparables/ |
| Semi-annual methodology sweep | 2–3 hours — re-read writeups against current values |
| Framework run on a public asset | 1 min — log_prediction, then python api/scripts/sync_predictions_to_public_log.py + commit. See methodology/10-public-prediction-log.md. |
| Public catalyst lands (FDA action, M&A, readout) | 5 min — resolve_prediction with source citation, sync + commit |
Log a new prediction (replace placeholders with the asset's actual values):
curl -s -X POST https://asclepius-api.fly.dev/api/modules/calibration/log_prediction \
-H "Content-Type: application/json" \
-d '{
"asset_name": "<asset>",
"phase": "phase_2",
"therapeutic_area": "oncology",
"modality": "small_molecule",
"capital_position": "adequate",
"predicted_pos": 0.161,
"reflexivity_multiplier": 1.0
}'
# → {"id": "<uuid>"}Resolve a prediction when the catalyst lands:
curl -s -X POST https://asclepius-api.fly.dev/api/modules/calibration/resolve_prediction \
-H "Content-Type: application/json" \
-d '{
"prediction_id": "<uuid-from-log_prediction>",
"outcome": 1,
"outcome_source": "FDA accelerated approval, NDA 216340, Dec 12 2022."
}'
# → {"updated": true}Publish to the public log + commit:
cd "$(git rev-parse --show-toplevel)"
python api/scripts/sync_predictions_to_public_log.py
git add predictions/
git commit -m "Log <asset> prediction" -m "<outcome source if resolved>"Reference data is JSON-first with source fields on every row, so refreshes don't require
code changes. See docs/architecture.md for the
contract.
The ten writeups are designed to be read in any order, but for a first pass:
02-reflexivity-thesis.md— the framework's load-bearing intellectual claim. ~2,000 words. Reads as an investor memo.05-worked-example-adagrasib.md— the retrospective backtest applied to the BMS / Mirati transaction. ~2,400 words. Ends with a verdict paragraph an investment committee can act on.06-signaling-equilibrium.md— the formal game-theoretic derivation of the reflexivity adjustment from Spence (1973) and Akerlof (1970), with modern empirical support from Kao (2024 Management Science), Lo & Thakor (2022 Annual Review), and Ma et al. (2025). ~3,000 words.00-product-thesis.md— strategic framing of the project itself, via The Loom's six-phase AI-native product framework. Read if you want to understand what kind of thing Asclepius is becoming, not just what it computes.
Or browse the methodology index on the live deployment.
- API: Python 3.11+, FastAPI, pydantic v2, numpy/scipy. 56 tests, all passing.
- Web: Next.js 14 (App Router), Tailwind, recharts, react-markdown, TypeScript. Production build clean.
- Deploy: Vercel (web) + Fly.io (api) — live at
asclepius-api.fly.dev. Seedocs/deployment.md. - CI: GitHub Actions running ruff + pytest + pnpm typecheck + pnpm build on every push.
To our knowledge, no widely-used open-source Python rNPV library for biotech exists. Educational content in the space (Models Hub, Vision Lifesciences, BiopharmaVantage) is methodology articles; operational tools (Vision Lifesciences' product, vendor offerings) are closed-source/commercial. Wong, Siah, Lo (2019) did not release code or data — both are constrained by Informa's proprietary licensing.
Adjacent open project: bvssaisantoshi19/clinical-trial-outcome-prediction solves the prediction-end of the PoS problem using AACT (ClinicalTrials.gov) data. Doesn't address rNPV, scorecards, or comparables — useful as a future reference for the v1.5 ML-PoS module's training pipeline.
Asclepius is positioned as the first open-source implementation tying phase-gated cash flows + reflexivity-adjusted PoS + Monte Carlo with documented prior distributions + audit-trail discipline in one codebase.
The methodology cites peer-reviewed work or primary industry sources for every empirical claim. The canonical references:
- Spence, M. (1973). Job Market Signaling. Quarterly Journal of Economics.
- Akerlof, G.A. (1970). The Market for "Lemons". Quarterly Journal of Economics.
- Stewart, J.J., Allison, P.N., Johnson, R.S. (2001). Putting a Price on Biotechnology. Nature Biotechnology 19(9).
- Wong, C.H., Siah, K.W., Lo, A.W. (2019). Estimation of clinical trial success rates and related parameters. Biostatistics 20(2).
- Lo, A.W., Thakor, R.T. (2022). Financing Biomedical Innovation. Annual Review of Financial Economics 14.
- Kao, J. (2024). Information Disclosure and Competitive Dynamics. Management Science.
- Ma, S., Han, W., Lê Cook, B., et al. (2025). Predicting accrual success for better clinical trial resource allocation. Scientific Reports 15.
- BIO / Informa Pharma Intelligence / QLS Advisors (2021). Clinical Development Success Rates 2011-2020.
- Damodaran, A. (2025). Cost of Capital by Industry (US). NYU Stern.
Full per-writeup citations are in methodology/.
MIT — see LICENSE.
The methodology writeups are released under the same license. If you build on the reflexivity adjustment, the productization-of-methodology framing, or the audit-trail discipline, an acknowledgment in the relevant docs is appreciated but not required.