Overview
Base Pace Adjust is a live control, not a chart. During a race it can be clear that the engine’s pre-race base pace is too quick or too slow for the whole field, or for one car. This widget lets the operator step that pace up or down, review the result as a draft, and press Confirm to hand the new pace to the live strategy solve. Every strategy widget then carries a small tag naming the adjustment in force, so nobody mistakes a nudged prediction for the pre-race one. The widget sits on no default tab. Add it from the widget palette during a live race, with the live session open.Nothing leaves the browser until Confirm. Stepping the buttons only edits a draft, and Discard throws the draft away. The widget is the only supported writer of this adjustment: never insert the row by hand.
What It Shows
A table with one row per driver, grouped by team, plus an All row at the top that applies to every driver at once.
One step is 0.01 percent of the pre-race pace. A driver’s total is the All row’s steps plus that driver’s own steps, so the per-driver buttons add on top of the whole-field nudge rather than replacing it.
Under the table:
Row order. Teams are ordered by their quicker driver’s pre-race pace, fastest team first, and within a team the quicker driver comes first. The Driver, Pre-race and Current headers sort the table; a third click on the same header restores the team order. The All row is always first and the Steps column does not sort.
The tag on the strategy widgets. While an adjustment is in force, the Strategy Status panel, Strategy Table, Predicted Race History, Predicted Tyre Strategy, Predicted Pit Window and Stop Sensitivity each show a muted line such as
Base pace adjusted: all +0.10%, 44 -0.02%. Zero is neutral: when every step is zero there is no tag at all.
Data Behind It
This widget has no insight metric and nomodel_id. It reads the round’s race data template for the pre-race paces and writes one parameter row family.
- Pre-race pace: the same
race_datarow the pre-race solve reads (see Pre-Race and What-If Studies). Without it the widget cannot show a pace, so it shows nothing editable. - The row: a session-scoped
event_parametersrow,param_set_id = base_pace_adjust:<session_key>, payload{"all_steps", "driver_steps": {"<driver_number>": steps}, "confirmed_by", "version"}. It is append-only like every parameter family: each Confirm writes a new version and sets the previous one inactive. - Gateway routes:
GET /v1/sessions/{session_key}/base-pace-adjustreturns the active version (zeros andversion: nullwhen there is none).PUTon the same path replaces the whole set from the draft and stamps the caller’s principal into the payload. Duplicate driver entries are refused. - Where the maths happens: the strategy service’s template resolver scales each driver’s three sector base paces by
1 + steps × 0.0001and nothing else re-derives that factor. One step is therefore exactly 0.01 percent. - When it takes effect: the live strategy child adopts the new row from the next lap it processes, through the same live refresh that picks up a late strategy or race data load. No restart is needed. A lap already offered keeps its inputs, and stored snapshots and status rows are never rewritten.
- Status payload:
strategy_statuscarries abase_pace_adjustblock only while a non-zero adjustment is stamped on that lap. The tag on the strategy widgets follows the as-of snapshot lap the widget is showing; the Status panel reads its exact lap. - Live only: precompute, backtest, backfill and preflight resolve the template without this row, so a post-race recompute matches the uploaded template, not the nudged live solves.
States
No race data loaded
No race data loaded
Shows “No race data loaded for this round” when the session has no race data template. There is nothing to adjust against, so no table is drawn.
No adjustment saved
No adjustment saved
The table shows every pre-race pace with zero steps and the saved line reads “No adjustment saved”. This is the normal starting state for every session.
Draft in progress
Draft in progress
Stepping any button marks the draft dirty: the Current column updates, “Unsaved changes” appears, and Discard and Confirm become active. The engine has not seen anything yet.
Save failed
Save failed
The gateway’s error is shown in red under the controls and the draft stays as it was, so you can retry or discard.
Session change
Session change
The widget remounts per session, so a dirty draft never survives into another session and Confirm can never write it to the wrong one.
Someone else saved
Someone else saved
A newer saved version replaces a clean draft automatically. A dirty draft is left alone; Discard to pick up the new saved values.
Provisional pre-race session
Provisional pre-race session
The nudge is keyed to the session the widget has open. One confirmed on the provisional pre-race key is not seen by the live child, which runs on the live key, so confirm it with the live session open.
FAQ
How do I clear an adjustment?
How do I clear an adjustment?
Press Reset all, then Confirm. That writes a new version with every step at zero, which behaves exactly like having no row at all, and the tag disappears from the strategy widgets from the next solved lap.
Why has the prediction not changed yet?
Why has the prediction not changed yet?
The live child adopts the new row on the next lap it processes, and only future solves use it. Watch the Strategy Status panel for the “Base pace adjusted” line; it appears on the first lap solved with the new pace.
Does a per-driver step replace the All step?
Does a per-driver step replace the All step?
No. The two add together. With All at +10 steps and car 44 at -2, car 44 runs at +8 steps, or +0.08 percent, and every other car at +0.10 percent.
Is there a limit?
Is there a limit?
No. There is no range cap on either the All row or a driver row. The engine guards against a malformed row (a factor at or below zero), keeps the last good template and logs a warning rather than adopting it.
Will a replay or a recompute show the nudged solves?
Will a replay or a recompute show the nudged solves?
A replay of the stored live snapshots does, because those rows were solved with the adjustment and are never rewritten. A precompute or backtest does not: it ignores the row and reproduces the uploaded template.
Why is a driver missing from the table?
Why is a driver missing from the table?
The table lists the drivers in the race data template. A driver without a template entry has no pre-race pace to adjust and does not appear.
Next Steps
Race Strategy Tool
The widgets whose predictions this control nudges.
Strategy Status
Where the “Base pace adjusted” line first appears, lap by lap.
Pre-Race and What-If Studies
The race data template that supplies the pre-race pace.
Strategy Table
The ranked strategies, tagged while an adjustment is in force.
