Measurements and progression
Design stable result contracts and rank ladders that remain meaningful outside a Sprint.
Every Practice Mode owns independent lifetime history and progression whether or not a member currently has a Sprint. If Around the Clock is installed, the member can practice it whenever they want and retain its rank, recent Attempts, personal bests, and lifetime metrics.
A Sprint references that evidence; it does not create a second practice history.
Start with the result contract
Define:
- the primary comparable Measurement;
- its scalar type and unit;
- whether higher or lower is better;
- the configuration fields that affect comparability;
- supporting Measurements that explain the result;
- what incomplete, aborted, invalid, or corrected evidence means.
Examples:
| Mode | Primary | Direction | Supporting |
|---|---|---|---|
| Around the Clock | darts thrown | lower | hit %, singles, doubles, trebles |
| Puzzle Rush | solved count | higher | accuracy, duration, max streak |
| Reaction Time | median milliseconds | lower | false starts, variance |
| Memorization recall | correct sequence length | higher | errors, elapsed time |
Progression is immutable policy
A progression definition selects comparable Attempt evidence, chooses an aggregation such as best, latest, median, or rolling window, and maps the result to ordered thresholds. Publish it as immutable package policy.
The host maintains a rebuildable Progression State per member, Practice Mode configuration, and definition version for fast product reads. Attempt history remains authoritative.
Rank semantics
Keep the platform rank names consistent while letting each mode define honest thresholds. The package may calculate a composite primary metric from several raw Measurements, but the resulting comparable value must be deterministic and documented.
Do not let ordinary members edit rank-affecting defaults in a shared mode. If a different ruleset should produce separate progression, give it a distinct configuration identity or Practice Mode.
Sprint relationship
A Sprint finish line can reference one Practice Mode result or rank condition. When a compatible Attempt commits while the Sprint is active, it contributes automatically. The same Attempt also updates ordinary mode history and progression.
A baseline is required for an improvement claim. Absolute targets and first completion goals may use an explicit unknown or not-yet-achieved starting point.
Boundary fixtures
For each rank, include fixtures immediately below, exactly at, and immediately above the threshold. Add aggregation fixtures that prove ordering, excluded evidence, corrections, and rebuild behavior.