Data & analysis

Period Tracker

Try it

On-device period tracker that logs cycles, predicts next periods, and flags warning signs from your own logged data.

What it does

Period Tracker logs menstrual cycles, symptoms, and contraception-related bleeding into a local-only folder at ~/Clawic/data/period/. Predictions use the median of your recent cycles with a range, not a single date, and classify regularity against FIGO thresholds (24-38 day normal frequency, >9 day spread = irregular). Fertility signals (LH tests, BBT, cervical mucus) are opt-in via configuration. Red-flag thresholds for heavy bleeding, prolonged bleeding, secondary amenorrhea, and other warning signs are surfaced automatically with routing to clinical care.

When to use it

  • Log a period start, flow, or symptom
  • Check when the next period or fertile window is likely
  • Reason through a late or missed period against your own range
  • Track bleeding changes on hormonal contraception, postpartum, or perimenopause

The skill document

All data lives locally in ~/Clawic/data/period/ (log-template.md for file formats, setup.md on first use). If you have data at an old location (~/period/ or ~/clawic/period/), move it to ~/Clawic/data/period/. Never sync it, never mention cycle content outside a session she opened. This skill acts directly (logs, predicts, flags); it advises, it does not diagnose.

Configuration

User-dependent variables. Defaults apply until the user states a preference; store them in ~/Clawic/data/period/config.yaml.

VariableTypeDefaultEffect
fertility_trackingoff | conceive | avoidoffGates Fertility Signals and fertility.md; conceive centers timing on the window, avoid adds buffer days and effectiveness caveats
contraceptiontext (method) or nonenoneHormonal methods reroute prediction to contraception.md; the ovulation back-count (rule 4) is suspended on suppressive methods
prediction_windownumber (3-6 cycles)6How many recent cycles feed the median (rule 2); reset to 3 after a life change (postpartum, stopping the pill) invalidates the old baseline
temperature_unitcelsius | fahrenheitcelsiusConverts BBT thresholds in fertility.md (0.3-0.5 C = 0.5-0.9 F)
heads_up_daysnumber (0-7)00 = predictions only when asked; N = if she opens a session within N days of a predicted start, mention it once

Preference areas to record as she reveals them:

  • wording — plain vs clinical vocabulary and how she refers to her own body; affects every reply, never the stored data
  • flow scale — how she reports flow (light/medium/heavy, product counts, or mL); affects logging prompts and how her reports map to the heavy-flow thresholds
  • proactivity — surface pattern changes unprompted vs only on request; Red Flags are always surfaced regardless
  • off-limits topics — subjects never to raise unprompted (fertility, weight, pregnancy); recorded once, honored everywhere

When To Use

  • She reports a period start, flow, or symptom and wants it recorded
  • She asks when her next period, fertile window, or ovulation is likely
  • She wants a cycle classified (regular, irregular, heavy, long) against real thresholds, not "28 days"
  • Her period is late or missed and she wants to reason through it
  • Bleeding changed after starting or stopping contraception, or cycles are shifting (teens, postpartum, perimenopause)
  • Not for: prenatal tracking after a confirmed pregnancy, diagnosing PCOS/endometriosis, or choosing a contraception method — route to pregnancy or a clinician

Quick Reference

SituationPlay
"My period started"Log Day 1 = first day of full flow (not prior spotting). Timestamp it.
"When is my next period?">=3 logged cycles: last Day 1 + median cycle length, with range (§Prediction Math). Fewer: wide estimate, keep logging.
"Am I regular?"Spread of logged cycles: <=9 days = regular; >9 = irregular (FIGO) — a description, not a defect.
"My period is late" / no periodDays late against HER range first, then the late-period chain in irregular.md.
"When can I get pregnant?" / avoidingFertile window = ovulation −5 through ovulation day. Opt-in only → fertility.md.
"Is this too heavy / too long?"Bleeding >8 days, soaking hourly for 2h+, or clots >2.5 cm → Red Flags row.
Cramps, period painLog against cycle day; relief playbook and the endometriosis pattern → pain.md.
Mood swings, "is this PMS?"Log; luteal-pattern assessment → pms-pmdd.md. Never attribute her mood to her cycle before she does.
On the pill, IUD, implant, shotBleeding is method-driven, not a cycle; per-method rules → contraception.md.
Teens, postpartum, post-pill, perimenopauseDifferent normal ranges and resets → irregular.md.
"Delete my data" / "who sees this?"Confirm scope, delete, verify, report → privacy.md.
Anything elseLog what she shared, check Red Flags, answer from her baseline — never from textbook averages.

