| Driver | Value | Status | Notes / quick fixes |
|---|---|---|---|
| Confidence score | 0.85 | good | Low confidence often correlates with low straight time, unstable pacing, or many rejected samples. |
| Samples excluded | 5% | good | If high: tighten selection, exclude bad laps, and re-run QC/analyze. |
| Inconsistent laps | 6 (22%) | high | If unstable: check pacing, sensor dropouts, and avoid corners/traffic in the selection. |
| Straight time (effective) | 121 s | good | If low: widen selection to include more straights, or capture more clean laps. |
| Straight coverage | 1559 m | good | More straight distance generally improves confidence and stability. |
| Corner coverage | 4791 m | — | Turns often bias CdA high; heavy corner time can hurt quality unless handled explicitly. |
| Included distance/laps | 6350 m • 27 laps | — | If low: widen selection or include more clean laps. |
| Solver samples used | 525 (S 122, C 403) | — | If low: exclusions/selection/steady-gate may have removed too much data. |
| Sample interval | 1.00 s (IQR 0.00s) | ok | Irregular or low sample rate can reduce confidence and increase quantization artifacts. |
| Missing samples | speed 0.0% • power 0.2% | good | Dropouts often explain unstable laps and high rejection. |
| Quantization step | power ~7 W • speed ~0.050 m/s | watch |
Large steps can create “blocky” data and inflate residuals.
Try: increase recording rate, disable device smoothing, and verify the source sensor (power meter vs trainer) isn’t heavily filtered.
If power step is big: check whether the device is rounding/averaging power (e.g., 3s/10s display smoothing shouldn’t affect recording, but some devices do).
If speed step is big: prefer wheel-speed sensor over GPS speed (especially indoors/velodrome).
|
| Data quality lap flags | dropouts 0 · spikes 0 · outliers 3 | bad | Dropouts/spikes/outliers can sink confidence even if the lap “looks fine.” Consider excluding those laps. |
| Segment coverage | 4/4 | full | Missing segments can reduce stability/coverage. Aim for clean laps across the full track when possible. |
| Field | Meaning |
|---|---|
| Drag (CdA) | Average of per-sample instantaneous CdA values computed from a power-balance model with fixed Crr (and drivetrain loss). Uses only samples that pass exclusions (and optional steady gate). Units: m². |
| Drag — straights / corners | Same CdA computation as “CdA total”, but averaged over samples labeled straight vs corner by the track segmentation. Useful to spot corner artifacts vs stable straights. |
| Rolling resistance (Crr) | Rolling resistance coefficient held constant during the solve. It may come from a per-run override; otherwise a tire library/manual point is used when available. CdA is estimated while Crr stays fixed. |
| Uncertainty / CI95 | Two different things may appear: (1) CI95 is a bootstrap interval from solver_uncertainty_v2, resampling per-lap mean instantaneous CdA (1500 resamples, 95% interval). (2) Legacy “uncertainty” is a simple spread (std dev) of instantaneous CdA samples and is not a confidence interval. |
| Samples used | Counts from solver_sample_counts: total FIT samples, after exclusions, and the final number used by the solver (plus straight vs corner used). |
| Solver mode / steady gate | The mode can enable a “steady gate” that discards samples with large power ramps or speed changes (dp/dt and dv/dt thresholds), strong braking, and a short ignore window after a major power change. removed_frac is the fraction removed; the gate may fall back to disabled if it would remove too much. |
| CdA-inst stats | Diagnostics for instantaneous CdA on included samples: median plus dispersion (MAD/IQR). These are computed after masking invalid/out-of-bounds CdA values (e.g., non-finite or outside a plausible range). |
| Robust (straights) | A diagnostics-only straight fit stored in robust_v1: confidence-weighted IRLS (Huber) regression in wheel-power space on straight-labeled samples. It does not replace the reported CdA columns. |
| Rejected / residual / time used | Robust diagnostics: pct_rejected is mainly gating (not corners / below mins / below conf_min) and equals 1 - n_used/n_total. residual_metric is a robust residual scale (≈watts) from the straight-fit model (lower is better). straight_time_used_s summarizes how much time had non-zero fit weight. |
| Predicted power | Modeled steady-state (flat, no wind) power at fixed speeds using the run’s solved CdA total + fixed Crr and drivetrain loss. Useful for comparing “how fast this setup feels” on a common baseline. |
| Reference power table | Saved speed→power mapping built from the same steady-state model as Predicted power (CdA, fixed Crr, air density, mass, drivetrain loss) for consistent later comparisons. |
| legacy | robust | Δ | |
|---|---|---|---|
| CdA straight | 0.2764 | 0.1558 | -0.1207 (-43.7%) |
| Uncertainty | CI95 total | ± 0.0056 | — |
| Straight samples used | 122 | 118/525 | — |
|
Rejected
Fraction of straight candidates that end up zero-weight (≈
1 - n_used/n_total; mostly gating)
|
— | 78% | — |
|
Residual metric
Robust residual scale in watts (lower is better)
|
— | 80.5 | — |
| Straight time used | — | 510.0s | — |
| Straight segments used | — | 54 | — |
| Mode | Samples | Duration | Distance | Avg speed | Avg power | Avg cadence |
|---|---|---|---|---|---|---|
| Select a lap… | ||||||
| Lap | Start x | End x | Δx | Start t | End t | Δt |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Revision: #1
{
"created_at": "2026-05-07 14:39:14",
"finalized_at": null,
"has_tire_front_rear": true,
"is_finalized": false,
"notes": null,
"revision_number": 1,
"revision_of_run_id": null,
"run_id": 182,
"run_label": null,
"session_id": 99,
"status": "analyzed",
"tire_front_id": null,
"tire_front_name": null,
"tire_id": null,
"tire_name": null,
"tire_rear_id": null,
"tire_rear_name": null,
"tires_label": null
}
Analyze: Parses the uploaded file, detects laps from distance vs track lap length, classifies straight/corner segments, computes QC results (per-lap qc_flag/reasons/metrics + run summary), and computes solver outputs (avg CdA/Crr + predicted power). This may increase the number of lap rows if the file contains more laps than the FIT “lap messages” reported at upload.
Recompute: Re-runs the QC computations using the current lap inclusion/exclusions in this run (updates per-lap qc_flag + the run summary). Use after excluding laps.
Finalize: Locks this run permanently (immutable). After finalizing, analyze/recompute/exclude are blocked; create a revision to make changes while preserving an audit trail.
| lap_index | lap_id | included | qc_flag | qc_conf | qc_reasons | exclude_reason | action |
|---|---|---|---|---|---|---|---|
| 0 | 14767 | yes | red | 0.00 | Outliers present: 0.18; Unstable signals: 0.00 | ||
| 1 | 14768 | yes | red | 0.11 | High outlier rate: 0.21 | ||
| 2 | 14769 | yes | green | 0.88 | Lap OK | ||
| 3 | 14770 | yes | green | 0.82 | Lap OK | ||
| 4 | 14771 | yes | green | 0.87 | Lap OK | ||
| 5 | 14772 | yes | green | 0.83 | Lap OK | ||
| 6 | 14773 | yes | green | 0.86 | Lap OK | ||
| 7 | 14774 | yes | green | 0.84 | Lap OK | ||
| 8 | 14775 | yes | green | 0.89 | Lap OK | ||
| 9 | 14776 | yes | green | 0.88 | Lap OK | ||
| 10 | 14777 | yes | green | 0.87 | Lap OK | ||
| 11 | 14778 | yes | green | 0.89 | Lap OK | ||
| 12 | 14779 | yes | green | 0.85 | Lap OK | ||
| 13 | 14780 | yes | green | 0.78 | Lap OK | ||
| 14 | 14781 | yes | yellow | 0.68 | Marginal stability: 0.68 | ||
| 15 | 14782 | yes | green | 0.83 | Lap OK | ||
| 16 | 14783 | yes | green | 0.86 | Lap OK | ||
| 17 | 14784 | yes | green | 0.86 | Lap OK | ||
| 18 | 14785 | yes | green | 0.88 | Lap OK | ||
| 19 | 14786 | yes | green | 0.84 | Lap OK | ||
| 20 | 14787 | yes | green | 0.84 | Lap OK | ||
| 21 | 14788 | yes | green | 0.86 | Lap OK | ||
| 22 | 14789 | yes | green | 0.85 | Lap OK | ||
| 23 | 14790 | yes | green | 0.86 | Lap OK | ||
| 24 | 14791 | yes | red | 0.14 | Unstable signals: 0.14 | ||
| 25 | 14792 | yes | red | 0.00 | Unstable signals: 0.00 | ||
| 26 | 14793 | yes | red | 0.00 | Outliers present: 0.20; Unstable signals: 0.00 |
| run | date | track | label | QC | included | CdA | P@45 | P@50 | P@55 | state |
|---|---|---|---|---|---|---|---|---|---|---|
| #199 | 2026-05-07 | Aigle Velodrome (CH) — 200m | yellow | 2642m / 1 laps | 0.2843 | 373W | 501W | 656W | analyzed | |
| #183 | 2026-05-07 | Grenchen | green | 5493m / 24 laps | 0.2747 | 362W | 485W | 635W | analyzed | |
| #182 Recommended | 2026-05-07 | Grenchen | green | 6350m / 27 laps | 0.2795 | 367W | 493W | 645W | analyzed | |
| #181 Recommended | 2026-05-07 | Grenchen | green | 6591m / 28 laps | 0.2594 | 344W | 461W | 602W | analyzed | |
| #180 Recommended | 2026-05-07 | Grenchen | green | 6074m / 26 laps | 0.2511 | 334W | 447W | 585W | analyzed | |
| #179 | 2026-05-07 | Grenchen | green | 5103m / 22 laps | 0.2277 | 307W | 410W | 535W | analyzed |
(none)