How scores work

Every number, with its working.

Erkan uses fixed formulas, not a black box. Here is what goes into each score, how much each input counts, and the maths. The same text lives in the app behind every How it's scored button.

Start here

Your baseline

Every score above is relative to you. Erkan keeps a running average and spread for each signal over your last 28 days, weighting recent days more (a 10-day half-life). Scores are withheld until there are 7 days of data, and the baseline is called stable after 14.

Earlier days only

Today's baseline is built strictly from days before today, so a score never grades itself.

Missing is missing

Impossible values, like a heart rate of zero, are dropped before anything else. Gaps stay gaps.

Floors on spread

A minimum spread stops a very flat history from turning a small change into a huge swing.

Score

Recovery

How ready your body is to take load today. Each input is turned into a distance from your own baseline, capped so one strange night cannot dominate, then weighted and squeezed onto 0 to 100.

Depleted 0 to 33Steady 34 to 66Primed 67 to 100
72RecoveryPrimed8 vs usual

Inputs

  • Overnight HRV45%Higher than your usual is better. Compared on a log scale, because HRV swings are proportional.
  • Resting heart rate25%Lower than your usual is better.
  • Last night's sleep score20%Centred on 70, so an average night is neutral.
  • Yesterday's strain10%A very hard day yesterday pulls today down a little.

Formula

z_hrv  = z(log HRV)                    weight 0.45
z_rhr  = −z(resting HR)                weight 0.25
z_slp  = (sleep score − 70) / 15       weight 0.20
z_load = −(yesterday strain − 50) / 35 weight 0.10

recovery = logistic100(Σ w · clamp(z, −3, 3), k = 1.3)
logistic100(x, k) = round(100 / (1 + e^(−k · x)))

Score

Strain

Today's cardiovascular load plus everyday movement, on a curve that flattens as you approach your own heavy days. Each recovery band comes with a target range for the day.

Primed: aim for 55 to 75Steady: aim for 35 to 55Depleted: aim for 0 to 30
41StrainTarget 55 to 753 vs usual

Inputs

  • Minutes per heart-rate zone×1 to ×5Zone 1 counts once, zone 5 five times (Edwards TRIMP). Without zones, duration is weighted by average heart rate.
  • Steps1.5 per 1,000So a long walking day still registers.
  • Your heavy-day scale90th pctSet from your own last 28 days, so 70 means hard for you, not for an athlete.
  • Max heart rate208 − 0.7 × ageThe Tanaka estimate, used to place your zones.

Formula

load   = Σ zoneMinutes × [1, 2, 3, 4, 5] + steps / 1000 × 1.5
scale  = your 28-day 90th-percentile load × 0.9
strain = 100 × (1 − e^(−load / scale))

Score

Sleep

Whether last night covered what you needed. Your need grows when you carry sleep debt, so a short week raises tonight's bar.

84Sleep7h 42m asleep5 vs usual

Inputs

  • Duration vs need45%Time asleep divided by tonight's need, curved so the last half hour matters.
  • Efficiency20%Time asleep divided by time in bed.
  • Deep and REM share20%Against a 40% target.
  • Bedtime consistency15%Distance from your 14-night median bedtime, in your own time zone.

Formula

need        = sleep need + min(0.15 × debt, 45 min)
duration    = min(asleep / need, 1) ^ 2.2       weight 0.45
efficiency  = asleep / in bed                   weight 0.20
restorative = (deep + REM) / asleep vs 0.40     weight 0.20
consistency = 1 − clamp(|bedtime − 14-night median|
                        / 120 min, 0, 1)        weight 0.15

debt = Σ last 7 nights of max(need − asleep, 0)

Score

Stress

How hard your heart worked while you were not exercising, compared with your usual, and eased when your HRV is healthy.

28StressLow6 vs usual

Inputs

  • Daytime heart-rate elevation0.7How far your daytime average sits above your resting rate, against your own normal.
  • HRV−0.5A good HRV day lowers stress.

Formula

elevation = (daytime avg HR − resting HR) / resting HR
           z_elev against its own baseline
stress    = logistic100(0.7 · clamp(z_elev, −3, 3)
                        − 0.5 · clamp(z_hrv, −3, 3), k = 1.2)

Score

Reserve

A slow energy level carried from one day to the next. Each day moves it a fifth of the way toward a target set by sleep, recovery, strain and stress.

64ReserveCharging4 vs usual

Inputs

  • Sleep50%The biggest charger.
  • Recovery30%
  • Lighter day20%100 minus strain.
  • High stress−10%Only stress above 50 drains it.

Formula

target  = 0.5 × sleep + 0.3 × recovery + 0.2 × (100 − strain)
          − 0.1 × max(stress − 50, 0)
reserve = 0.8 × yesterday's reserve + 0.2 × target

Premium

Biological age

Erkan uses Levine PhenoAge, as corrected by Liu and colleagues in 2019, from nine routine blood markers and your age. Wearable summaries are kept separate and never mixed into the clinical estimate. It is a way to track change, not a diagnosis.

The nine markers

AlbuminCreatinineGlucoseCRPLymphocytesMCVRDWALPWhite cells

How it is kept honest

  • Constants are frozenEach model version keeps its own constants, so old results never shift.
  • Results are immutableA correction creates a new assessment instead of rewriting the old one.
  • Checked twiceA separate reference implementation verifies the app's maths.

Formula

xb = −19.907 − 0.0336 albumin + 0.0095 creatinine
     + 0.1953 glucose + 0.0954 ln(CRP)
     − 0.0120 lymphocyte% + 0.0268 MCV + 0.3306 RDW
     + 0.00188 ALP + 0.0554 WBC + 0.0804 age
H  = 1.51714 × e^xb / 0.0076927
PhenoAge = 141.50 + ln(0.00553 × H) / 0.09165

Also in the engine

Flags and impact

Short sleep

Under 6 hours asleep. Shown first when it applies.

Low recovery flag

Resting heart rate 5 or more above usual and HRV 10% or more below, together.

Journal impact

Days with and without a factor, the difference in points, both sample sizes, and a verdict: clear, possible, no link or still collecting.

Every score carries an engine version, so history stays consistent for a given set of formulas. Questions about a formula? Read the questions.

See your numbers worked out.

Open the web app to explore every screen on clearly labelled demo data. Sign in with Google to log meals, habits and labs; your own scores arrive when device sync opens.

The iPhone and Apple Watch apps are in testing and not yet on the App Store.