The Math of ULA

How our on-device engines learn your unique cycle and make predictions you can trust.

The Prediction Engine

ULA begins with a Biological Average Calculation (BAvC) of 28 days. However, since clockwork regularity is rare, the engine adapts using your Personalized Average Calculation (PAvC):

$$PAvC = \frac{1}{n}\sum_{i=1}^{n}L_{i}$$

Where \(L_{i}\) is the length of cycle \(c_{i}\) across up to 6 recent cycles.

Adaptive Stability

To handle biological variance, we calculate the Sample Standard Deviation using an unbiased estimator:

$$s = \sqrt{\frac{1}{n-1}\sum_{i=1}^{n}(L_{i}-\overline{L})^{2}}$$

We then apply a Clamped Standard Deviation to prevent prediction windows from becoming impossibly narrow or wide:

$$s_{clamped} = \min(\max(s, 2), \min(10, \frac{1}{2}PAvC))$$

Confidence Scoring

ULA doesn't just guess; it tells you how sure it is. By calculating a Variability Ratio, we generate a heuristic stability score:

$$v = \frac{s}{\overline{L}}$$

This is normalized and clamped to a 0–1 scale to give you your Prediction Confidence Score.

Beyond the Cycle

Ovulation & Fertility

Assuming a 14-day Luteal Phase, the Fertile Window is determined as \([O-5, O+1]\), where \(O\) is the predicted ovulation date.

Irregularity Tracking

The Analytics Engine monitors a 180-day regularity rate, identifying patterns that are tooShort or tooLong to assist in medical awareness.