No car characteristics data yet.
++ Complete Shift Points analysis sessions to build per-car profiles across your sessions. +
+| Gear | +Min RPM | +Max RPM | +Min Speed | +Max Speed | +Sessions | +
|---|---|---|---|---|---|
| {{ gear.gear_display }} | +{{ Math.round(gear.min_rpm).toLocaleString() }} | +{{ Math.round(gear.max_rpm).toLocaleString() }} | +{{ Math.round(gear.min_speed_kmh) }} km/h | +{{ Math.round(gear.max_speed_kmh) }} km/h | +{{ gear.session_count }} | +
| + | Lap | +Run Label | +Lap Time | +Length | +Avg Speed | +Max Speed | +Points | +
|---|---|---|---|---|---|---|---|
| + + | ++ + {{ lap.lap_index + 1 }} + | +{{ lap.label || '—' }} | +{{ formatLapTime(lap.lap_time_ms) }} | +{{ lap.length_m > 0 ? Math.round(lap.length_m) + ' m' : '—' }} | +{{ lap.avg_speed_kmh > 0 ? Math.round(lap.avg_speed_kmh) + ' km/h' : '—' }} | +{{ lap.max_speed_kmh > 0 ? Math.round(lap.max_speed_kmh) + ' km/h' : '—' }} | +{{ lap.point_count }} | +
+ Both boundary runs (left + right) are recorded. Name the track and build the persistent track model to enable corner analysis and sector timing. +
+Requires 2 completed runs labeled "left" and "right".
+| # | +Entry (s) | +Apex (s) | +Exit (s) | +Peak Curvature (1/m) | +
|---|---|---|---|---|
| {{ corner.number }} | +{{ corner.entry_s.toFixed(3) }} | +{{ corner.apex_s.toFixed(3) }} | +{{ corner.exit_s.toFixed(3) }} | +{{ curvatureLabel(corner) }} | +
| Sector | +Start (s) | +End (s) | +
|---|---|---|
| {{ sector.index + 1 }} | +{{ sector.start_s.toFixed(3) }} | +{{ sector.end_s.toFixed(3) }} | +
| Label | -Points | -Spline Range | -
|---|---|---|
| {{ boundary.label }} | -{{ boundary.point_count.toLocaleString() }} | -- {{ boundary.points.length > 0 ? boundary.points[0].spline.toFixed(3) : '-' }} - – - {{ boundary.points.length > 0 ? boundary.points[boundary.points.length - 1].spline.toFixed(3) : '-' }} - | -
No track models stored yet.
++ Create a Track Mapping session, record left and right boundary laps, then build the track model. +
+