Diaspore

Model and rigor

What the score is, how hindsight is kept out, what it was compared with, and what happened when it was tested. The tests that failed are on this page, not in a footnote.

What the score is

In: public signals about a lab or a young company as they stood on one date, the cutoff: papers, NIH grants, SEC Form D filings, clinical trials and FDA events. Out: a rank in a list. It is not a probability. A high rank means the candidate looks more like earlier cases that went on to the next step. In the fresh tests below, most top picks did not come true.

Each stage is a different decision, tested separately, with its own definition of a pick that "came true".

StageThe decisionA pick "came true" ifMonths allowed
S0 find a labWhich university labs are worth a first conversation about a company?company founded from lab with a disclosed financing (any stage) within horizon48
S1 company to seedWhich newly formed companies are worth watching for a seed round?seed or later round within horizon24
S2 seed to Series AWhich seed-stage companies are worth tracking for a Series A?series_a or later round OR IPO within horizon24
S3 Series A to Series BWhich Series A companies are worth tracking for a Series B or an IPO?series_b_plus round OR IPO within horizon24

What the learned models weigh most

The strongest features of each fitted model, with the sign of the weight. A plus pushes a candidate up the list, a minus pushes it down. Weights compare only within one column, and they describe the fit, not a cause.

S0 find a labS1 company to seedS2 seed to Series AS3 Series A to Series B
money raised by earlier companies of the lab's people +2.41total raised +1.79raised in the last two years +0.96raised in the last two years +1.03
topic share: gene +1.12trials, last three years +1.51size of the last round +0.83size of the last round +0.89
topic share: cell +1.00how fully the offering sold −1.36total raised +0.67in a biotech hub state +0.52
institution's past spinout rate +0.94founders' earlier companies +1.22in a biotech hub state +0.59came from a lab +0.48
number of trainees +0.84trials at phase two or later −1.18months since first filing −0.53months since first filing −0.48

How hindsight is kept out

What every result is compared with

A result without baselines is not a result. Each test carries all of these, or says why one is missing.

ComparisonWhat it isWhere
RandomThe hit rate of picking at random: the share of all candidates that are hits. Seeded; for ties, the expected value over every tie ordering, so no ranker gains from database order.Every test.
Citation rankLabs ranked by citations to the lab head's recent last-author papers (OpenAlex).Lab tests at earlier cutoffs. Not run at the lab test judged 2021-12-31: signal citations_3y covers 248/27415 candidates; partial coverage would rank missing as zero. Left out rather than run on partial data.
Single-signal rulesOne public signal, ranked high to low. The best of them in each test sits beside the model in the scorecard. S0: most papers, most NIH dollars; S1: SBIR award flag, founder has an earlier company; S2: investor tier, round size, total raised; S3: investor tier, round size, total raised.Every fresh test, one set per stage.
Rubric without economicsThe hand-set score with the economics layer removed. Ranks identically to the full rubric in every test in the scorecard, so it gives no separate comparison there.Every fresh test.
Blind AI read AI baselineAn AI model reads anonymised evidence (names, products and dates redacted, no tools) and gives each candidate a probability. Its numbers are AI-made and are labelled so wherever they appear.Every candidate on the company tests of model v2; a case-control sample (all hits plus twice as many non-hits) on lab tests and on the model v3 tests, compared by AUC only.

Receipts: the order things were done in

For each model test: the spec committed, then the fits frozen, then the model scored once, then the verdict. Each step is a git commit with its time. Failures and re-issues stay on the timeline. A test whose spec was committed after its result would show it here.

Model v1 pseudo-prospective

v2 (companies)

v2.1 (labs)

v3 (companies)

v4 (every stage, tested on the future)

18 dated predictions

Fresh-test scorecard

Pass mark, fixed before each test: the model must rank all candidates better than the hand-set rubric and better than every single-signal rule, with the 95% interval of the paired AUC difference entirely above zero. AUC is the chance that a pick which came true is ranked above one that did not; a half is a coin flip. The hits in the top picks are what an investor would look at; they are counts from small lists, so each carries its interval and what chance would give.

