Calculadora de OPS
150 hits, 50 bases por bolas y 250 bases totales en 500 turnos al bate llevan el OPS por encima de ochocientos, la marca de un titular sólido: embasamiento más slugging, un solo número para cuánto se llega a base y cuánto daño sigue. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Hits
- 150
- Bases por bolas
- 50
- Golpeado por lanzamiento
- 5
- Turnos al bate
- 500
- Elevados de sacrificio
- 5
- Bases totales
- 250
- Obp
- 0,3660714286
- Slg
- 0,5
- Ops
- 0,8660714286
El on-base plus slugging, abreviado OPS, es el índice de béisbol que suma el porcentaje de embasamiento al de slugging para que un solo número describa con qué frecuencia un bateador llega a base y cuánto daño de bases extras producen esas llegadas. Calcula el OBP con el denominador de apariciones al plato, calcula el SLG con las bases totales sobre los turnos al bate y devuelve su suma como OPS.
Qué mide el on-base plus slugging y cómo se suman OBP y SLG
El on-base plus slugging es el índice más simple que aún responde dos preguntas distintas sobre un bateador: con qué frecuencia llega a base y, cuando la pelota está en juego como turno oficial, cuántas bases produce. Ese denominador es el conjunto oficial de apariciones al plato para el OBP: las bases por bolas y los golpeados cuentan como llegadas a base sin ser turnos, y un fly de sacrificio se carga en el denominador para que un out productivo no infle el índice.
El porcentaje de slugging es bases totales dividido entre turnos al bate. Las bases totales acreditan un sencillo como uno, un doble como dos, un triple como tres y un jonrón como cuatro; bases por bolas, golpeados y flies de sacrificio no añaden nada al numerador, por eso una aparición de emergente solo con boletos puede mostrar un OBP alto y un slugging de cero. El OPS es esos dos índices sumados, no promediados ni ponderados.
Un OPS de liga suele situarse cerca de los setecientos altos; ochocientos es un regular sólido; novecientos es un bate de All-Star; mil y más es territorio de temporada MVP. El promedio de bateo no sustituye: ignora las bases por bolas y trata un sencillo como un jonrón. El promedio ponderado de embasamiento y el OPS-plus son búsquedas distintas — factores de parque, coeficientes de liga y pesos lineales — y esta página no los calcula.
Dónde gana sentido una calculadora determinista de OPS
Los estadísticos de club que fusionan box scores amateur necesitan el mismo OPS a partir de los mismos seis recuentos cada noche, no una celda de hoja que alguien editó tras un retraso por lluvia. Las canalizaciones de fantasy y los drafts de keeper ordenan una plantilla por on-base plus slugging además de por promedio de bateo; el promedio premia la suerte en bolas en juego, el OPS premia llegar a base y el poder de bases extras, y ambos números responden preguntas de roster distintas.
La validación fallida no consume saldo. Mantenga las seis entradas en la misma temporada, serie o ventana de carrera — no sume los boletos de este mes a los turnos del año pasado — y obtendrá un OPS reproducible para marcadores, cuestionarios LMS y workers en el borde. Esta landing es para quien busca una calculadora de on-base plus slugging, una de OPS con recuentos de box score, u OBP más SLG.
No es promedio de bateo, no es wOBA, no es tasa de strike de críquet y no es una alimentación MLB en vivo. Prefiera esta capacidad cuando ya tiene los seis recuentos y solo necesita la suma oficial.
Qué puede hacer con ella
Hojas de scouting y box scores amateur
Fusione las anotaciones de fin de semana en una sola columna de OPS con los seis recuentos oficiales, para comparar en la misma escala un bate de muchos boletos y un jonronero.
Preguntas frecuentes
¿Cómo se calcula el on-base plus slugging a partir del box score?
OPS = OBP + SLG. Envíe los seis recuentos no negativos de la misma ventana.
¿Qué ocurre si turnos al bate más bases por bolas valen cero?
El on-base plus slugging queda indefinido cuando turnos al bate más bases por bolas valen cero, así que la calculadora no devuelve Infinity, NaN ni un OPS falso de cero, y el fallo no se factura.
¿Cuentan en el OPS los flies de sacrificio y los golpeados por lanzamiento?
Sí, en el porcentaje de embasamiento. El golpeado cuenta en numerador y denominador del OBP. El fly de sacrificio cuenta solo en el denominador del OBP.
¿El OPS es lo mismo que el promedio de bateo o el wOBA?
El wOBA aplica pesos lineales a cada evento. Esta página es la suma oficial de OBP y SLG, la consulta que la gente escribe como on-base plus slugging.
¿Qué se considera un buen OPS?
Como guía aproximada, el OPS medio de una liga suele rondar la parte alta de los setecientos; ochocientos indica un titular sólido, novecientos un bate de All-Star y mil o más, territorio de temporada de MVP. Aquí solo se devuelve la tasa.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/sports/on-base-plus-slugging \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"hits":150,"walks":50,"hit_by_pitch":5,"at_bats":500,"sacrifice_flies":5,"total_bases":250}'const res = await fetch("https://api.kit.forhosting.com/sports/on-base-plus-slugging", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"hits": 150,
"walks": 50,
"hit_by_pitch": 5,
"at_bats": 500,
"sacrifice_flies": 5,
"total_bases": 250
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/sports/on-base-plus-slugging",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"hits": 150,
"walks": 50,
"hit_by_pitch": 5,
"at_bats": 500,
"sacrifice_flies": 5,
"total_bases": 250
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/sports/on-base-plus-slugging", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"hits":150,"walks":50,"hit_by_pitch":5,"at_bats":500,"sacrifice_flies":5,"total_bases":250}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"hits":150,"walks":50,"hit_by_pitch":5,"at_bats":500,"sacrifice_flies":5,"total_bases":250}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/sports/on-base-plus-slugging", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"hits": 150,
"walks": 50,
"hit_by_pitch": 5,
"at_bats": 500,
"sacrifice_flies": 5,
"total_bases": 250
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "sports.on_base_plus_slugging",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_abs_value | 1000000000000000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Esta calculadora toma los seis recuentos de box score que usa la identidad oficial: hits, bases por bolas, golpeados por lanzamiento, turnos al bate, flies de sacrificio y bases totales. Una muestra sin turnos al bate y sin bases por bolas se rechaza con invalid_input, porque el índice queda indefinido cuando al bateador aún no se le ha cargado un turno oficial ni una base por bolas.
Qué mide el on-base plus slugging y cómo se suman OBP y SLG
El porcentaje de embasamiento es (hits más bases por bolas más golpeados por lanzamiento) dividido entre (turnos al bate más bases por bolas más golpeados por lanzamiento más flies de sacrificio). Aquí vive la identidad de box score OPS = OBP + SLG, un error duro cuando turnos al bate más bases por bolas valen cero para que un tablero nunca pinte Infinity, y una comprobación de coherencia para que los hits no superen los turnos y las bases totales queden entre una y cuatro por hit.
Entradas, fórmula, redondeo y el error de turnos más boletos en cero
Ese fallo no se factura. Si hay éxito, el cuerpo ecoa las seis entradas, devuelve obp, slg y ops redondeados a diez decimales para goldens estables entre runtimes, y reafirma formula como OPS = OBP + SLG con las dos fracciones oficiales. Envíe un cuerpo JSON con POST y seis números finitos no negativos obligatorios de la misma ventana: hits, walks, hit_by_pitch, at_bats, sacrifice_flies y total_bases. Cada campo puede llegar como número JSON o como cadena numérica. Se aceptan los alias h y hit para hits; bb, base_on_balls, bases_on_balls y w para walks; hbp, hit_batsman y hit_by_pitches para hit_by_pitch; ab y atbats para at_bats; sf, sac_flies y sacrifice_fly para sacrifice_flies; tb y bases para total_bases. Campos ausentes, cadenas vacías, NaN, Infinity, negativos y texto no numérico fallan con invalid_input nombrando el campo. Los hits no pueden superar at_bats, porque un hit es un turno oficial. total_bases no puede ser menor que hits ni mayor que cuatro veces hits, porque cada hit vale al menos un sencillo y como mucho un jonrón. at_bats más walks debe ser mayor que cero: el on-base plus slugging queda indefinido cuando turnos al bate más bases por bolas valen cero, y la tarea falla en lugar de devolver Infinity, NaN o un cero silencioso. Cuando at_bats es cero pero quedan walks, el slugging se define como cero y el OPS iguala al OBP: la lectura honesta de una muestra solo de boletos. Ejemplo resuelto: 150 hits, 50 walks, 5 hit_by_pitch, 500 at_bats, 5 sacrifice_flies y 250 total_bases producen OBP 205/560, slugging .500 y OPS 0.8660714286. Combine la respuesta con sus propios umbrales de era si necesita una etiqueta semafórica; este endpoint solo devuelve el índice.
Dónde gana sentido una calculadora determinista de OPS
Las hojas de scouting que ya guardan hits, walks, hit_by_pitch, at_bats, sacrifice_flies y total_bases pueden rellenar una columna de OPS sin montar un proveedor de anotación. Los gráficos de retransmisión pueden recalcular el OPS de temporada tras cada aparición al plato a partir de totales acumulados, y pueden bloquear con invalid_input a un jugador sin turno ni base por bolas en lugar de pintar Infinity.
Casos de integración
Marcador y tasas de temporada en retransmisión
Convierta hits, bases por bolas, golpeados, turnos al bate, flies de sacrificio y bases totales acumulados en un OPS de temporada tras cada aparición al plato, sin inventar un número antes del primer turno o boleto.
Canalizaciones de fantasy y academias
Bloquee con invalid_input a un jugador con cero turnos al bate y cero bases por bolas en lugar de pintar Infinity en un ranking, y mantenga hits y bases totales coherentes con el box score.
Preguntas técnicas
¿Cuánto cuesta la calculadora de on-base plus slugging?
El widget de la página corre en el navegador sin cargo. Cada tarea API correcta se factura a $0.002; invalid_input no se cobra.