← Back to docs

Menstrual Tracking

Menstrual Tracking

The Menstrual Tracking tool gives each authenticated user a private place to record cycle starts and follow cycle estimates over time.

  • Route: /menstrual-tracking
  • Access: Logged-in users (auth:web)
  • Data scope: Only your own entries and profile

Admins can also manage another user's menstrual-tracking data directly:

  • Admin route: /admin/menstrual-tracking/{user}
  • Admin shortcut: /users/{id}/edit -> Menstrual tracking
  • Admin scope: View statistics, edit the user's profile, add cycle rows, edit duration and notes, and remove cycle rows without logging in as that user

The admin view cannot confirm or correct a forecast on the user's behalf. Forecast confirmation is reserved for the person using the menstrual tracker.


What you can save

  1. Birth date (optional)
  2. First known period start date (optional baseline)
  3. Cycle entries with an exact start date or month-level registration
  4. Period duration in days, optional, from 1 to 14 days
  5. Optional note per entry
  6. SMS reminder settings for the user and an optionally linked parent
  7. Forecast responses for confirmed, corrected or dismissed forecasts

Duration describes how many days the period itself lasted. It does not change cycle length, which continues to be calculated between registered period starts.


Edit history

The history table shows start date, month, duration, note and registration time.

  • Duration and note can be edited directly in each history row.
  • The Save button uses AJAX, so the page does not reload.
  • An empty duration is stored as unknown.
  • An empty note clears the note.
  • Duration is validated to 1-14 days and notes to at most 255 characters.
  • Ownership is checked server-side for AJAX edits. A user can only change their own entries, while the admin view is scoped to the user currently being managed.

Statistics and charts

The regular user view and admin view use the same statistics engine for the selected person. The overview includes average cycle length, variation, latest registered start, estimated next start, current cycle day, shortest and longest calculated cycle and usable interval count.

The chart period can be switched between 6, 12 and 24 months. Large reporting gaps continue to use the existing cycle-calculation rules.


Confirm or correct a forecast

When an estimated start date arrives or has passed, Tools can ask the user whether the forecast was correct. The question is displayed directly in the user's own menstrual-tracking view and is submitted with AJAX.

The user can confirm the date, enter another historical start date, or state that the period has not started yet. The admin view cannot perform this confirmation on the user's behalf.


SMS reminders

The profile card on /menstrual-tracking lets the user enable reminder SMS, choose a lead time from 1 to 7 days and optionally send the same reminder to a linked parent account. SMS messages are sent to mobile numbers saved on the respective accounts.


Monthly registration

If the exact day is unknown, the month field (YYYY-MM) can be used. The system then uses the first day of that month as the baseline date, and exact dates can still be recorded later.