"Not passed" means exactly that. Where the interval against the blind AI read crosses zero, the word is "tie". Development numbers, the ones used to choose the model, are not shown as results. A pass at the lab stage (S0) is on labels built from SEC filings, which miss many spinouts; on labels corrected by a second blind audit of a sample of labs, the model and the hand-set rubric tie. That is in what failed.

TestJudgedCandidatesHits in the top picksModel AUC minus the hand-set rubricModel AUC minus the best simple ruleAgainst the blind AI read AI baselineVerdict
Fresh testsThe cutoff was never used to design or choose the model. Spec committed, fits frozen, scored once.
Model v2 S1 company to seed rubric ranking and outcomes2022-12-3124 months of outcomes1,097 candidates75 hits, base rate 6.8%8 of 25 in the top 25 (32%, 95% interval 17 to 52%)by chance 1.7 · hand-set rubric 6 of 25 · best single rule (SBIR award flag) 5 of 25+0.055 (+0.013 to +0.096)AUC difference, 95% interval+0.217 (+0.156 to +0.279)SBIR award flagtieAUC difference +0.011 (−0.017 to +0.039), all candidates, n = 1,097passedweakest comparison: hand-set rubric, lower bound +0.013
Model v2 S2 seed to Series A rubric ranking and outcomes2022-12-3136 months of outcomes1,031 candidates100 hits, base rate 9.7%8 of 25 in the top 25 (32%, 95% interval 17 to 52%)by chance 2.4 · hand-set rubric 4 of 25 · best single rule (total raised) 4 of 25+0.012 (−0.024 to +0.047)AUC difference, 95% interval+0.019 (−0.023 to +0.059)total raisedmodel aheadAUC difference +0.041 (+0.008 to +0.074), all candidates, n = 1,031not passedweakest comparison: hand-set rubric, lower bound −0.024
Model v2 S3 Series A to Series B rubric ranking and outcomes2022-12-3136 months of outcomes520 candidates42 hits, base rate 8.1%5 of 25 in the top 25 (20%, 95% interval 9 to 39%)by chance 2.0 · hand-set rubric 7 of 25 · best single rule (round size) 3 of 25+0.043 (−0.025 to +0.110)AUC difference, 95% interval+0.034 (−0.026 to +0.100)round sizetieAUC difference +0.022 (−0.030 to +0.077), all candidates, n = 520not passedweakest comparison: investor tier, lower bound −0.043
Model v2.1 S0 find a lab rubric ranking and outcomes2021-12-3148 months of outcomes27,415 candidates181 hits, base rate 0.7%3 of 25 in the top 25 (12%, 95% interval 4 to 30%)by chance 0.2 · hand-set rubric 1 of 25 · best single rule (most papers) 2 of 25+0.045 (+0.017 to +0.073)AUC difference, 95% interval+0.078 (+0.039 to +0.115)most paperstieAUC difference +0.027 (−0.024 to +0.079), case-control sample, n = 541passedweakest comparison: hand-set rubric, lower bound +0.017
Pre-registered, but not fully freshPre-registered and frozen, but many of its outcomes had been seen as outcomes of the earlier test before the model was designed. Read it as an overlapping re-test, not a replication.
Model v3 S1 company to seed rubric ranking and outcomes2023-12-3124 months of outcomes1,067 candidates55 hits, base rate 5.2%8 of 25 in the top 25 (32%, 95% interval 17 to 52%)by chance 1.3 · hand-set rubric 5 of 25 · best single rule (SBIR award flag) 2 of 25+0.048 (−0.010 to +0.104)AUC difference, 95% interval+0.258 (+0.184 to +0.327)SBIR award flagtieAUC difference +0.035 (−0.020 to +0.089), case-control sample, n = 165not passedweakest comparison: model v2, lower bound −0.017
Model v3 S2 seed to Series A rubric ranking and outcomes2023-12-3124 months of outcomes984 candidates76 hits, base rate 7.7%6 of 25 in the top 25 (24%, 95% interval 11 to 43%)by chance 1.9 · hand-set rubric 3 of 25 · best single rule (total raised) 3 of 25+0.013 (−0.033 to +0.060)AUC difference, 95% interval−0.014 (−0.073 to +0.043)total raisedtieAUC difference +0.012 (−0.045 to +0.072), case-control sample, n = 228not passedweakest comparison: total raised, lower bound −0.073
Model v3 S3 Series A to Series B rubric ranking and outcomes2023-12-3124 months of outcomes464 candidates31 hits, base rate 6.7%8 of 25 in the top 25 (32%, 95% interval 17 to 52%)by chance 1.7 · hand-set rubric 4 of 25 · best single rule (round size) 4 of 25+0.061 (−0.010 to +0.128)AUC difference, 95% interval+0.079 (+0.024 to +0.134)round sizetieAUC difference +0.039 (−0.068 to +0.144), case-control sample, n = 93not passedweakest comparison: hand-set rubric, lower bound −0.010
Pseudo-prospective, not pre-registered by commitCutoffs the project had already looked at. No commit badge. Shown so the record is complete, not as proof.
Model v1 S0 find a lab rubric ranking and outcomes2019-12-3172 months of outcomes25,687 candidates360 hits, base rate 1.4%6 of 25 in the top 25 (24%, 95% interval 11 to 43%)by chance 0.4 · hand-set rubric 6 of 25 · best single rule (most citations) 4 of 25+0.040 (+0.026 to +0.054)AUC difference, 95% interval+0.046 (+0.027 to +0.066)most citationstieAUC difference +0.011 (−0.020 to +0.042), case-control sample, n = 1,080passedweakest comparison: hand-set rubric, lower bound +0.026
Model v1 S1 company to seed rubric ranking and outcomes2018-12-3124 months of outcomes1,323 candidates111 hits, base rate 8.4%4 of 25 in the top 25 (16%, 95% interval 6 to 35%)by chance 2.1 · hand-set rubric 3 of 25 · best single rule (founder has an earlier company) 4 of 25+0.021 (−0.013 to +0.054)AUC difference, 95% interval+0.214 (+0.166 to +0.261)founder has an earlier companynot runnot passedweakest comparison: hand-set rubric, lower bound −0.013
Model v1 S2 seed to Series A rubric ranking and outcomes2018-12-3136 months of outcomes992 candidates194 hits, base rate 19.6%15 of 25 in the top 25 (60%, 95% interval 41 to 77%)by chance 4.9 · hand-set rubric 11 of 25 · best single rule (round size) 15 of 25+0.005 (−0.025 to +0.033)AUC difference, 95% interval+0.006 (−0.018 to +0.030)round sizenot runnot passedweakest comparison: hand-set rubric, lower bound −0.025
Model v1 S3 Series A to Series B rubric ranking and outcomes2018-12-3136 months of outcomes403 candidates88 hits, base rate 21.8%10 of 25 in the top 25 (40%, 95% interval 23 to 59%)by chance 5.5 · hand-set rubric 12 of 25 · best single rule (round size) 13 of 25−0.035 (−0.086 to +0.013)AUC difference, 95% interval−0.024 (−0.071 to +0.025)round sizenot runnot passedweakest comparison: hand-set rubric, lower bound −0.086

