aadya-m1-mini

Real model output · 0.84M parameters · 3.4 MB · for phones and small devices

Model card Leaderboard

Pick an example history and a day. Every curve here is the real aadya-m1-mini output, computed offline on made-up example data. Nothing you do on this page is sent anywhere.

Most likely
-
80% window
-
Width
-
Decision
-
Probability mass

When next onset is likely

Hover the curve
Cumulative

Chance by day

Near-term

P(onset within N days)

Measured, track by track

How much error it removes

vs usual tracker method

Usual tracker method = rolling median of the last 3 cycles. Blue bars are also better than the strongest comparison we tested; grey bars are ties or not tested. Simulated tracks are marked "simulated". From the committed benchmark reports.

Scenario skill

Simulated cases

aadya-m1-mini Bayes reference 28-day
Public real data

364 public real users

Lower is better. aadya-m1-mini has the lowest mean error among the methods we ran on both cohorts, level with the full-size aadya-m1. Its lead over the Bayes reference is small (about 1% of the error): clear on Creighton, within noise on Marquette alone.

Built for small devices

Which model should I use?

  • aadya-m1-mini (this demo): 0.84M parameters, 3.4 MB. Phones, browsers, low-power devices.
  • aadya-m1: 256M parameters, about 1 GB. More capacity for servers, desktops, research and fine-tuning.
  • On the 364 public real users we have, the two score the same, so the small one costs nothing in accuracy there.
Sim validation · S0-S5 pooled

AadyaBench board

mean CRPS ↓
#ModelCRPSvs hierarchical

Curves are precomputed real model outputs on example inputs. Benchmark numbers are copied from the committed AadyaBench v2 report (simulated users; the real-data lines are small public cohorts). To try your own history, run the model on your own device: see the model card. Do not type real health data into websites. Not a medical device.

Run it yourself

A few lines, on your own machine

from huggingface_hub import snapshot_download
import sys
path = snapshot_download("manasdutta04/aadya-m1-mini"); sys.path.insert(0, path)
from aadya_m1 import AadyaM1
model = AadyaM1.from_pretrained(path)
pmf = model.forecast([28, 30, 27, 29], days_since_last_period=0)
print(model.window(pmf))  # 80% window in cycle days

Needs numpy, scipy, torch, safetensors and huggingface_hub. Your data stays on your device.

Know the limits

Safety and honesty

  • Not a medical device. No diagnosis, no contraception or fertility advice, no "safe days".
  • Probabilities, not promises. Show the whole window, never one date as certain.
  • Evidence is early. Simulated users plus two public cohorts (364 real users).
  • Simulated lead is uneven. On a 5,400-user simulated board the mini is slightly ahead of the full-size model; its lead over the Bayes reference comes from irregular cycles and is level or slightly behind on regular users.
  • Missed logs hurt every method. Ask people if they forgot a period.
  • Private by design. Runs locally, no accounts, nothing sent anywhere.