Insights: show the user what the app has learned #20

Closed
opened 2026-08-18 03:33:28 -05:00 by null · 0 comments
Owner

The Insights tab is a placeholder. Its purpose, from PRODUCT_PLAN.md §27, is one sentence: show the user what the app has learned. It is the screen that earns trust, and §16 calls the accuracy part a powerful retention feature.

What it shows: average cycle, typical range, average period length, recent cycles as a list, and prediction accuracy — last error, average error, and how many of the last N were within a day.

PredictionAccuracy already computes all of it on-device and already refuses to report anything below three scored predictions. Respect that: §27 says do not overstate accuracy, and one lucky forecast reading "average error: 0 days" is exactly the overstatement.

Before there is enough data, show the learning state (§27): "Learning your cycle", "Getting to know your pattern", "Personalized to your cycle" — the honest one for how much history exists.

Nothing here leaves the device. §46 lists prediction_error= among the analytics values that must never be sent.

Verify: with fewer than three scored predictions Insights shows a learning state and no accuracy figures; with more it shows last error, average error and the within-one-day count; and the numbers match what PredictionAccuracy computes in its unit tests.

The Insights tab is a placeholder. Its purpose, from PRODUCT_PLAN.md §27, is one sentence: **show the user what the app has learned.** It is the screen that earns trust, and §16 calls the accuracy part a powerful retention feature. What it shows: average cycle, typical range, average period length, recent cycles as a list, and prediction accuracy — last error, average error, and how many of the last N were within a day. `PredictionAccuracy` already computes all of it on-device and already refuses to report anything below three scored predictions. Respect that: §27 says **do not overstate accuracy**, and one lucky forecast reading "average error: 0 days" is exactly the overstatement. Before there is enough data, show the learning state (§27): "Learning your cycle", "Getting to know your pattern", "Personalized to your cycle" — the honest one for how much history exists. Nothing here leaves the device. §46 lists `prediction_error=` among the analytics values that must never be sent. Verify: with fewer than three scored predictions Insights shows a learning state and no accuracy figures; with more it shows last error, average error and the within-one-day count; and the numbers match what `PredictionAccuracy` computes in its unit tests.
null added this to the Batch 03 — Core UX milestone 2026-08-18 03:33:28 -05:00
null closed this issue 2026-08-18 04:04:52 -05:00
Sign in to join this conversation.
No Label
P0
P1
P2
release-blocker
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: null/Privacy-Period-Tracker#20
No description provided.