Post hoc tally

post hoc, descriptive. Post hoc, descriptive. On the 2021/22 seen tests (SEC labels), against our hand-set rubric v0.4 and each stage's single-signal rules, the model wins 54 of 56 distinct cells on point estimate and is AUC-separated (paired 95% lower bound > 0) in 8 of 14. It does not yet outscore on all metrics: it loses S3 top-25 to the rubric and S2 top-100 to total raised, and S2 (2 of 4) and S3 (0 of 4) are not separated. Seeded random, base rate and the blind AI are shown in their own columns; citation rank was not run. These comparators, metrics and counting were chosen after the numbers were seen.
Seen tests, merged; ties count as non-winsPoint winsAUC-separated
claim scope: rubric v0.4 + stage rules54 of 568 of 14
all comparators shown94 of 10116 of 26
S0 find a lab12 of 123 of 3
S1 company to seed12 of 123 of 3
S2 seed to Series A15 of 162 of 4
S3 Series A to Series B15 of 160 of 4

Not won: S2 top100 vs total_raised; S3 p@25 vs rubric_v0.4 = rubric_no_economics.

Post hoc, descriptive: the metric set, comparators and counting were chosen after these numbers were seen. It tests nothing; seen tests only; no v4 or blind-AI freeze outcome is read. No joint-power figure is cited (addendum 2 §1); only per-cell targets are shown. Counting: identical rankings (score identity) are merged into one cell. a tie counts as a non-win. top-k = metrics.expected_hits_at_k over tie orderings. paired stratified bootstrap, 2000 resamples, seed 0; AUC separated = lower bound > 0; AP / p@25 / top-100 intervals are grade (c). an IUT pass needs every lower bound > 0.

