Calculateur d'OPS
150 coups sûrs, 50 buts sur balles et 250 buts totaux en 500 présences officielles portent l'OPS au-dessus de huit cents, le repère d'un titulaire solide : présence sur les buts plus puissance, un seul nombre pour la fréquence et les dégâts. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Coups sûrs
- 150
- Buts sur balles
- 50
- Frappé par un lancer
- 5
- Présences à la batte
- 500
- Chandelles de sacrifice
- 5
- Total de buts
- 250
- Obp
- 0,3660714286
- Slg
- 0,5
- Ops
- 0,8660714286
L'on-base plus slugging, abrégé OPS, est l'indice de baseball qui additionne la moyenne de présence sur les buts à la moyenne de puissance afin qu'un seul nombre décrive à la fois la fréquence à laquelle un frappeur atteint les buts et les dégâts en buts supplémentaires produits par ces présences. Ce calculateur prend les six décomptes de box score de l'identité officielle : coups sûrs, buts-sur-balles, atteints par un lancer, passages officiels au bâton, balles-sacrifices et buts au total. Il calcule l'OBP sur le dénominateur des apparitions au marbre, calcule le SLG par les buts au total sur les passages au bâton, et renvoie leur somme comme OPS.
Ce que l'on-base plus slugging mesure et comment OBP et SLG s'additionnent
L'on-base plus slugging est l'indice le plus simple qui réponde encore à deux questions distinctes sur un frappeur : à quelle fréquence atteint-il les buts, et lorsque la balle est en jeu comme passage officiel, combien de buts produit-elle ? La moyenne de présence est (coups sûrs plus buts-sur-balles plus atteints par un lancer) divisée par (passages au bâton plus buts-sur-balles plus atteints par un lancer plus balles-sacrifices).
Ce dénominateur est l'ensemble officiel des apparitions au marbre pour l'OBP : buts-sur-balles et atteints comptent comme présences sans être des passages au bâton, et une balle-sacrifice est imputée au dénominateur afin qu'un retrait productif n'enfle pas l'indice. La moyenne de puissance est les buts au total divisés par les passages au bâton.
Les buts au total créditent un simple comme un, un double comme deux, un triple comme trois et un coup de circuit comme quatre ; buts-sur-balles, atteints et balles-sacrifices n'ajoutent rien au numérateur, d'où une apparition de remplaçant faite seulement de buts-sur-balles peut afficher un OBP élevé et une puissance nulle. L'OPS est ces deux indices additionnés, ni moyennés ni pondérés.
Un OPS de ligue se situe souvent vers les sept cents hauts ; huit cents est un régulier solide ; neuf cents est un bâton d'All-Star ; mille et plus est un territoire de saison MVP. La moyenne au bâton ne remplace pas : elle ignore les buts-sur-balles et traite un simple comme un circuit. La moyenne de présence pondérée et l'OPS-plus sont d'autres recherches — facteurs de stade, coefficients de ligue et poids linéaires — et cette page ne les calcule pas.
Ici vit l'identité de box score OPS = OBP + SLG, une erreur dure lorsque passages au bâton plus buts-sur-balles valent zéro afin qu'un tableau ne rende jamais Infinity, et un contrôle de cohérence pour que les coups sûrs ne dépassent pas les passages et que les buts au total restent entre un et quatre par coup sûr.
Où un calculateur déterministe d'OPS justifie sa place
Les statisticiens de club qui fusionnent des box scores amateurs ont besoin du même OPS à partir des six mêmes décomptes chaque soir, pas d'une cellule de tableur éditée après un retard de pluie. Les chaînes fantasy et les repêchages keeper trient un effectif par on-base plus slugging autant que par moyenne au bâton ; la moyenne récompense la chance sur les balles en jeu, l'OPS récompense l'atteinte des buts et la puissance en buts supplémentaires, et les deux nombres répondent à des questions d'effectif distinctes.
Une validation échouée ne consomme pas de solde. Conservez les six entrées dans la même saison, la même série ou la même fenêtre de carrière — n'ajoutez pas les buts-sur-balles de ce mois aux passages de l'an dernier — et vous obtenez un OPS reproductible pour tableaux d'affichage, quiz LMS et workers en bordure. Cette page s'adresse à qui cherche un calculateur d'on-base plus slugging, un calculateur d'OPS à partir du box score, ou OBP plus SLG.
Ce n'est pas la moyenne au bâton, pas le wOBA, pas le taux de strike du cricket, et pas un flux MLB en direct. Préférez cette capacité lorsque vous avez déjà les six décomptes et n'avez besoin que de la somme officielle.
Cas d’usage
Tableau d'affichage et indices de saison en retransmission
Transformez les totaux cumulés de coups sûrs, buts-sur-balles, atteints, passages au bâton, balles-sacrifices et buts au total en un OPS de saison après chaque apparition au marbre, sans inventer un nombre avant le premier passage ou but-sur-balles.
Fiches de recrutement et box scores amateurs
Fusionnez les feuilles du week-end en une seule colonne OPS à partir des six décomptes officiels, pour comparer sur la même échelle un bâton de nombreux buts-sur-balles et un frappeur de puissance.
Questions fréquentes
Comment calcule-t-on l'on-base plus slugging d'après le box score ?
OPS = OBP + SLG. Envoyez les six décomptes non négatifs de la même fenêtre.
Que se passe-t-il si passages au bâton plus buts-sur-balles valent zéro ?
L'on-base plus slugging est indéfini lorsque passages au bâton plus buts-sur-balles valent zéro, donc le calculateur ne renvoie ni Infinity, ni NaN, ni un OPS faux à zéro, et l'échec n'est pas facturé.
Les balles-sacrifices et les atteints par un lancer comptent-ils dans l'OPS ?
Oui, dans la moyenne de présence. L'atteint compte au numérateur et au dénominateur de l'OBP. La balle-sacrifice compte seulement au dénominateur de l'OBP.
L'OPS est-il la même chose que la moyenne au bâton ou le wOBA ?
Non. La moyenne au bâton est les coups sûrs divisés par les passages au bâton et ignore buts-sur-balles et valeur en buts supplémentaires. Le wOBA applique des poids linéaires aux événements. Cette page est la somme officielle d'OBP et de SLG, la requête que l'on tape comme on-base plus slugging.
Qu'est-ce qu'un bon OPS ?
En gros, l'OPS moyen d'une ligue tourne souvent dans le haut des sept cents ; huit cents signale un titulaire solide, neuf cents un frappeur de niveau All-Star et mille ou plus une saison digne du titre de MVP. Le calculateur renvoie seulement le taux.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"hits": 150,
"walks": 50,
"hit_by_pitch": 5,
"at_bats": 500,
"sacrifice_flies": 5,
"total_bases": 250
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "sports.on_base_plus_slugging",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_abs_value | 1000000000000000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Un échantillon sans passage au bâton et sans but-sur-balles est rejeté avec invalid_input, car l'indice est indéfini tant que le frappeur n'a encore été chargé ni d'un passage officiel ni d'un but-sur-balles.
Entrées, formule, arrondi et l'erreur passages plus buts-sur-balles nuls
Cet échec n'est pas facturé. En cas de succès, le corps répète les six entrées, renvoie obp, slg et ops arrondis à dix décimales pour des goldens stables entre runtimes, et réaffirme formula comme OPS = OBP + SLG avec les deux fractions officielles. Associez la réponse à vos propres seuils d'époque si vous avez besoin d'un libellé feu tricolore ; ce point de terminaison ne renvoie que l'indice. Envoyez un corps JSON par POST avec six nombres finis non négatifs obligatoires de la même fenêtre : hits, walks, hit_by_pitch, at_bats, sacrifice_flies et total_bases. Chaque champ peut arriver comme nombre JSON ou comme chaîne numérique. Les alias h et hit sont acceptés pour hits ; bb, base_on_balls, bases_on_balls et w pour walks ; hbp, hit_batsman et hit_by_pitches pour hit_by_pitch ; ab et atbats pour at_bats ; sf, sac_flies et sacrifice_fly pour sacrifice_flies ; tb et bases pour total_bases. Champs manquants, chaînes vides, NaN, Infinity, négatifs et texte non numérique échouent avec invalid_input en nommant le champ. hits ne peut pas dépasser at_bats, car un hit est un passage officiel. total_bases ne peut pas être inférieur à hits ni supérieur à quatre fois hits, car chaque hit vaut au moins un simple et au plus un circuit. at_bats plus walks doit être supérieur à zéro : l'on-base plus slugging est indéfini lorsque passages au bâton plus buts-sur-balles valent zéro, et la tâche échoue au lieu de renvoyer Infinity, NaN ou un zéro silencieux. Lorsque at_bats vaut zéro mais qu'il reste des walks, la puissance est définie à zéro et l'OPS égale l'OBP — la lecture honnête d'un échantillon fait seulement de buts-sur-balles. Exemple travaillé : 150 hits, 50 walks, 5 hit_by_pitch, 500 at_bats, 5 sacrifice_flies et 250 total_bases produisent OBP 205/560, slugging .500 et OPS 0.8660714286.
Où un calculateur déterministe d'OPS justifie sa place
Les fiches de recrutement qui stockent déjà hits, walks, hit_by_pitch, at_bats, sacrifice_flies et total_bases peuvent remplir une colonne OPS sans dresser un fournisseur de scoring. Les graphiques de retransmission peuvent recalculer l'OPS de saison après chaque apparition au marbre à partir des totaux cumulés, et bloquer avec invalid_input un joueur sans passage ni but-sur-balles au lieu de peindre Infinity.
Cas d'intégration
Chaînes fantasy et académies
Bloquez avec invalid_input un joueur à zéro passage au bâton et zéro but-sur-balles au lieu de peindre Infinity dans un classement, et gardez coups sûrs et buts au total cohérents avec le box score.
Questions techniques
Que coûte le calculateur d'on-base plus slugging ?
Le widget de la page s'exécute dans le navigateur sans frais. Chaque tâche API réussie est facturée à $0.002 ; invalid_input n'est pas débité.