Evum
Open source · Privacy-first

Longevity scores you can check line by line.

Evum turns your blood panels into a longevity score, a biological age, and a timeline you own. Every threshold has a citation, every formula is in the repository, and your reports are read on your own device.

Not a medical device. Evum reports measurements and published scores; it does not diagnose, treat, or give medical advice.

Cardio Risk63Metabolic76Fitness84Recovery100Inflammation75Body76Foundational8878Longevity

Real output of computeDomainScores, from the example panel below.

The whole chain, in public

Nine markers in. A biological age out. Every step readable.

Below is an example panel for a 41-year-old male, the nine inputs the Levine PhenoAge formula takes, and what our engine returns for them — computed at build time by the same functions the app calls. Clone the repository, feed in these numbers, and you get 41.4 as well. That is the whole claim.

Example panel

canonical units
  • Fasting Glucose97mg/dL
  • hs-CRP2.4mg/L
  • WBC7.210³/µL
  • Lymphocytes23.5%
  • RDW13.6%
  • Albumin43g/L
  • ALP78U/L
  • Creatinine88µmol/L
  • MCV91fL

Example measurements, not anyone's data. The ranges they are graded against are not examples — they come from marker-ranges.yaml with a citation each.

Biological age

41.4

PhenoAge, years

+0.4

vs 41 chronological

Levine coefficients, pinned by a unit test rather than tuned. Nine inputs are required — an incomplete panel names what is missing instead of estimating.

What is costing years

Each bar re-runs the same formula with that one marker moved to the near edge of its optimal range. Independent counterfactuals — they do not sum to the total.

  • RDW+1.2 yr

    13.6 %13.26 %

  • Fasting Glucose+0.6 yr

    97 mg/dL91.75 mg/dL

  • hs-CRP+0.6 yr

    2.4 mg/L1.35 mg/L

  • WBC+0.1 yr

    7.2 10³/µL6.94 10³/µL

Ranges, not verdicts

A reading is a position, not a pass or a fail.

Every marker carries a direction and a shape — below a threshold, above one, or inside a band — and each is drawn from the reviewed config. The band edges are found by bisecting the classifier itself, so the boundary you see and the grade on the value can never disagree. That is also why they are not round numbers.

State is always a shape and a word, never a colour on its own: our brand green and our "optimal" green are too close for many readers to separate.

LDL134 mg/dL

Optimal < 100 mg/dLAt risk

HDL52 mg/dL

Optimal > 55 mg/dLstratified for this cohortBorderline

Vitamin D32 ng/mL

Optimal 40–60 ng/mLAt risk

Six decisions the architecture already made for you.

01

Your documents never leave the device

A lab report is parsed where you opened it — PDF text layer or on-device OCR, then deterministic extraction. Only the values you confirm are sent anywhere. The file itself is never uploaded.

02

Nothing is auto-saved

OCR misreads digits silently and confidently — we have watched it turn an hs-CRP of 0.8 into 0.6 at full confidence, with no alternative candidates. Every extracted value passes through a confirmation screen. There is deliberately no path around it.

03

Every number is checkable

Reference ranges, formulas, and citations live in MANIFEST.md, verified against PubMed. The scoring engine is open source: run it on your own data and you get the same answer, or disagree with a threshold and open a pull request.

04

Ranges that fit the person

VO₂max, grip strength and body fat are scored against age- and sex-stratified reference standards, not one adult average. The page below marks which rows were stratified.

05

Self-host the whole thing

The clients, the domain core, the schema, and the API are all in one repository. Evum Cloud is one deployment of it, not a privileged one — the portable default is always the one that works without us.

06

No lock-in by construction

Measurements are normalized into one open event schema with explicit units. A value in a unit we cannot convert is refused, never guessed — so what comes out is what went in.

Where it actually is

Early software, told straight. A project that asks you to verify its health numbers should not overstate its own status.

  • Lab report scanning & extractionWorking
  • Longevity & domain scoresWorking
  • Biological age (PhenoAge)Working
  • Manual entry with unit conversionWorking
  • iOS appIn progress
  • Apple Health & wearable syncPlanned
  • AI health chatPlanned

Run it yourself, or read how it works.

Clone the repository and bring up the API, the web client, and the scoring engine locally. Nothing about the science is hidden behind a service.