Source: https://guthlabs.ai/docs/instruments/reading-time-estimator/mechanism/

instrument mechanism / verified-clean

# Reading Time Estimator mechanism

The inspectable method record for Reading Time Estimator, kept separate from implementation and qualification.

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

## Model scope

The arithmetic formula is valid, but the instrument needs an exact default WPM and an explicit text-tokenization rule before its behavior is fully specified. The interface should label the result as an estimate and state that individual reading speed varies widely; the existing honest_label addresses this concern but should be shown near the result.

- The formula time_min = word_count / wpm is standard and correct when word_count is measured in words and wpm means words per minute.

- The pasted-text path is underspecified: the spec does not define how words are tokenized, including punctuation, hyphenated terms, contractions, numbers, whitespace, or empty text.

- The stated default WPM of approximately 200-250 is a range rather than a single deterministic default, so the estimator cannot produce one reproducible result until an exact default is selected.

## Units and conventions

- word_count is a nonnegative count of words.

- wpm is strictly greater than zero and has units of words per minute.

- time_min is reported in minutes; seconds, if displayed, are calculated as time_min × 60.

- For text inputs, the test vector assumes whitespace-delimited word counting with punctuation attached to words and no special tokenization rules.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "word_count": 500,
    "wpm": 250
  },
  "expected_outputs": {
    "time_min": 2,
    "time_seconds": 120
  },
  "working": "time_min = word_count / wpm = 500 / 250 = 2 minutes. time_seconds = 2 × 60 = 120 seconds."
}
````

## Failure boundary

- Division by zero occurs if wpm is 0; reject zero before calculation.

- Negative WPM is invalid and should be rejected.

- Negative word counts are invalid and should be rejected.

- Text word-counting behavior is ambiguous unless tokenization rules are explicitly defined.

- Very short texts can produce fractional minutes and should not be rounded to whole minutes before converting to seconds.

- A selected default must be an exact positive number, not the range 200-250.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/reading-time-estimator/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/reading-time-estimator/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/reading-time-estimator/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-tranche5/tranche5-results.json`
