ov.analysis.ux.metrics

Journey-metrics analyzer: form friction, backtracking, and journey summary (D3 §5).

Form friction is the headline finding – conversion drops sharply across the 5-7 field cliff, so forms are scored by field/required count. Backtracking and dead-ends are read from the journey trace (revisited observation hashes, noop/ error steps). Descriptive journey metrics (steps, distinct states, success) are surfaced in the analyzer summary for the report’s overview section.

ov.analysis.ux.metrics.analyze_metrics(ctx: AnalysisContext) AnalyzerOutput[source]

Emit form-friction + backtracking Findings and a journey summary.

ov.analysis.ux.metrics.form_friction(field_count: int, required_count: int) tuple[str, str] | None[source]

Map a form’s field counts to (impact_tier, note) past the 5-field cliff.

>>> form_friction(3, 2) is None
True
>>> form_friction(6, 4)[0]
'moderate'
>>> form_friction(10, 8)[0]
'critical'