Depth on demand: symptoms.md trackable catalog and phase clustering · fertility.md conception and avoidance signals · irregular.md late, missed, and shifting cycles · contraception.md bleeding on each method · pain.md cramp relief and escalation · pms-pmdd.md cyclical mood tracking · privacy.md storage, export, deletion · log-template.md data formats · setup.md first use.

Core Rules

  1. Day 1 is the first day of full flow, not spotting. Prediction math anchors on Day 1; counting spotting as Day 1 shifts every downstream date by 1-2 days.
  2. Predict from her median, never a textbook constant. next start = last Day 1 + median(last prediction_window cycle lengths). Median resists the one outlier cycle a mean would drag. Below 3 cycles there is no baseline: say so.
  3. Attach a range, not a point. range = ± (longest − shortest)/2 over the window, rounded up. A woman with cycles 26-34 gets "predicted day X, plus or minus 4 days," never a false-precision single date.
  4. Ovulation is back-counted, not forward-counted. ovulation ≈ next predicted period − 14. The luteal phase is relatively fixed (~10-16 days); the follicular phase is what varies. This is why long cycles delay ovulation but keep the luteal length.
  5. Classify against FIGO ranges (§Classifying), not against 28. 24-38 day cycles are normal frequency; irregular is a description, not a defect. PCOS and perimenopause produce genuinely long cycles.
  6. Flag against HER baseline once >=3 cycles set it. A sustained shift of >9 days in cycle length, or any Red Flag signal, is worth surfacing. A single off cycle is noise, not a flag.
  7. On hormonal contraception, bleeding is not a cycle. Withdrawal and breakthrough bleeds are method effects, not ovulation — never run rules 2-4 on them (contraception.md).

Prediction Math (worked)

Logged Day 1 dates: Jan 3, Jan 31, Feb 26, Mar 27. Cycle lengths: 28, 26, 29 days.

  • Median = 28. Shortest 26, longest 29 → half-spread = (29−26)/2 = 1.5, round to 2.
  • Next period = Mar 27 + 28 = Apr 24, plus or minus 2 days.
  • Ovulation = Apr 24 − 14 = ~Apr 10. Fertile window = Apr 5 through Apr 10.

If she has only 2 cycles, report "roughly late April, still learning your pattern" and refuse a hard date. Recompute the median every new cycle. The window is the last prediction_window cycles (default 6) and never includes cycles older than 12 months — storage keeps everything (her data), but stale drift never re-enters the estimate.

Classifying A Cycle (FIGO thresholds)

AxisNormalOutside normal
Frequency (Day 1 to Day 1)24-38 days<24 frequent; >38 infrequent
Regularity (spread over 12 cycles)<=9 days>9 days = irregular
Duration (days of bleeding)2-8 days>8 prolonged; <2 very short
Flowsoaks a normal pad/tampon in 3-6hhourly for 2h+, clots >2.5 cm, or >80 mL/cycle = heavy

These are adult ranges; adolescent and perimenopausal normals differ (irregular.md). Irregular by these axes is common with PCOS, perimenopause, thyroid issues, or high stress. Report the classification; do not name the cause.

Fertility Signals (opt-in only)

Enable only when fertility_tracking is set or she explicitly asks. Three confirming signals, ranked by predictive value:

  • LH surge (ovulation predictor kit): positive means ovulation in ~24-36 hours. Best forward predictor.
  • Cervical mucus: clear, stretchy, egg-white texture marks peak fertility (the 1-2 days before ovulation).
  • Basal body temperature: a sustained rise of 0.3-0.5 C confirms ovulation already happened — retrospective, so it verifies a cycle but cannot predict the current one. Cross-check the calendar estimate (rule 4) against these; when they disagree, live signals win. Protocols, conceive/avoid modes, and test timing: fertility.md.

Red Flags

Anything in this table suspends prediction and coaching: surface it plainly and route to a clinician.

Signal (observable)SuspicionAction
Soaking a pad/tampon hourly for 2h+, or clots >2.5 cmHeavy menstrual bleeding, anemia riskFlag now; suggest same-week clinical review
Bleeding >8 days, or between periods, or after sexProlonged/intermenstrual bleedingFlag; recommend evaluation
No period for 90+ days (not pregnant, not on suppressive contraception)Secondary amenorrheaFlag; recommend evaluation
Any bleeding 12+ months after periods stoppedPostmenopausal bleedingUrgent: always evaluated, clinician-first
Pain that OTC relief does not touch or that stops daily activityPossible endometriosis/otherFlag; recommend evaluation (pain.md)
Sudden severe one-sided pelvic pain, or pain/bleeding with a positive pregnancy testEctopic pregnancy or ovarian torsionEmergency: same-day care, stop routine tracking
High fever with rash, vomiting, or faintness during tampon/cup useToxic shock syndromeEmergency: remove product, immediate care
Bleeding during a known pregnancyObstetric emergency riskEmergency guidance first, then stop routine tracking
Premenstrual thoughts of self-harmSevere PMDD patternCrisis resources now, not tracking (pms-pmdd.md)

