Tap to add car photo

AxiaMetrics

FunCup Race Strategy Dashboard
AxiaMetrics
FunCup Race Strategy Dashboard — Oulton Park
Next Race
--
Days
:
--
Hours
:
--
Mins
:
--
Secs
FunCup — Oulton Park
Saturday 11 April 2026
Oulton Park
Little Budworth, Tarporley, Cheshire CW6 9BW
4.300 km
Circuit Length
17
Number of Turns
1:58.880
FunCup Lap Record — Harry Mailer, Car 49 (2Rent)
Tap to add car photo
103
Car Number
Jump to a page

How AxiaMetrics Works

Everything you need to know to use the dashboard effectively — from your first test day to the final lap. No technical background required.

Setup Calibrate Strategise Race Live
AxiaMetrics is a race strategy dashboard built for FunCup endurance racing.

It does three things: it works out the fastest driver order and fuel plan before the race, it tracks your fuel and pit windows in real time during the race, and it adjusts its estimates on the fly as the race unfolds — including safety car periods.

You don't need to be an engineer to use it. If you can enter a lap time and press a button, you can run it.
Event Setup
Enter race rules: duration, stint length, pit windows, weights, pit stop times, and your TSL timing URL.
Calibration
Enter driver lap times and fuel data from the test session. This is where the system learns how fast and how thirsty each driver is.
Strategy
Press Calculate. The system evaluates every valid driver order and ranks them by predicted race time. Pick the one you want and lock it in.
Live Race
On race day. The clock runs, the pit windows count down, fuel estimates update every second. TSL handles most of it automatically — you're there to watch and catch anything it misses.
Race details
Open Event Setup. Enter the race duration, stint length, and pit windows. The defaults are set for a standard 4-hour FunCup race (40-minute stints, windows at 40–50, 80–90, and 120–130 minutes) but check the regs and adjust if needed.
Weights
Enter the minimum combined weight and the weight sensitivity figure. This tells the system how much slower a heavier driver makes the car, so it can fairly compare different driver orders.
Pit stop times
Enter how long a dry driver change takes, and how long it takes to add 20L and 40L of fuel. These feed directly into the strategy calculator.
Safety car lap time
Enter a representative SC lap time for this circuit. Use data from previous years' races here — it's not a guess, it's a historical figure.
URLs
Add the TSL live timing URL for this event and any pit wall screen links. The TSL link only goes live on race day, so you can add it during morning checks if you don't have it yet.
Drivers
On the Calibration page, add each driver's name and weight with kit. You can add a photo too — it shows up on the live dashboard so you can see at a glance who's in the car.
Driver lap times
Enter each driver's representative lap time from the test session. Use a clean lap, not a best-case outlier. This is used to rank driver orders alongside ballast.
Fuel data
For each 40-minute test stint, enter how many laps each driver completed and the total fuel used by the car in that session. One session is enough to get started — three sessions gives a much more accurate result.
No test data? You can enter estimated fuel rates directly on each driver's card. Rough figures are better than nothing.
Calculate Strategy
Press the button. The system works out each driver's fuel consumption rate, then evaluates every valid 6-stint order (no driver back-to-back, 2 stints each). It accounts for lap times, ballast based on who finishes the race, fuel stop costs, and expected safety car time based on this circuit's history.
Review and pick
Results are ranked fastest to slowest. Each card shows the driver order, fuel loads, pit details, and predicted race time. The top result is the recommendation, but you can choose any order — based on who you want to start, who finishes, or who handles traffic best.
Lock it in
Press Use for Race. This saves everything to the Live Race page so it's ready on race morning.
Morning checks
Open the Live Race page. Confirm the strategy has loaded — you should see the driver sequence in the Stint Plan. Add the TSL URL if you haven't already, and set up any pit wall screens on a second display.
Race start and safety car
Press START the moment the race goes green. If TSL is connected, safety car periods are detected and tracked automatically — the fuel estimate adjusts in real time without you doing anything. If TSL isn't available, use the SC button manually. Use the ±5s nudge buttons if the clock drifts from the official time.
Confirming a pit stop
If TSL is connected, this is automatic. The system detects when your car enters the pit lane and records the time. If not, press Car Pitting when the car comes in. If you miss it, type the actual time (e.g. 43:22) into the override box afterwards.
Actual fuel
After each stop, enter the real fuel level from your rig counter into the Stint Plan. This is the single most important thing you can do mid-race — it anchors all forward estimates to a known value.
Final stint
The bottom panel shows projected finish fuel. Keep an eye on it in the last stint. If it's looking tight, the system will flag it.
What Happens Behind the Scenes
The Maths
What the system is actually calculating under the hood — for the curious.
01Driver Fuel Rates — Least Squares Regression
Each driver burns fuel at a different rate. We can't measure this directly — we observe the total fuel used per session and how many laps each driver completed. With multiple sessions and multiple drivers, we have more equations than unknowns, so we use least squares regression to find the rates that best fit all sessions simultaneously.
Formulation
// For each test session i: fuel_used[i] = laps_A[i] × rate_A + laps_B[i] × rate_B + laps_C[i] × rate_C // In matrix form: F = L × R // Solved via: R = (LᵀL)⁻¹ Lᵀ F // R = [rate_A, rate_B, rate_C] (litres per lap)
With three sessions, the system is over-determined — more data than unknowns. Least squares finds the single solution that minimises total error across all sessions at once.
02Strategy Optimisation — Ranked Permutations
With 3 drivers doing exactly 2 stints each, the system evaluates every valid 6-stint permutation subject to the no-back-to-back constraint. For each valid order it calculates the total predicted race time cost from ballast penalties, lap time differences, and pit stop losses — then ranks them fastest to slowest.
Time cost per strategy
// Ballast and lap time penalty per stint: ballast[i] = max(0, min_weight - (car_weight + driver_weight[i])) lap_delta[i] = ballast[i] × weight_sensitivity // e.g. 0.069 s/kg // Fuel burn per stint: laps[i] = window_close[i] / driver_lap_time[i] burn[i] = laps[i] × driver_fuel_rate[i] // SC buffer (added to start fuel as insurance): sc_buffer = sc_probability × avg_sc_laps × (green_rate - sc_rate) // Total time cost (ranking metric): total_delta = Σ (laps[i] × lap_delta[i]) + Σ pit_stop_loss[i]
The SC buffer is added to start fuel as a safety margin. It costs a tiny amount in lap time (heavier car), but protects against running dry in a long SC period.
03Live Fuel Estimate — SC-Split Calculation
There is no sensor in the fuel tank. The system estimates current fuel by starting from the last confirmed reading and subtracting what has been burned. The key detail: green-flag laps and SC laps burn fuel at different rates, so the system tracks each separately.
Runs every second
// Split elapsed time into green and SC portions: elapsed = now - stint_start_time sc_secs = sc_banked + (sc_active ? now - sc_start : 0) green_secs = elapsed - sc_secs // Laps at each pace: laps_burned = (green_secs / green_lap_time) + (sc_secs / sc_lap_time) // Current fuel: fuel_now = confirmed_start_fuel - (laps_burned × driver_fuel_rate)
SC seconds are banked when the green flag returns — so multiple SC periods in one stint all accumulate correctly.
04Add at Pit — Conservative Window-End Projection
The "Add at Pit" figure is the fuel to put in at each stop. It projects forward to the end of the next pit window — the latest the car could possibly run — and calculates how much fuel is needed to cover that distance plus a minimum finish reserve.
Calculation
// When is the next stop expected? next_stop = confirmed_pit[i+1] OR window_close[i+1] // How long is the next stint? duration = next_stop - current_pit_time next_laps = duration / next_driver_lap_time next_burn = next_laps × next_driver_fuel_rate // How much to add: add_at_pit = next_burn + min_finish_fuel - current_end_fuel_estimate
Once a pit is confirmed, the system switches from the window-end assumption to the actual confirmed time. This means "Add at Pit" gets progressively more precise as each stint is confirmed.
05Gap Trend — Per-Lap Rate of Change
The gap-ahead and gap-behind tiles show not just the current gap but whether it's growing or shrinking and how fast. A reading is only recorded when a new lap is completed. The trend is the average change per lap across the last five readings.
Rate calculation
// History: one entry per completed lap, max 6 readings history = [gap_lap1, gap_lap2, ..., gap_lapN] // First-to-last delta divided by number of intervals: rate = (history[N] - history[0]) / (N - 1) // Negative = gap closing = GAINING 🟢 // Positive = gap growing = LOSING 🔴 // |rate| < 0.05s = STABLE ⬜
Using first-to-last delta (rather than lap-by-lap averaging) gives a cleaner trend that's less sensitive to a single outlier lap.
06Data Architecture — No Server Required
The entire system runs in the browser. No server, no database, no internet required (except for the optional TSL feed). State is shared between pages using the browser's local storage — a key-value store that persists between page loads.
Storage keys and data flow
axia-setup-v1 race params, pit windows, SC settings, sessions axia-strategy-v1 driver order, fuel rates, start fuels, pit windows axia-live-v1 race clock, SC state, confirmed pits, confirmed fuels axia-driver-photo-N base64 driver photos (N = 0, 1, 2) axia-tsl-url saved TSL feed URL // Data flow is strictly one-way: Setup Strategy Live Race // Live Race never writes back to Strategy.
Because everything is local, the dashboard works with no signal — useful for circuits with poor pit lane coverage. The only feature that needs a connection is the TSL feed.
Common Questions
What if we don't have test data?
Enter estimated fuel rates manually on each driver's Calibration card. The strategy calculator will use those figures instead. They won't be as accurate, but the system will still give you a ranked order and fuel plan.
What if the TSL feed drops during the race?
Everything falls back to manual. Use the SC button, the Car Pitting button, and the time override box. The fuel estimate keeps running from the last confirmed data point.
Can we change strategy mid-race?
The fuel estimates and pit window tracking update continuously, so if a safety car period changes the picture, you'll see it reflected immediately. You can also enter actual fuel readings at any stop to recalibrate the model from a known starting point.
What does "Use for Race" actually save?
It writes the driver order, calculated fuel targets, and all setup parameters to the browser's local storage. The Live Race page reads from the same storage, so as long as you're on the same device, it'll be there when you open it on race morning.
Next Session
Time Until
--:--:--
No sessions set
Add session times below
Event Schedule
Pit Wall Screens
Configure each of the 4 screens. The Title appears on the Pit Wall. The URL is loaded privately — it is not visible on the Pit Wall page.
Race Parameters
Safety Car
SC waste per lap ≈ s of pace lost vs racing
Historical SC Data used in strategy model
Add past race SC events to build a probability profile. The strategy model uses this to weight pit timing against SC risk.
Pit Stop Times
Pit Windows
Enter each pit window as open–close in race minutes, comma separated. One window per pit stop.
e.g. for a 4-hour race with 40-min stints: 40-50, 80-90, 120-130, 160-170, 200-210
Fuel Strategy
✓ Saved
Adjust race rules, pit windows & timing
Drivers 2 stints each
Test Session Fuel Data 3 sessions
Enter laps per driver (20-min stints) and total fuel used per 40-min session to calculate fuel consumption rates.
Race Parameters
Loading from Event Setup…
Edit in Event Setup →
Starting Driver optional
Lock stint 1 to a specific driver (e.g. based on grid position or weather). Leave as Any to let the model choose the full order.
Finishing Driver optional
Lock the finishing driver to fix the ballast calculation for all strategies. Leave as Any to let each strategy determine it from its own order.

Enter driver details and race parameters, then hit Calculate & View Strategy to generate your optimal stint plan.

Each driver does exactly 2 stints. No back-to-back stints allowed.

--:--:--
s/lap
TSL
--:--
--:--
--
In Car
--
Next Driver
--
Position
--
Gap to Leader
--L
Fuel Now
--L
Add at Pit
Live Timing
Our Car # Target Car # Track a rival car and see your gap to them live
Find the TSL feed URL: open the live timing page in Chrome → F12 → Network tab → filter XHR/Fetch → look for requests updating every few seconds.
Ahead
--
Gap to Car Ahead
--
Behind
--
Gap to Car Behind
--
--:--.---
Last Lap
--:--.---
Best Lap
--
Laps Done
Target
--
Set target car #
Lap Times — Full Race
Add lap manually: Auto-filled when TSL feed connected
Safety Car Log
No SC periods yet
Schedule
Current Time
--:--:--
Next Session
--:--:--