Frozen and waiting

Model v4 was fitted on every labelled year and then used to rank today's candidates at every stage. Those rankings were hashed and committed before any outcome exists. They are read when the outcome windows close. Until then they are not results.

StageCandidatesCutoffFrozen onsha256 (start)First read on or afterFinal read on or after
S0 find a lab27,3792025-12-312026-10-2238f5619b6651889c2028-06-302030-06-3048 months
S1 company to seed8712026-03-312026-10-22289cb707852504552027-09-302028-09-3024 months
S2 seed to Series A7832026-03-312026-10-22e6eb4493c8b1a0932027-09-302028-09-3024 months
S3 Series A to Series B3912026-03-312026-10-22beeba6c3b4ba53202027-09-302028-09-3024 months

The manifest of the frozen files has sha256 9c21e0ea80b6b6d0 and an OpenTimestamps stamp dated 2026-10-25.

Dated predictions

18 dated predictions, registered on 2026-10-18 in commit 69a9778. Each prediction's text is hashed; the text is shown only after its memo is human-verified. Revealed so far: 0. Voided predictions stay listed.

Horizon dateOpenVoidResolvedStatement
2027-09-30100sealed: sha256 only
2028-03-31200sealed: sha256 only
2029-03-311320sealed: sha256 only

What failed

What failed: twenty-eight things the audits caught

