Goal: a stable reference run for comparisons (position/helmet/wheels), not the “best-looking” outlier.
Prefer: QC A/green, high included distance, low rejection %, few unstable laps, and solid straight coverage.
Avoid: low straight time, many unstable laps, power dropouts/spikes, or runs that needed heavy manual selection unless you’re deliberately isolating a clean segment.
Rule of thumb: pick the top Best10 run you’d be comfortable publishing as a reference; if A-only has none, choose the cleanest B and document why.
Client report
Baseline vs Best10, power @35–55, time savings (40/90/180 km), and top 10 runs.
Uses current Ref speed.Copied
Workflow
Next action
Review QC and replay consistency, then finalize when evidence is stable.
Review QC reasons, exclude noisy laps, and run Recompute.
Document why this run is still usable before sharing with an athlete.
Replay drift detected: inspect top driver 'air_density' before finalize.
Replay consistency
Replay drift is above tolerance. Review mismatch and top driver before finalize.
Cached: within_tolerance=False
• |delta CdA|=0.037340
• top driver=air_density
Verify recording is 1s (not smart recording) and that power has no dropouts.
Check power meter calibration/zero-offset and look for hidden dropouts/spikes.
Re-test with steadier pacing/position; add laps until instability is diluted.
Prioritize a truly steady section: same position, no braking/traffic, no surges.
If wind is gusty, repeat in calmer conditions or add more clean laps.
Target constant power (avoid micro-surges); use a pacing target and smooth pedaling.
Pick a steadier pacing target; avoid surges between straights/corners.
If variability is structural (course/traffic), choose a better time/location or add laps.
median conf 0.59
• rejected 0%
• unstable 1
unstable frac 100%
• power 100%
• speed 0%
• dropout laps 0
• spike laps 0
• outlier laps 0
• straight time 143s
Signal quality breakdown
These are the main factors behind QC confidence and rejection. Thresholds are heuristic; use them to guide selection + data cleanup.
Driver
Value
Status
Notes / quick fixes
Confidence score
0.59
low
Low confidence often correlates with low straight time, unstable pacing, or many rejected samples.
Samples excluded
0%
good
If high: tighten selection, exclude bad laps, and re-run QC/analyze.
Inconsistent laps
1
(100%)
very high
If unstable: check pacing, sensor dropouts, and avoid corners/traffic in the selection.
Straight time (effective)
143 s
good
If low: widen selection to include more straights, or capture more clean laps.
Straight coverage
1546 m
good
More straight distance generally improves confidence and stability.
Corner coverage
1096 m
—
Turns often bias CdA high; heavy corner time can hurt quality unless handled explicitly.
Included distance/laps
2642 m
• 1 laps
—
If low: widen selection or include more clean laps.
Solver samples used
245
(S 144, C 101)
—
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.0%
good
Dropouts often explain unstable laps and high rejection.
Quantization step
power ~1 W
•
speed ~0.030 m/s
good
Large steps can create “blocky” data and inflate residuals.
Data quality lap flags
dropouts 0 · spikes 0 · outliers 0
good
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.
Aerodynamic result
Drag coefficient (CdA) and rolling resistance solved from your selected ride data, with modelled power at common race speeds.
Definitions (what these numbers mean)
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.
Standard vs robust estimate comparison
The robust estimate uses only straight sections with confidence weighting — it's a diagnostic check and does not replace the reported result.
legacy
robust
Δ
CdA straight
0.2918
0.2151
-0.0767
(-26.3%)
Uncertainty
± total
± 0.0130
—
Straight samples used
144
144/245
—
Rejected
Fraction of straight candidates that end up zero-weight (≈ 1 - n_used/n_total; mostly gating)
—
41%
—
Residual metric
Robust residual scale in watts (lower is better)
—
101.2
—
Straight time used
—
240.0s
—
Straight segments used
—
27
—
Drag (CdA)
0.2843 m²
± 0.1621 (sample std)
Rolling resistance (Crr)
0.00400
Drag — straights
0.2918
Drag — corners
0.2727
Solver mode: default
• drivetrain 3.0% • accel on • grade on
Distance along the track on the X axis. Drag to highlight the section you want to analyse. Scroll with Ctrl/⌘ + mousewheel to zoom in.
(downloads selected CSV + selection JSON)
Applying a selection saves the range, re-runs the analysis, and refreshes all results below to match.
Loading chart…
Move pointer over chart for values.
PowerSpeed
CadenceHeart rateCdA-inst
Overlays: 3s long-dash, 10s dotted (visual only).
Lap explorer (visual only)
Selected
CopiedTip: click a boundary line (or Alt+click anywhere) to select a lap.
—
Stats are computed from the raw samples for the chosen lap.
Mode
Samples
Duration
Distance
Avg speed
Avg power
Avg cadence
Select a lap…
Stability (diagnostic)
Select a lap to see pacing/position stability.
Uses robust CV (MAD-based) + first-half vs second-half drift. Visual-only; does not affect solver.
Lap spans (distance/time from samples)
Lap
Start x
End x
Δx
Start t
End t
Δt
Loading…
Lap QC
Select a lap to see QC status.
Recommended next steps
Run details (setup, notes, tires, photos)
Setup is stored per run (equipment/position/overrides). Tire selection + notes + photos are stored on the run. Notes/tires autosave; photos require a manual upload.
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.
Laps and exclusions
(showing 1/3)selection activeyellow 1
FIT lap messages: 2(last record distance: 10141.35)Detected laps: 1(included: 1)
Data source:
FIT
(fit_distance_field)
Selection active: 1857.5m .. 4513.1m.
Showing 1 / 3 laps.
Show selection only
Runs one recompute (faster than excluding one-by-one).
lap_index
lap_id
included
qc_flag
qc_conf
qc_reasons
exclude_reason
action
0
15104
yes
yellow
0.59
Marginal stability: 0.59
1
15105
yes
(out of scope)
No samples in scope
2
15106
yes
(out of scope)
No samples in scope
Client report preview
Auto-rendered from the same payload used by Copy. Adjust Ref speed and format to update.
CdA trend (Best10 + baseline)
Power bars (baseline tinted vs best solid)
Colors represent speed (40/45/50/55).
Baseline + Best10 (horizontal compare)
CdA by run order (baseline + compared runs).
Client runs summary (6)
All saved runs for this client: Lars Teutenburg — lars@bikefiteurope.com. “Recommended” prioritizes green QC + high included meters.