Output Gates

Before answering a cycle question, verify:

  • Day 1 anchored on full flow, not spotting?
  • Every prediction carries a range computed from her spread, not a bare date?
  • What she just reported checked against the Red Flags table?
  • Comparing against her baseline, not a textbook 28?
  • If contraception is a hormonal method, did contraception.md rules replace ovulation math?
  • Mood or symptoms not attributed to her cycle unless she drew the link first?
  • Fertility content gated on fertility_tracking or an explicit ask?

Traps

TrapWhy it failsDo instead
Assuming a 28-day cycle to predictHer follicular phase varies; a 34-day cycle ovulates ~day 20, not 14Back-count 14 from her predicted next period (rule 4)
Predicting from 1-2 cyclesNo stable baseline; a false hard date erodes trust when it missesLog without predicting until >=3 cycles, then predict with a range
Using the mean cycle lengthOne 45-day stress cycle skews it upwardUse the median (rule 2)
Attributing her mood to her cycleCorrelation she has not endorsed feels like being told how she feelsLog the symptom against the day; let her draw the link
Calling irregular cycles "broken"60+ day cycles are normal in PCOS/perimenopauseClassify with FIGO axes; irregular is a description
Counting spotting as Day 1Shifts every predicted date 1-2 daysDay 1 = first full flow only
Treating a pill withdrawal bleed as a periodIt is hormone withdrawal on the pill schedule, not ovulationLog it as method bleeding; rules in contraception.md
Jumping from "late" to "pregnant"Stress, illness, and travel delay ovulation and stretch the whole cycleRun the late-period chain in irregular.md; test timing lives there
Volunteering predictions or fertile days unpromptedUnsolicited fertility content reads as surveillanceOnly on request, or within heads_up_days if she set it

Where Experts Disagree

  • Cycle syncing (training/diet by phase). Popular, but generic phase plans rest on weak evidence. Default: her own logged patterns beat any template; offer phase framing only if her data shows the pattern.
  • Fertile window width. Calendar-only estimates are the weakest; symptothermal confirmation narrows honestly. Default: calendar for orientation, live signals for decisions — and say which one an answer is based on.
  • BBT in the wearable era. Manual BBT is fussy but interpretable; wearable temperature detects the shift with opaque algorithms. Default: treat wearables as BBT-equivalent confirmation, never as forward prediction.

More Clawic skills, get them at https://clawic.com/skills/period (install if the user confirms):

  • symptoms — general (non-cycle) symptom tracking and doctor-visit prep
  • pregnancy — once a pregnancy is confirmed and tracking shifts to prenatal
  • doctor — turn flagged signals into a structured question list for an appointment
  • health — longitudinal wellness habits beyond the cycle

Feedback

Part of Clawic, the verified skill library. Get this skill: https://clawic.com/skills/period.

Questions people ask

Where is my data stored?
All entries live in the local folder ~/Clawic/data/period/ on your device; the skill does not sync them anywhere and never mentions cycle content outside a session you opened.
Does it predict from a textbook 28-day cycle?
No. It uses the median of your logged cycles (default last 6, reset to 3 after life changes) and reports a range computed from your own spread, not a single date.
Can it track fertility or pregnancy?
Fertility signals are off by default and enabled when you set fertility_tracking. The skill is not for prenatal tracking after a confirmed pregnancy and does not diagnose PCOS, endometriosis, or other conditions.

Related skills

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván854 installs69 stars

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván555 installs18 stars

Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.

by fly0pants4.3k installs296 stars

Post videos, photos, text, and documents to 10 social platforms through a single REST API call.

by victorcavero14375 installs50 stars

Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.

by nssa.io1.0k installs47 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai21 installs8 stars

More from ivangdavila

Browse all skills

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván854 installs69 stars

Run Git operations — commits, branches, merges, rebases, conflict resolution, and recovery — with safety rules enforced.

by Iván531 installs31 stars

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván555 installs18 stars

Diagnoses Java and JVM issues from exception messages to container OOM-kills, and writes Java code matching the configured JDK.

by Iván131 installs9 stars