Updated 2026-10-23. Every number below is in the post's own file.

  1. Amendments leaked the future. A Form D amendment filed after the cutoff changed what a pre-cutoff round looked like. Fix: every filing is stored with its own public date, and rounds are rebuilt "as of" any date.
  2. The S1 universe was selected on its future. Companies with only SBIR awards entered the candidate set because they later filed a Form D. Fix: S1 requires a Form D by the cutoff.
  3. Industry tags from later filings chose who was a candidate. Fix: scope is decided per filing, through the date gate.
  4. Names leak outcomes. Given company names, the LLM baseline's S2 AUC rose from 0.74 to 0.84; some scorers cited "known" companies. Lab names showed no measurable leak. Rule: company-stage LLM scoring is anonymised.
  5. Product names leak too. Technology scorers named products from FDA and trial text. Fix: a redaction pass using a vocabulary built from 2010–2014 paper titles.
  6. Two of seven top-ranked spinout links were false. One was a Michigan namesake of a Stanford PI; the other was a "C." initial matched to "Clare". Fix by rule, not by hand: a PI match needs a state match, and an initial-only match needs an agreeing middle initial. It removed 146 of 569 S0 labels and cut the rubric's P@25 from 0.28 to 0.16.
  7. Firms were merged retroactively. Investor-tier clusters used fund filings from after the cutoff. Fix: clusters are built per date.
  8. Ties were broken by database id. Id order is ingestion order, which correlates with filing age. Fix: P@k is the expected value over tie orderings, for every ranker.
  9. A filter was written after seeing outcomes. The non-startup filter came after top-25 tables with outcomes had been viewed. It is disclosed, and we checked the direction: it lowered rubric lift.
  10. The filter also deleted real startups. Bare "imaging" and "dialysis" removed eXo Imaging and Home Dialysis Plus. Fix: facility words need facility context.
  11. "Underfunded technology" didn't survive. It looked real on FDA milestones, which were an artefact of devices accruing clearances. On VC-relevant milestones it is chance.
  12. Long biomedical summaries were blocked. A safety classifier stopped about a third of the blind economics replies. 40 of 200 labs have no economics profile, recorded as missing, not filled in.
  13. The fix for #6 threw away real founders. We hand-checked 20 of the 146 removed labels: 9 were real (PIs who moved, companies registered in a hub state or abroad). False-negative rate 0.45 (95% CI 0.26–0.66).
  14. The fix for the fix failed its holdout. A "rare name" exemption restored 61 links; on 15 fresh restorations, 6 were namesakes (an investor, a Toronto businessman, an MIT Sloan professor). Two further ideas from that holdout made things worse at scale and were dropped the same day. What we kept: an out-of-state match counts only if a co-author of the PI is on the same company's filings. It adds 21 links and removes none; S0 still undercounts out-of-state spinouts.
  15. Amendments of pre-2009 paper filings were dropped. An amendment whose original was a pre-2009 paper Form D had nothing to attach to, so its money vanished (Gliknik: $47.8M counted, $50.7M filed). An amendment of an amendment also attached to the wrong offering.
  16. Prediction wording was edited after registration. The resolution criteria for 17 of 18 calls were reworded a day after registration and after a check of the gap period. It changes one outcome: Gliknik's September 2026 amendment voids call #10 under the registered text but not under the edited one. The registered text governs; the edit is disclosed in the ledger.
  17. The provenance hashes could not be reproduced. Three aggregate source hashes had no written recipe and one could not be recomputed at all. Fix: one documented recipe, recomputed rows, and a hash on every cache-backed source.
  18. The first IPO-filing founder rule was 74% right. Reading "our scientific co-founders" out of S-1s found Icosavax's founders, but a fresh 35-pair hand check showed the word "founder" in a director's bio usually belonged to another company. The stricter rule (the phrase must tie the person to this company) scored 27/30 on new pairs and is the one in use.
  19. Our "fresh" lab test was not fresh at first. The learned model's lab design validated on outcomes that overlapped the holdout's years. The auditor caught it before any lab result existed; the design was re-issued (v2.1) with a shorter validation window and committed before the test.
  20. The first learned model was tested on dates we had already looked at. Its result was real but pseudo-prospective. The second model was scored once on dates nobody had looked at (labs end-2021, companies end-2022).
  21. SEC filings miss many academic founders. Of the 25 top "no company yet" labs on the current list, 10 heads had already founded companies (TScan, Epic Bio, Synthekine, Century, …) that appear in no filing our linker reads. Every test's labels undercount hits for this reason.
  22. The hand-set score never beat simple rules. In all eight original tests it was within noise of the best one-line rule. What finally beat it was learning from outcomes, tested properly: on the fresh tests the learned model passed for labs and for new companies → seed, failed for seed → A and A → B, and tied a blind AI model given the same evidence.
  23. New data on who bought each round did not clear the bar. Model v3 added Form D purchase terms (investor count, check size, brokers, convertible notes) and was pre-registered against end-2023. Its top 25 for new companies was the best yet (8 of 25), but no stage's interval cleared zero against our hand-set score, so it was reported and not used.
  24. The end-2023 test was not fully fresh. Many of its outcomes (2024-25) had already been seen as outcomes of the end-2022 test before v3 was designed: 20 of 55 new-company hits, 59 of 76 seed → A. The audit caught it; the site now calls it an overlapping re-test, not a replication.
  25. Grant types told us nothing new about labs. SBIR/STTR grants held by the lab head, NIH Pioneer and New Innovator awards, career-stage awards, milestone-driven grants and the trend in NIH dollars added nothing over the existing lab signals (mean average precision +0.0004 across three seen tests), so they stayed out of model v4.
  26. There is no fresh past date left to test on. Every cutoff with known outcomes has now been looked at. The next model (v4) is therefore tested on the future: its rankings of today's labs and companies were frozen, hashed and committed on 22 October 2026, and are scored once the outcome windows close (companies 2028, labs 2030). Its first spec claimed no outcome existed yet; the pre-freeze audit found early-2026 filings already in the data, so the spec was re-issued before any v4 output, with a read that ignores outcomes public before the freeze. The citation baseline at the end-2021 lab test is still not run (OpenAlex budget: about 850 of 27,000 labs fetched).
  27. Our labels missed most spinouts at the top. A blind web audit of the end-2021 lab test's top 25s (protocol committed first) found lab heads who founded companies in 2022-25 that no SEC filing links to them (Doudna, June, Porteus, Gray, ...). Corrected top-25 counts on a strict reading: learned model 3 → 9, our score 1 → 9, the most-papers rule 2 → 3, random labs 1 → 1. The labels missed about 70% of spinouts at the top; the simple rule looked closer to our methods than it is, and the learned model's edge over our score vanishes. My first tally re-checked a hand-picked subset and showed the model at 12; the auditor caught it, and one rule now applies to every lab. Famous lab heads are easier to find on the web, so part of the gap may be findability.
  28. The model's lab edge did not survive better labels. A second blind audit sampled 400 labs across the whole 2021 ranking and weighted them back to all 27,415. SEC links find an estimated 41% of 2022-25 spinouts (26-68%). On corrected labels the learned model and our hand-set score tie (AUC 0.747 vs 0.746); the model's published +4.5-point lead on labs vanishes. Both still beat the most-papers rule by about 12 points. Twice the auditor caught my tally first: undated companies counted as non-hits, and a claim that rested on one lab.

