Evidence that was never looked up must abstain

The rank is a weighted mean of four auditable components. Which ones may score is decided per job, from what the annotation run actually produced.

phenotype — 0.35
Share of the patient's HPO terms annotated to the gene, each weighted by its information content.
always scores
rarity — 0.25
Allele frequency in gnomAD, as a step function a reviewer can read.
only if the run looked up frequencies
consequence — 0.20
Predicted impact severity: HIGH, MODERATE, LOW, MODIFIER.
always scores
model — 0.20
LightGBM P(pathogenic) from variant effect.
only with CADD or AlphaMissense
Before — the bug
rarity_score(None) → 1.00
"No frequency in this run" was read as "absent from gnomAD, therefore maximally rare", and every variant collected a free 0.25. The model, meanwhile, scored 0.887 on features it had never seen. Two of four components were fiction, and the score looked fully informed.
After — abstention and renormalisation
component → null, weights renormalised
The job records has_frequencies and has_effect_scores. Absent components drop out and the remaining weights renormalise over 0.55, so the score stays on a 0–1 scale and still means the same thing. The UI prints "not looked up", never a bar.
Published Loeys–Dietz case, run without a VEP cachescorephenotype (0.64)rarityconsequence (0.36)model
TGFBR2 3:30672252 G>T missense — the published diagnosis0.8551.00 (30/30)not looked up0.60not looked up
OSBPL10 3:31748090 missense — incidental0.2180.00not looked up0.60not looked up

Both are rare missense variants, identical on every piece of evidence this run holds except one. The phenotype is what separates a published diagnosis from an incidental variant in a lipid-transport gene — which is the argument for phenotype-driven triage, in one table.