MotoGP Data dominance · tyre · race pace
ca es
Provisional

Data

Everything we have: every data table, how many rows it has, where it appears on the site and what each column means. A provisional page to review it all before deciding where each piece goes.

All products

All products

TableRowsColumnsShown on
dim_circuit2812Circuit
dim_circuit_geometry5,99014GP · Circuit
dim_circuit_sector9211GP · Circuit
dim_dictionary4905Data
dim_event31914GP · Season
dim_rider11712Rider
fact_circuit_metric2215GP · Circuit
fact_constructor_metric2005Season
fact_forecast_eval37121GP · How it works
fact_grid_penalty17710GP
fact_holeshot8,78011GP · Rider
fact_incident5,50813GP
fact_lap_position133,0669GP
fact_q1_forecast3,1489GP
fact_quali_forecast2,94511GP
fact_quali_risk255Rider
fact_racecraft258Rider
fact_race_forecast4,88215GP
fact_race_forecast_sprint1,67815GP
fact_race_pace6,93019GP
fact_race_residual5,2608GP
fact_race_result6,69018GP · Season · Rider · Circuit
fact_race_story38518GP
fact_race_story_rider7,33115Rider
fact_rider_circuit79810Rider · Circuit
fact_rider_decay1698Rider
fact_rider_injury1729Season · Rider
fact_rider_metric4048Rider
fact_rider_ranking2279Rider
fact_season_metric1712Season
fact_sector5,6776GP · Circuit
fact_sector_season14,3177not shown yet
fact_sprint_forecast1,69915GP
fact_standings6,8379Season · GP · Rider
fact_teammate_h2h16523Season · Rider
fact_title_forecast3019Season · Home
fact_title_forecast_hist4016Season
fact_tyre_choice4,95018Rider
fact_tyre_compound40713GP
fact_weather2,38117GP · Circuit
v_circuit_dnf view—0GP · Circuit
v_race_forecast_latest view—0GP
v_rider_residual_year view—5Rider

Column dictionary

Column dictionary