What did not fail: every backtest number has baselines, the date split lives in one function, and an independent auditor agent signs off before a number is reported.

Other tests that came back negative or descriptive

What was testedResult, with intervalVerdict
Exits: a dated list of IPOs, acquisitions and delistings from SEC filings, as groundwork for scoring on exit value.Descriptive only: no ranking was scored against it. Priced IPOs with both a low and a high value: 462 of 848. Acquisitions of listed companies with both: 140 of 266. Every exit rate built on it is a lower bound. No interval: counts only.descriptive, no test
Deals: did past acquirers' targets go on to higher clinical phases? Needed a correct company-to-drug map first.Cannot test. All three maps failed their pre-set accuracy check (best: 30 of 50 against 35 of 50 needed). What was measured instead: deal score against a plain trial count for which listed companies were later acquired, AUC difference −0.005 (−0.079 to +0.069).cannot test tie on acquisitions
Patents: do a lab head's NIH-supported patents add to the model's ranking of labs?AUC gain +0.0085 (+0.0027 to +0.0151), against +0.0012 at the 95th percentile when the patents are shuffled between labs. It met its rule, but the gain is tiny and the dates were already used to choose the model. The model is unchanged.small, not fresh
Extraction features: do five structured features read from lab papers add to the lab ranking? (report, what failed)Added nothing. AUC gain −0.0007 (−0.0040 to +0.0024) on already-seen cutoffs, paired over two folds; the interval includes zero and the lower bound was not above zero. The extractions are AI-read from title and abstract.not passed
Splitting the science read across several agents, against one pass. An AI reader checked planted false details in claims; code scored it against a key (report, what failed).Not better. Difference in the share of planted errors found: −0.017 (−0.100 to +0.054), which includes zero. It also raised more false alarms. One pass is the default. AI-read, code-scorednot passed
The cross-lab layer in the science briefs: does a second lab's paper independently support a claim?Nothing found on real data: no independent supports and no contradictions across the briefs checked. No interval: the count is zero. (report, what failed)found nothing