Source: https://guthlabs.ai/docs/instruments/menstrual-cycle-length-tracker-predictor/mechanism/

instrument mechanism / verified-clean

# Menstrual Cycle Length Tracker/Predictor mechanism

The inspectable method record for Menstrual Cycle Length Tracker/Predictor, kept separate from implementation and qualification.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Model scope

NEEDS_REVIEW because the exact ambiguity is: cycle length variability is named as an output but has no formula, and fractional average lengths have no specified date conversion or rounding rule. The honest-label requirement is present and should remain visible on every prediction panel.

- The formula for cycle length variability is missing, so that output cannot be verified or computed.

- The average cycle length may be fractional, but no rule specifies how to convert a fractional number of days into a date-only predicted start date.

- The prediction formula is a simple arithmetic estimate, not a generally reliable physiological prediction; irregular cycles, missing logs, and nonrepresentative history are not addressed.

- No minimum history length or validation rule is specified. At least two chronologically ordered, distinct period-start dates are needed to calculate a cycle length.

## Units and conventions

- Input dates are valid ISO 8601 calendar dates in the proleptic Gregorian calendar.

- Cycle length is the date difference in calendar days between consecutive period starts; the start day is not counted inclusively.

- The average cycle length is measured in days.

- Date arithmetic is timezone-independent and ignores time-of-day and daylight-saving transitions.

- A predicted start is expected to be a calendar date; the specification does not define rounding or timestamp behavior for fractional-day predictions.

- Cycle-length variability has no defined unit or statistical method because no formula is supplied.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "history_of_period_start_dates": [
      "2025-01-01",
      "2025-01-29",
      "2025-02-26",
      "2025-03-26"
    ]
  },
  "expected_outputs": {
    "predicted_next_start": "2025-04-23",
    "cycle_length_variability": null
  },
  "working": "Differences: 2025-01-29 − 2025-01-01 = 28 days; 2025-02-26 − 2025-01-29 = 28 days; 2025-03-26 − 2025-02-26 = 28 days. Average = (28 + 28 + 28) / 3 = 84 / 3 = 28 days. Next start = 2025-03-26 + 28 days = 2025-04-23. Variability = undefined because no variability formula is provided."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

The specification permits or fails to define behavior for invalid and undefined inputs: a zero-length cycle produces a raw prediction unless explicitly rejected, one start date causes a 0/0 average, and cycle-length variability has no formula. Date-counting convention is also unspecified and can shift the prediction by one day.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/menstrual-cycle-length-tracker-predictor/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/menstrual-cycle-length-tracker-predictor/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/menstrual-cycle-length-tracker-predictor/qualification/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json`

- `evidence-tranche4/tranche4-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