dim_circuit (12)
ColumnUnitMeaning
capacityrecuentoAforo del circuito (Sportradar).
circuit_idUUIDIdentificador canónico del circuito (= circuits.id).
Clave para unir (lap_times etc. van por circuit_short; aquí por id).
coordinateslat,lonCoordenadas del circuito (Sportradar).
curves_leftrecuentoNº de curvas a izquierdas (Sportradar).
A veces NULL.
curves_rightrecuentoNº de curvas a derechas (Sportradar).
A veces NULL.
debutañoAño de debut del circuito en el mundial (Sportradar).
lapsrecuentoVueltas de carrera típicas (Sportradar).
length_mm (metros)Longitud de la vuelta (Sportradar).
NULL para Indianapolis (no está en SR).
nametextoNombre oficial del circuito (Dorna).
nationtextoPaís del circuito (Dorna).
placetextoLocalidad del circuito (Dorna).
timezoneIANA tzZona horaria, p.ej. 'Europe/Rome'.
⚠️ algún valor de SR es erróneo (Sepang sale 'Asia/Tokyo').
dim_circuit_geometry (14)
ColumnUnitMeaning
alt_mmAlçada sobre el nivell del mar del punt (Open-Meteo Elevation, DEM Copernicus GLO-90, resolució 90 m, mitjana mòbil de 5 punts).
Per al traçat en 3D (three.js): exagerar el relleu ×3-5 perquè es vegi. Precisió vertical ~5-10 m.
circuit_idUUIDCircuit físic → dim_circuit.circuit_id.
PK (circuit_id, seq). © OpenStreetMap contributors (ODbL): cal atribució al peu del mapa.
circuit_nametextoNom del circuit.
circuit_shortcódigo (3 letras)Codi d'event més recent del circuit (per unir amb fact_sector / fact_circuit_metric).
Els codis històrics es resolen per circuit_id via dim_event.
clockwise0/11 = circuit en sentit horari (vist des de dalt).
direction_sourcecategoríaoneway (etiquetes OSM) o curves (corbes dreta/esquerra de dim_circuit).
Els sectors de la FIM NO hi són (pendent: CSV manual amb les distàncies dels 3 talls).
dist_mmDistància acumulada des de la meta al llarg del traçat.
fracfraccióndist_m / total_m (0-1): per situar un punt de volta o un sector per fracció de volta.
latgradosLatitud WGS84.
longradosLongitud WGS84.
Per pintar en 2D: x = lon·cos(lat mitjana), y = lat (o projecció Mercator); D3 geoPath també val.
official_mmLongitud oficial (dim_circuit.length_m).
seqíndiceOrdre del punt seguint el SENTIT DE CURSA, des de la línia de meta (0). L'últim punt repeteix el primer (traçat tancat).
start_sourcecategoríaCom s'ha fixat la meta: pit_lane (punt més proper al pit lane d'OSM) o longest_straight (recta més llarga, aproximat).
Sense línia de meta a OSM: pot estar desplaçada uns 100-300 m dins la recta.
total_mmLongitud del traçat reconstruït (suma dels trams).
Difereix de l'oficial < 1 % als circuits marcats OK.
dim_circuit_sector (11)
ColumnUnitMeaning
circuit_idUUIDCircuit físic → dim_circuit / dim_circuit_geometry.
PK (circuit_id, sector).
circuit_shortcódigo (3 letras)Codi d'event més recent (per unir amb fact_sector.circuit_short).
dist_end_mmDistància des de meta on acaba.
dist_start_mmDistància des de meta on comença.
frac_endfracciónFracció de volta on ACABA el sector (el 4t acaba a 1 = meta).
frac_startfracciónFracció de volta on COMENÇA el sector (0 = meta). Unir amb dim_circuit_geometry.frac per pintar-lo.
methodcategoríatime_share = APROXIMAT (fracció de distància = fracció de temps; error 5-10 % de la volta) · manual = distàncies de reference/circuit_sectors.csv.
Etiquetar com a aproximat al mapa mentre sigui time_share.
n_lapsrecuentoVoltes netes de cursa usades.
seasonañoTemporada de les voltes usades (la més recent amb dades).
sectoríndiceSector FIM 1..4 (T1..T4 de lap_times / fact_sector).
t_sharefracciónFracció del temps de volta que dura el sector (mediana de voltes netes de cursa).
NULL si method = manual.
dim_dictionary (5)
ColumnUnitMeaning
column_nametextoColumna descrita.
meaningtextoSignificado de la columna.
notestextoMatices: dirección, rango, referencia.
table_nametextoTabla descrita.
unittextoUnidad en que se expresa el valor.
dim_event (14)
ColumnUnitMeaning
circuit_idUUIDCircuit físic → dim_circuit.circuit_id (resol codis que canvien de circuit: USA Laguna Seca 2010-13 / COTA 2026; POR Estoril 2010-12 / Portimão 2020+).
circuit_nametextoNom del circuit (circuits.name).
circuit_shortcódigo (3 letras)Codi d'event de Dorna (clau a tots els fact_*).
Codis històrics inclosos (ALR, ANC, DOH, EUR, STY, TER, SLD, EMI, INP, IND…).
country_isoISO-2País de l'event (Dorna).
date_endfechaFinal del cap de setmana.
date_startfechaInici del cap de setmana (YYYY-MM-DD).
event_nametextoNom oficial de Dorna (p. ex. GRAND PRIX OF JAPAN).
has_sprint0/11 = cap de setmana amb esprint (2023+).
race_datefechaData LOCAL de la cursa (sessió RACNA).
NULL si Dorna encara no ha publicat sessions.
roundrecuentoRonda (ordre per data_start dins l'any).
sprint_datefechaData LOCAL de l'esprint (SPRNA); NULL si no n'hi ha.
statuscategoríaEstat Dorna: FINISHED / CURRENT / NOT-STARTED…
tzIANA tzFus horari del circuit (build_map.CIRCUIT_TZ; circuits antics per nom).
Fiable (a diferència de dim_circuit.timezone de Sportradar).
yearañoTemporada.
PK (year, circuit_short). Tots els GPs no-test 2010→any en curs, futurs inclosos.
dim_rider (12)
ColumnUnitMeaning
country_isoISO 3166 alpha-2Código de país del piloto.
country_nametextoNombre del país.
date_of_birthfecha (YYYY-MM-DD)Fecha de nacimiento (bio de Sportradar).
Escasa: ~45/115 pilotos.
debuttexto/añoTemporada de debut en el mundial (Sportradar).
Escasa.
first_pointstextoPrimeros puntos (Sportradar).
Escasa.
first_poletextoPrimera pole (Sportradar).
Escasa.
first_victorytextoPrimera victoria (Sportradar).
Escasa.
full_nametextoNombre limpio del piloto, p.ej. 'Marc Marquez'.
Forma canónica para mostrar.
height_cmcmAltura del piloto (Sportradar).
Escasa (~28/115).
place_of_birthtextoLugar de nacimiento (Sportradar).
Escasa.
rider_idUUIDIdentificador canónico del piloto (= competitors.id).
Clave para unir TODAS las tablas (competitor_id apunta aquí).
weight_kgkgPeso del piloto (Sportradar).
Escasa (~28/115).
fact_circuit_metric (15)
ColumnUnitMeaning
circuit_idUUIDCircuito físico (events.circuit_id) → dim_circuit.circuit_id.
circuit_nametextoNombre del circuito (circuits.name).
circuit_shortcódigo (3 letras)Código de evento (PK). Une con fact_* por circuit_short.
circuit_id → dim_circuit (puente evento→circuito físico).
front_row_podium_pct%% del podio (de 3) que sale de la 1ª fila.
mae_grid_finalposicionesMedia de |final − parrilla| (movimiento neto por piloto).
n_disagreerecuentoNº de desacuerdos práctica-vs-parrilla entre compañeros.
n_racesrecuentoCarreras RAC 2018+ con ≥8 finishers usadas.
year_min/year_max = rango.
pace_wins_hi%Límite superior IC95 de pace_wins_pct.
pace_wins_lo%Límite inferior IC95 de pace_wins_pct.
pace_wins_pct%Entre compañeros de equipo, cuando el ritmo de práctica (PR/FP2 tanda larga) y la parrilla DISCREPAN: % en que acaba delante el de más ritmo. <50 = manda la parrilla.
IC Wilson 95 % en pace_wins_lo/hi; n_disagree pequeño (5-17) → orientativo.
pole_win_pct%% de carreras que gana el poleman.
position_index0-100Percentil entre circuitos de la media de z(spearman) y z(−sd_reorder). 100 = el más 'de posición' (la parrilla decide), 0 = el más abierto (se remonta).
DESCRIPTIVO: probado como condicionante del modelo, no mejora (RACE_MODEL_CIRCUIT.md).
sd_reorderposicionessd de (final − V1) por carrera: reordenación durante la carrera. Baja (~3,1-3,3) = posición; alta (4,3-4,5) = abierto.
sd_startposicionessd de (V1 − parrilla) por carrera: caos en la salida.
NULL si no hay lap_positions.
spearman_grid_finalcorrelaciónMedia por carrera del Spearman parrilla→final (finishers). Alto (0,8+) = la parrilla manda ('circuito de posición').
GER/SPA/NED/VAL ~0,81-0,84; INA/FRA/ARG/MAL ~0,65-0,71.
fact_constructor_metric (5)
ColumnUnitMeaning
constructortextoMarca (DUCATI, HONDA, ...).
Solo 2018+ (antes lap_times no trae marca).
metriccategoríatop_speed_max / top_speed_p95 / top_speed_median / race_vs_grid.
nrecuentoNº de vueltas con lectura de velocidad.
valuesegún metrictop_speed_*: km/h (punta) · race_vs_grid: posiciones NETAS de parrilla por año×marca (>0 = la moto remonta / corre mejor de lo que clasifica; Yamaha negativo).
yearañoTemporada.
fact_forecast_eval (21)
ColumnUnitMeaning
brier_podiumscoreBrier de P(podi) sobre tot el camp.
Referència ~0,08.
brier_winscoreBrier de P(victòria) sobre tot el camp (0 = perfecte).
circuit_shortcódigo (3 letras)Circuit.
fav_nametextoFavorit del model (màx p_win).
fav_p_win% (0-100)P(victòria) del favorit.
fav_won0/11 = el favorit va guanyar.
kindcategoríarace_pre (post-Q2) / race_post_sprint (post-esprint) / sprint (pronòstic de l'esprint).
Tot walk-forward: cap cursa s'avalua amb dades posteriors.
maeposicionesError absolut mitjà de exp_pos.
mae_gridposicionesError absolut mitjà de la graella.
mae_grid_shrunkposicionesError absolut mitjà de la graella REGRESSADA a la mitjana (final ≈ a + b·graella, ajust walk-forward amb les curses anteriors): comparació justa amb mae.
NULL a les primeres curses (< 100 parells). El model calibra; si mae ≈ mae_grid_shrunk, el guany del MAE és només calibració.
n_finishersrecuentoClassificats.
n_ridersrecuentoPilots pronosticats.
pi80_covfracciónFracció de classificats dins del seu PI80 (nominal 0,80).
roundrecuentoRonda.
session_typecategoríaRAC o SPR (sessió avaluada).
spearmancorrelaciónSpearman entre exp_pos i posició final (classificats).
spearman_gridcorrelaciónEl mateix per a la graella sola (referència).
winner_gridposiciónDes d'on va sortir el guanyador.
winner_nametextoGuanyador real.
winner_p_win% (0-100)P(victòria) que el model donava al guanyador.
yearañoTemporada.
PK (year, circuit_short, kind).
fact_grid_penalty (10)
ColumnUnitMeaning
bike_numberdorsalDorsal (del Grid.pdf).
circuit_shortcódigo (3 letras)Circuit.
competitor_idUUIDPilot → dim_rider.
deltaposicionesgrid_pos − q_pos: llocs que recula (>0). Només files amb sanció o absència.
Els que pugen per efecte dels altres no surten.
grid_posposiciónPosició oficial de sortida (NULL = absent del Grid.pdf: pit lane / no surt).
q_posposiciónPosició per quali (Q2 1..n, després Q1), re-rankejada entre els presents al Grid.pdf.
reasontextoText de la sanció de session_incidents (si en menciona el dorsal i 'grid') o 'absent del Grid.pdf'.
Pot ser NULL: sanció sense text (p. ex. del GP anterior).
rider_nametextoNom del pilot.
session_typecategoríaRAC o SPR (cada un té el seu Grid.pdf).
yearañoTemporada.
PK (year, circuit_short, session_type, competitor_id). Només esdeveniments amb Grid.pdf.
fact_holeshot (11)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Circuito.
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
gainposicionesPuestos ganados en la salida = grid − pos_v1.
+ = adelanta; − = pierde puestos.
gridposiciónPuesto de salida.
holeshotboolTrue si llegó 1º al final de la V1 (holeshot).
pos_v1posiciónPosición al final de la vuelta 1.
race_datefecha (YYYY-MM-DD)Fecha del GP.
rider_nametextoNombre canónico.
roundnº de rondaOrden cronológico del GP.
session_typecategoríaRAC = carrera, SPR = sprint.
yearañoTemporada.
fact_incident (13)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Circuit / codi d'event.
competitor_idUUIDPilot afectat → dim_rider (NULL a les notes generals: sortida, bandera, etc.).
detailtextoText de l'incident tal com surt al log (fins a 250 caràcters).
incident_ididIdentificador de l'incident (PK; = session_incidents.id de la duck).
is_flag0/11 = bandera (vermella; les grogues no es registren al PDF).
is_penalty0/11 = sanció (long_lap, ride_through, time/position_penalty, sanction).
kindcategoríalong_lap, ride_through, time_penalty, position_penalty, sanction, track_limit_warning, jump_start, crash, retire, mechanical, rejoin, pit_entry, pit_lane_start, dns, flag (vermella), race_control, other.
partíndice1 normal; 2 = represa d'una cursa partida per bandera vermella.
rider_nametextoNom del pilot (canònic).
seqíndiceOrdre dins del log de la sessió.
session_typecategoríaSessió del PDF: RAC, SPR, Q1, Q2, PR, FP1, FP2, WUP… (RAC2 → RAC amb part=2).
time_localHH:MM'SSHora del rellotge del circuit segons el log de Race Control (NULL a les notes dels Stewards).
No hi ha número de volta: el PDF no en dona.
yearañoTemporada (2012+).
fact_lap_position (9)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Circuit / codi d'event.
competitor_idUUIDPilot → dim_rider.
gap_ssGap al líder en aquesta volta (NULL = és el líder).
Doblats: gap oficial del PDF.
lapíndiceVolta (1 = final de la primera volta).
lap_time_ssTemps d'aquesta volta.
positionposiciónPosició al pas per meta d'aquesta volta.
Un pilot que abandona deixa de tenir files.
rider_nametextoNom del pilot.
session_typecategoríaRAC o SPR (sessió canònica: en curses partides, la represa).
yearañoTemporada (2010+).
PK (year, circuit_short, session_type, lap, competitor_id).
fact_q1_forecast (9)
ColumnUnitMeaning
actual_q1posiciónPosición REAL en Q1 (track record); ≤2 = promovido.
NULL = pronóstico EN VIVO (antes de Q1; campo = PR con posición > 10).
circuit_shortcódigo (3 letras)Circuito.
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
p_promote% (porcentaje)Probabilidad de PASAR a Q2 (top 2 de Q1), calibración walk-forward por rango.
0-100. Rango #1 → ~55%.
pred_rankposiciónRango predicho dentro del campo de Q1 (mismo predictor que fact_quali_forecast).
Q1 es mucho más predecible que Q2: Spearman ~0,70.
race_datefecha (YYYY-MM-DD)Fecha del GP.
rider_nametextoNombre canónico.
roundnº de rondaOrden cronológico del GP.
yearañoTemporada.
fact_quali_forecast (11)
ColumnUnitMeaning
actual_q2posiciónPosición REAL en Q2 (track record).
NULL = pronóstico EN VIVO (post-Q1, Q2 aún no corrida; campo = PR top-10 + Q1 top-2).
circuit_shortcódigo (3 letras)Circuito.
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
p_front_row% (porcentaje)Probabilidad de 1ª fila (top 3).
0-100.
p_pole% (porcentaje)Probabilidad de pole, calibración empírica walk-forward por rango predicho.
0-100. Q2 es lotería de 1 vuelta: favorito ~38-40%.
p_top6% (porcentaje)Probabilidad de top 6.
0-100.
pred_rankposiciónRango predicho dentro del campo de Q2 = media de los rangos en la Práctica (PR) y en FP2 (formato 2023+; antes, mejor vuelta de toda la práctica).
Predictor. Vueltas válidas: no canceladas, no in-laps. Auditoría: Spearman 0,54 en 2023+ (docs/MODEL.md §3).
race_datefecha (YYYY-MM-DD)Fecha del GP.
rider_nametextoNombre canónico.
roundnº de rondaOrden cronológico del GP.
yearañoTemporada.
fact_quali_risk (5)
ColumnUnitMeaning
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
disaster_pct% (porcentaje)% de Q2 con mejor tiempo >1,01× la mediana de los demás.
Alto = se cae del pelotón (Pol/Oliveira); decorrelacionado de la pace.
n_q2recuentoNº de apariciones en Q2 (2021+). Gate n≥5.
rider_nametextoNombre canónico.
track_limit_pct% (porcentaje)% de Q2 con la vuelta MÁS RÁPIDA cancelada (track-limits).
Alto = aprieta el límite (Acosta/Oliveira/Bagnaia).
fact_racecraft (8)
ColumnUnitMeaning
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
n_racesrecuentoNº de carreras agregadas.
Gate n≥10.
rc_earlyposicionesRacecraft V2–V5, neto de posición (goma fresca).
+ = adelanta más de lo esperado.
rc_lateposicionesRacecraft V5→final, neto de posición (gestión).
+ = remonta en la gestión.
rc_totalposicionesrc_early + rc_late.
rider_nametextoNombre canónico.
s1_launchresidual (z)Holeshot: sector 1 de la V1, NETO de grilla.
− = llega ANTES a T1 (mejor lanzamiento).
starterposicionesSalida: grilla → posición en V1 (recent-shrunk).
+ = gana puestos en la salida.
fact_race_forecast (15)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Circuito.
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
exp_posposición (esperada)Posición final esperada, CONDICIONAL a acabar la carrera (media de las simulaciones sin DNF).
p_win/p_podium/p_top5/p_top10 son INCONDICIONALES (incluyen el DNF); exp_pos/pi80 no.
gridposiciónPuesto de salida = clasificación OFICIAL de Q1/Q2 (results). Es el predictor central.
NO aplica sanciones de parrilla (pérdida de puestos / salida desde el pit lane). El backtest dice que la grilla sola gana → el modelo NO mueve el orden; añade varianza de salida (global) + ruido V1→final + DNF (solo CALIBRA).
p_dnf% (porcentaje)Probabilidad histórica de NO terminar (DNF), per-piloto encogida hacia la media global.
0-100. Descriptor publicado; su granularidad apenas mueve el pronóstico (ver RACE_MODEL_REVAL.md).
p_podium% (porcentaje)Probabilidad de podio (top 3).
p_top10% (porcentaje)Probabilidad de top 10.
p_top5% (porcentaje)Probabilidad de top 5.
p_win% (porcentaje)Probabilidad de ganar (Monte Carlo).
25 = 25%.
pi80_hiposiciónLímite superior del intervalo de predicción al 80% (peor plausible), condicional a acabar.
pi80_loposiciónLímite inferior del intervalo de predicción al 80% (mejor plausible), condicional a acabar.
Cobertura empírica ~83% (ligeramente ancho: salida y reordenación V1→final se muestrean independientes; RACE_MODEL_START.md).
race_datefecha (YYYY-MM-DD)Fecha del GP (pronóstico válido ANTES de la carrera).
rider_nametextoNombre canónico.
roundnº de rondaOrden cronológico del GP.
yearañoTemporada de la carrera pronosticada.
fact_race_forecast_sprint (15)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Circuito.
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
exp_posposición (esperada)Posición final esperada, CONDICIONAL a acabar la carrera (media de las simulaciones sin DNF).
p_win/p_podium/p_top5/p_top10 son INCONDICIONALES (incluyen el DNF); exp_pos/pi80 no.
gridposiciónPuesto de salida = clasificación OFICIAL de Q1/Q2 (results). Es el predictor central.
NO aplica sanciones de parrilla (pérdida de puestos / salida desde el pit lane). El backtest dice que la grilla sola gana → el modelo NO mueve el orden; añade varianza de salida (global) + ruido V1→final + DNF (solo CALIBRA).
p_dnf% (porcentaje)Probabilidad histórica de NO terminar (DNF), per-piloto encogida hacia la media global.
0-100. Descriptor publicado; su granularidad apenas mueve el pronóstico (ver RACE_MODEL_REVAL.md).
p_podium% (porcentaje)Probabilidad de podio (top 3).
p_top10% (porcentaje)Probabilidad de top 10.
p_top5% (porcentaje)Probabilidad de top 5.
p_win% (porcentaje)Probabilidad de ganar (Monte Carlo).
25 = 25%.
pi80_hiposiciónLímite superior del intervalo de predicción al 80% (peor plausible), condicional a acabar.
pi80_loposiciónLímite inferior del intervalo de predicción al 80% (mejor plausible), condicional a acabar.
Cobertura empírica ~83% (ligeramente ancho: salida y reordenación V1→final se muestrean independientes; RACE_MODEL_START.md).
race_datefecha (YYYY-MM-DD)Fecha del GP (pronóstico válido ANTES de la carrera).
rider_nametextoNombre canónico.
roundnº de rondaOrden cronológico del GP.
yearañoPOST-ESPRINT: pronóstico de CARRERA actualizado con el ritmo del sprint (½ parrilla + ½ ritmo neto del SPR). Solo GPs con sprint (2023+). Temporada de la carrera pronosticada.
fact_race_pace (19)
ColumnUnitMeaning
age_maxvoltesEdad de neumático MÁXIMA (un 1:32.9 a 25 v ≠ a 5 v).
age_minvoltesEdad de neumático MÍNIMA de las vueltas usadas.
age_reliableboolEdad de pneu fiable (False si goma heredada sin ancla New).
circuit_shortcódigo (3 letras)Circuito.
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
constructortextoMarca de la moto.
degs/vueltaDegradación del piloto en medium (fp_deg mediana, contexto de gestión de goma).
Menor = gestiona mejor.
n_cleanrecuentoNº de vueltas limpias usadas (tras filtro ≤0.20 s/km).
pace_ss (segundos)Ritmo de carrera = MEDIANA de las vueltas limpias.
Menor = más rápido.
pace_s_per_kms/kmRitmo normalizado por longitud de circuito (comparable entre pistas).
pace_sdsDesviación típica (consistencia). Menor = más regular.
rear_compoundcategoríaCompuesto trasero del pool (medium usado).
rider_nametexto (crudo)Nombre del piloto (de lap_times).
Unir por competitor_id.
session_scopecategoríapractice (estimado, medium usado) / race / sprint (ritmo real, mediana limpia).
t1sMediana del sector 1 de las vueltas usadas.
t2sMediana del sector 2.
t3sMediana del sector 3.
t4sMediana del sector 4 (NULL en circuitos de 3 sectores).
yearañoTemporada.
fact_race_residual (8)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Circuito.
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
final_posposiciónPuesto final.
Solo finishers (los DNF no tienen residuo → hueco en la curva).
grid_posposiciónPuesto de salida (parrilla).
race_datefecha (YYYY-MM-DD)Fecha del GP (orden cronológico de la evolución).
race_vs_gridposicionesResiduo de grilla POR carrera = (ajuste final~grilla) − final. >0 = acaba MEJOR de lo que dice su parrilla (neto del margen de salida).
Base por carrera; el agregado vive en fact_rider_metric y el per-año en la vista v_rider_residual_year.
rider_nametextoNombre canónico.
yearañoTemporada.
fact_race_result (18)
ColumnUnitMeaning
average_speedkm/hVelocidad media.
best_lap_timetiempo (m:ss.sss)Mejor vuelta, como TEXTO.
Parsear a segundos si se ordena.
circuit_shortcódigo (3 letras)Circuito.
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
constructortextoMarca de la moto.
gap_firsttiempo (texto)Diferencia con el 1º.
TEXTO (p.ej. '+3.512' o '1 Lap').
pointspuntosPuntos obtenidos.
positionposiciónPuesto final.
NULL si no clasificado (DNF/DNS).
race_datefecha (YYYY-MM-DD)Fecha de la sesión.
rider_nametextoNombre limpio (de competitors).
roundnº de rondaOrden cronológico del GP.
session_typecategoríaRAC = carrera, SPR = sprint.
statuscategoríaEstado oficial (FINISHED, DNF, OUTSTND, ...).
teamtextoEquipo.
timetiempo (texto)Tiempo total / formato de origen.
TEXTO; parsear si se compara.
top_speedkm/hVelocidad punta del piloto.
A menudo NULL en origen.
total_lapsrecuentoVueltas completadas.
yearañoTemporada.
fact_race_story (18)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Circuit.
closest_finish_ssGap del 2n a l'arribada.
comeback_fromposiciónDes d'on va sortir el de la remuntada.
comeback_ridertextoRemuntada més gran (graella oficial → final; V1 si no hi ha graella).
comeback_toposiciónOn va acabar.
lead_changesrecuentoCanvis de líder entre voltes.
longest_battletextoEls dos pilots de la batalla més llarga ('A vs B').
longest_battle_lapsrecuentoVoltes de la batalla més llarga.
n_battlesrecuentoBatalles: dos pilots consecutius a < 1 s durant ≥ 5 voltes seguides.
n_classifiedrecuentoPilots presents a l'última volta.
n_lapsrecuentoVoltes de la cursa (última volta del líder).
n_leadersrecuentoPilots diferents que han liderat.
overtakesrecuentoAvançaments: parells de pilots presents a dues voltes seguides que s'inverteixen (no compta pujar per un abandonament).
Al pas per meta; els dobles avançaments dins d'una volta no es veuen.
red_flag0/11 = bandera vermella a la sessió (session_incidents).
session_typecategoríaRAC o SPR.
winner_laps_ledrecuentoVoltes al capdavant del guanyador.
winner_nametextoGuanyador.
yearañoTemporada.
PK (year, circuit_short, session_type).
fact_race_story_rider (15)
ColumnUnitMeaning
best_posposiciónMillor posició durant la cursa.
circuit_shortcódigo (3 letras)Circuit.
classified0/11 = present a l'última volta.
competitor_idUUIDPilot → dim_rider.rider_id.
gain_v1_finalposicionesLlocs guanyats de V1 a l'última volta (>0 = remunta).
laps_donerecuentoVoltes completades.
laps_ledrecuentoVoltes al capdavant.
overtakes_maderecuentoAvançaments fets.
overtakes_sufferedrecuentoAvançaments patits.
pos_finalposiciónPosició a la seva última volta (si abandona, on anava).
Pot diferir de la classificació oficial en doblats.
pos_v1posiciónPosició al final de la volta 1.
rider_nametextoNom del pilot.
session_typecategoríaRAC o SPR.
worst_posposiciónPitjor posició durant la cursa.
yearañoTemporada.
PK (year, circuit_short, session_type, competitor_id).
fact_rider_circuit (10)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Circuito, p.ej. ITA, NED, SPA.
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
constructortextoMarca predominante del piloto en ese circuito.
levelcategoríaNivel cualitativo: fuerte / normal / flojo (según z).
metriccategoríaaffinity_quali o affinity_race.
nrecuentoNº de sesiones del piloto en ese circuito (tamaño de celda).
rider_nametexto (crudo)Nombre de lap_times (apellido en MAYÚS).
Unir por competitor_id.
subtextoSubdivisión; VACÍO para afinidad.
Reservado (sector/compuesto en otras métricas).
valuepuntos de % (gap)Afinidad = media del piloto en TODOS los circuitos − su media en ESTE.
Positivo = rinde POR ENCIMA de su nivel aquí.
zσ (z-score)Afinidad estandarizada = value / (sd_piloto/√n).
|z|≥1 = señal fuerte.
fact_rider_decay (8)
ColumnUnitMeaning
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
metriccategoríafp_deg (práctica, por compuesto) / race_net_decay (carrera, neto) / race_deg_fuelcorr (neto corregido por combustible, A.6).
nrecuentoNº de runs (fp) o carreras (race) agregados.
p25s/vueltaPercentil 25 de la pendiente (mejor cuartil).
p75s/vueltaPercentil 75 de la pendiente.
rider_nametextoNombre del piloto.
Unir por competitor_id.
scopecategoríaCompuesto (Soft/Medium/Hard) para fp_deg; '' para race.
values/vueltaDegradación MEDIANA (pendiente). Menor = gestiona mejor la goma.
fp_deg es relativa (fuel de FP); race_net es neta.
fact_rider_injury (9)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Event afectat.
competitor_idUUIDPilot → dim_rider.
kindcategoríahurt = corre lesionat · absent = no corre · comeback = 1r/2n event després d'una absència o lesió.
notetextoNota lliure (CSV) o explicació automàtica.
origincategoríamanual (maintenance/reference/rider_injury.csv) · auto (absència detectada: cap resultat entre dos caps de setmana disputats) · derivat (comeback).
Les lesions 'corrent' només es poden saber a mà: editar el CSV.
rider_nametextoNom del pilot.
roundrecuentoRonda del calendari.
weightfactorPes del resultat a la simulació del campionat: hurt 0,25 · comeback 0,5 · absent 0.
yearañoTemporada (en curs i anterior).
PK (year, competitor_id, circuit_short).
fact_rider_metric (8)
ColumnUnitMeaning
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
metriccategoríaquali_race_residual (A.4) / consistency (A.5) / top_speed_rider (C7) / places_gained (F.4-P.1) / race_vs_grid (residuo de grilla) / practice_to_quali_z / practice_to_race_z (sandbagging).
nrecuentoNº de sesiones/stints/carreras agregados.
p25según metricPercentil 25 (IQR) donde aplica.
p75según metricPercentil 75 / mediana (top_speed) donde aplica.
rider_nametextoNombre del piloto.
Unir por competitor_id.
scopecategoría'all', 'race' o 'quali' según la métrica.
valuesegún metricquali_race_residual: >0 especialista/<0 diésel · consistency: resid_cv % (menor=regular) · top_speed_rider: km/h · places_gained: puestos grid→final · race_vs_grid: pos. netas de parrilla (>0 corre mejor) · practice_to_*_z: z 'esconde ritmo'.
practice_to_*_z: z medio (±3) dentro de sesión; >0 = en la sesión decisiva va MÁS rápido de lo que parecía en PR/FP2. DESCRIPTIVO (ICC≈0,05), no input; n = GPs (≥10). race_vs_grid = AR validado.
fact_rider_ranking (9)
ColumnUnitMeaning
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
metriccategoríaMétrica de ritmo: race_pace / quali_pace / fp_long_pace / fp_attack_pace.
nrecuentoNº de sesiones agregadas.
p25% (porcentaje)Percentil 25 del % de gap del piloto (su buen cuartil).
Menor = mejor.
p75% (porcentaje)Percentil 75 del % de gap (su mal cuartil). Mide consistencia.
p75−p25 = dispersión.
pctilepercentil [0,1]Posición relativa del piloto dentro de sesión, mediana.
0 = mejor, 1 = peor.
rider_nametexto (crudo)Nombre como aparece en lap_times (apellido en MAYÚS).
Para unir, usar competitor_id, no este texto.
scopecategoríaRégimen (race/quali/fp_long/fp_attack); coincide con metric.
value% (porcentaje)Ritmo relativo MEDIANO: % por encima del mejor de la sesión.
0 = el más rápido; MENOR = MEJOR. Mediana entre sesiones.
fact_season_metric (12)
ColumnUnitMeaning
avg_finishersrecuentoClassificats mitjans per cursa.
dnf_pct%% de DNF sobre els que surten.
front_row_podium_pct%% del podi sortit de la 1a fila.
mae_grid_finalposicionesMitjana de |final − graella|.
n_podium_ridersrecuentoPilots diferents al podi.
n_racesrecuentoCurses amb ≥8 classificats.
n_winnersrecuentoGuanyadors diferents.
pole_win_pct%% de curses guanyades pel poleman.
sd_reorderposicionessd de (final − V1) per cursa (reordenació en cursa).
Referència 3,0-4,2; alerta > 4,3.
sd_startposicionessd de (V1 − graella) per cursa (caos de sortida).
spearman_grid_finalcorrelaciónMitjana per cursa del Spearman graella→final. Alt = la graella mana.
Referència 2016-26: 0,68-0,84; alerta 2027 si < 0,68 o > 0,82 amb ≥10 curses.
yearañoTemporada (PK).
fact_sector (6)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Circuito.
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
gap_pct% (porcentaje)Gap MEDIANO al mejor de ese sector intra-sesión (0 = el más rápido).
Menor = más rápido en ese tramo.
nrecuentoNº de sesiones agregadas.
rider_nametextoNombre del piloto.
Unir por competitor_id.
sectorcategoríaSector: t1/t2/t3/t4 (los 4 particionan la vuelta; t4 derivado).
Tramo físico, no tipo de curva.
fact_sector_season (7)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Circuit.
competitor_idUUIDPilot → dim_rider.
gap_pct%Mediana, sobre les sessions d'aquell cap de setmana, del gap % al millor del sector dins de cada sessió (menor = més ràpid).
Només sec; ≥2 sessions.
nrecuentoSessions del cap de setmana amb dades del pilot.
rider_nametextoPilot.
sectoríndiceSector 1..4 (mateix codi que fact_sector).
yearañoTemporada (2018+).
PK (year, circuit_short, sector, rider_name). Versió per any de fact_sector: l'usuari tria agregat o temporada.
fact_sprint_forecast (15)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Circuito.
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
exp_posposición (esperada)Posición final esperada, CONDICIONAL a acabar la carrera (media de las simulaciones sin DNF).
p_win/p_podium/p_top5/p_top10 son INCONDICIONALES (incluyen el DNF); exp_pos/pi80 no.
gridposiciónPuesto de salida = clasificación OFICIAL de Q1/Q2 (results). Es el predictor central.
NO aplica sanciones de parrilla (pérdida de puestos / salida desde el pit lane). El backtest dice que la grilla sola gana → el modelo NO mueve el orden; añade varianza de salida (global) + ruido V1→final + DNF (solo CALIBRA).
p_dnf% (porcentaje)Probabilidad histórica de NO terminar (DNF), per-piloto encogida hacia la media global.
0-100. Descriptor publicado; su granularidad apenas mueve el pronóstico (ver RACE_MODEL_REVAL.md).
p_podium% (porcentaje)Probabilidad de podio (top 3).
p_top10% (porcentaje)Probabilidad de top 10.
p_top5% (porcentaje)Probabilidad de top 5.
p_win% (porcentaje)Probabilidad de ganar (Monte Carlo).
25 = 25%.
pi80_hiposiciónLímite superior del intervalo de predicción al 80% (peor plausible), condicional a acabar.
pi80_loposiciónLímite inferior del intervalo de predicción al 80% (mejor plausible), condicional a acabar.
Cobertura empírica ~83% (ligeramente ancho: salida y reordenación V1→final se muestrean independientes; RACE_MODEL_START.md).
race_datefecha (YYYY-MM-DD)Fecha del GP (pronóstico válido ANTES de la carrera).
rider_nametextoNombre canónico.
roundnº de rondaOrden cronológico del GP.
yearañoPRONÓSTICO DEL SPRINT (pre-sprint, generado tras Q2): mismo modelo con pools propios del sprint (salida, reordenación y DNF del SPR). Solo GPs con sprint (2023+). Temporada de la carrera pronosticada.
fact_standings (9)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Circuito del GP.
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
cum_pointspuntosPuntos acumulados del año hasta esa ronda (incluida).
race_datefecha (YYYY-MM-DD)Fecha del GP.
rider_nametextoNombre limpio (de competitors).
roundnº de rondaOrden cronológico del GP dentro del año.
round_pointspuntosPuntos sumados en esa ronda (carrera + sprint).
standings_posposiciónPosición en el mundial tras esa ronda.
1 = líder.
yearañoTemporada.
fact_teammate_h2h (23)
ColumnUnitMeaning
avg_pos_aposiciónPosició final mitjana de A (classificats).
avg_pos_bposiciónPosició final mitjana de B.
competitor_id_aUUIDPilot A (el de més punts) → dim_rider.
competitor_id_bUUIDPilot B → dim_rider.
grid_a_aheadrecuentoGraelles amb A davant.
grid_b_aheadrecuentoGraelles amb B davant.
grids_bothrecuentoGraelles comparables (graella oficial de cursa).
podiums_arecuentoPodis de A (cursa).
podiums_brecuentoPodis de B.
points_apuntosPunts de A (cursa + esprint).
points_bpuntosPunts de B.
race_a_aheadrecuentoCurses en què A acaba davant de B (un DNF perd contra un classificat).
race_b_aheadrecuentoCurses en què B acaba davant.
races_bothrecuentoCurses comparables (tots dos amb resultat; dos DNF no compten).
Els dos pilots amb més sortides de l'equip, ≥5 cadascun.
rider_atextoNom del pilot A.
rider_btextoNom del pilot B.
sprint_a_aheadrecuentoEsprints amb A davant.
sprint_b_aheadrecuentoEsprints amb B davant.
sprints_bothrecuentoEsprints comparables.
teamtextoEquip (nom oficial de la temporada).
wins_arecuentoVictòries de A (cursa).
wins_brecuentoVictòries de B.
yearañoTemporada.
PK (year, team).
fact_title_forecast (19)
ColumnUnitMeaning
alive0/11 = encara pot ser campió matemàticament (max_points ≥ punts actuals del líder).
competitor_idUUIDPilot → dim_rider.rider_id.
exp_pointspuntosPunts esperats a final de temporada (forma recent).
exp_points_seasonpuntosPunts esperats amb pes uniforme (tot l'any).
exp_posposiciónPosició final esperada al mundial.
max_pointspuntosMàxim matemàtic (actuals + 25/cursa + 12/esprint).
n_hurtrecuentoCurses de l'any amb pes reduït per lesió (corria lesionat ×0,25; 2 events de retorn ×0,5), segons fact_rider_injury.
Una mala ratxa per lesió no compta com a mala forma.
n_startsrecuentoCurses disputades aquest any (base del bootstrap).
< 3 → no se simula (queda amb els punts actuals).
p_title% (0-100)P(títol) amb FORMA RECENT: cada cursa pendent re-mostreja un resultat propi de l'any amb pes exponencial (mitja vida 5 rondes: l'última cursa pesa el doble que la de fa 5) i el camp es reordena; N=10000.
Titular. Sense ajust. Els caps de setmana no disputats no penalitzen. Mostrar-la amb p_title_season: l'interval és el missatge.
p_title_season% (0-100)P(títol) amb TOT L'ANY a pes uniforme (mateixa simulació).
Amb marges petits les dues xifres poden diferir 20-30 punts: dir 'entre X i Y segons com es pesi la forma'.
p_top3% (0-100)Probabilitat d'acabar el mundial al top 3.
points_nowpuntosPunts actuals (cursa + esprint).
pos_nowposiciónPosició actual al mundial.
pts_p10puntosPercentil 10 dels punts finals simulats.
pts_p90puntosPercentil 90 dels punts finals simulats.
races_leftrecuentoCurses pendents de la temporada.
rider_nametextoNom del pilot.
sprints_leftrecuentoEsprints pendents.
yearañoTemporada simulada (la en curs).
PK (year, competitor_id).
fact_title_forecast_hist (6)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Event de la ronda.
p_title% (0-100)P(títol) forma recent tal com s'hauria publicat després d'aquesta ronda.
A les rondes 1-2 el bootstrap té 1-2 mostres per pilot: molt volàtil (min_starts = ronda).
p_title_season% (0-100)P(títol) tot l'any (uniforme) després d'aquesta ronda.
points_nowpuntosPunts després d'aquesta ronda.
La resta de columnes: vegeu fact_title_forecast.
roundrecuentoRonda DESPRÉS de la qual es fa el snapshot (cursa disputada).
Només amb el que se sabia llavors: resultats i lesions fins a aquella ronda (walk-forward).
yearañoTemporada.
PK (year, round, competitor_id). Mateixes columnes que fact_title_forecast.
fact_tyre_choice (18)
ColumnUnitMeaning
circuit_shortcódigo (3 letras)Circuit.
competitor_idUUIDPilot → dim_rider.rider_id.
constructortextoMarca (de lap_times).
deg_s_laps/vueltaDegradació = pendent (s/volta) de les voltes netes; NULL si < 6 voltes netes.
Inclou benzina i trànsit: comparar dins la mateixa sessió.
field_rear_modecategoríaCompost del darrere majoritari del camp en aquesta sessió.
final_posposiciónPosició final (NULL si DNF).
front_compoundcategoríaCompost davant (moda de les voltes): Slick-Soft/Medium/Hard, Wet-Soft/Medium.
grid_posposiciónGraella oficial (Grid.pdf si n'hi ha).
is_minority0/11 = el seu compost del darrere NO és el majoritari (aposta diferent).
n_cleanrecuentoVoltes netes (lib/clean: sense volta 1, cancel·lades, pit, outliers).
n_lapsrecuentoVoltes cronometrades.
pace_rel_pct%Ritme relatiu al millor de la sessió (0 = el més ràpid).
pace_ssRitme = mediana de voltes netes.
rear_compoundcategoríaCompost darrere (moda de les voltes).
Un canvi de moto (flag-to-flag) es resol per la moda.
rider_nametextoNom del pilot.
session_typecategoríaRAC (cursa) o SPR (esprint).
statuscategoríaINSTND = classificat; altres = DNF/DNS.
yearañoTemporada.
PK (year, circuit_short, session_type, competitor_id).
fact_tyre_compound (13)
ColumnUnitMeaning
avg_final_posposiciónPosició final mitjana (classificats).
best_final_posposiciónMillor posició final.
circuit_shortcódigo (3 letras)Circuit.
deg_meds/vueltaMediana de la degradació.
dnf_pct%% de DNF entre els que el portaven.
n_ridersrecuentoPilots amb aquest compost.
pace_rel_med%Mediana del ritme relatiu (%) dels pilots amb aquest compost.
podiumsrecuentoPodis amb aquest compost.
rear_compoundcategoríaCompost del darrere.
session_typecategoríaRAC o SPR.
share_pct%Quota del camp.
winsrecuentoVictòries amb aquest compost.
yearañoTemporada.
PK (year, circuit_short, session_type, rear_compound).
fact_weather (17)
ColumnUnitMeaning
air_temp_max°CTemperatura del aire máxima.
air_temp_mean°CTemperatura del aire media en la ventana.
air_temp_slope_per_h°C/hTendencia de temperatura (calienta/enfría).
circuit_shortcódigo (3 letras)Circuito.
cloud_mean% (cobertura)Nubosidad media.
dew_point_mean°CPunto de rocío medio.
n_pointsrecuentoNº de puntos horarios/sub-horarios usados.
precip_total_mmmmPrecipitación total en la ventana.
pressure_mean_hpahPaPresión media.
rainboolTrue si llovió en la ventana.
rh_mean% (humedad relativa)Humedad relativa media.
session_start_localfecha-hora localInicio de la sesión (hora local del circuito).
Ventana del resumen: −30/+90 min.
session_typecategoríaSesión (RAC/SPR/Q2/FP1…).
weather_code_worstcódigo WMOCódigo de tiempo más severo en la ventana.
wind_gust_max_kmhkm/hRacha de viento máxima.
wind_mean_kmhkm/hViento medio.
yearañoTemporada.
v_rider_residual_year (5)
ColumnUnitMeaning
competitor_idUUIDPiloto canónico → dim_rider.rider_id.
nrecuentoNº de carreras (finishers) ese año.
race_vs_gridposicionesMedia anual del residuo de grilla (de fact_race_residual). >0 = corre mejor de lo que clasifica ese año.
DERIVADA (vista); para la curva estación-a-estación de la ficha de piloto.
rider_nametextoNombre canónico.
yearañoTemporada.