Las tablas de proyecciones traen una probabilidad para cada resultado posible de un partido. Esta página explica de dónde sale ese número, sin pedirte que sepas estadística.
Qué es una proyección
Una proyección es la probabilidad de cada desenlace de un partido: que gane el local, que gane el visitante y, en los deportes que lo tienen, que empaten.
Esas probabilidades salen de la fuerza histórica de cada equipo —lo que ha anotado, lo que ha recibido, contra quién y dónde—, no de la opinión de nadie. Ninguna cifra de la tabla la escribe una persona.
Cómo se calcula
El cálculo tiene tres pasos, y el segundo es el que sorprende a casi todo el mundo:
- El modelo estima cuántos goles espera de cada lado. En béisbol son carreras y en fútbol americano, puntos.
- Con esos dos números calcula la probabilidad de cada marcador posible: 1-0, 2-1, 0-0, 3-2, y así con todos.
- Suma las casillas. Todos los marcadores en los que el local anota más que el visitante, sumados, dan la probabilidad de victoria local. Lo mismo para el empate y para el visitante.
De ahí salen el 1, la X y el 2 de la tabla. No se simulan partidos ni se tira una moneda muchas veces: la suma se hace entera, casilla por casilla.
El marcador esperado que ves al final de cada fila es el promedio de esa misma distribución, y el rango entre paréntesis cubre el 80 % de los marcadores que el modelo considera posibles.
Por qué se congela antes del partido
Una predicción que se puede reescribir después de conocer el resultado no significa nada: cualquiera acierta si le dejan corregir al final.
Por eso cada proyección se guarda con fecha y hora, antes de que empiece el partido, y no se modifica nunca. La tabla donde vive no acepta modificaciones ni borrados; una corrida mal calculada se reemplaza entera y se vuelve a insertar, no se parchea. Eso es lo que hace que estos números se puedan medir después.
Qué no incluye
La proyección es la salida automática del modelo, congelada horas antes del inicio. No sabe nada de:
- noticias de última hora;
- alineaciones confirmadas;
- lesiones de último momento;
- cambios de sede.
Si el portero titular se cae del once una hora antes del partido, la proyección no se entera. Es una limitación conocida y declarada, no un descuido: incorporar esas noticias exigiría reescribir la proyección después de congelarla, que es justo lo que la haría inservible.
Qué no es
No son recomendaciones de apuesta ni selecciones. No hay una jugada sugerida, ni un momio, ni un monto. Son probabilidades: lo que el modelo creía, con la hora a la que lo creía. Qué hacer con ellas —si algo— es decisión de quien las lee.
Ver las proyeccionesThe projections tables carry a probability for every possible outcome of a match. This page explains where that number comes from, without assuming you know any statistics.
What a projection is
A projection is the probability of each outcome of a match: a home win, an away win and, in the sports that have one, a draw.
Those probabilities come from each team's historical strength — what it has scored, what it has conceded, against whom and where — not from anyone's opinion. No figure in the table is typed in by a person.
How it is computed
The calculation takes three steps, and the second one is the part that surprises most people:
- The model estimates how many goals it expects from each side. In baseball those are runs; in American football, points.
- From those two numbers it works out the probability of every possible scoreline: 1-0, 2-1, 0-0, 3-2, all of them.
- Then it adds up the cells. Every scoreline where the home team outscores the away team, added together, is the probability of a home win. Same for the draw and for the away win.
That is where the 1, the X and the 2 in the table come from. No matches are simulated and no coin is tossed thousands of times: the sum is worked out in full, cell by cell.
The expected score at the end of each row is the average of that same distribution, and the range in parentheses covers 80 % of the scorelines the model considers possible.
Why it is frozen before kickoff
A prediction you can rewrite once the result is known means nothing: anyone looks sharp if they get to fix their answer at the end.
So every projection is stored with a date and time, before the match starts, and is never modified afterwards. The table it lives in accepts no updates and no deletes; a bad run is replaced wholesale and re-inserted, never patched. That is what makes these numbers measurable later.
What it leaves out
A projection is the model's automatic output, frozen hours before kickoff. It knows nothing about:
- late-breaking news;
- confirmed line-ups;
- last-minute injuries;
- venue changes.
If the first-choice keeper drops out of the eleven an hour before kickoff, the projection never finds out. That is a known, stated limit rather than an oversight: folding that news in would mean rewriting the projection after freezing it, which is precisely what would make it worthless.
What it is not
These are not betting recommendations or selections. There is no suggested play, no odds, no stake. They are probabilities: what the model believed, and when it believed it. What to do with them — if anything — is the reader's call.
See the projectionsDetalle técnico, motor por motorTechnical detail, engine by engine
Hay un motor por deporte y cada uno lleva su propia versión. Las series no se mezclan entre versiones: un promedio calculado sobre dos versiones describe un modelo que nunca existió. La versión con la que se generó cada tabla aparece debajo de ella, en /proyecciones.
Fútbol soccer_v2
Cada equipo tiene un rating de ataque y uno de defensa, normalizados dentro de su liga: el ataque medio y la defensa media de esa liga valen 1.0. Cada liga aporta además sus propios parámetros: goles esperados del local (HG), goles esperados del visitante (AG) y propensión al empate.
Los goles esperados de cada lado salen de ahí:
λ_local = HG_liga × (ataque_local × defensa_visitante) ^ Sλ_visita = AG_liga × (ataque_visitante × defensa_local) ^ S
S vale 1.28 en liga doméstica y 1.00 en competiciones de copa. La distinción se midió el 24 de agosto de 2026: el ajuste no funciona en cruces de copa, así que ahí se apaga en vez de aplicarse a medias. En cruces internacionales se aplica además un multiplicador por la fuerza relativa de las dos ligas — un ataque de 1.2 no significa lo mismo en dos ligas de nivel distinto, porque cada rating está normalizado contra la suya.
La distribución de marcadores se calcula de forma exacta, no por muestreo: se construye la matriz de probabilidad de cada marcador hasta 9 goles por lado, con distribución de Poisson y corrección de Dixon-Coles, que ajusta la probabilidad de los marcadores bajos —los que la Poisson pura subestima—. Las probabilidades 1/X/2 son la suma de las celdas correspondientes de esa matriz.
Los rangos de marcador que aparecen en las tablas cubren el 80 % de la distribución.
Béisbol mlb_v4
Las carreras esperadas de cada lado salen de tres insumos: la ofensiva del equipo, la calidad del abridor rival —medida por FIP con shrinkage, para que un abridor con pocas entradas no arrastre la estimación hacia su propio ruido— y el bullpen rival ajustado por fatiga reciente. Los pesos son 62 % para el abridor y 30 % para la forma reciente.
Sobre eso se aplica el ajuste por factor de parque.
La distribución de carreras no es Poisson: usa una binomial negativa con parámetro de dispersión 2.10, fijado por cobertura del rango del 80 %. El béisbol tiene más varianza de la que una Poisson admite, y con una Poisson los rangos salían demasiado estrechos.
Al final se aplica un encogimiento hacia la tasa base:
p_final = 0.5308 + 0.75 × (p_cruda − 0.5308)
Corrige la sobreconfianza estructural del modelo: acerca cada probabilidad a la tasa base sin borrar la diferencia entre un partido y otro. El factor 0.75 se re-estimó el 24 de agosto de 2026.
Fútbol americano universitario ncaaf_drives_v0_preliminar
Reutiliza el motor por drives de la NFL, con datos de ESPN. Lo que no reutiliza son las constantes: se volvieron a medir sobre 2,733 juegos universitarios, y salen distintas.
| Constante | Universitario | NFL |
|---|---|---|
| Touchdown por drive | 21.9 % | 18.4 % |
| Field goal por drive | 8.9 % | 14.6 % |
| Drives por equipo-juego | 11.89 | — |
| Ventaja de local | 0.643 | 0.549 |
La localía universitaria es otra cosa, y la tabla lo dice sola: heredar las constantes de la NFL habría producido un modelo con la forma correcta y los números equivocados.
Los rivales de división inferior (FCS) se agrupan en un solo pseudo-equipo. Aparecen entre una y tres veces por temporada, y tratados uno a uno cada uno quedaría pegado a la media —indistinguible del resto— por pura falta de partidos. Agrupados son al menos lo que son: un bloque de rivales de otro nivel.
El tiempo extra universitario no está modelado todavía.
Versión preliminar, por decisión explícita. La temporada arranca el 29 de agosto y no cabía una validación completa antes de esa fecha. Había dos salidas: publicar solo los pocos juegos que llegaran validados, o publicar la temporada entera —unos 888 juegos— marcada con confianza baja. Se eligió la segunda. Un modelo que enseña su temporada completa desde el primer día, con su nivel de confianza declarado, se puede medir; uno que enseña solo lo que ya le salió bien, no. El nombre de la versión lleva _preliminar para que ninguna serie futura la confunda con una validada. La validación completa está prevista para octubre.
There is one engine per sport, and each carries its own version. Series are never mixed across versions: an average computed over two versions describes a model that never existed. The version behind each table is shown underneath it, on /proyecciones.
Soccer soccer_v2
Every team carries an attack rating and a defense rating, normalised within its own league: the league's average attack and average defense are both 1.0. Each league also contributes its own parameters: expected home goals (HG), expected away goals (AG) and draw propensity.
Expected goals for each side follow from those:
λ_home = HG_league × (attack_home × defense_away) ^ Sλ_away = AG_league × (attack_away × defense_home) ^ S
S is 1.28 in domestic league play and 1.00 in cup competitions. The distinction was measured on 24 August 2026: the adjustment does not hold up in cup ties, so there it is switched off rather than applied half-way. Cross-border ties also get a multiplier for the relative strength of the two leagues — an attack rating of 1.2 does not mean the same thing in two leagues of different quality, because each rating is normalised against its own.
The scoreline distribution is computed exactly, not by sampling: the engine builds the probability matrix for every scoreline up to 9 goals per side, using a Poisson distribution with the Dixon-Coles correction, which adjusts the probability of low scorelines — the ones a plain Poisson underrates. The 1/X/2 probabilities are the sums of the matching cells of that matrix.
The score ranges shown in the tables cover 80 % of the distribution.
Baseball mlb_v4
Expected runs for each side come from three inputs: team offense, opposing starter quality — measured by FIP with shrinkage, so a starter with few innings does not drag the estimate toward his own noise — and the opposing bullpen adjusted for recent workload. The weights are 62 % for the starter and 30 % for recent form.
A park-factor adjustment is applied on top of that.
The run distribution is not Poisson: it uses a negative binomial with a dispersion parameter of 2.10, fixed by coverage of the 80 % range. Baseball carries more variance than a Poisson allows, and under a Poisson the ranges came out too narrow.
A final shrinkage toward the base rate is applied:
p_final = 0.5308 + 0.75 × (p_raw − 0.5308)
It corrects the model's structural overconfidence: it pulls every probability toward the base rate without flattening the difference between one matchup and the next. The 0.75 factor was re-estimated on 24 August 2026.
College football ncaaf_drives_v0_preliminar
This one reuses the NFL drive-level engine, with data from ESPN. What it does not reuse are the constants: those were measured again over 2,733 college games, and they come out different.
| Constant | College | NFL |
|---|---|---|
| Touchdown per drive | 21.9 % | 18.4 % |
| Field goal per drive | 8.9 % | 14.6 % |
| Drives per team-game | 11.89 | — |
| Home-field advantage | 0.643 | 0.549 |
College home-field is a different animal, and the table says so on its own: inheriting the NFL constants would have produced a model with the right shape and the wrong numbers.
Lower-division opponents (FCS) are pooled into a single pseudo-team. They turn up one to three times a season, and handled one by one each would sit glued to the average — indistinguishable from everyone else — purely for lack of games. Pooled, they are at least what they are: a block of opponents from another tier.
College overtime is not modelled yet.
Preliminary version, by explicit decision. The season starts on 29 August and there was no room for full validation before that date. There were two ways to go: publish only the handful of games that arrived validated, or publish the whole season — some 888 games — flagged as low confidence. The second one won. A model that shows its entire season from day one, with its confidence level stated, can be measured; one that shows only what already worked out cannot. The version name carries _preliminar so that no future series mistakes it for a validated one. Full validation is scheduled for October.